Наткнулся при апгрейде с 5.3.8 на 5.3.9 - стал отдавать "Access denided"

confguru

ExAdmin
Команда форума
php был настроен на обработку .php и .html и при апдейте .html стал отдавать "Access denided" при запросах.

оказалось, что в php-fpm новый параметр.

===

hosting(root):/usr/local/etc#>cat php-fpm.conf.default | grep secur
; Note: chrooting is a great security feature and should be used whenever
;security.limit_extensions = .php .php3 .php4 .php5

===
искал долго... не наступите на грабли.
[440Hz]
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
admin
А никто у вас до 5.3.10 не апдейтился, ибо в 5.3.9 нашли критическую багу, но после апдейта до 5.3.10 отваливаются error_log'и =(
 

confguru

ExAdmin
Команда форума
c0dex
Да вроде везде обновились - а что с логами?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Ну у меня имеется кучка серверов, продакшн и девелоперские, так вот на всех, после обновления до 5.3.10 отрубились логировалки ошибок, то есть пишу в nginx'e в конфиге виртуалки, (как раньше) :

access_log /var/log/nginx/dstg.local.access.log;
error_log /var/log/nginx/dstg.local.error.log;

В итоге ничерта не появляется в логе, если там нотис или еще что. Но в кастом эррор хэндлере все видно, хотя раньше работали оба.
 

tony2001

TeaM PHPClub
Не понимаю.
Почему в логе NGINX должны быть ошибки PHP?
У nginx есть свой лог, у PHP есть свой лог.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
tony2001
Раньше ошибки (notice там появился или еще что, попадали в лог ngix'a)

Это было весьма удобно, теперь же что? Придется запускать именные пулы что ли для каждого вирт сервака и каждому назначать error_log?

Как разнести теперь логи ошибок для php? (От каждого виртуального сервера - в свой файл чтобы писались)
 

tony2001

TeaM PHPClub
Да, если надо делать разные настройки для разных хостов, то имеет смысл сделать это нормальным образом.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Мне нужно банально вернуть то, что раньше как-то работало само, то есть разнести логи виртуальных серверов по файлам. Как? Есть примеры? Прошу тыкнуть в гугл.
 

tony2001

TeaM PHPClub
Я что-то очень слабо себе представляю как это вообще могло работать раньше.
Есть два совершенно разных процесса - FPM и nginx.
nginx просто коннектится к FPM и передаёт ему запрос, тот его обрабатывает.
Как nginx мог получать от FPM ошибки и писать их в СВОЙ лог?
Я вижу только один вариант - ты использовал раньше простой CGI.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
tony2001
А вот мог, и что самое интересное писал. Как? Я не знаю.

Какой я cgi использовал, когда у меня был установлен ручками fpm, (собран с исходников) и он висел отдельным процессом?
 

MiksIr

miksir@home:~$
Я что-то очень слабо себе представляю как это вообще могло работать раньше.
Есть два совершенно разных процесса - FPM и nginx.
nginx просто коннектится к FPM и передаёт ему запрос, тот его обрабатывает.
Как nginx мог получать от FPM ошибки и писать их в СВОЙ лог?
Ну вообще-то STDERR поток заложен в FastCGI протокол (FCGI_STDERR). Видимо, так и работало.
 

fixxxer

К.О.
Партнер клуба
; Redirect worker stdout and stderr into main error log. If not set, stdout and
; stderr will be redirected to /dev/null according to FastCGI specs.
; Default Value: no
catch_workers_output = yes

м?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
fixxxer
поставил давно уже, протестил, результата нуль целых(
 

Sender

Новичок
php.ini error_log
> Если директива не задана, ошибки будут направляться в SAPI журналы. Например, это могут быть журналы ошибок Apache или поток stderr командной строки CLI.

У меня то же самое. Раньше error_log указываешь в nginx и туда падают так же ошибки php, сейчас туда только nginx ошибки падают.
 

fixxxer

К.О.
Партнер клуба
Ну значит правильно я сделал что поленился с 5.3.8 обновляться. Причем аж дважды:))

надо будет глянуть
 

Sender

Новичок
По поводу ошибки с логами.

Тут открыли баг https://bugs.php.net/bug.php?id=61045

Покопался в source немного,

Вот этим комитом сломали походу

r317897 | fat | 2011-10-08 19:52:27 +0600 (Sat, 08 Oct 2011) | 2 lines

- backparted from 5.4 branch (remove is_fastcgi because FPM is always fastcgi)


Вот в этом файле ./sapi/fpm/fpm/fpm_main.c поменяли sapi_cgi_log_message, стали вызывать zlog функцию.

Как побольше времени будет полезу zlog смотреть.
 

Sender

Новичок
Прикрепил патч по error_log: https://bugs.php.net/bug.php?id=61045

Имхо, это все надо встраивать в zlog_ex, но в принципе оно работает и так. По сути примерно такой код и был до того как его снесли.
 
Сверху