nginx, fastcgi php and invision powerboard 2.1.7 (ajax?)

Igor Sysoev is at rambler-co.ru
Mon Dec 18 20:45:58 MSK 2006


On Sun, 17 Dec 2006, Malik Abdugaliev wrote:

> Привет.
>
> Поставил nginx 0.5.4, php 5.2.0 как fastcgi. Система FreeBSD 6.1.
> На всём этом стоит движок форума invision powerboard 2.1.7. Это делалось на
> замену обычной связке - апаче+mod_php и nginx как фронтенд.

Возможно, invision powerboard не полностью совместим с режимом FastCGI.

> Всё заработало с виду нормально, но после часа эксплуатации заметили некоторые
> проблемы. Самое основное это ошибки при использовании AJAX-фичи для быстрого
> редактирования своих сообщений:
> 2006/12/17 16:10:00 [error] 55895#0: *28759 upstream prematurely closed
> connection while reading response header from upstream, client: 10.0.1.31,
> server: forum.tld, URL:
> "/index.php?s=&act=xmlout&do=post-edit-save&p=3213952&t=404709&f=129",
> upstream: "fastcgi://unix:/tmp/php.sock:", host: "forum.tld", referrer:
> "http://forum.tld/index.php?showtopic=404709"
>
> Для клиента это выглядит так - выбираешь опцию "Быстрое редактирование",
> правишь сообщение, нажимаешь "Применить исправления", появляется бегунок и на
> этом всё, более никаких изменений.
> В логах PHP при этом ругань о преждевременной (premature) кончине скрипта
> sources/ipclass.php, с указанием строки 3737 (к сожалению точных логов не
> сохранилось):
>    /**
>        * UnHTML and stripslashes _GET _POST value
>    *
>        * @param        string  Input
>        * @return       string  Cleaned Input
>        * @since        2.1
>        */
>    function parse_clean_value($val)
>    {
>        if ($val == "") # <<< вот строка номер 3737 <<<
>        {
>                return "";
>        }
>
> Я грешил на отсутствие некоторых переменных, которые не передавались в
> fastcgi, но эксперименты ними не помогли. Вот конфиг nginx в части fastcgi:
> location ~* ^.+\.(php)$ {
>    fastcgi_pass unix:/tmp/php.sock;
>    fastcgi_index  index.php;
>
> # пробовал с минимумом параметров:
>    fastcgi_param  PATH_TRANSLATED    $fastcgi_path_translated;

А чему равно $fastcgi_path_translated ?

>    fastcgi_param  QUERY_STRING       $query_string;
>
> # потом с параметрами для метода POST:
>    fastcgi_param  REQUEST_METHOD     $request_method;
>    fastcgi_param  CONTENT_TYPE       $content_type;
>    fastcgi_param  CONTENT_LENGTH     $content_length;
>
> # и со всеми параметрами, какие нашёл:
>    fastcgi_param  REDIRECT_STATUS    200;
>    fastcgi_param  SCRIPT_FILENAME    $fastcgi_path_translated;
>    fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
>    fastcgi_param  REQUEST_URI        $request_uri;
>    fastcgi_param  DOCUMENT_URI       $document_uri;
>    fastcgi_param  DOCUMENT_ROOT      $document_root;
>    fastcgi_param  SERVER_PROTOCOL    $server_protocol;
>    fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
>    fastcgi_param  REMOTE_ADDR        $remote_addr;
>    fastcgi_param  REMOTE_PORT        $remote_port;
>    fastcgi_param  SERVER_ADDR        $server_addr;
>    fastcgi_param  SERVER_PORT        $server_port;
>    fastcgi_param  SERVER_NAME        $server_name;
> }
>
> А вот так запускается php:
> PHP_FCGI_CHILDREN=10 /usr/local/php520/bin/php -a -b /tmp/php.sock
>
>
> Кроме этого возникала другая ошибка, которую мне не удалось привязать к
> конкретному действию на форуме (вероятно какие ресурсоёмкие запросы, типа
> поиска):
> 2006/12/17 16:10:50 [error] 55893#0: *29240 FastCGI sent in stderr: "PHP Fatal
> error:  Out of memory (allocated 2883584) (tried to allocate 1732099484
> bytes) in /www/forum/sources/sql/mysql_extra_que
> ries.php on line 70" while reading response header from upstream, client:
> 195.38.161.6, server: forum.tld, URL:
> "/index.php?s=&act=xmlout&do=get-member-names&name=%u041F%u0438%u043B%u044E%u0
> 43B%u044F&__=1166350279734", upstream: "fastcgi://unix:/tmp/php.sock:", host:
> "forum.tld", referrer: "http://forum.tld/index.php?act=Search&f="
>
> Т.е. php запросил 1.7 гига памяти, в то время когда ему выдано 2.8 метра )
>
>
>
> После часа экспериментов на живых людях пришлось откатиться к старой схеме с
> апачем (
>
> Есть ли у кого-нибудь какие замечания по устранению этих проблем?
> Спасибо.
> Малик.
>
>
>
>

Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list