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: 3.323 ]

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 [email protected]
        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

Executando os principais frameworks Perl no cPanel com CGI

URL amigável com Perl

Catalyst Framework Perl - Parte III

Catalyst Framework Perl (parte 1)

Catalyst Framework Perl - (parte 2)

Leitura recomendada

Trabalhando com arquivos no Perl

Um pouco de PERL

Programando em Perl (parte 1)

Script Perl para consultas em base LDAP e/ou Active Directory

Executando os principais frameworks Perl no cPanel com CGI

  
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: [email protected]
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: [email protected]
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