! How to Install osTicket on Fedora 30
osTicket is an open-source customer
support ticketing system. osTicket source code is publicly hosted
on Github. In this tutorial, you will learn how to install and configure
osTicket on Fedora 30.
Requirements
Before you begin
Check the Fedora version.
cat
/etc/fedora-release
Create a new non-root user account with sudo access and switch to it.
useradd -c "John Doe" johndoe && passwd johndoeusermod -aG wheel johndoesu - johndoe
NOTE: Replace johndoe with
your username.
Set up the timezone.
timedatectl list-timezonessudo timedatectl set-timezone 'Region/City'
Ensure that your system
is up to date.
sudo dnf update
Install the needed
packages.
sudo dnf install -y socat git wget unzip vim
Disable SELinux and
Firewall.
sudo setenforce 0 ; sudo systemctl stop firewalld ; sudo systemctl disable firewalld
Install PHP, as well as
the necessary PHP extensions.
sudo dnf install -y php-cli php-fpm php-common php-mbstring php-curl php-gd php-mysqlnd php-json php-xml php-imap php-intl php-pecl-apcu php-opcache
Check the version.
php -v
Check installed PHP
extensions.
php -m # mbstring# curl# gd# PDO# mysqli# openssl# . . .
Start and enable PHP-FPM.
sudo systemctl start php-fpm.servicesudo systemctl enable php-fpm.service
Install MariaDB.
sudo dnf install -y mariadb-server
Check the version.
mysql --version
Start and enable MariaDB.
sudo systemctl start mariadb.servicesudo systemctl enable mariadb.service
Run mysql_secure installation script to improve MariaDB security and set
the password for MariaDB root user.
sudo mysql_secure_installation
Connect to MariaDB shell
as the root user.
sudo mysql -u root -p# Enter password
Create an empty MariaDB
database and user for osTicket, and remember the credentials.
CREATE DATABASE dbname;GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';FLUSH PRIVILEGES;exit
NOTE: Replace dbname and username with appropriate names for your setup.
Replace password with a strong password.
Install Nginx.
sudo dnf install -y nginx
Check the version.
nginx -v
Start and enable Nginx.
sudo systemctl start nginx.servicesudo systemctl enable nginx.serviceConfigure Nginx for use with the osTicket.
sudo vim /etc/nginx/conf.d/osticket.conf
And populate the file
with the below config.
server { listen 80; server_name example.com; root /var/www/osticket/upload; index index.php index.html; set $path_info ""; location ~ /include { deny all; return 403; } if ($request_uri ~ "^/api(/[^\?]+)") { set $path_info $1; } location ~ ^/api/(?:tickets|tasks).*$ { try_files $uri $uri/ /api/http.php?$query_string; } if ($request_uri ~ "^/scp/.*\.php(/[^\?]+)") { set $path_info $1; } if ($request_uri ~ "^/.*\.php(/[^\?]+)") { set $path_info $1; } location ~ ^/scp/ajax.php/.*$ { try_files $uri $uri/ /scp/ajax.php?$query_string; } location ~ ^/ajax.php/.*$ { try_files $uri $uri/ /ajax.php?$query_string; } location / { try_files $uri $uri/ index.php; } location ~ \.php$ { fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_param PATH_INFO $path_info; fastcgi_pass unix:/run/php-fpm/www.sock; } }
Save the file and exit with :+W+Q.
Test the configuration.
sudo nginx -t
Reload Nginx.
sudo service nginx restart
Create a document root
directory.
sudo mkdir -p /var/www/osticket
Change ownership of the /var/www/osticket directory to johndoe.
sudo chown -R johndoe:johndoe /var/www/osticket
Navigate to the document root folder.
cd /var/www/osticketDownload and unzip the latest release of osTicket.
wget https://github.com/osTicket/osTicket/releases/download/v1.14.1/osTicket-v1.14.1.zipunzip osTicket-v1.14.1.ziprm osTicket-v1.14.1.zip
Copy the sample config
file.
sudo cp upload/include/ost-sampleconfig.php upload/include/ost-config.php
Change ownership of the /var/www/osticket directory to nginx.
sudo chown -R nginx:nginx /var/www/osticket
Run sudo vim /etc/php-fpm.d/www.conf and set the user and group to nginx. Initially, they will be set to apache.
sudo vim /etc/php-fpm.d/www.conf# user = nginx# group = nginx
Create /var/lib/php/session/ directory and change ownership to nginx.
sudo mkdir -p /var/lib/php/session && sudo chown -R nginx:nginx /var/lib/php/session
Restart the PHP-FPM
service.
sudo systemctl restart php-fpm.service
Once everything is configured, it's time to access the osTicket
web installation wizard. Open your site in a web browser and follow the
instructions on the screen to finish the installation.
After installation, delete the setup directory
for security.
sudo rm -rf upload/setupsudo chmod 0644 upload/include/ost-config.php