Compilando Apache 2 com PHP, MySQL, mod_perl e mod_ssl
Este artigo nos mostra como fazer para turbinar seu Apache 2 com alguns de seus módulos mais populares, tudo isso a partir do zero, com 100% dos pacotes compilados na mão.
Parte 4: Compilando mod_perl
Para compilar o mod_perl:
* Uma boa idéia é antes de começar fazer a atualização do perl.
Descompacte e entre no diretório:
# tar zxvf mod_perl.xx.xx.tar.gz
# cd mod_perl.xx.xx
Agora faça da seguinte forma para compilar:
# perl Makefile.PL MP_APXS=/usr/local/apache2/bin/apxs
# make && make test
# make install
Com isso vai demorar um pouco até se completar tudo. Então, após terminar, vamos para a configuração.
Parâmetros do mod_perl para serem incluídos no httpd.conf:
* Uma boa idéia é antes de começar fazer a atualização do perl.
Descompacte e entre no diretório:
# tar zxvf mod_perl.xx.xx.tar.gz
# cd mod_perl.xx.xx
Agora faça da seguinte forma para compilar:
# perl Makefile.PL MP_APXS=/usr/local/apache2/bin/apxs
# make && make test
# make install
Com isso vai demorar um pouco até se completar tudo. Então, após terminar, vamos para a configuração.
Parâmetros do mod_perl para serem incluídos no httpd.conf:
LoadModule perl_module modules/mod_perl.so
PerlRequire /usr/local/apache2/conf/startup.pl
<Files ~ (\.pl)>
SetHandler perl-script
PerlHandler ModPerl::Registry
allow from all
Options ExecCGI
PerlSendHeader On
</Files>
PerlRequire /usr/local/apache2/conf/startup.pl
<Files ~ (\.pl)>
SetHandler perl-script
PerlHandler ModPerl::Registry
allow from all
Options ExecCGI
PerlSendHeader On
</Files>
Esse script "startup.pl" pode ser copiado aqui:
#!/usr/bin/perl
# INÍCIO DO SCRIPT startup.pl
use Apache2 ();
#use lib qw(/home/httpd/perl);
# enable if the mod_perl 1.0 compatibility is needed
# use Apache::compat ();
# preload all mp2 modules
# use ModPerl::MethodLookup;
# ModPerl::MethodLookup::preload_all_modules();
use ModPerl::Util (); #for CORE::GLOBAL::exit
use Apache::RequestRec ();
use Apache::RequestIO ();
use Apache::RequestUtil ();
use Apache::Server ();
use Apache::ServerUtil ();
use Apache::Connection ();
use Apache::Log ();
use APR::Table ();
use ModPerl::Registry ();
use Apache::Const -compile => ':common';
use APR::Const -compile => ':common';
1;
# INÍCIO DO SCRIPT startup.pl
use Apache2 ();
#use lib qw(/home/httpd/perl);
# enable if the mod_perl 1.0 compatibility is needed
# use Apache::compat ();
# preload all mp2 modules
# use ModPerl::MethodLookup;
# ModPerl::MethodLookup::preload_all_modules();
use ModPerl::Util (); #for CORE::GLOBAL::exit
use Apache::RequestRec ();
use Apache::RequestIO ();
use Apache::RequestUtil ();
use Apache::Server ();
use Apache::ServerUtil ();
use Apache::Connection ();
use Apache::Log ();
use APR::Table ();
use ModPerl::Registry ();
use Apache::Const -compile => ':common';
use APR::Const -compile => ':common';
1;
Copie esse texto do script para um arquivo chamado startup.pl e coloque no caminho que está na configuração do Apache, que é /usr/local/apache2/conf/.
Pronto, após isso o mod_perl estará funcionando corretamente. Lembre-se que todos os scripts .pl que você for rodar no Apache terão que ter permissão de execução, ou seja, "chmod +x" neles.
Para testar, pode-se fazer um simples script em perl.
#!/usr/bin/perl
use CGI;
$pagina = new CGI;
print $pagina->header;
print $pagina->start_html("Exemplo de Perl");
print "<big>Perl - Finalmente funcionou!!!<big><br>\n";
print $pagina->end_html;
use CGI;
$pagina = new CGI;
print $pagina->header;
print $pagina->start_html("Exemplo de Perl");
print "<big>Perl - Finalmente funcionou!!!<big><br>\n";
print $pagina->end_html;
Cole esse script em um arquivo chamado teste.pl e execute:
# chmod +x teste.pl
Então acesse via o browser, http://localhost/teste.pl e veja se ele executa mesmo. :-)
Para ver como ficou as infos do servidor, pode rodar o seguinte comando.
# lynx http://localhost -dump -head
Que deverá retornar algo como:
HTTP/1.1 200 OK
Date: Wed, 21 Apr 2004 20:16:49 GMT
Server: Apache/2.0.49 (Unix) mod_perl/1.99_13 Perl/v5.8.3 mod_ssl/2.0.49 OpenSS L/0.9.7d PHP/4.3.6
Connection: close
Content-Type: text/html; charset=ISO-8859-1
Ou seja, olhe ali a terceira linha:
Server: Apache/2.0.49 (Unix) mod_perl/1.99_13 Perl/v5.8.3 mod_ssl/2.0.49 OpenSS L/0.9.7d PHP/4.3.6
Então está instalado.
Agora você se pergunta, o que o mod_ssl está falando ali?
Bem ele foi habilitado na hora da instalação do Apache com o parâmetro no configure "--enable-ssl" e então pronto.
Seu servidor está OK.