Cómo instalar y configurar osTicket en Ubuntu 16.04 con Nginx, PHP-FPM 7 y MySQL 5.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.
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.
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://
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.
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.
Si falta algo verás marcas en rojo:
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.
Introduce los datos de la base de datos creados en el paso 3.
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
Paso 7 - Pruebas y comprobaciones finales
- Página pública: http://osticket.hakase-labs.com/
- Panel de administración: http://osticket.hakase-labs.com/scp/
- Panel de agentes: http://osticket.hakase-labs.com/scp/index.php
- Configuración del sistema: http://osticket.hakase-labs.com/scp/settings.php
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
- Documentación oficial: http://osticket.com/wiki/Main_Page
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.
Materiales similares

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

Eliminar apps preinstaladas en Android y iOS

Solucionar Dev Error 6068 en Warzone

Comprobar versión PowerShell en Windows

Instalar extensiones manualmente en Edge
