Guía de tecnologías

Cómo instalar y configurar osTicket en Ubuntu 16.04 con Nginx, PHP-FPM 7 y MySQL 5.7

7 min read Infraestructura Actualizado 08 Oct 2025
Instalar osTicket en Ubuntu 16.04 (Nginx + PHP-FPM 7)
Instalar osTicket en Ubuntu 16.04 (Nginx + PHP-FPM 7)

Objetivo y variantes de búsqueda

  • Objetivo principal: instalar osTicket en Ubuntu 16.04 con Nginx y PHP-FPM 7.
  • Variantes relacionadas: instalar osTicket Nginx PHP-FPM, configurar osTicket MySQL 5.7, tutorial osTicket Ubuntu, osTicket LDAP Active Directory.

Requisitos previos

  • Ubuntu 16.04 con acceso root.
  • Conexión de red y acceso SSH.
  • Dominio o dirección IP pública (opcional pero recomendable).
  • Paquetes: Nginx, MySQL 5.7, PHP 7.0 con extensiones.

Important: Mantén contraseñas seguras y usa un entorno de pruebas antes de producción.

Paso 1 - Instalar Nginx y MySQL

Conéctate al servidor por SSH:

ssh [email protected]

Actualiza los repositorios:

sudo apt-get update

Instala Nginx y MySQL:

sudo apt-get install -y nginx mysql-server

Durante la instalación se te pedirá la contraseña root de MySQL; elige una contraseña segura.

Pantalla para establecer la contraseña root de MySQL en Ubuntu

Inicia y habilita los servicios:

systemctl restart nginx
systemctl restart mysql
systemctl enable nginx
systemctl enable mysql

Verifica que los servicios escuchan los puertos esperados:

netstat -plntu

Deberías ver el puerto 80 para Nginx y 3306 para MySQL.

Salida de netstat mostrando Nginx y MySQL en ejecución

Paso 2 - Instalar y configurar PHP-FPM 7

osTicket requiere varias extensiones PHP (gd, imap, xml, mbstring, intl, apcu). Instala PHP 7.0 y las extensiones necesarias:

sudo 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 php-apcu

Edita php.ini para PHP-FPM y desactiva cgi.fix_pathinfo para evitar problemas de seguridad y manejo de rutas:

cd /etc/php/7.0/
vim fpm/php.ini

Busca y ajusta:

cgi.fix_pathinfo=0

Reinicia y habilita PHP-FPM:

systemctl restart php7.0-fpm
systemctl enable php7.0-fpm

Configura Nginx para procesar PHP editando el virtual host por defecto:

cd /etc/nginx/sites-available/
vim default

Asegúrate de incluir la sección para PHP-FPM (descomenta o añade):

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }

Reinicia Nginx:

systemctl restart nginx

Prueba PHP creando un phpinfo:

cd /var/www/html/
echo '' > info.php

Abre en el navegador: http:///info.php y confirma la información de PHP.

Página phpinfo mostrando la configuración de PHP

Nota: Borra info.php después de la verificación para evitar divulgar información del sistema.

Paso 3 - Crear la base de datos para osTicket

Accede a MySQL con el usuario root:

mysql -u root -p

Dentro del prompt de MySQL crea la base de datos y el usuario (reemplaza contraseñas en producción):

create database osticket_db;
create user osticket@localhost identified by 'osticketpw@';
grant all privileges on osticket_db.* to osticket@localhost identified by 'osticketpw@';
flush privileges;

Base de datos y usuario creados.

Captura creando la base de datos y el usuario para osTicket

Paso 4 - Crear el virtual host de osTicket en Nginx

Crea un archivo de configuración para tu sitio:

cd /etc/nginx/sites-available/
vim osticket

Pega la configuración recomendada (ajusta server_name y root a tu dominio y ruta):

server {
  listen 80;
        server_name osticket.hakase-labs.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_param  PATH_INFO    $path_info;
        }
}

Sustituye osticket.hakase-labs.com por tu dominio. Activa el sitio y prueba la configuración:

ln -s /etc/nginx/sites-available/osticket /etc/nginx/sites-enabled/
nginx -t
systemctl restart nginx

Paso 5 - Descargar y preparar osTicket

Crea el directorio web y descarga la versión indicada de osTicket:

mkdir -p /var/www/osticket/
cd /var/www/osticket/
wget http://osticket.com/sites/default/files/download/osTicket-v1.10.zip
unzip osTicket-v1.10.zip

Copia el archivo de configuración de muestra y ajusta permisos:

cd upload/
cp include/ost-sampleconfig.php include/ost-config.php
cd /var/www/osticket/
chown -R www-data:www-data upload/

Asegúrate de que el propietario del árbol web sea el usuario del servidor web (www-data en Debian/Ubuntu).

Paso 6 - Instalación a través del navegador

Abre en tu navegador la URL pública o local de tu sitio, por ejemplo:

http://osticket.hakase-labs.com

Comprueba que todos los requisitos aparezcan en verde. Si alguna dependencia falta, PHP no tiene la extensión requerida o hay permisos incorrectos.

Comprobación de requisitos de osTicket mostrando paquetes en verde

Si falta algo verás marcas en rojo:

Error por dependencias faltantes en osTicket

Sigue el asistente: completa los ajustes de System Settings y Admin User. Usa correos distintos para la cuenta admin y la dirección del HelpDesk.

Pantalla de configuración inicial de osTicket con campos de sistema y administrador

Introduce los datos de la base de datos creados en el paso 3.

Formulario con los datos de conexión a la base de datos de osTicket

Pulsa Install Now y espera a que termine. Cuando finalice, realiza las tareas post-instalación:

