我正在使用Apache 2.2.15在rhel 6.2上运行php 5.3.3,并且无法获得Apache解释的
PHP代码.
没有错误(在系统日志中,httpd / error_log或php_errors.log) – 我在php.ini中启用了错误报告:
error_reporting = E_ALL & ~E_DEPRECATED
display_errors = On
log_errors = On
error_log = /var/log/php_errors.log
然而,当我直接从我的浏览器(例如myserver.com/index.php)查看包含以下代码的index.php时,除了白屏外什么都没有出现:
当在命令行上由php执行时,我得到了预期的文本输出到终端(“Hello php World”).
什么时候,我向index.php添加一些HTML,如下所示:
Hello from within html
并使用我的浏览器查看它,它只返回“来自html内的Hello”.但是,从命令行执行时,我得到:
Hello from within html
Hello php World
因此,PHP通过CLI解析和解释,但不是由Apache解析和解释.
我已经确认index.php及其父文件结构归apache所有:apache和apache模块的selinux上下文:
chcon -t httpd_sys_script_exec_t /usr/lib/httpd/modules/*
chcon -t httpd_sys_script_exec_t /usr/lib/php/modules/*
以及要解析的.php文件:
chcon -R -h -t httpd_sys_content_t /export1
是正确的.我不认为selinux是问题,因为我没有得到任何权限错误,并且我暂时禁用了selinux echo 0> / selinux / enforce而没有得到apache解释的php成功.
php模块正在加载其配置,并且.php扩展名被理解为在httpd.conf中配置:
LoadModule php5_module /usr/lib/httpd/modules/libphp5.so
AddType application/x-httpd-php .php .phtml
PHPIniDir /etc/
并且,apache知道从以下位置寻找index.php:
DirectoryIndex index.html index.html.var index.php
在httpd.conf中设置.
我已经用尽了我的问题所在的想法 – 甚至尝试重新安装PHP – 并且肯定会欣赏任何想法.如果它正在使用,这里是我启动apache时/ var / log / httpd / error_log的内容:
[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
请帮忙!