Apache 2 com php5 e php4 juntos

Publicado por albert guedes em 29/06/2007

[ Hits: 15.596 ]

Blog: http://www.socrates.if.usp.br/~arcguede

 


Apache 2 com php5 e php4 juntos



Instalando e configurando:

A primeira coisa do tutorial que segui era instalar um mundão de pacotes:

# apt-get install apache2 apache2-common apache2-doc apache2-mpm-prefork apache2-utils libapr0 libexpat1 ssl-cert libapache2-mod-php5 php4-cgi php5-imap php5-syck php-pear php5-curl php5-dev php5-gd php5-ldap php5-mhash php5-mysql php5-odbc php5-recode php5-snmp php5-sqlite php5-xmlrpc php5-xsl php4-auth-pam php4-imagick php4-mcrypt php4-rrdtool php4-sqlite php4-curl php4-domxml php4-gd php4-imap php4-ldap php4-mcal php4-mhash php4-mysql php4-odbc php4-pear php4-xslt

Boa parte deles não é necessário, mas instalei por tabela assim mesmo.

O tutorial agora me diz para editar o arquivo /etc/apache2/apache2.conf. Mudar a linha de:

DirectoryIndex index.html index.cgi index.pl index.php index.xhtml

para:

DirectoryIndex index.html index.htm index.shtml index.cgi index.pl index.php index.php4 index.xhtml

No meu caso a bendita linha não existia no conf, logo acrescentei esta última, mas com o adicional de indicar que é um módulo, coisa que o artigo não dizia:

<IfModule mod_dir.c>
    DirectoryIndex index.html index.htm index.shtml index.cgi index.pl index.php index.php4 index.xhtml
</IfModule>

A próxima etapa é acrescentar o trecho no apache2.conf:

AddHandler php-script .php4
Action php-script /cgi-bin/php4

Coloque-o logo abaixo de qualquer outro trecho do "apache2.conf" que tenha a palavra 'AddHandler', se colocar em outro lugar vai dar erro na certa.

Agora teremos que criar uns links, o tutorial dizia para usar o programa "a2enmod", mas eu não encontrei em repositório 'deb' nenhum, logo criei na mão os links, para isso, devemos ir para o diretório /etc/apache2 e fazer:

# ln -s mods-available/actions.load mods-enabled/actions.load
# ln -s mods-available/ssl.load mods-enabled/ssl.load
# ln -s mods-available/ssl.conf.load mods-enabled/ssl.conf
# ln -s mods-available/ssl.load mods-enabled/rewrite.load
# ln -s mods-available/ssl.load mods-enabled/suexec.load
# ln -s mods-available/ssl.load mods-enabled/include.load


Ok, nesta parte o Apache deve estar funcionando, então, escreva um script em PHP chamado "info.php" e um outro igualzinho chamado "info.php4" com o conteúdo:

<?
phpinfo();
?>

E salve-os em "/var/www" e recomece o apache como root ou com "sudo".

$ sudo /etc/init.d/apache2 restart

Digite no seu browser "http://<seu ip>/info.php" e em outra janela digite "http://<seu ip>/info.php4".

E se estiver tudo bem, você verá na primeira tela o script sendo executado diretamente pelo apache2 e na segunda o script em php4 sendo executado como cgi.

O diretório de usuário:

Com a alegria de ter o php funcionando no apache, o balde de água fria agora é que o diretório "public_html" de usuário que não é reconhecido. Mas este problema se resolve com apenas uma linha:

$ ln -s mods-available/userdir.load mods-enabled/userdir.load

Não esquecer, este comando deve ser executado como root ou com o "sudo" no diretório "/etc/apache2". Reinicie o apache e verifique no seu browser digitando:

http://<seu ip>/~<usuário>/index.php

Onde obviamente deve ter um diretório "public_html" no diretório do "<usuário>" e um script em php "index.php" dentro do mesmo.

Conclusão:

Esta instalação eu fiz para uso próprio, quer dizer, desenvolver minhas próprias páginas em php, portanto não sei o quanto ela é boa se você quiser montar um servidor de verdade, mas se já ajudou a esclarecer alguma coisa, meu trabalho está feito.

Agradeço se me enviarem críticas (construtivas) e sugestões.

Referências:
Outras dicas deste autor

Dando permissão a outros usuários para usarem os devices

Como pegar mapas para UrbanTerror facilmente

Definindo um tema de cores para o Emacs

Separar caracteres de uma string no PHP

Magento - " Please enter a valid URL. Protocol is required (http://, https:// or ftp://) "

Leitura recomendada

Sistema de rastreamento gratuito para Linux

Fim da janela de notificação de dispositivos no KDE3

Siafi no Ubuntu 9.04

Utilizar Ubuntu é uma boa...

Instalando Modem 3G no Mandriva

  

Comentários
[1] Comentário enviado por canaman em 29/06/2007 - 09:56h

Olá amigo! O programa a2enmod e o a2ensite vem com o apache2 no debian, não precisa instalar nenhum pacote adicional, basta executá-lo como root. Na verdade eles são só um shell script que faz a criação dos links de forma automática.
Abraços,

[2] Comentário enviado por albertguedes em 29/06/2007 - 11:58h

Valeu canaman, e que eu procurei e nao achei o "a2enmod" no Debian e ainda por cima cometi um erro de revisao ai em cima, entao, para quem estiver lendo a dica tem uma errata:
Na parte de criacao dos links, o correto e

# ln -s mods-available/actions.load mods-enabled/actions.load
# ln -s mods-available/ssl.load mods-enabled/ssl.load
# ln -s mods-available/ssl.conf mods-enabled/ssl.conf
# ln -s mods-available/rewrite.load mods-enabled/rewrite.load
# ln -s mods-available/suexec.load mods-enabled/suexec.load
# ln -s mods-available/include.load mods-enabled/include.load

Desculpa pelo engano pessoal.

[3] Comentário enviado por Pilantra em 10/03/2008 - 09:59h

Olá amigo!!

Você sabe me dizer como eu faço o esquema com o RedHat pra carregar o PHP 4 e 5 juntos? Infelizmente os servidores aqui no trampo são RedHat e o yum é um esquema diferente do apt-get, não tem como instalar duas versões juntas assim!

Valeu.

[4] Comentário enviado por albertguedes em 10/03/2008 - 10:23h

Bom Pilantra, tirando a parte de instalação dos pacotes, todo o resto da dica você pode fazer no RH igualzinho.
Os pacotes você pode baixar as versões deb e converter em rpm usando o comando 'alien', se tiver instalado ai, ok ?
Se precisar, tenho este link que dá uma luz na instalação do apache2+php5 que server para todas as distros

http://dan.drydog.com/apache2php.html



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts