You can support us by downloading this article as PDF from the Link below. Download the guide as PDF

In this blog post, you get to learn how to install Attendize on Ubuntu 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 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 and required extensions are installed on your Ubuntu system:

sudo apt update
sudo apt install unzip php php-fpm php-mysql php-pdo php-cli php-fpm php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath php-zip

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 by following our guide:

Install MariaDB 10.x on Ubuntu 18.04 and CentOS 7

You can also run the commands below to install mariadb from OS APT repositories:

sudo apt update
sudo apt install mariadb-server

Secure your DB Server:

$ sudo mysql_secure_installation

Change authentication plugin to be able to login as normal user with root credentials.

$ sudo mysql -u root
UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE User = 'root';
FLUSH PRIVILEGES;
QUIT;

Confirm it is working:

$ mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 56
Server version: 10.3.22-MariaDB-1ubuntu1 Ubuntu 20.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 

Create a database for Attendize:

$ mysql -u root -p
CREATE DATABASE attendize;
GRANT ALL PRIVILEGES ON attendize.* TO 'attendize'@'localhost' IDENTIFIED BY "[email protected]";
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
[email protected]

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

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

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/php7.4-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

Access the URL http://tickets.example.com to finish the setup.

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:

How To Install osTicket on Ubuntu

How To Install OTRS on Ubuntu

You can support us by downloading this article as PDF from the Link below. Download the guide as PDF