Attendize Ticketing System - Server Build

Hey Y’all, it is me again, back at it again with another project…

This time I am trying to get the open source ticket management system “Attendize” working on a Ubuntu server VM (22.04)

Like most projects I get stuck on, I have followed some guides on the internet but seem to get stuck either half way or at the 95% mark.

Has anyone out there played with this software before, or gotten it working?

For anyone interested, I have tried to install following these 2 (Apache2 Nginx)
guides as well as manually installing LAMP. I have also tried running it in docker following the guide here.

I either get errors relating to port 3306 being in use(mongoDB port I think), missing autoload.php file. When following the guides to the letter I also get incorrect php version errors.

I have tried this on Ubuntu server 18.04 and 22.04 with similar results

I just had a bunch of “fun” with a different PHP application. I just love them… /s

I imagine you probably tried installing both MariaDB and MySQL since their port is 3306 by default.

2 Likes

That was one of the issues. I seem to have resolved it. I am now getting the web server to load but it throws an error there saying the following

Composer detected issues in your platform: Your Composer dependencies require a PHP version “>= 7.3.0”

I think I am on the right track here but I will keep posting updates as I make progress.

As with all my posts, I hope I can end it with straight-foward instructions for getting the system working.

What distro version are you on? 20.04 should have PHP 7.4.

2 Likes

I have tried 18.04 which upgraded to 20.04 I believe, I have also and would like to stick with if I can tried 22.04. If I install a newer version of PHP it asks for the older version.

I am going to spend the afternoon working on this, starting from scratch again (thank god for VMs and snapshots!)
With the progress I made last night I think I am close!

Why not just use the container image they provide? That way you don’t have to worry about what version of PHP your OS has, etc.

I have tried to spin up the docker image as per the instructions but that throws its own errors up, to try out the system this would be ideal. I am somewhat new with docker so I am sure I’ll figure it out as time passes. =)

Fair enough, and you were right, their install is borked. The root of the problem is that the docker-compose config mounts the current directory to the nginx serving path, which ignores a lot of the work that the Docker build did such as installing PHP dependencies. Then after fixing that, there is a weird issue with Laravel complaining that an app api key has not yet been installed, even though the build explicitly generated a key. To fix this I just followed artisan key:generate claims key set successfully when it has not been written to .env file · Issue #20719 · laravel/framework · GitHub which is Laravel/PHP black magic as far as I’m concerned, I have no idea why it works.

Anyway, the patch below gets it up and running with the Docker setup via make setup. You wouldn’t want to use this config in prod, but it’s good enough for testing.

diff --git a/docker-compose.yml b/docker-compose.yml
index 337ab38..4437559 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -6,9 +6,9 @@ services:
     ports:
     - "8080:80"
     - "8081:443"
-    volumes:
-      - .:/usr/share/nginx/html
-      - .:/var/www
+    # volumes:
+    #   - .:/usr/share/nginx/html
+    #   - .:/var/www
     depends_on:
       - db
       - maildev
@@ -22,9 +22,9 @@ services:
       - db
       - maildev
       - redis
-    volumes:
-      - .:/usr/share/nginx/html
-      - .:/var/www
+    # volumes:
+    #   - .:/usr/share/nginx/html
+    #   - .:/var/www
   db:
     image: mysql:5.7.23
     restart: always
diff --git a/scripts/setup b/scripts/setup
index 54b64ca..b1ab4c1 100755
--- a/scripts/setup
+++ b/scripts/setup
@@ -7,4 +7,4 @@ cp .env.example .env
 chmod -R a+w .env
 chmod -R a+w storage/
 chmod -R a+w bootstrap/cache/
-php artisan key:generate
+php artisan optimize:clear && php artisan key:generate && php artisan config:cache
1 Like

Thanks for that!
I will persist with trying to install it in a production ready state, but if I can’t get it working soon and want to have a play, i’ll give your config a try and see how I go in docker =D

Ubuntu 22.04 has a PHP 8.x version and if I’m not mistaken, there are breaking changes between 7.x and 8.x so it’s not a direct drop in.

1 Like

Yah, I already worked that out. I have tried installing 7.2 and 7.3, perhaps 7.4 will work. I am not sure if I have to completely remove the old before the new will work, or a fresh install just to be safe. I’ll find out tomorrow #sleepy!

So! After a lot of messing about (learning my way around how a web server works under the hood) and trial and error I finally bit the bullet and “begged” @sprouts87 for a hand.

A few shots in the dark later and I now have the Attendize web server up and running.
I am running the system on a ESXi VM using Ubuntu Server 20.04 Server.
For anyone interested, below are the steps to get it up and running. . . Feel free to comment on my process if there is room for improvement. :slight_smile:

sudo apt update
sudo apt upgrade
sudo apt install apache2
	sudo systemctl stop apache2.service
	sudo systemctl start apache2.service
	sudo systemctl enable apache2.service
sudo apt install mariadb-server mariadb-client

	sudo systemctl stop mariadb.service
	sudo systemctl start mariadb.service
	sudo systemctl enable mariadb.service

sudo mysql_secure_installation

sudo apt install software-properties-common

sudo add-apt-repository ppa:ondrej/php
sudo apt update

sudo apt install php7.4 libapache2-mod-php7.4 php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-xmlrpc php7.4-mysql php7.4-gd php7.4-pgsql php7.4-xml php7.4-cli php7.4-zip php7.4-bcmath
sudo nano /etc/php/7.4/apache2/php.ini
memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = Australia/Adelaide

sudo systemctl restart apache2.service

sudo apt install unzip
sudo apt install curl git

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
cd /tmp
wget https://github.com/Attendize/Attendize/archive/master.zip
unzip master.zip
sudo mv Attendize-master /var/www/attendize
cd /var/www/attendize
sudo cp .env.example .env
sudo composer update
sudo composer install
sudo php artisan key:generate
chown -R www-data:www-data /var/www/attendize/
chmod -R 755 /var/www/attendize/

chown -R www-data storage/app
chown -R www-data storage/framework
chown -R www-data storage/logs
chown -R www-data storage/cache
chown -R www-data bootstrap/cache
chown -R www-data .env

chmod -R a+w storage/app
chmod -R a+w storage/framework
chmod -R a+w storage/logs
chmod -R a+w storage/cache
chmod -R a+w bootstrap/cache
chmod -R a+w .env

sudo nano /etc/apache2/sites-available/attendize.conf

		<VirtualHost *:80>
     ServerAdmin [email protected]
     DocumentRoot /var/www/attendize
     ServerName hydeconsultants.com

     <Directory /var/www/attendize/>
          Options FollowSymlinks
          AllowOverride All
          Require all granted
     </Directory>

     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>
sudo a2ensite attendize.conf
sudo a2enmod rewrite
sudo systemctl restart apache2.service
sudo rm /etc/apache2/sites-available/000-default.conf
sudo rm /etc/apache2/sites-enabled/000-default.conf

sudo reboot

Thanks to everyone above who threw in their 2c for this one.:slight_smile:

One more little piece of food for thought on a project like this. There is still a cost involved in the back end for accecpting credit card payments online, with the costs of secure VPS, domain, hosting etc it comes close to the cost of using a preexisting service such as Eventbrite.

1 Like