Como instalar o osTicket com NginX e ISPConfig no Linux Debian

osTicket é uma ferramenta Open Source usada para gerenciamento de tickets de suporte e relacionamento com o cliente, mais conhecido como Helpdesk. Para quem busca um sistema leve e descomplicado de atendimento ao cliente ou até mesmo para suporte técnico esta é uma excelente opção.

Segundo a página de apresentação no site do osTicket ele é definido como uma plataforma de suporte ao cliente que integra tickets enviados por email, formulários web e chamadas telefônicas em um único lugar centralizando o gerenciamento. *Se quiser conhecer todas as características da ferramenta consulte o site oficial e clique em “Features” no menu.

osTicket: sistema de helpdesk open source

* Este tutorial foi testado em nosso servidor Debian 8 Jessie com ISPConfig 3 e NginX, clique aqui e aprenda como instalar.

Adicione um espaço de site para o osTicket

Siga os passos 1a, 1b e 1c deste tutorial, criando o site, o usuário SSH/FTP e o Banco de Dados. Nas diretivas NginX ignore as que lá estão pois teremos que usar as regras próprias para o osTicket (veja abaixo).

2 Diretivas NginX para o osTicket

Cole as regras abaixo na caixa de diretivas NginX do site: Selecione o site no painel do ISPConfig e clique na aba “Opções”. *As regras abaixo são para uma instalação na raiz do site, caso tenha instalado em subdiretório terá que adaptá-las (uma boa dica é instalar o osTicket em um subdominio, exemplo: helpdesk.meudominio.com).

set $path_info "";

location ~ /include {
   deny all;
   return 403;
}

if ($request_uri ~ "^/api(/[^\?]+)") {
   set $path_info $1;
}

if ($request_uri ~ "^/scp/.*\.php(/[^\?]+)") {
   set $path_info $1;
}

if ($request_uri ~ "^/ajax.php(/[^\?]+)") {
   set $path_info $1;
}

if ($request_uri ~ "^/.*\.php(/[^\?]+)") {
   set $path_info $1;
}

location ~ ^/scp/ajax.php/.*$ {
   try_files $uri $uri/ /scp/ajax.php?$query_string;
}

location ~ ^/ajax.php/.*$ {
   try_files $uri $uri/ /ajax.php?$query_string;
}

location ~ ^/api/(?:tickets|tasks).*$ {
   try_files $uri $uri/ /api/http.php?$query_string;
}

location / {
   try_files $uri $uri/ index.php;
}
3 Faça o download do instalador

Acesse este link: http://osticket.com/download

Faça o download da última versão. Nota: Os arquivos compactados estarão com as permissões de arquivo erradas e a melhor maneira de acertar isso é descompactar o instalador no desktop e subir os arquivos no servidor via FTP ou usuário SSH em jail.

4 Descompacte e copie os arquivos para o servidor

Descompacte o arquivo zipado e copie todo o conteúdo da pasta “upload” para a pasta raiz do site “/web” no servidor. Não copie a pasta “upload”, somente o conteúdo dela.

5 Renomear o arquivo de configuração

Pelo explorer do FTP ou SSH (WinSCP) acesse a pasta /web/include e localize o arquivo “ost-sampleconfig.php“. Renomeie ele para “ost-config.php“.

6 Instale o Language Pack com a tradução para Português BR

Acesse o link de download do osTicket (veja passo 2 acima), clique na aba “Language Packs” e baixe o arquivo para Português Brasileiro. Copie o arquivo “pt_BR.phar” para a pasta /web/include/i18n do site no servidor.

7 *Opcional: Altere um parâmetro no php.ini do servidor para evitar problemas com o Ajax

Acesse o servidor pelo console SSH com o superusuário root e edite o arquivo /etc/php5/fpm/php.ini e modifique a linha 772 para:

cgi.fix_pathinfo=1

Em seguida reinicie o php com o comando:

root# /etc/init.d/php5-fpm restart
8 Execute o instalador

Digite a URL para o site no seu navegador, exemplo: helpdesk.meudominio.com (lembre-se de ter criado a entrada tipo A para o subdominio helpdesk na tabela DNS apontando para o IP do servidor). O instalador fará uma verificação do sistema e mostrará qualquer incompatibilidade. Se você seguiu os tutoriais de instalação do sistema aqui pelo Fator Binário não haverá problemas.

Preencha o formulário na tela prestando atenção especial nestas perguntas:

- Helpdesk Name: Sistema de Atendimento

- Default Email: [email protected] (*Este email deverá ser diferente do email admin abaixo)

- Primary Language: <selecione>

