试图在新创建的VirtualHosting云服务器下的CentOS节点中使用DigitalOcean设置Apache环境。
问题是,虽然虚拟主机本身是有效的,但PHP却不起作用。
采取的
以根用户身份登录,
yum -y install httpd php文件:/etc/httpd/conf.d/vhosts.conf
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin admin@example.org
ServerName example.org
ServerAlias www.example.org
DocumentRoot /srv/www/example.org/public_html/
ErrorLog /srv/www/example.org/logs/error.log
CustomLog /srv/www/example.org/logs/access.log combined
</VirtualHost>就像下面,
mkdir -p /srv/www/example.org/public_html
mkdir -p /srv/www/example.org/logs.php和.html测试文件如下所示:/srv/www/example.org/public_html/ (DocumentRoot)下的文件
echo "<HTML>It work's</HTML>" > /srv/www/example.org/public_html/index.html
echo "<?php echo ("It works"); ?>" > /srv/www/example.org/public_html/index.php接下来,当我将浏览器指向index.html时,它可以工作。但是当我将浏览器指向index.php时,我会得到一个空白页。
(我已经做过/检查过的事情没有任何运气)
DocumentRoot是可访问的。755和644文件。.php页面请求。/var/log/messages中也没有错误php_admin_flag engine on还请参阅下面的/etc/httpd/conf.d/php.conf内容
<IfModule prefork.c>
LoadModule php5_module modules/libphp5.so
</IfModule>
<IfModule worker.c>
LoadModule php5_module modules/libphp5-zts.so
</IfModule>
AddHandler php5-script .php
AddType text/html .php
DirectoryIndex index.php发布于 2014-05-07 12:41:13
根据我的经验,当PHP遇到严重的底层错误时,它会呈现一个空白页面。它通常很容易修复,但不幸的是,Apache日志、PHP日志或syslog中通常没有记录任何内容,从而使故障排除过程变得困难。
使用以下方法查找php.ini配置文件:
php -i | grep "php.ini"这应该会产生这样的结果:
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini用您喜欢的文本编辑器编辑这个配置文件(在本例中是/etc/php.ini),并确保打开了显示错误和启动错误。条目应该如下所示:
display_errors = On
display_startup_errors = On最后,重新启动Apache,以便读取新的PHP配置,并通过curl或浏览器访问页面。这将产生一条有助于故障排除过程的错误消息。
发布于 2014-05-07 12:55:14
您应该做的第一件事是检查在Apache配置中设置的Apache错误日志;复制如下:
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin admin@example.org
ServerName example.org
ServerAlias www.example.org
DocumentRoot /srv/www/example.org/public_html/
ErrorLog /srv/www/example.org/logs/error.log
CustomLog /srv/www/example.org/logs/access.log combined
</VirtualHost>PHP在Apache下运行,因此任何弹出的错误都会出现在服务器日志中。我建议登录到服务器&使用tail,如下所示:
tail -f -n 200 /srv/www/example.org/logs/error.log但这是Apache给你的一般日志吗?还是DigitalOcean的配置?因为/srv/www/example.org/logs/的这条路看起来很奇怪。在标准Linux下,它将位于如下位置:
tail -f -n 200 /var/log/apache2/error.log无论日志实际发送到何处,这都将是PHP和Apache在服务器上发生的事情的关键所在。
https://serverfault.com/questions/567072
复制相似问题