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: seuemail@dominio.com (*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.

Gerenciamento em infraestrutura de Servidores Cloud VPS e Dedicados. Planos mensais acessíveis e consultoria diferenciada para agências de marketing. Envie um email para contato@fatorbinario.com e solicite uma análise gratuita!

728x90a
  • 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.

  • Jean A. Silva

    Luis, muito bom. Parabens. Hoje uso muito seus tutoriais, desde o DEBIAN ao ISPCONFIG, e agora testando o OSTICKET, parabens e muito obrigado. Uma duvida, não posso instalar diretamente pelo package do ISPCONFIG?.

  • Eu, e alguns dos meus clientes, tivemos algumas experiências ruins com o gerenciador de pacotes do painel. Mas a maioria foi tentativas de instalar o WordPress.

    O que aconteceu várias vezes é que o repositório brasileiro do WordPress dava problema e fica uma instalação errada, não lembro exatamente os erros que dava, mas isso continuou acontecendo com outros clientes.

    Então decidi deixar aquilo de lado, mas se quiser usar manda bala. O máximo que vai acontecer é ter que reinstalar.

  • Jean A. Silva

    Entendi, ja possuo 4 sites hospedados com o wordpress, ate o momento não tive problemas pelo package, eu tive problemas no osticket, apenas na permissão da pasta ost-config. Mas vou utilizar seu tutorial, é melhor.

    Obrigado. =).

  • Ola Luis, boa tarde!

    Eu efetuei as devidas configurações do OSTICKET, tudo certinho em um site, contudo gostaria de replicar esse que ja está pronto para outro site, se eu copiar os arquivos e alterar as configurações do banco, é uma boa maneira?. Ou você possui uma outra sugestão?.

    Grato.

  • Eu acho que você irá gastar menos tempo reinstalando do que se preocupar procurando bug caso algo dê errado na cópia.

  • O mais provável é que você instalou os arquivos com o usuário root e não o em Jail.

  • Na verdade instalei com um usuário normal.. com privilegios de root. Utilizo meu diretório. /home/user/html/helpdesk.