これは基本的にこれらの質問と同じです:
https://stackoverflow.com/questions/8677493/php-fpm-doesnt-write-to-error-log
[〜#〜] but [〜#〜]Ubuntu 16.04でPHP 7。
/ etc/php/7.0/fpm/pool.d/www.conf:
catch_workers_output = yes
php_flag[display_errors] = on
php_admin_value[error_log] = /var/log/fpm-php.www.log
php_admin_flag[log_errors] = on
/var/log/fpm-php.www.log
は存在し、www-data
が所有しています。
/ etc/php/7.0/fpm/php.ini:
log_errors = On
Nginx仮想ホストのサーバーブロック
access_log /var/log/myapp/access.log;
error_log /var/log/myapp/error.log error;
/var/log/myapp/access.logが存在し、www-data
が所有しています。
しかし、エラーが発生しても、指定されたログファイルでエラーが発生することはなく、他の場所でもエラーを見つけることができません。
私は他の質問のすべての提案を調べましたが、うまくいく答えが見つかりませんでした。それらの回答が投稿されてから何かが変わったと思います。助言がありますか?
上記のコメントthe_nuts によって解決されました。ディレクトリとファイルが存在しませんでした。
診断するために、私は追加しました:
print("\n\n<br><br>log_errors: ".ini_get('log_errors'));
print("\n\n<br><br>error_log: ".ini_get('error_log'));
私のコードの先頭に(WordPressプラグイン)。これは出力されます:
log_errors: 1
error_log: /usr/local/etc/php-fpm.d/fpm.log
端末では、lsを使用してファイルとディレクトリが見つからないことを学習しました。
ls /usr/local/etc/php-fpm.d/fpm.log
ls /usr/local/etc/php-fpm.d/
出力された
ls: cannot access '/usr/local/etc/php-fpm.d/fpm.log': No such file or directory
ls: cannot access '/usr/local/etc/php-fpm.d': No such file or directory
修正するには:ディレクトリを/ usr/local/etcに変更し、がディレクトリとファイルを作成してから、所有者をwww-data:www-data
cd /usr/local/etc
Sudo mkdir php-fpm.d
cd php-fpm.d
Sudo touch fpm.log
Sudo chown -R www-data:www-data fpm.log
ファイルとディレクトリが存在する場合は、実行します
ls fpm.log -l
所有者がrootの場合:
-rw-r--r-- 1 root root 0 Jun 23 19:52 fpm.log
走る
Sudo chown -R www-data:www-data fpm.log
webサーバーに所有権と書き込みアクセス権を与える
-rw-r--r-- 1 www-data www-data 12848 Jun 23 20:07 fpm.log