我最近将我正在开发的 PHP 项目从运行 Apache 2.2.11 的物理机移到了运行 Apache 2.4.9 的虚拟机上。我为该项目设置了一个 VirtualHost,与我在 2.2 机上所做的类似。我知道 2.2 和 2.4 之间存在差异,我很确定我已经在 2.4 Virtualhost 配置中解决了这个问题,但我似乎遗漏了一些东西。
当我将浏览器指向我的项目 VirtualHost 的虚拟机的 URL 时(http://project.dev.lan(在本例中为 ),我得到的只是空白(白色)屏幕。我为默认的文档根目录设置了另一个 VirtualHost,它似乎运行良好;页面按预期显示。
有人能帮我指明正确的方向吗?
apachectl -S 返回:
VirtualHost configuration:
*:80 is a NameVirtualHost
default server localhost (/usr/local/etc/apache2/extra/httpd-vhosts.conf:40)
port 80 namevhost localhost (/usr/local/etc/apache2/extra/httpd-vhosts.conf:40)
alias 192.168.0.130
port 80 namevhost project.dev.lan (/usr/local/etc/apache2/extra/httpd-vhosts.conf:46)
alias project.dev.vm
ServerRoot: "/usr/local/apache2"
Main DocumentRoot: "/data/www/apache2:80"
Main ErrorLog: "/var/log/apache2/error_log"
Mutex rewrite-map: using_defaults
Mutex proxy: using_defaults
Mutex default: dir="/usr/local/apache2/logs/" mechanism=default
Mutex mpm-accept: using_defaults
Mutex proxy-balancer-shm: using_defaults
PidFile: "/usr/local/apache2/logs/httpd.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="apache2" id=2000
Group: name="www" id=103
我的 VirtualHost 文件包含:
<VirtualHost *:80>
ServerName localhost
ServerAlias 192.168.0.130
DocumentRoot /data/www/apache2:80
</VirtualHost>
<VirtualHost *:80>
ServerName project.dev.lan
ServerAlias project.dev.vm
DocumentRoot /data/www/project/SRC
DirectoryIndex index.php index.html
ServerAdmin [email protected]
ErrorLog /var/log/apache2/project.dev.lan-error_log
CustomLog /var/log/apache2/project.dev.lan-access_log common
<Directory "/data/www/project/SRC">
Options +Indexes +Multiviews +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
如果有必要,我可以发布我的 httpd.conf,尽管除了确保我的 extra/httpd-vhosts.conf 文件已包含在内之外,我没有对默认值进行太多更改。
有人能解释一下我所忽略的事情吗?
谢谢
答案1
如果在加载 php 页面时出现空白页,请设置display_errors = On
/path-to-your/php.ini
并再次启动 apache(例如sudo service apache24 onerestart
:)。这样,页面上将显示缺少的扩展名,而不是空白页。很可能是它被注释掉或丢失了/path-to-your/php/extensions.ini
(在 FreeBSD 论坛上阅读,来自 soulreaver1 的提示)