我的设置:
# 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 为空。当我打开index.php时,它会显示其内容。
[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
答案1
看来你两者都有苏执行和SELinux启用,因此您需要进行修改以允许执行php脚本,开始检查计算机图形图像处理允许使用脚本:
getsebool -a | egrep 'cgi|builtin_scriptin'
如果不:
setsebool -P httpd_enable_cgi 1
setsebool -P httpd_builtin_scripting 1
还要检查 php 脚本是否具有必要的扩展标志,是否由 apache 进程拥有并可执行,以使 SElinux 和 suEXEC 都满意:
ls -lZ *.php
chcon -t httpd_sys_script_exec_t *.php
chmod +x *.php
chown xxxx:yyyyyy *.php
ls -l *.php
或者,如果不是公共服务器,请禁用两者。
看:http://beginlinux.com/server_training/web-server/976-apache-and-selinux
答案2
首先,我认为你应该找到第二次加载 mod_php 的位置:
[warn] module php5_module is already loaded, skipping
我非常迷信带有警告消息的 Apache 配置文件 - 有时它们的含义比他们所说的要多。
其次,尝试使用不同的方式让 mod_php 解析文件:
<IfModule php5_module>
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
</IfModule>
最后,考虑在哪里您将指令放入 mod_php:如果您有 VirtualHost 指令,您可能必须在其中启用 mod_php。
答案3
我使用了您的配置文件并将以下内容添加到文件末尾httpd.conf
。addType
, AddHandler
, PHPIniDir
.
它在 CentOS 5 上适用于我,而不显示index.php
.
答案4
解决方案是清除浏览器缓存,即按CTRL-F5
php 正在工作,但浏览器给我的是旧版本的 php 内容。