HHVM WSOD(白屏),某些页面没有错误

HHVM WSOD (white screen), no errors for SOME pages

我已经尝试在 Debian 上从 Apache + cli_php 迁移到 NGINX+HHVM(3.8)。 问题是 HHVM 无法加载一些包含 (/var/www/site/inc/inc.php).

/var/www/site/index.php
             /inc/inc.php

浏览器错误是 502 Bad Gateway。

我尝试在 server.ini 中设置这些选项,但没有成功。有什么意义吗?

hhvm.sandbox.directories_root = /
hhvm.source_root = /
hhvm.sandbox.home = /
hhvm.server.always_use_relative_path = false

nginx:

server {
        server_name localhost;
        root /var/www/site;
        index index.php;
        location / {
                try_files $uri $uri/ /index.php?$args;
        }
        include hhvm.conf; #standard 3.8
}

此外,我在错误消息中是否正确提到 HHVM 在实际站点根目录之前删除了包含路径的第一部分?

问题出在 DOS 结束符上。看起来 HHVM 没有正确解释它。在浏览器中,您收到 502 Bad Gateway 错误,但终端 hhvm 错误是 file not found。同样奇怪——如果包含文件中有回显输出——问题就消失了。

所以我用dos2unix转换包含的文件,问题就解决了。

要找出所有 php 文件并将其转换为 unix 样式,运行 在站点的根目录中:

apt-get install dos2unix    
find . -name "*.php" -exec dos2unix {} \;