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

Требуется помощь в решении одной проблемы на веб сервере

СообщениеДобавлено: 02 фев 2012, 02:18
Romanuy
Код: Выделить всё
php -v
    PHP 5.3.9 with Suhosin-Patch (cli) (built: Jan 29 2012 14:40:07)
    Copyright (c) 1997-2012 The PHP Group
    Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

Народ все же обновились мы до 5.3.9 и отрубили ускоритель APC но не то и не то не помогло и я стал дальше искать решение и нашел такое решение в этом блоге вот кусок текста от туда >>>
Ложка дёгтя.

При установке на один из серверов появлялась ошибка в логах php-fpm:

Код: Выделить всё
[28-Jul-2011 12:36:28] WARNING: [pool www] child 2273 exited on signal 11 (SIGSEGV) after 2172.202986 seconds from start
[28-Jul-2011 12:36:28] NOTICE: [pool www] child 12535 started
[28-Jul-2011 12:36:35] WARNING: [pool www] child 2266 exited on signal 11 (SIGSEGV) after 2178.624133 seconds from start
[28-Jul-2011 12:36:35] NOTICE: [pool www] child 12552 started


При этом php-скрипты работали через раз:
Один раз работают, другой раз – пишет Сервис недоступен. Ну и когда писалось «Сервис недоступен», то в логах как раз светились заветные строки.

Как вариант лечения, я добавил такую строку

Код: Выделить всё
fastcgi_param PHP_ADMIN_VALUE "open_basedir=/usr/local/share/cacti/:/var/tmp/";


к блоку описания fastcgi для каждого из location’ов (пример приведён для location’а cacti). Может это быть связано с тем, что я использовал параметр open_basedir в описании location’a nagios. После этого всё заработало так, как должно быть.


Но так как я еще сосочек поросячий в этом деле и не совсем все знаю я решил попробовать только попробовать сделать что то подобное, зашел я в /usr/local/etc/nginx/ в файл fastcgi_params и прописал туда вот эти строки >>>
Код: Выделить всё
fastcgi_param  PHP_ADMIN_VALUE "open_basedir=/db/www/gardnet.tomsk.ru/forum/:/var/tmp/";

и могу с полной увереностью сказать что я сделал это не правильно так как после перезагрузки nginx и php-fpm у меня на сайте грохнулась галерея, а точнее не стало туда грузить картинки при этом стали выдаваться новые ошибки
Код: Выделить всё
Warning: md5_file(): open_basedir restriction in effect. File(/tmp/php9wFAQk) is not within the allowed path(s): (/db/www/gardnet.tomsk.ru/forum/:/var/tmp/) in /db/www/gardnet.tomsk.ru/forum/gallery.php on line 140 Warning: md5_file(/tmp/php9wFAQk): failed to open stream: Operation not permitted in /db/www/gardnet.tomsk.ru/forum/gallery.php on line 140 Warning: copy(): open_basedir restriction in effect. File(/tmp/php9wFAQk) is not within the allowed path(s): (/db/www/gardnet.tomsk.ru/forum/:/var/tmp/) in /db/www/gardnet.tomsk.ru/forum/gallery.php on line 153

но обрадовало то что данные ошибки
Код: Выделить всё
WARNING: [pool www] child 2266 exited on signal 11 (SIGSEGV) after 2178.624133 seconds from start
[28-Jul-2011 12:36:35] NOTICE: [pool www] child 12552 started


просто исчезли и перестали меня беспокоить наконец то а то signal 11 не давал нашим пользователям нормально качать торрент файлы, выглядело это так но вопрос все же остается как же правильно написать в fastcgi_params чтоб и галерея работала и ошибка из за которой весь сыр бор обратно не появилась. Заранее за любую помощь огромное СПАСИБО!!!

Re: Требуется помощь в решении одной проблемы на веб сервере

СообщениеДобавлено: 02 фев 2012, 11:07
lehisnoe
Romanuy писал(а):вопрос все же остается как же правильно написать в fastcgi_params чтоб и галерея работала

1. Для понимания, что же ты такое делаешь, желательно прочитать документацию к php:
open_basedir string
Ограничивает указанным деревом каталогов файлы, которые могут быть открыты с помощью PHP, включая сам файл.

Исходя из этого, тебе следует перечислить все пути, куда php должен иметь доступ.

Romanuy писал(а):open_basedir restriction in effect. File(/tmp/php9wFAQk) is not within the allowed path(s): (/db/www/gardnet.tomsk.ru/forum/:/var/tmp/)

В логе явно говориться, что доступ к файлу /tmp/php9wFAQk ограничен перечнем дир, перечисленных в переменной open_basedir. Т.к. /tmp отсутствует среди перечисленных дир ("/db/www/gardnet.tomsk.ru/forum/:/var/tmp/"), то php и не дает доступа к файлам, находящимся в /tmp.

Re: Требуется помощь в решении одной проблемы на веб сервере

СообщениеДобавлено: 02 фев 2012, 20:15
Андрей
Следует помнить, что проекты, написанные для php52, не работают в php53. Я на эти грабли напоролся однажды. Орала на json и еще на ряд фунций. Так что думайте.