Я использую Ubuntu 14.04 + nginx + HHVM в гнезде Unix.
У меня есть несколько проектов, все работают под одним и тем же IP-адресом в разных подкаталогах. Я пытаюсь сделать конфигурацию модульной, так как проекты меняются, нужны только небольшие изменения. Однако ни один сайт не работает. То, что я получаю, - это простая страница «404 файлов не найдена» без разметки HTML. Ничего не появилось из журнала ошибок nginx и HHVM.модульная конфигурация nginx не работает
Вот моя структура каталогов:
nginx/
main/
index.php
phpmyadmin/
index.php
laravel/
public/
index.php
И моя конфигурация Nginx:
глобальный
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name localhost;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log info;
charset utf-8;
root /usr/share/nginx;
include /etc/nginx/sites-available/main.conf;
#include /etc/nginx/sites-available/phpmyadmin.conf;
#include /etc/nginx/sites-available/laravel.conf;
include hhvm.conf;
# Deny .htaccess file access
location ~ /\.ht {
deny all;
}
}
main.conf
location/{
root /usr/share/nginx/main;
index index.php;
try_files $uri $uri/ =400;
}
hhvm.conf
location ~ \.(hh|php)$ {
fastcgi_keep_conn on;
# fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/var/run/hhvm/hhvm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
'404 Файл не найден' является сообщением об ошибке HHVM. Я думаю, вы перепутались с путями. Вместо 'fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name;' вы можете попробовать 'fastcgi_param SCRIPT_FILENAME/usr/share/nginx/main $ fastcgi_script_name;' проверить его. – PKeidel
Извините, но это не сработает. Ошибок не возникает. Кстати, hardcoding этот путь в конфигурацию кажется не очень хорошим. –
Конечно, это нехорошо, нужно было проверить, является ли $ document_root ложным – PKeidel