Не указан входной файл для 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

Ваши решения:

  1. Абсолютные пути вроде того, что сказал Майкл Хэмптон.
  2. Соединения

Если вы используете стек 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".

Другие вопросы по тегам