Compilando Apache 2 com PHP, MySQL, mod_perl e mod_ssl

cvs

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.

[ Hits: 84.416 ]

Por: Thiago Alves em 10/08/2004 | Blog: http://www.seeufosseopresidente.com.br


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:

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>

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;

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;

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.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Downloads
   3. Compilando MySQL, Apache e PHP
   4. Compilando mod_perl
   5. Considerações finais
Outros artigos deste autor

MPlayer - The Movie Player

Compilação distribuída usando o distcc

Virtualização com CentOS e VMware Server

Incremente o iptables com patch-o-matic

Gcombust, um frontend para cdrecord

Leitura recomendada

Instalação do Debian Lenny 5

Melhores Distribuições Linux Voltadas Para Servidores

Esqueça tudo e venha para o Linux!

SuSE Linux 9.1 - O poderoso e versátil Linux da Novell

Repositórios, pacotes, o que são?

  
Comentários
[1] Comentário enviado por wronieri em 10/08/2004 - 10:00h

Muito bom artigo mas uma dúvida, eu tenho instalado o Apache 2 no Red Hat 9 e nunca consegui levantar o serviço não ser se é porque uso bale modem mas ele sempre da uma mensagem de erro e o ip 127.0.0.1 já tentei de tudo e não vai o q pode ser?

[2] Comentário enviado por cvs em 10/08/2004 - 10:03h

qual é a mensagem exata do tal erro?

[3] Comentário enviado por wronieri em 10/08/2004 - 10:14h

Esta mensagem: "Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName".

[4] Comentário enviado por cvs em 10/08/2004 - 10:21h

isso não é um erro, ele manda esse aviso mas mesmo assim inicia o apache, normalmente é o que acontece.

[5] Comentário enviado por wronieri em 10/08/2004 - 10:23h

Ele inicia de boa? porque no meu ele dá o [FALHOU] ao invés do [OK] mas mesmo assim vou dar uma olhada mais detalhada para ver se o serviço está ou não rodando... mesmo assim valeu!

[6] Comentário enviado por y2h4ck em 10/08/2004 - 12:43h

wronieri, para resolver e simples,
edite o /etc/hosts
e adicione o seu hostname com o ip 127.0.0.1

Isso acontece pq ele nao ve nenhum Ip associado ao
ServerName do seu httpd.conf.


[7] Comentário enviado por wronieri em 10/08/2004 - 13:57h

Valeu Y2h4ck era isto mesmo :-)

[8] Comentário enviado por agk em 11/08/2004 - 08:55h

Parabéns pelo artigo, e wronieri você pode usar na opção ServerName do seu httpd.conf o ip da sua máquina que também resolve o problema.
[ ]'s

[9] Comentário enviado por katito em 27/01/2005 - 19:22h

estou salvando as minhas paginas no /var/www e quando escrevo no navegador localhost/*.php aparece uma janela pra eu baixar o arquivo php nao visualiza oq eh isso?

[10] Comentário enviado por cvs em 28/01/2005 - 00:12h

cara, não se faz isso não... coloca http://localhost/nome.php... Tá configurado de forma correta, fez tudo certinho, sem nenhum erro?

[11] Comentário enviado por albert em 09/11/2005 - 11:26h

Uso o Slackware 10.2 e atualizei para o Apache2 e o php5 usando arquivos tgz. O apache roda beleza, mas quando executo o arquivo com <?php phpinfo();?> apenas aparece uma tela em branco. APENAS UMA TELA EM BRANCO. Chequei o httpd.conf e está tudo instalado corretamente. Alguém faz idéia o que pode ser?

[12] Comentário enviado por Rafael1986 em 20/01/2006 - 16:51h

kras, eu tinha o apache 1.3, e resolvi instalar o 2.0, seguindo este tutorial.. porém, qndo dou o lynx http:// -dump -head ele me retorna o server antigo, 1.3 com suporte a php somente. Ja restartei o server, mas nau madiaontou nda
pq isso?

[13] Comentário enviado por fablinuxer em 30/11/2006 - 17:00h

cvs, é uma satisfação muito grande estar falando com vc pela primeira vez, estou ultizando seu tuto e estou tendo algums problemas bem quando executo os procedimentos depois de compliar e instalar o mysql da esse erro:
/usr/local/mysql/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)'
Check that mysqld is running and that the socket: '/tmp/mysql.sock' exists!
e mesmo tentano copiar de /var/run/mysql/mysql.sock não é permitido e com esse erro atrapalha a compilação de php, será uq tem com resolver isso?
abraço amigo

[14] Comentário enviado por fablinuxer em 30/11/2006 - 17:09h

Ha... e outro erro é que quando tento o comando /usr/local/mysql/bin/mysql -u root -p o erro é o segiumte ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111) mais uma vez valeu ..

[15] Comentário enviado por duduzinhu em 22/06/2007 - 16:58h

Comecei a tentar criar um WebServer a pouco tempo 1º configurei o apache2 corretamente depois o desinstalei para tentar colocar o meu servidor a roda o apache2+php5 e vi q era nescessário instalar o mysql para q fosse possivel o php rodar no servidor depois de ter lido uns 20 tutoriais de criação de WebServer em linux, a propósito o meu é um FedoraCore 6. Tentei centenas de vezes configurar um servidor com apache2+mysql+php5, li diversos de tutoriais mas sempre na hora de compilar o mysql da um erro diferente sendo q sigo o tutorial certinho mas mesmo assim da erro. Nem terminei de ler esse tutorial pq qdo tento compilar o mysql que é o q se deve faser 1º nesse tuto da o seguinte erro:
checking for termcap functions library... configure: error: No curses/termcap library found
... uso o gcc pra compilar os source-codes, ja formatei o meu pc e tentei seguir um tutorial desde o começo mas sempre da esse erro na hora de instalar o mysql,se puder me ajudar me manda um e-mail (duduzinhu16@yahoo.com.br), desde já obrigado.

[16] Comentário enviado por dorivansousa em 25/08/2007 - 20:33h

eu tentei instalar o mysql no ubuntu e mostrou esse erro tambem (error: No curses/termcap library found)
apos muita procura na internet achei uma dica que manda rodar esse comando:
apt-get install libncurses5-dev

no meu caso resolveu

[17] Comentário enviado por helioalb em 23/12/2007 - 15:14h

Olá Thiago, poderia dizer que você é meu herói, estava a tempos tentando instalar Apache+PHP+MySql via repositório no meu Debian, e nada dava certo, agora ta tudo rodando bunitinho. Valeu mesmo.

Falowww

[18] Comentário enviado por removido em 13/03/2008 - 03:02h

artigo show de bola


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts