Не указан входной файл для nginx и php-cgi
Я пытаюсь запустить nginx и php-cgi на моем ПК с Windows, я дошел до того, что хочу переместить каталог html назад на два каталога, чтобы я мог как-то создать структуру.
Единственная проблема, с которой я столкнулся сейчас, заключается в том, что PHP не берет ни один файл.php. Я попытался загрузить статический HTML-файл (localhost / test.html), и он работает нормально, но localhost / info.php не работает вообще.
Кто-нибудь может дать мне несколько советов по этому поводу? Часть серверного блока может быть найдена ниже.
server {
listen 80;
server_name localhost;
root ../../www;
index index.html index.htm index.php;
#charset koi8-r;
#access_log logs/host.access.log main;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9123;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
3 ответа
Не используйте относительный путь в root
директивы. Используйте абсолютный путь.
php-cgi в Windows имеет ошибку относительно относительных путей:
[PHP-BUG] Ошибка #54955 [NEW]: FastCGI не распознает относительные пути Windows
Ваши решения:
- Абсолютные пути вроде того, что сказал Майкл Хэмптон.
- Соединения
Если вы используете стек NGINX на локальном компьютере для разработки, возможно, есть предварительно настроенный параметр, который воспроизводит Gotcha:
open_basedir = "c:/webserver.;c:/”
Вот где я обнаружил ошибку в Windows с WinNMP:
Сегодня я хотел попробовать сервер Nginx на моей машине с Windows. После настройки основных деталей блока сервера для моего проекта я назвал URL сайта. В стеке WT-NMP для быстрой настройки необходимого мне программного обеспечения. В блоке сервера мне нужно было указать мой корневой путь в другом месте, отличном от WWW.
Затем, когда я нажал на URL, я получил "Не указан входной файл" для моего сценария PHP.
Теперь я не большой читатель, так что я просто поглядывал туда-сюда и не нашел особого решения. Итак, я просмотрел файлы журнала php. Там я получил сообщение об ошибке, так как путь к папке моего проекта находится за пределами разрешенного пути: (c:/wt-nmp)
Поэтому в основном мне пришлось отредактировать значение php.init open_basedir, чтобы включить путь, по которому я сохранил свой проект. Однако здесь я мог видеть, что даже водитель считается как путь. Таким образом, я закончил тем, что разместил письмо с драйверами, поскольку, если я захочу сохранить больше сайтов на моем диске d, я не столкнусь с этой ошибкой. Это последняя строка. Я выделил текст, чтобы указать внесенные изменения.
open_basedir = "c:/wt-nmp.;d:/"
"Счастливый Nginx, хороший Nginx".