Estou executando o php 5.3.3 no rhel 6.2 com Apache 2.2.15 e não tendo o código PHP interpretado pelo Apache.
Não há erros (no log do sistema, httpd / error_log ou php_errors.log) - Eu habilitei o relatório de erros no php.ini:
error_reporting = E_ALL & ~E_DEPRECATED
display_errors = On
log_errors = On
error_log = /var/log/php_errors.log
No entanto, quando eu ver o meu index.php, que contém o código a seguir, diretamente do meu navegador (por exemplo, myserver.com/index.php), nada aparece, mas uma tela branca:
<?php echo 'Hello php World'; ?>
Quando executado por php na linha de comando, recebo a saída de texto esperada para o terminal (" Hello php World
").
Quando adiciono algum HTML ao index.php como em:
<html>
<p>Hello from within html</p>
<?php echo 'Hello php World'; ?>
</html>
e visualizá-lo com meu navegador, ele retorna apenas " Hello from within html
." No entanto, quando executado a partir da linha de comando, recebo:
<html>
<p>Hello from within html</p>
Hello php World</html>
Então, o PHP é analisado e interpretado via CLI, mas não pelo Apache.
Confirmei que o index.php e sua estrutura de arquivos pai são de propriedade do apache: apache e que o contexto do selinux dos módulos do apache:
chcon -t httpd_sys_script_exec_t /usr/lib/httpd/modules/*
chcon -t httpd_sys_script_exec_t /usr/lib/php/modules/*
e dos arquivos .php a serem analisados:
chcon -R -h -t httpd_sys_content_t /export1
estão corretas. Eu não acho que o selinux é o problema porque eu não recebo nenhum erro de permissão, e eu temporariamente desabilitei o selinux echo 0 >/selinux/enforce
sem sucesso resultante do php sendo interpretado pelo apache.
O módulo php está sendo carregado com sua configuração e a extensão .php está sendo entendida como configurada no httpd.conf:
LoadModule php5_module /usr/lib/httpd/modules/libphp5.so
AddType application/x-httpd-php .php .phtml
PHPIniDir /etc/
E o apache sabe que procurar por index.php de:
DirectoryIndex index.html index.html.var index.php
como definido no httpd.conf.
Eu tenho esgotado minhas idéias de onde está meu problema - até mesmo tentei reinstalar o PHP - e certamente apreciaria qualquer idéia. Caso seja útil, aqui está o conteúdo de / var / log / httpd / error_log quando eu inicio o apache:
[Fri Feb 03 13:44:53 2012] [notice] SELinux policy enabled; httpd running as context unconfined_u:system_r:httpd_t:s0
[Fri Feb 03 13:44:53 2012] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Fri Feb 03 13:44:53 2012] [warn] module php5_module is already loaded, skipping
[Fri Feb 03 13:44:53 2012] [notice] Digest: generating secret for digest authentication ...
[Fri Feb 03 13:44:53 2012] [notice] Digest: done
[Fri Feb 03 13:44:54 2012] [warn] mod_wsgi: Compiled for Python/2.6.2.
[Fri Feb 03 13:44:54 2012] [warn] mod_wsgi: Runtime using Python/2.6.6.
[Fri Feb 03 13:44:54 2012] [notice] Apache/2.2.15 (Unix) DAV/2 PHP/5.3.3 mod_ssl/2.2.15 OpenSSL/1.0.0-fips mod_wsgi/3.2 Python/2.6.6 mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations
Por favor, ajude!