2016-04-28 18 views
1

私の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で読みやすくする方法はありますか?前もって感謝します!

+0

'ErrorLog $ {APACHE_LOG_DIR}/error.log'を' ErrorLog $ {APACHE_LOG_DIR}/php.log'に変更しますか? – Halcyon

+0

ファイルをchmoddingするのは通常十分ではありません。すべての親/コンテナディレクトリにアクセスする権限が必要です。ロックされたバックホールの内部にある場合、ファイルへのアクセスを許可することは無意味です。ログファイルは、apacheがrootとして実行されている間に作成されるため、ファイルはrootによって所有されています。一度phpでそれらにアクセスしようとすると、apacheはrootでなくなり、phpはファイルに対する権限を持ちません。 –

+0

さて、基本に戻ってください!これは確かに親ディレクトリのアクセス権の問題でした。今私は恥ずかしい感じ:) – Aleksiv95

答えて

1

あなたはwww-dataに(すでに/秒を存在する場合)ログディレクトリおよびログファイル/ sのownergroupを変更する必要があります。

sudo chown -R www-data:www-data /path/to/log/directory 

いけない、それはかもしれないとして777に、ディレクトリのパーミッションを変更代わりに775を使用してください。ログファイルには664を使用してください。

ます。また、グループwww-dataにシステムのユーザーを追加しない場合は、既に、システムの再起動が変更を有効にするには、その後必要になるメンバー(既存のグループを確認するためにgroupsコマンドを使用)する場合があります

sudo adduser user www-data #change 'user' to your 
+0

ありがとう!あなたが知っているのは、あなたがWindowsの世界から来てNTFSに慣れているときに、この種のものでつまずくことは簡単です。ファイルにアクセスするためには、各親ディレクトリに実行権限が必要であることを忘れていました。最終的に '/ var/log/php'を作成し、' root:www-data'にchownし、 '750 'に' chmod'を作成しました。それで、そのフォルダの中で 'php.log'を使うことができました。 PS。一時的に許可を777に変更しましたが、心配しないでください:) – Aleksiv95

関連する問題