A solução foi limpar o cache do navegador, ou seja, pressione CTRL - F5
php estava funcionando, mas o navegador estava me dando uma versão antiga do conteúdo php.
Minha configuração:
# grep php /etc/httpd/conf/httpd.conf
LoadModule php5_module modules/libphp5.so
AddType x-httpd-php .php
AddHandler php5-script .php
# grep PHP /etc/httpd/conf/httpd.conf
PHPIniDir /etc/
# grep open_tag /etc/php.ini
; short_open_tag
short_open_tag = On
# /etc/init.d/httpd start
Starting httpd: [Tue Dec 04 03:26:29 2012] [warn] module php5_module is already loaded, skipping
httpd: apr_sockaddr_info_get() failed for holdsworth
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[ OK ]
# cat /var/log/httpd/error_log
[Tue Dec 04 03:26:37 2012] [notice] SELinux policy enabled; httpd running as context unconfined_u:system_r:httpd_t:s0
[Tue Dec 04 03:26:37 2012] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Tue Dec 04 03:26:37 2012] [warn] module php5_module is already loaded, skipping
[Tue Dec 04 03:26:45 2012] [notice] Digest: generating secret for digest authentication ...
[Tue Dec 04 03:26:45 2012] [notice] Digest: done
[Tue Dec 04 03:26:53 2012] [warn] ./mod_dnssd.c: No services found to register
[Tue Dec 04 03:26:53 2012] [notice] Apache/2.2.15 (Unix) DAV/2 PHP/5.3.3 configured -- resuming normal operations
[Tue Dec 04 03:28:35 2012] [notice] caught SIGTERM, shutting down
access_log está vazio. Quando abro index.php, mostra seu conteúdo.
[root@holdsworth steve]# ls -lah /var/www/html/php/index.php
-rwxrwxrwx. 1 root root 1.7K Oct 31 18:38 /var/www/html/php/index.php
Aparece que você tem ambos suEXEC e SELinux ativados, portanto, você precisará procurar a execução do script php , para iniciar Fora de check scripts CGI são permitidos:
getsebool -a | egrep 'cgi|builtin_scriptin'
Se não:
setsebool -P httpd_enable_cgi 1
setsebool -P httpd_builtin_scripting 1
Verifique também se os scripts php possuem o sinalizador estendido necessário, são de propriedade e executáveis pelo processo do apache, para manter o SElinux e o suEXEC felizes:
ls -lZ *.php
chcon -t httpd_sys_script_exec_t *.php
chmod +x *.php
chown xxxx:yyyyyy *.php
ls -l *.php
Como alternativa, se não for um servidor público, desative ambos.
Veja: link
Primeiro, acho que você deve descobrir onde está carregando o mod_php pela segunda vez:
[warn] module php5_module is already loaded, skipping
Sou muito supersticioso sobre os arquivos de configuração do Apache com mensagens de aviso - eles significam mais do que dizem às vezes.
Em segundo lugar, tente uma maneira diferente de obter o mod_php para analisar arquivos:
<IfModule php5_module>
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
</IfModule>
Finalmente, considere onde você coloca a (s) diretiva (s) em mod_php: se você tem diretivas do VirtualHost, você pode ter que ativar o mod_php dentro dela.
Eu usei o seu arquivo de configuração e adicionei o conteúdo abaixo ao final do arquivo httpd.conf
. addType
, AddHandler
, PHPIniDir
.
E funciona para mim no CentOS 5, sem mostrar o conteúdo de index.php
.
Tags php centos apache-httpd