Attendize on Debian 12 with PHP 7.4 – A Self-Hosted Event Ticketing Solution for Modern Infrastructure

Attendize is a free and open-source event management and ticket-selling platform designed to provide organizers with full control over their event infrastructure. Built with Laravel 5.8, Attendize offers features such as multi-event management, customizable ticket types, discount codes, and payment integration—all wrapped in a clean, responsive UI.

However, one of the key technical considerations when deploying Attendize today is its tight dependency on PHP 7.4, which is no longer included in the default repositories of modern Linux distributions like Debian 12 (“Bookworm”).


Why PHP 7.4 is Required for Attendize

Attendize has not been updated to support Laravel 9+ or PHP 8.x. Its core codebase depends on syntax and library versions compatible only with PHP 7.4. Attempting to run it on PHP 8.0 or newer will likely result in:

  • Fatal function errors (e.g., removed functions or deprecated behavior)
  • Incompatible composer dependencies (e.g., illuminate/* packages)
  • Broken plugin behavior or UI inconsistencies

PHP 7.4 is the last officially supported version that ensures full compatibility with Attendize. It also provides the best stability with the Laravel 5.8 ecosystem, including Blade templates, Eloquent ORM, and Laravel queues.


Deploying PHP 7.4 on Debian 12

Debian 12 ships with PHP 8.2 by default, and PHP 7.4 has been removed from the official repositories. To install PHP 7.4, system administrators must rely on a trusted third-party source such as the Sury PHP repository, maintained by Ondřej Surý, which includes legacy PHP packages.

This process introduces extra steps for dependency management, but it ensures that Attendize remains functional in a modern, secure OS environment like Debian 12.


Attendize Software Stack on Debian 12

ComponentRecommended VersionRole
PHP7.4Application runtime (Laravel)
MySQL/MariaDB10.x+Persistent data storage
Web ServerApache 2.4 / NGINX 1.22Reverse proxy / web delivery
Composer2.xPHP dependency manager
Node.js18.x+ (optional)Asset compilation (CSS/JS)
SupervisorSystem-level toolHandles background queue workers

Attendize can be deployed on a LEMP or LAMP stack, with NGINX + PHP-FPM being preferred for performance and security.


Key Features of Attendize

  • Multi-Organizer & Multi-Event Support
    Allows multiple users or departments to manage independent events.
  • Payment Gateway Integration
    Built-in support for Stripe, PayPal, and offline payments.
  • Discount Codes & Ticket Tiers
    Enables tiered pricing, limited seats, early bird tickets, and promo codes.
  • Email Notifications
    Customizable transactional emails sent to attendees and admins.
  • Responsive Interface
    Optimized for mobile ticket sales and attendee interaction.

Attendize vs Other Ticketing Solutions

Feature / PlatformAttendizePretixEventbriteTicketingHub
LicenseMITAGPLv3ProprietaryProprietary
Hosting ModelSelf-hostedSelf/CloudCloud-onlyCloud-only
CustomizationFullHighLowLow
PHP Version7.4 onlyN/AN/AN/A
Payment MethodsStripe, PayPalManyStripe, SquareStripe
PricingFreeFree + SaaSPer-ticket feePer-ticket fee

Attendize is a great choice for organizations seeking full ownership, zero per-ticket fees, and open-source flexibility. However, it lacks the frequent updates and modern integrations found in newer systems like Pretix or enterprise SaaS platforms.


Benefits of Running Attendize on Debian 12

  • Modern Kernel and System Libraries: Debian 12 includes Linux kernel 6.1, updated systemd, and optimized networking—all of which benefit server performance.
  • Stability & Longevity: As an LTS release, Debian 12 is supported until mid-2028, making it a reliable base for long-term deployments.
  • Strong Community and Documentation: Debian’s large ecosystem ensures excellent support for troubleshooting and security patching.

Challenges and Risks

  • PHP 7.4 is EOL: Using an outdated PHP version means you must isolate Attendize in containers or VMs and avoid exposing it to public access without hardening.
  • Stale Development: Attendize has seen slow community activity. You may need to patch bugs or maintain forks yourself.
  • Dependency Management: Composer packages may conflict with other system-level PHP apps unless managed carefully (e.g., via Docker or PHP version managers).

Best Practices for Production Deployment

  1. Use a VPS or Container: Prefer Shape.Host Cloud VPS or Docker containers to isolate PHP 7.4 from other apps.
  2. Automate Backups: Use cron and mysqldump to back up your database daily.
  3. SSL Encryption: Use Let’s Encrypt for HTTPS with Certbot.
  4. Queue Workers: Configure Laravel queue workers with Supervisor to handle ticket confirmations and emails reliably.
  5. Firewall Rules: Limit access to /admin endpoints or secure with 2FA.

Attendize on Debian 12 with PHP 7.4 offers a functional and open-source alternative to commercial ticketing platforms. It’s especially attractive to developers, nonprofits, educational institutions, and small agencies that want full control over their event infrastructure—without recurring platform fees.

While using an outdated PHP version poses security concerns, careful isolation, OS-level hardening, and community support make it a viable solution in 2025, especially when hosted on robust infrastructure like Shape.Host VPS.


Step 1: Set Up a Server Instance on Shape.Host

To install Attendize, you’ll first need a clean Debian 12 server. Shape.Host makes this fast and easy with scalable Cloud VPS services. Here’s how to get your server ready:

Log in at https://shape.host.

Click on “Create” and select “Instance”.

Shape.host Resources dashboard with Create > Instance highlighted.

Location: Pick the closest data center to your target users.

Shape.host instance form with the data center location selector highlighted.

Server Type: Choose a VPS plan.

Operating System: Select Debian 12 (64-bit).

Specs: Choose a plan with at least 2 vCPUs, 4 GB RAM, and 40 GB SSD.

Shape.host instance form with the operating system image selector highlighted.

Click “Create Instance”.

Shape.host instance form with the Create Instance button highlighted.

After deployment, copy your instance’s IP address from the “Resources” tab for later SSH access.

Shape.host Resources dashboard with the server IP address highlighted.

Step 2: Connect to Your Instance via SSH

On Linux/macOS:

ssh root@your_server_ip

On Windows:

Use PuTTY, enter the server IP in “Host Name,” and connect as root.


Step 3: Install Attendize with PHP 7.4

Follow each step and command below as performed in the installation session.

1. Update your system:

apt update
Terminal showing APT package management commands and output.

2. Install necessary packages:

apt install curl git unzip gnupg2 ca-certificates lsb-release software-properties-common
Terminal showing APT package management commands and output.

3. Add Sury repository for PHP 7.4:

echo "deb https://packages.sury.org/php/ bookworm main" > /etc/apt/sources.list.d/sury.list

4. Add the GPG key:

curl -fsSL https://packages.sury.org/php/apt.gpg | gpg --dearmor -o /etc/apt/trusted.gpg.d/sury-php.gpg

5. Update again to load PHP 7.4 packages:

apt update
Terminal showing APT package management commands and output.

6. Install PHP 7.4 and required extensions:

apt install php7.4 php7.4-cli php7.4-fpm php7.4-common php7.4-mysql php7.4-mbstring php7.4-xml php7.4-curl php7.4-zip php7.4-gd php7.4-intl php7.4-bcmath
Terminal showing APT package management commands and output.

7. Install MariaDB server:

apt install mariadb-server
Terminal showing PM2 application process management output.

8. Secure your database:

mysql_secure_installation
Terminal showing mysql commands or output during Secure your database:.

9. Create database and user:

mysql -u root -p

Inside the MySQL prompt:

CREATE DATABASE attendize CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'attendize'@'localhost' IDENTIFIED BY 'your_secure_password';
GRANT ALL PRIVILEGES ON attendize.* TO 'attendize'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Terminal showing SQL database and user configuration commands.

10. Install Composer:

curl -sS https://getcomposer.org/installer | php

11. Move Composer to system path:

mv composer.phar /usr/local/bin/composer

12. Verify Composer:

composer --version
Terminal showing file and directory setup commands.

13. Prepare project directory:

mkdir -p /var/www
cd /var/www

14. Clone Attendize:

git clone https://github.com/Attendize/Attendize.git
cd Attendize
git checkout v2.8.0
Terminal showing Git repository cloning output.

15. Setup environment:

cp .env.example .env
nano .env
Terminal showing file and directory setup commands.

Update the following:

APP_URL=http://your_domain_or_ip
DB_DATABASE=attendize
DB_USERNAME=attendize
DB_PASSWORD=your_secure_password

MAIL_DRIVER=smtp
MAIL_HOST=smtp.yourhost.com
MAIL_PORT=587
MAIL_USERNAME=you@example.com
MAIL_PASSWORD=your_mail_password
MAIL_ENCRYPTION=tls
MAIL_FROM_NAME="Attendize"
MAIL_FROM_ADDRESS="you@example.com"
Terminal showing the GNU nano editor and configuration text.

16. (Optional) Install IDE helper:

composer require --dev barryvdh/laravel-ide-helper
Terminal showing composer commands or output during (Optional) Install IDE helper:.

17. Generate application key:

php artisan key:generate
Terminal showing php commands or output during Generate application key:.

18. Migrate and seed the database:

php artisan migrate --seed
Terminal showing hostname configuration or system identification details.

19. Set correct permissions:

chown -R www-data:www-data /var/www/Attendize
chmod -R 775 storage bootstrap/cache
Terminal showing file ownership or permission commands.

Step 4: Configure NGINX

1. Install NGINX:

apt install nginx
Terminal showing APT package management commands and output.

2. Create site config:

nano /etc/nginx/sites-available/attendize

Paste:

server {
    listen 80;
    server_name your_domain_or_ip;

    root /var/www/Attendize/public;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}
Terminal showing the GNU nano editor and configuration text.

3. Enable the site:

ln -s /etc/nginx/sites-available/attendize /etc/nginx/sites-enabled/

4. Test config and reload:

nginx -t && systemctl reload nginx
Terminal showing systemd service management commands or output.

Step 5: Set Up Attendize Queue Worker

1. Create systemd service:

nano /etc/systemd/system/attendize-queue.service

Paste:

[Unit]
Description=Attendize Queue Worker
After=network.target

[Service]
ExecStart=/usr/bin/php /var/www/Attendize/artisan queue:work
Restart=always
User=www-data
Group=www-data

[Install]
WantedBy=multi-user.target
Terminal showing a systemd service unit configuration.

2. Enable and start the service:

systemctl daemon-reload
systemctl enable --now attendize-queue
Terminal showing systemd service management commands or output.

3. Add Laravel scheduler to crontab:

crontab -u www-data -e
Terminal showing crontab commands or output during Add Laravel scheduler to crontab:.

Add:

* * * * * php /var/www/Attendize/artisan schedule:run >> /dev/null 2>&1
Terminal showing the GNU nano editor and configuration text.

Step 6: Additional PHP Support

If PostgreSQL is needed:

apt install php7.4-pgsql

Then restart PHP and NGINX:

systemctl restart php7.4-fpm
systemctl reload nginx

Step 7: Final Setup via Web Installer

Go to:

http://your_domain_or_ip/install

Follow the on-screen instructions to complete the installation via browser.

Attendize setup interface.
Attendize installer form with application, database and email settings.
Attendize account creation form.
Attendize sign-in form.
Attendize Create Organizer form.
Attendize dashboard.

You’ve now installed Attendize on Debian 12 using PHP 7.4. Your event management platform is now ready to accept organizers, tickets, and payments.

Need scalable, secure infrastructure?Try Shape.Host Cloud VPS — your go-to platform for production-ready deployments.
👉 Visit https://shape.host to get started today!