Configurando OTRS com PSGI/Plack e executando com Starman

Nesse artigo vou mostrar como configurar OTRS usando PSGI/Plack. Na versão 5.0.12 do OTRS existe um arquivo com PSGI/Plack, mas não funciona por ser algo experimental. Criei um arquivo com PSGI/Plack para executar o OTRS e depois executar com Starman.

[ Hits: 5.279 ]

Por: Lucas em 05/10/2016


Execução



Vamos renomear o arquivo experimental do PSGI/Plack que vem por padrão e criar um novo.

Renomear:

cd otrs/bin/cgi-bin
mv app.psgi app.psgi.old

Criar:

touch app.psgi

Depois de criado, abra com editor de sua preferência e adicione o código abaixo:

use Plack::Builder;
use Plack::App::File;
use CGI::Emulate::PSGI;
use CGI::Compile;

my $path_of_otrs = "/caminho_do_diretorio/otrs";

my $cgi_script_index = $path_of_otrs . "/bin/cgi-bin/index.pl";
my $sub_index = CGI::Compile->compile($cgi_script_index);
my $app_index = CGI::Emulate::PSGI->handler($sub_index);

my $cgi_script_customer = $path_of_otrs . "/bin/cgi-bin/customer.pl";
my $sub_customer = CGI::Compile->compile($cgi_script_customer);
my $app_customer = CGI::Emulate::PSGI->handler($sub_customer);

my $cgi_script_installer = $path_of_otrs . "/bin/cgi-bin/installer.pl";
my $sub_installer = CGI::Compile->compile($cgi_script_installer);
my $app_installer = CGI::Emulate::PSGI->handler($sub_installer);

my $cgi_script_nph_genericinterface = $path_of_otrs . "/bin/cgi-bin/nph-genericinterface.pl";
my $sub_nph_genericinterface = CGI::Compile->compile($cgi_script_nph_genericinterface);
my $app_nph_genericinterface = CGI::Emulate::PSGI->handler($sub_nph_genericinterface);

my $cgi_script_public = $path_of_otrs . "/bin/cgi-bin/public.pl";
my $sub_public = CGI::Compile->compile($cgi_script_public);
my $app_public = CGI::Emulate::PSGI->handler($sub_public);

my $cgi_script_rpc = $path_of_otrs . "/bin/cgi-bin/rpc.pl";
my $sub_rpc = CGI::Compile->compile($cgi_script_rpc);
my $app_rpc = CGI::Emulate::PSGI->handler($sub_rpc);

builder {
    mount "/" => $app_index;
    mount "/index.pl" => $app_index;
    mount "/customer.pl" => $app_customer;
    mount "/installer.pl" => $app_installer;
    mount "/nph-genericinterface.pl" => $app_installer;
    mount "/public.pl" => $app_public;
    mount "/rpc.pl" => $app_rpc;
    mount "/otrs-web" => Plack::App::File->new(root => $path_of_otrs . '/var/httpd/htdocs')->to_app;
};

Código no meu gitHub:
Não esqueça de alterar o 'caminho_do_diretorio' no código acima.

Agora, vamos executar:

starman app.psgi

Por padrão, o Starman executa na porta 5000, então para testar o OTRS, abra seu navegador e digite o endereço:

http://localhost:5000

Executando o Starman em outra porta, com um número maior de processos e criando pid:

starman --l :2222 app.psgi --workers 5 --daemonize --pid app.pid

No exemplo acima, executa o Starman na porta 2222, com 5 processos e pid no arquivo "app.pid".

Matando os processos:

cat app.pid | sudo xargs kill

Configurando Apache com Proxy Reverse

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName meudominio.com
        ServerAlias meudominio.com www.meudominio.com

        <Location />
                ProxyPass http://localhost:2222/
                ProxyPassReverse http://localhost:2222/
        </Location>
</VirtualHost>

Configurando Nginx com Proxy Reverse

server {
     server_name  meudominio.com www.meudominio.com;
     listen 80 default_server;
     listen [::]:80 default_server;

     root /var/www/html;

     index index.html index.htm;

     location / {
                proxy_set_header X-Forwarded-Host $http_host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_pass http://localhost:2222;
     }
}

Conclusão

A intenção desse artigo, foi ensinar como configurar OTRS com PSGI/Plack e executar com Starman. Demais configurações do OTRS, você deve seguir o link abaixo:
Resultado da instalação:
Espero ter ajudado.
Obrigado.

Página anterior    

Páginas do artigo
   1. Introdução
   2. Execução
Outros artigos deste autor

Catalyst Framework Perl - Parte III

URL amigável com Perl

Executando os principais frameworks Perl no cPanel com CGI

Catalyst Framework Perl - (parte 2)

Catalyst Framework Perl (parte 1)

Leitura recomendada

Decodificando filmes do programa "3w player"

Catalyst Framework Perl - Parte III

Catalyst Framework Perl - (parte 2)

Introdução a CGI com a RFC 3875

Trabalhando com arquivos no Perl

  
Comentários
[1] Comentário enviado por gugarasta em 07/10/2016 - 17:40h

ola amigo... ótimo artigo.. segui ele consegui fazer a instalação certinho... sem nenhum problema..
só não achei a senha para acessar o OTRS depois que completa a instalação..
Qual é o usuário e senha padrão?

Grato

[2] Comentário enviado por mineirobr em 07/10/2016 - 18:31h


[1] Comentário enviado por gugarasta em 07/10/2016 - 17:40h

ola amigo... ótimo artigo.. segui ele consegui fazer a instalação certinho... sem nenhum problema..
só não achei a senha para acessar o OTRS depois que completa a instalação..
Qual é o usuário e senha padrão?

Grato


User: root@localhost
Pass: root

[3] Comentário enviado por gugarasta em 10/10/2016 - 11:17h


[2] Comentário enviado por mineirobr em 07/10/2016 - 18:31h


[1] Comentário enviado por gugarasta em 07/10/2016 - 17:40h

ola amigo... ótimo artigo.. segui ele consegui fazer a instalação certinho... sem nenhum problema..
só não achei a senha para acessar o OTRS depois que completa a instalação..
Qual é o usuário e senha padrão?

Grato


User: root@localhost
Pass: root



Deu certo... muito obrigado amigão.

[4] Comentário enviado por pauloirus em 29/03/2017 - 17:41h

E possível instalar OTRS 5 no linux, com banco de dados esterno sql server?

[5] Comentário enviado por mineirobr em 29/03/2017 - 17:47h


[4] Comentário enviado por pauloirus em 29/03/2017 - 17:41h

E possível instalar OTRS 5 no linux, com banco de dados esterno sql server?


Sim é possivel, veja o arquivo Karnel/Config.pm

# The database DSN for Microsoft SQL Server - only supported if OTRS is
# installed on Windows as well
# $Self->{DatabaseDSN} = "DBI:ODBC:driver={SQL Server};Database=$Self->{Database};Server=$Self->{DatabaseHost},1433";



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts