Apache 2 com php5 e php4 juntos
Dica publicada em Linux / Introdução
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:
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>
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
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();
?>
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:
- http://www.howtoforge.com/apache2_with_php5_and_php4_p2 https://www2.raragao.eng.br/.../Configurando_PHP4_e_PHP5_no_mesmo_servidor
Abraços,