Я использую на своём веб-сайте Wordpress с plugin'ом "LiveJournal Crossposter Remake", который копировал мои посты в LJ, а потом в DW.
Но недавно он почему-то перестал это делать, хотя ни на самом сайте, ни в логах никаких ошибок не виднеется.
Я решил в том скрипте приделать записи в apache'вский error_log, чтобы последить, какие функции там запускаются, и что они делают, и увидеть, какие функции там не работают.
Вроде бы для записи в error_log, из PHP достаточно просто писать в STDERR:
fwrite(STDERR, "message\n");
В тестовом скрипте, который я вручную запускал, это вполне работало,
а в том livejournal-crossposter-remake.php почему-то вовсе не сработало,
в error_log'е вместо них появилась куча сообщений об ошибках в этом PHP-скрипте:
[error] [client мойIP-адрес] PHP Warning: fwrite() expects parameter 1 to be resource, string given in /path-to/www/blog/wp-content/plugins/livejournal-crossposter-remake/livejournal-crossposter-remake.php on line 99
и про остальные строки этого скрипта, куда я добавил такой fwrite()..
Погуглил, как вручную обратиться к stderr, и добавил в начале скрипта:
$STDERR=fopen('php://stderr', 'w');
А в функциях вот так:
global $STDERR;
fwrite($STDERR, "message\n");
вроде уже работает.
Так что же не так с оригинальным fwrite(STDERR,...) ?
https://ru-php.livejournal.com/1576639.html