Instalar osTicket no Ubuntu 16.04 (Nginx, PHP-FPM7)

Important: antes de começar, tenha acesso root ou sudo e um backup das suas configurações de servidor caso já exista um serviço web ativo.
Objetivo e variantes relacionadas
Instalar um sistema de tickets de suporte open source (osTicket) em um servidor Ubuntu 16.04. Variantes relacionadas: instalar osTicket com Apache, osTicket em Docker, migrar osTicket de outra versão, configurar LDAP/Active Directory para osTicket.
Pré-requisitos
- Servidor com Ubuntu 16.04.
- Acesso root ou usuário com sudo.
- Conexão de rede e DNS configurado para seu domínio (opcional, mas recomendado).
- Noções básicas de administração Linux.
Nota: este guia usa PHP-FPM 7.0 e MySQL 5.7 conforme o ambiente original do tutorial.
Passo 1 — Instalar Nginx e MySQL
Neste passo iremos instalar Nginx e MySQL a partir dos repositórios oficiais do Ubuntu e ativar os serviços para iniciarem no boot.
Conecte-se ao servidor via SSH:
ssh [email protected]
Atualize os repositórios:
sudo apt-get update
Instale Nginx e o servidor MySQL:
sudo apt-get install -y nginx mysql-server
Durante a instalação você será solicitado a definir a senha do usuário root do MySQL. Escolha uma senha forte e armazene-a com segurança.
Reinicie e ative os serviços:
systemctl restart nginx
systemctl restart mysql
systemctl enable nginx
systemctl enable mysql
Verifique as portas ativas (Nginx normalmente usa 80 e MySQL 3306):
netstat -plntu
Importante: se o netstat não estiver disponível, instale-o com sudo apt-get install net-tools.
Passo 2 — Instalar e configurar PHP-FPM 7
O osTicket exige extensões PHP como gd, imap, xml e mbstring. Vamos instalar o PHP 7.0 e as extensões necessárias, e configurar o PHP-FPM para funcionar com Nginx.
Instale o PHP-FPM e extensões:
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
Edite o php.ini do FPM:
cd /etc/php/7.0/
vim fpm/php.ini
Localize e altere a linha cgi.fix_pathinfo para 0 (descomente se necessário):
cgi.fix_pathinfo=0
Salve e saia. Reinicie e habilite o serviço php-fpm:
systemctl restart php7.0-fpm
systemctl enable php7.0-fpm
Agora edite o vhost padrão do Nginx para ativar suporte a PHP-FPM:
cd /etc/nginx/sites-available/
vim default
Dentro do bloco server, certifique-se de ter a configuração PHP similar a:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
Salve o arquivo e reinicie o Nginx:
systemctl restart nginx
Teste criando um arquivo phpinfo:
cd /var/www/html/
echo '' > info.php
Abra http://SEU_IP/info.php no navegador para confirmar a configuração.
Segurança: remova info.php após o teste para não expor informações sensíveis.
Passo 3 — Criar banco de dados para o osTicket
Crie um banco de dados e um usuário MySQL exclusivo para o osTicket.
Acesse o MySQL com o usuário root:
mysql -u root -p
TYPE YOUR PASSWORD
No prompt do MySQL, crie o banco e o usuário (substitua as credenciais por valores seguros em produção):
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;
Boas práticas: use um usuário com permissões restritas (somente no banco do osTicket) e escolha senhas complexas.
Passo 4 — Criar virtual host do osTicket no Nginx
Crie um arquivo de vhost para o osTicket. Ajuste server_name e root conforme seu domínio e caminho.
cd /etc/nginx/sites-available/
vim osticket
Cole a configuração a seguir (substitua osticket.hakase-labs.com pelo seu domínio):
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;
}
}
Nota: alguns caracteres especiais em expressões regulares podem precisar de escape dependendo do seu editor. Verifique erros com:
ln -s /etc/nginx/sites-available/osticket /etc/nginx/sites-enabled/
nginx -t
systemctl restart nginx
Passo 5 — Baixar e configurar os arquivos do osTicket
Crie o diretório de instalação e faça o download do pacote:
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
Copie o arquivo de configuração de exemplo e ajuste permissões:
cd upload/
cp include/ost-sampleconfig.php include/ost-config.php
cd /var/www/osticket/
chown -R www-data:www-data upload/
Importante: garantir que o usuário do processo web (www-data) seja o dono dos arquivos evita problemas de escrita.
Passo 6 — Instalar via interface web
Abra no navegador o domínio configurado (ex.: http://osticket.hakase-labs.com). Siga o assistente de instalação web.
Verifique se todos os requisitos aparecem como OK (marcados em verde). Se faltar alguma extensão PHP, instale-a e reinicie o PHP-FPM.
Preencha as seções:
- System Settings: nome do HelpDesk e email padrão.
- Admin User: email e senha do administrador (use um email diferente do email do helpdesk).
- Database: dados do banco criado no Passo 3.
Após a instalação, remova ou renomeie o diretório de setup e ajuste permissões do arquivo de configuração:
cd /var/www/osticket/upload/
mv setup/ setup-sh/
chmod 0644 include/ost-config.php
Passo 7 — Testes básicos
- Página pública: http://osticket.hakase-labs.com/
- Login do admin: http://osticket.hakase-labs.com/scp/
- Painel do agente e configurações estão acessíveis em /scp/ e /scp/settings.php
Dicas de depuração rápidas
- Erro 502 Bad Gateway: verifique se php7.0-fpm está em execução e se o caminho do socket unix:/run/php/php7.0-fpm.sock é correto.
- Erro de permissão: confirme dono e permissões em /var/www/osticket/upload (www-data).
- Dependência PHP faltando: instale o pacote correspondente e reinicie php-fpm.
Verificação de segurança e boas práticas
- Remova arquivos de teste (como info.php) e diretórios de instalação.
- Use HTTPS com certificados válidos (Let’s Encrypt).
- Backup periódico: banco de dados e /var/www/osticket/upload.
- Proteja o painel de administração com regras de firewall e, se possível, autenticação adicional (VPN ou IP allowlist).
- Atualize o sistema e os pacotes regularmente.
Important: em produção, nunca exponha diretórios sensíveis sem autenticação ou regras de negação no Nginx.
Mini-metodologia para manutenção contínua
- Atualizar sistema e pacotes do PHP/Nginx semanalmente.
- Testar atualizações em ambiente staging.
- Fazer snapshot/backup do banco e das mídias antes de atualizar osTicket.
- Validar funcionalidades críticas (criação de ticket, envio de e-mail, login de agente) após atualizações.
Checklists por função
Administrador de Sistema:
- Validar logs do Nginx e PHP-FPM.
- Garantir backups automáticos do banco.
- Renovar certificados TLS.
Administrador do HelpDesk / Operações:
- Confirmar templates de e-mail.
- Verificar filas e regras SLA.
- Testar criação e encaminhamento de tickets.
Desenvolvedor/Integrador:
- Testar integrações API (/api/).
- Verificar rotas personalizadas e permissão de upload.
Casos em que este guia pode falhar (limitações)
- Versões mais recentes do Ubuntu, PHP ou MySQL podem usar caminhos e pacotes diferentes (p. ex. PHP 7.4/8.x).
- Ambientes com SELinux/AppArmor estrito podem exigir ajustes de permissões adicionais.
- Se usar Apache em vez de Nginx, é preciso configurar virtual hosts e mod_php ou proxy para PHP-FPM.
Testes de aceitação básicos
- O usuário admin consegue acessar /scp/ e executar login com credenciais criadas.
- Um ticket é criado via formulário público e é exibido no painel do agente.
- O envio de e-mails (notificações) é entregue usando o servidor de e-mail configurado.
Glossário (uma linha cada)
- PHP-FPM: FastCGI Process Manager para executar PHP como processo separado.
- Nginx: servidor web e proxy reverso.
- MySQL: sistema de gerenciamento de banco de dados relacional.
- vhost: configuração de host virtual no servidor web.
Notas sobre privacidade e conformidade (GDPR)
- Armazene apenas os dados pessoais necessários nos tickets.
- Habilite retenção automática de dados quando aplicável.
- Documente quem tem acesso administrativo aos dados do atendimento.
Resumo final
Seguindo estes passos você terá um osTicket funcional em Ubuntu 16.04 com Nginx e PHP-FPM 7.0. Teste as funcionalidades, aplique boas práticas de segurança e mantenha backups regulares.
Links úteis
Materiais semelhantes

Corrigir programas que não iniciam no Windows 10

Remover apps pré‑instalados no Android e iOS
Corrigir Dev Error 6068 no Warzone

Como verificar a versão do PowerShell no Windows

Instalar extensões manualmente no Edge