- Admin User: 
  Preencha com suas informações pessoais (note que o email do admin tem que ser diferente do "Default Email" acima)
 
- Database Settings:
  MySQL Table Prefix: ost_
 
  MySQL Hostname: localhost
 
  MySQL Database: O banco de dados criado no ISPConfig
 
  MySQL Username: O usuário do banco de dados
 
  MySQL Password: A senha do usuário do Banco de Dados

Clique em “Install Now” para continuar. Se você preencheu tudo corretamente em alguns segundos o seu painel estará pronto para uso.

*Atente para as URLs de acesso exibidas na tela.

9 Delete a pasta do instalador

Por segurança é recomendável apagar a pasta contendo os scripts com o instalador do osTicket.

Acesse os arquivos do site por FTP ou SSH e delete a pasta /web/setup

10 Crie uma tarefa no Cron para executar ações agendadas do osTicket

O ISPConfig tem uma maneira descomplicada de lidar com tarefas agendadas para sites. No painel acesse “Sites” e no menu esquerdo clique em “Tarefas no Cron“. Clique em Adicionar Tarefa e preencha desta forma (note que no campo “Comando a executar” deverá ser escrito com o seu domínio e caminho onde está o arquivo cron.php do site):

- Site Web Parente: <selecione o site do helpdesk>

- Minutos: */5

- Horas: *

- Dias do mês: *

- Dias da semana: *

- Comando a executar: /usr/bin/php /var/www/helpdesk.meudominio.com/web/api/cron.php

- Ativo: <deixar selecionado>
FIX Fix para o bug em que os balões de ajuda e AJAX nos botões de configurações aparecem em branco ou simplesmente não carregam

Após tudo instalado e funcionando nota-se que ao clicar em botões de ajuda ou botões de configuração no painel de tickets o Ajax não carrega. Para consertar isso edite o arquivo /include/class.osticket.php e substitua a função “get_path_info” por esta abaixo:

function get_path_info() {
   if(isset($_SERVER['PATH_INFO']) && !empty($_SERVER['PATH_INFO']))
      return $_SERVER['PATH_INFO'];

   if(isset($_SERVER['ORIG_PATH_INFO']) && !empty($_SERVER['ORIG_PATH_INFO']))
      return $_SERVER['ORIG_PATH_INFO'];

   $request_uri = preg_replace('@\?.*$@', '', $_SERVER['REQUEST_URI']);

   if (strpos($request_uri, $_SERVER['SCRIPT_NAME']) !== false) {
      $guessed_pathinfo = preg_replace('#^'.preg_quote($_SERVER['SCRIPT_NAME']).'#', '', $request_uri);
   } else {
      $guessed_pathinfo = preg_replace('#^'.preg_quote(preg_replace('@/([^/]+)$@', '', $_SERVER['SCRIPT_NAME'])).'#', '', $request_uri);
 }
   if (!empty($guessed_pathinfo))
      return $guessed_pathinfo;

   return null;
}

Era isso. Com essa ferramenta mesmo que os seus clientes não tenham o melhor atendimento pelo menos agora fica tudo centralizado.

Gestão em infraestrutura de Servidores Cloud VPS e Dedicados. Planos mensais acessíveis e consultoria diferenciada para agências de marketing.
Envie um email para [email protected] e solicite uma análise gratuita!

  • Helpdesk open source

  • Dan El Pierre Rezende

    Excelente ferramenta, tutorial bem intuitivo!

  • Ótimo tutorial, instalei como manda o figurino e com a configuração de servidor que você ensina aqui no fator binário, porém mesmo fazendo a configuração na função e habiltando o cgi.fix o ajax ainda não funciona normalmente, os balões de ajuda e alguma página quando vão fazer alguma requisção não completa.

  • Certeza que não pulou algum passo?

    Criei este tutorial quando fiz a instalação em um cliente e está tudo funcionando lá..

  • Obrigado pelo feedback tão rápido, olhei para a configuração do nginx e vi o que fiz de errado ou melhor deixei de fazer, como eu criei o subdomínio helpdesk.dominio.com.br e instalei osticket na pasta atendimento , ficou assim a url completa, helpdesk.dominio.com.br/atendimento , foi só eu acertar o nginx com a procedência da uri (atendimento) e tudo funcionou liso , coloquei a palavra atendimento em toda a diretiva nginx e ficou assim um exemplo if ($request_uri ~ “^/atendimento/api(/[^?]+)”) {
    set $path_info $1;
    } e pronto tudo ok.

  • Bacana. Os meus tutoriais são 100% porque eu mesmo uso eles quando aparece trabalhos similares.. Quando quiser dê uma olhada nos demais artigos do site.