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.280 ]

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

URL amigável com Perl

Executando os principais frameworks Perl no cPanel com CGI

Catalyst Framework Perl (parte 1)

Catalyst Framework Perl - Parte III

Catalyst Framework Perl - (parte 2)

Leitura recomendada

Twittando com o Perl (parte 1)

URL amigável com Perl

Enviando emails em Perl

Módulos de Web no Perl

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