私のLinuxサーバーでApache2でPHP 7がCGIとして実行されています。PHPエラーが間違ったログに書き込まれました
1)すべてのPHPエラーが/var/log/apache2/error.log
代わりのphp.log
に行く:php.ini
で私は今
error_log = /var/log/apache2/php.log
を持って、私は2つの問題を抱えています。 ini_get('error_log')
がPHPのphp.log
の完全なパスを返すので、私は右のphp.ini
を編集しました。
2)PHPでこれらのファイルのいずれかを開こうとすると、権限が拒否されます。私はchmod
の両方のファイルを777に持っていますが、PHPはまだそれらにアクセスできません。
サーバーが複数回再起動されているため、構成の変更が適用されます。私のApache設定は次の通りです:
ErrorLog ${APACHE_LOG_DIR}/error.log
ScriptAlias /local-bin /usr/bin
AddHandler application/x-httpd-php7 php
Action application/x-httpd-php7 /local-bin/php-cgi7.0
<Directory "/usr/bin">
Require all granted
AllowOverride All
</Directory>
PHPエラーを正しいファイルにリダイレクトする方法と、PHPで読みやすくする方法はありますか?前もって感謝します!
'ErrorLog $ {APACHE_LOG_DIR}/error.log'を' ErrorLog $ {APACHE_LOG_DIR}/php.log'に変更しますか? – Halcyon
ファイルをchmoddingするのは通常十分ではありません。すべての親/コンテナディレクトリにアクセスする権限が必要です。ロックされたバックホールの内部にある場合、ファイルへのアクセスを許可することは無意味です。ログファイルは、apacheがrootとして実行されている間に作成されるため、ファイルはrootによって所有されています。一度phpでそれらにアクセスしようとすると、apacheはrootでなくなり、phpはファイルに対する権限を持ちません。 –
さて、基本に戻ってください!これは確かに親ディレクトリのアクセス権の問題でした。今私は恥ずかしい感じ:) – Aleksiv95