O Apache executa HTML, mas não o PHP; Trabalhos PHP CLI

4

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!

    
por geoweaser 06.02.2012 / 16:17

3 respostas

1

Parece que php5_module já está carregado e carregado posteriormente pela configuração rhel6 padrão ou a configuração em rhel6 está carregando o módulo php5_module ... o que não importa, exceto para o fato de que a configuração que você está inserindo está sendo substituída pela configuração padrão rhel6 .

Olhando para a etapa 11 do site do Dan , que funcionou para mim no passado sempre que eu esquecia e precisava de um rápido lembrete:

# Make sure there's only **1** line for each of these 2 directives:

# Use for PHP 4.x:
#LoadModule php4_module modules/libphp4.so
#AddHandler php-script .php

# Use for PHP 5.x:
LoadModule php5_module modules/libphp5.so
AddHandler php5-script .php 

# Add index.php to your DirectoryIndex line:
DirectoryIndex index.html index.php

AddType text/html .php

# PHP Syntax Coloring
# (optional but useful for reading PHP source for debugging):
AddType application/x-httpd-php-source phps
    
por 07.02.2012 / 00:37
0

Afirmando algo óbvio aos meus olhos, você nunca afirmou como está tentando acessar o arquivo de exemplo. Você está acessando index.php diretamente (ou seja, link ) ?

Se não, observe que, se houver um index.html , ele será chamado por causa da ordem do índice de diretório:

DirectoryIndex index.html index.html.var index.php

Por fim, isso deve ser feito em serverfault.com, em vez de aqui.

    
por 03.02.2012 / 23:08
0

Eu tive um problema semelhante e finalmente consertei definindo short_open_tag = On em /etc/php.ini . Cuidado com os arquivos de configuração padrão ao atualizar!

    
por 12.10.2012 / 21:10