OSTicket sobre nginx + mariadb + php7 en Debian 9

Osticket es un software que sirve para gestionar incidencias. Lo que viene a ser un software en el que puedes dar soporte a algo mediante tickets. Los/las usuarios/as abren un ticket o realizan el seguimiento de alguno abierto. Las personas que dan soporte pueden ir al mismo tiempo gestionando esto con cuentas en osticket de agente.

Pueden responder tickets con respuestas predefinidas, se pueden abrir incidencias de tipos variados y por tanto que eso le toque a un departamento u otro, etc…

La web: http://osticket.com

Lo cierto es que lo ideal es instalar esto con php5.6 y apache2. Yo lo he instalado con apache2 y php5.6 y no he tenido problemas. Con php7 y nginx si que tengo algún que otro problema con el ajax pero ya que tenia esto documentado pues voy a publicarlo por si a alguien le es de utilidad.

PASO 1: Instalar NGINX y PHP7

# apt-get update
# apt-get upgrade
# apt-get install -y nginx mysql-server
# apt-get install -y php7.0-cli php7.0-mysql php7.0-cgi php7.0-fpm php7.0-gd php7.0-imap php7.0-xml php7.0-mbstring php7.0-intl nano php-apcu wget unzip
# cd /etc/php/7.0/
# nano fpm/php.ini

Se descomenta:

cgi.fix_pathinfo=1

y se pone el valor a 1

También se comenta lo siguiente en /etc/php/7.0/fpm/pool.d/www.conf

;listen = /run/php/php7.0-fpm.sock

y se añade:

listen = 9000

Luego reiniciamos php-fpm así:

# systemctl restart php7.0-fpm

Dejamos en la configuración de nginx por defecto la siguiente:

# cd /etc/nginx/sites-available/
# nano default

Descomentando:

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
        #
        #       # With php-fpm (or other unix sodev.56k.esckets):
        #       fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
        #       # With php-cgi (or other tcp sockets):
                fastcgi_pass 127.0.0.1:9000;
        }

Guardamos y reiniciamos nginx.

# systemctl restart nginx

También importante:

# nano /etc/php/7.0/fpm/pool.d/www.conf 

Descomentamos:

listen.allowed_clients = 127.0.0.1

Ahora podemos comprobar que todo va bien:

http://dominio/info.php

cambiando dominio por el subdominio o dominio o IP que corresponda.
Si todo va bien veremos información sobre php.

PASO 2: Crear una base de datos para OSTicket

Si no se tiene password al user root en mariadb ya se añadirá luego. Ahora mismo lo usaremos así:

# mysql -u root
create database osticket;
create user 'osticketuser'@'localhost' identified by '12345';
grant all privileges on osticket.* to 'osticketuser'@'localhost';
flush privileges;

PASO 3: Crear OsTicket Virtual Host

# rm -rf /var/www/html/*
# cd /etc/nginx/sites-available/
# rm -rf /etc/nginx/sites-available/default 
# rm -rf /etc/nginx/sites-enabled/default 
# nano osticket
server {
  listen 80;
        server_name eldominioquesea.com;
 
        root   /var/www/osticket/upload;
 
        access_log  /var/log/nginx/access.log;
        error_log  /var/log/nginx/error.log;
 
        index index.php;
        client_max_body_size 2000M;
        client_body_buffer_size 100M;
        client_header_buffer_size 10M;
        large_client_header_buffers 2 10M;
 
        client_body_timeout 12;
        client_header_timeout 12;
        keepalive_timeout 15;
        send_timeout 10;
 
        gzip             on;
        gzip_comp_level  2;
        gzip_min_length  1000;
        gzip_proxied     expired no-cache no-store private auth;
        gzip_types       text/plain application/x-javascript text/xml text/css application/xml;
 
        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;
        }
 
        location ~ ^/scp/ajax.php/.*$ {
            try_files $uri $uri/ /scp/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;
        include snippets/fastcgi-php.conf;
        #fastcgi_pass unix:/run/php/php7.0-fpm.sock;
         fastcgi_pass 127.0.0.1:9000;
            fastcgi_param  PATH_INFO    $path_info;
        }
}

Luego:

# ln -s /etc/nginx/sites-available/osticket /etc/nginx/sites-enabled/osticket
# nginx -t
# nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
# nginx: configuration file /etc/nginx/nginx.conf test is successful

PASO 4: Descargar y configurar osTicket

mkdir -p /var/www/osticket/
cd /var/www/osticket/
wget "http://osticket.com/sites/default/files/download/osTicket-v1.10.1.zip"
cd upload/
cp include/ost-sampleconfig.php include/ost-config.php
cd /var/www/osticket/
chown -R www-data:www-data upload/

Ahora ya desde http://dominioquepusieras/ podrás finalizar la instalación introduciendo los datos de la base de datos, de un admin, etc..

Los retoques tras finalizar la instalación:

chmod 0644 include/ost-config.php
Borra el directorio setup/install

Para ponerlo en castellano se baja el siguiente archivo en /var/www/osticket/upload/include/i18n
http://osticket.com/sites/default/files/download/lang/es_ES.phar

En php.ini
date.timezone = “America/Bogota”;

Notas:

Lo ideal es php5.6 y apache2. Esa es la configuración que recomiendan desde osticket y es la que posiblemente te irá mejor.

Deja un comentario