cd /var/www/osticket/upload/
mv setup/ setup-sh/
chmod 0644 include/ost-config.php

Instalación de osTicket finalizada

Paso 7 - Pruebas y comprobaciones finales

Página inicio de osTicket

Pantalla de login del administrador de osTicket

Panel de agentes de osTicket mostrando la lista de tickets

Pantalla de ajustes del administrador en osTicket

Lista de verificación mínima antes de poner en producción

  • Quitar info.php si aún existe.
  • Confirmar permisos de archivos: include/ost-config.php 0644.
  • Habilitar HTTPS (certificado TLS válido).
  • Configurar mecanismos de copia de seguridad para la base de datos.
  • Probar envío y recepción de correo (SMTP/POP/IMAP).
  • Revisar reglas de cortafuegos (puertos 80/443 abiertos solo a tráfico válido).

Medidas de seguridad recomendadas

  • Habilita HTTPS y redirige HTTP a HTTPS. Usa Let’s Encrypt para certificados gratuitos.
  • Restringe el acceso al directorio /include (ya se deniega en Nginx).
  • Asegura ost-config.php con permisos 0644 y propiedad root/www-data según necesidad.
  • Implementa fail2ban para proteger el acceso SSH y los intentos de login del panel.
  • Mantén PHP y extensiones actualizadas y aplica parches del sistema.
  • Considera hardening adicional: deshabilitar funciones PHP peligrosas si no son necesarias.

Integración LDAP / Active Directory

osTicket puede autenticarse contra LDAP/AD. En el panel de administración ve a la sección de autenticación y añade un backend LDAP. Requisitos comunes:

  • Usuario de servicio LDAP con permisos de búsqueda.
  • DN base configurado correctamente.
  • Prueba de búsqueda y autenticación.

Cuando usar LDAP: si necesitas que los agentes inicien sesión con cuentas corporativas y sincronizar grupos.

Cuando no usar LDAP: para despliegues pequeños o si no hay un directorio centralizado; usar cuentas locales.

Solución de problemas comunes

  • Error: dependencias PHP faltantes — instala las extensiones faltantes (revisa phpinfo y los logs de Nginx/PHP-FPM).
  • Error 500 en páginas PHP — revisa los logs: /var/log/nginx/error.log y /var/log/php7.0-fpm.log.
  • Permisos incorrectos — ajusta chown -R www-data:www-data /var/www/osticket/upload/ y permisos de archivos.
  • Problemas con PATH_INFO — asegúrate de la configuración fastcgi_param PATH_INFO y cgi.fix_pathinfo=0.

Pruebas de aceptación básicas

Criterios de aceptación:

  • La página pública carga sin errores y sin directorio setup accesible.
  • El admin puede iniciar sesión y acceder a Settings.
  • Los correos entrantes crean tickets y las respuestas se envían correctamente.
  • Los agentes pueden crear, asignar y cerrar tickets.

Listas de tareas por rol

Instalador/DevOps:

  • Instalar paquetes y configurar Nginx, PHP-FPM, MySQL.
  • Crear usuario y base de datos MySQL.
  • Configurar virtual host y permisos.

Administrador de sistema/Seguridad:

  • Habilitar TLS, configurar firewall y fail2ban.
  • Programar backups y verificar integridad de datos.

Soporte/agentes:

  • Probar creación y seguimiento de tickets.
  • Configurar colas, plantillas de correo y reglas de negocio.

Consejos de migración y compatibilidad

  • Versiones: este tutorial usa osTicket v1.10 y MySQL 5.7. Comprueba compatibilidad si usas versiones más recientes de PHP o MySQL.
  • Si migras desde otra instalación, exporta la base de datos y los adjuntos; conserva la versión de osTicket o sigue la guía de migración oficial.

Glosario de una línea

  • PHP-FPM: gestor de procesos FastCGI para ejecutar PHP en servidores web.
  • Nginx: servidor web/reverse proxy ligero y de alto rendimiento.
  • MySQL: sistema de gestión de bases de datos relacional.
  • LDAP/AD: directorios para autenticación y gestión de usuarios.

FAQ

Q: ¿Puedo usar Apache en lugar de Nginx? A: Sí. La configuración de PHP y la base de datos es similar; cambia la configuración del virtual host a Apache y usa mod_php o PHP-FPM con Apache.

Q: ¿Necesito IMAP activado? A: Sí, si quieres que osTicket reciba correos mediante IMAP. Alternativamente puedes usar piping de correo o fetchmail.

Q: ¿Cómo habilito HTTPS con Let’s Encrypt? A: Instala certbot, solicita un certificado para tu dominio y configura la redirección en Nginx.

Recursos

Resumen: Sigue los pasos en orden: instala Nginx/MySQL, configura PHP-FPM, crea la base de datos, configura Nginx para osTicket, descarga e instala osTicket desde el navegador y aplica las medidas de seguridad antes de producción. Prueba envíos de correo y accesos de agentes para validar la instalación.

Autor
Edición

Materiales similares

Programas al inicio en Windows 10 — solución rápida
Soporte técnico

Programas al inicio en Windows 10 — solución rápida

Eliminar apps preinstaladas en Android y iOS
Tecnología

Eliminar apps preinstaladas en Android y iOS

Solucionar Dev Error 6068 en Warzone
Guías

Solucionar Dev Error 6068 en Warzone

Comprobar versión PowerShell en Windows
Windows PowerShell

Comprobar versión PowerShell en Windows

Instalar extensiones manualmente en Edge
Navegador

Instalar extensiones manualmente en Edge

Instalar osTicket en Ubuntu 16.04 (Nginx + PHP-FPM 7)
Infraestructura

Instalar osTicket en Ubuntu 16.04 (Nginx + PHP-FPM 7)