In this blog post, you get to learn how to install Attendize on Ubuntu 22.04|20.04|18.04 LTS. Attendize is a free & open-source ticket selling and event management system built using the Laravel PHP framework. This tool was created with the aim to offer event organizers a simple interface for managing admission events, without paying extortionate service fees.
Features of Attendize
Here are the current features offered by Attendize event management system.
- Beautiful mobile friendly event pages
- Easy attendee management – Refunds, Messaging etc.
- Data export – attendees list to XLS, CSV etc.
- Generate print friendly attendee list
- Ability to manage unlimited organisers / events
- Manage multiple organisers
- Real-time event statistics
- Customizable event pages
- Multiple currency support
- Quick and easy checkout process
- Customizable tickets – with QR codes, organiser logos etc.
- Fully brandable – Have your own logos on tickets etc.
- Affiliate tracking
- track sales volume / number of visits generated etc.
- Widget support – embed ticket selling widget into existing websites / WordPress blogs
- Social sharing
- Support multiple payment gateways – Stripe, PayPal & Coinbase so far, with more being added
- Support for offline payments
- Refund payments – partial refund & full refunds
- Ability to add service charge to tickets
- Messaging – eg. Email all attendees with X ticket
- Public event listings page for organisers
- Ability to ask custom questions during checkout
- Browser based QR code scanner for door management
- Elegant dashboard for easy management.
Install Attendize on Ubuntu 22.04|20.04|18.04
Attendize has the following system requirements
- PHP >= 7.1.3
- Mbstring PHP Extension
- OpenSSL PHP Extension
- Tokenizer PHP Extension
- PDO PHP Extension
- MySQLi PHP extension
- Fileinfo PHP Extension
- GD PHP Extension
Step 1: Install PHP and Extensions
The first step is to ensure PHP 7.4 and required extensions are installed on your Ubuntu system:
Ubuntu 22.04 only:
sudo apt update
sudo apt remove php8.1*
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update
sudo apt install php7.4 php7.4-{fpm,mysql,zip,gd,mbstring,curl,xml,bcmath}
Ubuntu 20.04/18.04
sudo apt update
sudo apt install unzip php php-fpm php-mysql php-pdo php-cli php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath
Confirm PHP version:
$ php -v
PHP 7.4.33 (cli) (built: Sep 2 2023 08:03:46) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.33, Copyright (c), by Zend Technologies
Once the packages are installed, proceed to install and setup a Database server.
Step 2: Install MariaDB database server
Install MariaDB database server on your Ubuntu system
sudo apt install mariadb-server
Secure your DB Server:
sudo mysql_secure_installation
Create a database for Attendize:
$ sudo mysql -u root -p
CREATE DATABASE attendize;
GRANT ALL PRIVILEGES ON attendize.* TO 'attendize'@'localhost' IDENTIFIED BY "Str0ngDBP@ssw0rd";
FLUSH PRIVILEGES;
QUIT
Step 3: Install and configure Attendize
Download Attendize source code:
git clone https://github.com/Attendize/Attendize
Create an environment configuration file:
cd Attendize/
cp .env.example .env
Edit the file to set database connection settings:
$ vim .env
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=attendize
DB_USERNAME=attendize
DB_PASSWORD=Str0ngDBP@ssw0rd
You can also configure SMTP
accordingly if you have an SMTP server in your network or one available in the cloud.
Install composer:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
Run composer to install the various libraries:
php composer.phar install
Sample installation output:
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Discovered Package: barryvdh/laravel-ide-helper
Discovered Package: facade/ignition
Discovered Package: fideloper/proxy
Discovered Package: graham-campbell/markdown
Discovered Package: intervention/image
Discovered Package: laracasts/utilities
Discovered Package: laravel/socialite
Discovered Package: laravel/tinker
Discovered Package: laravelcollective/html
Discovered Package: maatwebsite/excel
Discovered Package: mcamara/laravel-localization
Discovered Package: mews/purifier
Discovered Package: milon/barcode
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.
> @php artisan clear-compiled
Compiled services and packages files removed!
...
Attendize uses the Laravel framework so you need to generate an application key.
php artisan key:generate
Move project to /var/www/ directory:
cd ..
sudo mv Attendize /var/www/attendize
Set directory permissions:
sudo chown -R www-data:www-data /var/www/attendize/
cd /var/www/attendize/
sudo chown -R www-data storage/{app,framework,logs,cache} bootstrap/cache .env
Change the folders below to have write permissions:
sudo chmod -R a+w storage/{app,framework,logs,cache} bootstrap/cache .env
cd ~/
Step 4: Install and configure Web Sever
If you want to use Nginx web server, first disable apache2:
sudo systemctl disable --now apache2
Then install Nginx:
sudo apt install nginx vim
Create a new Nginx configuration file:
sudo vim /etc/nginx/conf.d/attendize.conf
Add the following content to the file:
server {
listen 80;
server_name tickets.example.com;
root /var/www/attendize/public;
index index.php;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Where:
- tickets.example.com is the domain name to be used
- /run/php/php7.4-fpm.sock is the path to PHP-FPM socket. For Ubuntu 18.04, this should be /run/php/php7.2-fpm.sock
Then check for syntax before restarting nginx
service
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
$ sudo systemctl restart nginx
Step 5: Access Attendize web console
The configured domain name should have a valid A record in DNS. For testing purposes you can map in your /etc/hosts
file.
Access the URL http://tickets.example.com/install to finish the setup. Don’t forget to add /install after the domain name.

Set Application URL, Database Settings and Email Settings. If you had edited the .env file earlier, the settings should be populated automatically.

Create an admin user account

Login using created user account and password.

The last page will ask you to CREATE ORGANISER. Provide organizer details to get started

Similar guides:
Hi! I definitely made all the steps as you do, but when I type my website in the browser, it simply doesn’t work. Should I define something in my website? THanks-
Hi Mona,
What’s the error message?
Well done my countryman
these is outdated instructions that DO NOT work.
I just tested and it works. What’s the issue?.