Страница 1 из 1

Некорректная работа php-сgi

Добавлено: 2008-06-05 0:11:26
catalyst
Доброй ночи.
Понадобилось поставить на CentOS 5.1 - nginx + fcgi. Воспользовался материалом, http://www.lissyara.su/?id=1532.
С помощью этой документации устанавливал на FreeBSD, до сих пор отлично работает.
Но тут что-то не задалось, nginx работает нормально, а php не обрабатывает, выдаёт "No input file specified."
Сам fcgi запускается корректно и висит на порту *:8888, проверил.
По крайней мере на одном сайте, проверку делали так: lsof -i tcp:8888, у меня команда выдаёт следующее:

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

php-cgi 22677  www    0u  IPv4 1907730       TCP *:ddi-tcp-1 (LISTEN)
php-cgi 22678  www    0u  IPv4 1907730       TCP *:ddi-tcp-1 (LISTEN)
php-cgi 22679  www    0u  IPv4 1907730       TCP *:ddi-tcp-1 (LISTEN)
php-cgi 22680  www    0u  IPv4 1907730       TCP *:ddi-tcp-1 (LISTEN)
php-cgi 22681  www    0u  IPv4 1907730       TCP *:ddi-tcp-1 (LISTEN)
php-cgi 22682  www    0u  IPv4 1907730       TCP *:ddi-tcp-1 (LISTEN)
php-cgi 22683  www    0u  IPv4 1907730       TCP *:ddi-tcp-1 (LISTEN)
php-cgi 22684  www    0u  IPv4 1907730       TCP *:ddi-tcp-1 (LISTEN)
php-cgi 22685  www    0u  IPv4 1907730       TCP *:ddi-tcp-1 (LISTEN)
php-cgi 22686  www    0u  IPv4 1907730       TCP *:ddi-tcp-1 (LISTEN)
php-cgi 22687  www    0u  IPv4 1907730       TCP *:ddi-tcp-1 (LISTEN)
Буду рад, если подтолкнёте к решению проблемы.

Вот часть скрипта запуска spawn-fcgi:

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

#!/bin/bash

## ABSOLUTE path to the spawn-fcgi binary
SPAWNFCGI="/usr/local/bin/spawn-fcgi"

## ABSOLUTE path to the PHP binary
FCGIPROGRAM="/usr/local/bin/php-cgi"

## TCP port to which to bind on localhost
FCGIPORT="8888"

## number of PHP children to spawn
PHP_FCGI_CHILDREN=10

## maximum number of requests a single PHP process can serve before it is restarted
PHP_FCGI_MAX_REQUESTS=1000

## IP addresses from which PHP should access server connections
FCGI_WEB_SERVER_ADDRS="127.0.0.1"

# allowed environment variables, separated by spaces
ALLOWED_ENV="ORACLE_HOME PATH USER"

## if this script is run as root, switch to the following user
USERID=www
GROUPID=www

Re: Некорректная работа php-сgi

Добавлено: 2008-06-09 5:18:44
garrotte
показали-бы еще nginx.conf, если не ошибаюсь, косяк там нужно искать.. глянте его логи..

Re: Некорректная работа php-сgi

Добавлено: 2008-06-09 9:35:43
LMik
garrotte писал(а):показали-бы еще nginx.conf, если не ошибаюсь, косяк там нужно искать.. глянте его логи..
+1

Похоже путь не правльный передается...

Re: Некорректная работа php-сgi

Добавлено: 2008-08-18 14:54:42
arkan
А можно вопрос ?
куда должен путь передоваться ?

понимаю что вот в этой строчке должен быть указан путь к скрипту
fastcgi_param SCRIPT_FILENAME /usr/local/www/nginx$fastcgi_script_name;
но к какому скрипту и где его взять ?

Re: Некорректная работа php-сgi

Добавлено: 2008-08-19 18:21:23
paix
arkan писал(а):А можно вопрос ?
куда должен путь передоваться ?

