2015-07-16 2 views
0

Я попытался перейти с Apache + cli_php на NGINX + HHVM (3.8) на Debian. Проблема заключается в том, что HHVM не может загрузить некоторые из них (/var/www/site/inc/inc.php).HHVM WSOD (белый экран), никаких ошибок для некоторых страниц

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

Ошибка браузера - 502 Плохой шлюз.

Я попытался установить эти параметры в 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 удалить первую часть пути включают, прежде чем на самом деле сайт корня?

+0

Я думаю, что он рассматривает '/ уаг/www' как корень. Можете ли вы создать '/ var/www/index.php', содержащий' echo __DIR__'? –

+0

Я сделал '/ var/www/site/test.php' с' echo __DIR__' и доступ к нему через 'example.com/test.php'. Я получаю '/ var/www/site'. – vatavale

ответ

0

Проблема была в символах конца DOS. Похоже, HHVM не интерпретирует это правильно. В браузере вы получаете ошибку 502 Bad Gateway, но ошибка терминала hhvm равна file not found. Также странно - если в этом включенном файле есть эхо-выход, проблема исчезнет.

Поэтому я конвертирую включенный файл с dos2unix, и проблема решена.

Чтобы узнать все PHP файлы и конвертировать его в Unix-стиле, запустите в корневом каталоге сайта:

apt-get install dos2unix  
find . -name "*.php" -exec dos2unix {} \; 
Смежные вопросы