【.htaccess】PHPのエラー設定の覚書【ini_set】

CORESERVERでのPHPのエラー設定の覚書です。

レンタルサーバーであり、かつ、共用サーバーなので、php.iniの編集はできません。.htaccessファイルでの設定か、あるいは、ini_set()関数での設定になります。

(もっとも、CORESERVERでは、自作のphp.iniを特定のディレクトリに置くことで使用できますが、その下のサブディレクトリにはphp.iniの効果が及ばないようです。)

■ まずは、.htaccessの設定から。

・エラー出力レベル設定(初期値6135)

php_value error_reporting 6143
php_value error_reporting 8191

これは作用します。(phpinfo反映される)
E_ALLは6134。すべてのエラーを出力(E_STRICT以外)。
E_ALL | E_STRICT は8191 すべてのエラーを出力。

・エラー表示設定(初期値on)

php_value display_errors off
php_value display_errors on

これは作用します。(phpinfo反映される)
エラー表示のオン・オフを切り替えます。

・エラーログ記録設定(初期値off)

php_value log_errors off
php_value log_errors on

これは作用します。(phpinfo反映される)
エラーログ記録のオン・オフを切り替えます。

・エラー出力ファイル設定(初期値no value)

php_value error_log 'php_error.log'

任意のファイルを設定。
これは作用しない。(phpinfo反映されない)
エラーの出力ができない。原因不明。
PHP_INI_ALLなので変更できるはずなのだが。

■ 次に、ini_set()関数での設定。

上記.htaccessの設定を無効にして、今度は、実行時のファイルにini_set()関数で設定をしてみます。

//エラーログ設定
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 'Off');
ini_set('log_errors', 'On');
ini_set('error_log','php_error.log');

エラーログを取りたいのでログ関連をまとめて設定。エラーログの出力(取得)に成功。

ini_setでエラーログを指定するとログを取得できるのだが、.htaccessでの指定だとログを取得できない。原因を特定できたら報告します。

追記: 一応推測ですが、CORESERVERで、.htaccessでエラーログを記録できないのは、CGIモードで動かしている場合(php5.3)のようです。つまり、モジュールモードでapacheがphpを作動させる場合(php5.2)、.htaccessのphpの設定を読み取るのですが、cgiモードだと、それができずphpの設定を(一部)読み込まないようです。

関連記事
http://webmaster.chielog.com/php/123.html

カテゴリー: PHP, XREA/CORESERVER パーマリンク

1 Response to 【.htaccess】PHPのエラー設定の覚書【ini_set】

  1. ピンバック: 【CORESERVER】PHPのエラーログを記録する方法【XREA】 | WEBマスターの知恵ブログ

コメントを残す

メールアドレスが公開されることはありません。