Nginx. No input file specified.

Ответить
Khvosticov Sergey
Сообщения: 203
Зарегистрирован: 31.12.2009
Установил себе Nginx. (Linux)
При установке готового движка, например : phpbb3. Выдаёт ошибку
No input file specified.
php работает.

Грубые логи :

Код: Выделить всё

127.0.0.1 - - [17/Mar/2010:17:18:05 +0300] "GET / HTTP/1.1" 302 5 "-" "Mozilla/5.0"
127.0.0.1 - - [17/Mar/2010:17:18:06 +0300] "GET /install/index.php HTTP/1.1" 404 61 "-" "Mozilla/5.0"
error.log

Код: Выделить всё

2010/03/17 17:16:42 [error] 6931#0: *1 open() "/var/www/nginx-default/favicon.ico" failed (2: No such file or directory), client: 127.0.0.1, server: _, request: "GET /favicon.ico HTTP/1.1", host: "127.0.0.1"
Также проверял php include "html/php.php" всё выводиться отлично , как ставлю готовый движёк сразу ошибка выскакивает что указана выше...

Помогите разобраться... :)

Khvosticov Sergey
Сообщения: 203
Зарегистрирован: 31.12.2009
Как выяснилось проблема возникла из-за неверно установленных прав на доступ к файлам. Решение:

Код: Выделить всё

sudo su
root@..... : chmod 777 /var/www/ -R
chmod - изменение прав.
777 - Право на чтение и запись
-R поставить 777 права на все папки и файлы.

Хотя могла возникнуть и из-за неправильно настроенного nginx - например неверно указанные или несуществующие пути к файлам.

Аватара пользователя
Distructor
Администратор
Сообщения: 1607
Зарегистрирован: 28.12.2009
Так же сообщение No input file specified, может отображаться при использовании связки nginx+fastcgi+php, в случае если php-скриптом возвращается ошибка (400,403,404,500 и т.д.) и пути для html-файлов выводимых при ошибках в nginx не были заданы.

Для указания фиксированной html-странички которая будет отображаться при ошибке используется директива error_page -

Код: Выделить всё

error_page   404          /404.html;
error_page   502 503 504  /50x.html;
error_page   403          http://example.com/forbidden.html;
путь к файлам (например "/404.html") указывается от корня сайта

Если же необходимо отобразить сообщение об ошибке средствами самого php, то используется директива fastcgi_intercept_errors

Код: Выделить всё

fastcgi_intercept_errors on;

Ответить