понимаю что вот в этой строчке должен быть указан путь к скрипту
fastcgi_param SCRIPT_FILENAME /usr/local/www/nginx$fastcgi_script_name;
но к какому скрипту и где его взять ?

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

        location / {
            root   /home/vhosts/${domainame}/public_html;
            index  index.html index.php;
        }

        location ~ \.php$ {
            #fastcgi_pass   127.0.0.1:1026;     
            fastcgi_pass unix:/tmp/php-fpm/${domainame}.sock;  

            root  /home/vhosts/${domainame}/public_html;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            
            fastcgi_index  index.php;
            include        fastcgi_params;
        }

Re: Некорректная работа php-сgi

Добавлено: 2008-08-19 18:55:56
arkan
ЫЫЫЫ
я по статье делал
http://www.lissyara.su/?id=1532
зато уже чтото новенькое
The page you are looking for is temporarily unavailable.
Please try again later.

Re: Некорректная работа php-сgi

Добавлено: 2008-08-19 19:44:14
paix
много нового можно узнать, если не обламаться и заглянуть в логи. Например в error лог нжинкса.

Re: Некорректная работа php-сgi

Добавлено: 2008-08-19 19:56:05
arkan
ворчит на
unix:/tmp/php-fpm/${domainame}.sock;
ненайден файл или директория
while connecting to upstream

или здесь чтото надо заменить типа domainame ?

Re: Некорректная работа php-сgi

Добавлено: 2008-09-30 12:33:40
IceDragon
Эта ошибка связана с тем, что все запросы касающиеся файлов с расширением .php напрямую транслируются fcgi

я решил эту проблему так:

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

        location / {
            root   /usr/local/www/main;
            index  index.php index.html index.htm;
        }

        location ~ \.php$ {
      if (!-f /usr/local/www/main$fastcgi_script_name) {
        return   404;
      }
            fastcgi_pass   127.0.0.1:1026;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /usr/local/www/main$fastcgi_script_name;
            include        fastcgi_params;
        }    
это модуль rewrite (http://sysoev.ru/nginx/docs/http/ngx_ht ... odule.html)

конкретно кусок

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

if (!-f /usr/local/www/main$fastcgi_script_name) {
        return   404;
}
проверяет файл на существование и, если его не существует, то возвращает код ошибки 404.

как говорится RTFM ;)

Удачи в исследованиях

Re: Некорректная работа php-сgi

Добавлено: 2008-09-30 14:02:45
paix
IceDragon писал(а):Эта ошибка связана с тем, что все запросы касающиеся файлов с расширением .php напрямую транслируются fcgi

[/code]
это модуль rewrite (http://sysoev.ru/nginx/docs/http/ngx_ht ... odule.html)

конкретно кусок

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

if (!-f /usr/local/www/main$fastcgi_script_name) {
        return   404;
}
проверяет файл на существование и, если его не существует, то возвращает код ошибки 404.

как говорится RTFM ;)

Удачи в исследованиях
1. ошибка связана с невнимательностью, в конфиге нужно указывать реальный путь к пхп-фпм сокету или порту.
2. вам самому ртфм читать нужно. Нжикс и так выдаст 404 если файла нет. Мало того, использовать такую конструкцию избыточно и вредно, Сысоев об этом уже устал говорить ^)

Re: Некорректная работа php-сgi

Добавлено: 2008-09-30 17:47:00
IceDragon
Ну ртфм то я читаю.
Только подозреваю, что у этого человека, так же как и у меня, fcgi не настроен на соединение с сокетом, поэтому этот совет в том виде, который есть не помогает.

PS а 127.0.0.1:1026 это конечно не адрес с портом :)

Re: Некорректная работа php-сgi

Добавлено: 2008-09-30 18:12:26
IceDragon
исследовал проблему дальше - выяснил что есть директива
fastcgi_intercept_errors on;
которая всю обработку ошибок перенаправляет с fcgi на nginx. т.е. проблема просто в том была что вместо nginx ошибки обрабатывал fcgi.

т.е. моя предидущая инструкция

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

if (!-f /usr/local/www/main$fastcgi_script_name) {
        return   404;
}
действительно была излишней :), спасибо за толчок.

а к сокету или к ip адресу подключаться - это не имеет значения.

Re: Некорректная работа php-сgi

Добавлено: 2008-10-03 13:05:13
zingel
а к сокету или к ip адресу подключаться - это не имеет значения.
Чего написал, сам понял? =)