在新设置的digitalOcean云服务器(CentOS)中,我安装了php和Apache.网络服务器正常运行:
[root@a2m5cent01 httpd]# service httpd status httpd (pid 11232) is running... [root@a2m5cent01 httpd]# php --version | head -1 PHP 5.3.3 (cli) (built: Dec 11 2013 03:29:57)
但是如果我尝试访问任何php页面,浏览器会显示空白页面(白页).
以下是我到目前为止所做的排除故障的方法:
创建了包含以下内容的页面:.从浏览器查看时显示空白页面.
只是为了确保,apache指向正确的目录,在.html
那里放置一个静态页面,并且在浏览器中看到它很好,所以apache正在工作,目录是正确的.
在/etc/php.ini
,改变display_errors
指令On
.还是空白页面
在Apache配置文件(/etc/httpd/conf/httpd.conf
)中找到了这一行Include conf.d/*.conf
.在conf.d
目录中,有一个php.conf
包含以下行的文件:
LoadModule php5_module modules/libphp5.so
.确保此.so文件实际存在于此处.
在同一个文件中我也有这两行:AddHandler php5-script .php
和AddType text/html .php
从CLI执行php页面,它工作正常 - 所以php在本地工作.
那为什么它总是在浏览器上显示空白/白页?我还缺少什么?
编辑 根据@Nathan的建议,
我检查了Apache错误日志文件,看不到任何报告错误.
我/etc/php.ini
说,php error_log位于syslog
.所以我检查/var/log/messages
但找不到任何PHP错误消息
接下来我HTML
在包含phpinfo()
调用的php文件中放了一些正常.有趣的是,我发现即使是普通的HTML文本也不会出现.它仍然产生空白页面.
然后我检查了Apache access
日志.惊喜!GET
我试图在浏览器中加载任何PHP文件都没有请求.但GET请求所有非PHP文件都有200返回代码.
Apache 甚至没有记录任何PHP文件的访问请求.知道为什么会这样吗?
看看你的phpinfo()脚本.
<?php phpinfo(); ?>
错过了第一个"?"背后的"php" 会给出一个空白页面
我认为你的apache安装错误.这就是为什么你在网络服务器上看不到任何php页面的原因.清除删除所有现有的应用程序,如httpd,php,php-fpm,php-cli等,并尝试按此顺序清理isntall
yum install httpd -y yum install php php-common php-cli php-gd php-curl php-fpm -y
然后确保你重新启动你的httpd服务器.
service httpd restart
安装mod_fastcgi:
yum install mod_fastcgi
启动服务:
service php-fpm start
重启Apache:
service httpd restart
5.使用PHP-FPM配置Apache
打开fastcgi.conf文件:
nano /etc/httpd/conf.d/fastcgi.conf
将其添加到文件末尾:
<IfModule mod_fastcgi.c> DirectoryIndex index.html index.shtml index.cgi index.php AddHandler php5-fcgi .php Action php5-fcgi /php5-fcgi Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization </IfModule>
在"FastCgiWrapper"之后进行搜索并确保将其设置为"off"然后保存文件.
/ usr/lib/cgi-bin /目录必须存在,因此我们创建它:
mkdir /usr/lib/cgi-bin/
如果安装并启用了mod_php,我们需要将其禁用,以便在/etc/httpd/conf.d/php.conf中打开配置:
nano /etc/httpd/conf.d/php.conf
注释掉AddHandler和AddType行,使其如下所示:
# # PHP is an HTML-embedded scripting language which attempts to make it # easy for developers to write dynamically generated webpages. # <IfModule prefork.c> LoadModule php5_module modules/libphp5.so </IfModule> <IfModule worker.c> LoadModule php5_module modules/libphp5-zts.so </IfModule> # # Cause the PHP interpreter to handle files with a .php extension. # #AddHandler php5-script .php #AddType text/html .php # # Add index.php to the list of files that will be served as directory # indexes. # DirectoryIndex index.php # # Uncomment the following line to allow PHP to pretty-print .phps # files as PHP source code: # #AddType application/x-httpd-php-source .phps
保存文件并重启Apache:
service httpd restart