Guia de tecnologias

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

6 min read Tutoriais Atualizado 08 Oct 2025
Instalar osTicket no Ubuntu 16.04
Instalar osTicket no Ubuntu 16.04

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.

Definir senha do MySQL no Ubuntu

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

Nginx e MySQL em execução

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.

Informação do PHP

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;

Criar banco de dados e usuário do OSTicket

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.

Verificar requisitos do osTicket

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.

Configuração do osTicket

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

Instalação do osTicket concluída

Passo 7 — Testes básicos

Página inicial do osTicket

Tela de login do admin do osTicket

  • Painel do agente e configurações estão acessíveis em /scp/ e /scp/settings.php

Painel de agentes do osTicket

Configurações do osTicket

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

  1. Atualizar sistema e pacotes do PHP/Nginx semanalmente.
  2. Testar atualizações em ambiente staging.
  3. Fazer snapshot/backup do banco e das mídias antes de atualizar osTicket.
  4. 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

Autor
Edição

Materiais semelhantes

Instalar e usar Podman no Debian 11
Containers

Instalar e usar Podman no Debian 11

Apt‑pinning no Debian: guia prático
Administração de sistemas

Apt‑pinning no Debian: guia prático

Injete FSR 4 com OptiScaler em qualquer jogo
Tecnologia

Injete FSR 4 com OptiScaler em qualquer jogo

DansGuardian e Squid com NTLM no Debian Etch
Infraestrutura

DansGuardian e Squid com NTLM no Debian Etch

Corrigir erro de instalação no Android
Android

Corrigir erro de instalação no Android

KNetAttach: Pastas de Rede remota no KDE
KDE

KNetAttach: Pastas de Rede remota no KDE