• 締切済み

PHP5.3:iniの設定内容が反映されない?

お世話になります。 ■環境 CentOS5.5(32bit)に、yumでPHP5.3.5を入れて使用しています。(remiリポジトリ使用) php.iniは、'display_errors'をOffにする以外、デフォルトの状態です。 ■状況 PHPを使ってシェルスクリプトを書いています。 ---------------------------- #!/usr/bin/php <?php  ~※~ ?> ---------------------------- 上記の※の箇所で実際に処理を書いていて、 コンソールから実行したところ、これら自体は正常に実行されています。 ただ、非推奨の関数や記述方法を使用した際に表示される 'Deplicate'エラーがコンソール上に出力されてしまいます。 (エラー自体がPHP5.3から追加されていることと、原因箇所自体は理解しています。) ■質問 ここで気になっているのは、php.iniで'display_errors'をOffにしているのに、 なぜ表示されてしまうのか、ということです。 同様の「エラーの出力される処理」をブラウザから起動した場合は エラーが抑制されていたため、php.ini自体は問題ないように思われます。 一応、シェルスクリプト上でini_set()で'display_errors'をOffにすると消えることを確認しましたので 回避自体はできるのですが、今後ほかの設定値をphp.iniで変更した場合、 影響がでそうなので、困っています。 コマンドラインから起動する場合、php.iniになにか編集が必要なのでしょうか? 以上、長文となりましたが、どなたかご教示いただきたく存じます。

みんなの回答

  • noris02
  • ベストアンサー率74% (56/75)
回答No.3

http://blog.livedoor.jp/fbikqtfm/archives/50807718.html で、紹介されてました。 こちらはどうでしょうw が、私も勉強になります。

  • noris02
  • ベストアンサー率74% (56/75)
回答No.2

phpinfo() の error に関する値は どうなっていますか? php core部 display_errors On On display_startup_errors Off Off error_log no value no value error_prepend_string no value no value error_reporting 1 1 ↑となっていれば make からの気ガスルのですが、 yum なんですね。。;

php-study-now
質問者

お礼

たびたびお手数おかけしております。 以下となりました。 ----------------------------------------------------- ■ブラウザから"phpinfo()"をコールする処理へアクセスした場合 display_errors Off Off display_startup_errors Off Off  ~中略~ error_reporting 22519 22519 ■コマンドラインから"php -r 'phpinfo();'"を実行した場合 display_errors => Off => Off display_startup_errors => Off => Off  ~中略~ error_reporting => 22519 => 22519 ----------------------------------------------------- php.iniでは以下の記述となります。 display_errors = Off display_startup_errors = Off error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE 上記から、iniを参照してくれてはいるようなのですが、 実際にシェルスクリプトとして利用すると、 DEPRECATEDエラーが表示されてしまうのです。

php-study-now
質問者

補足

補足から失礼します。 PHPですが、 CentOS5.5に元から入っていたPHP5.1.6?を削除し、 yumにてインストールしております。 (依存対象パッケージもすべて入れています。) ソースからのコンパイルでもよかったのですが、 PHP自体のバージョンアップが必要になった場合(脆弱性露見など)、 手間取るとまずいと思いまして・・・

  • noris02
  • ベストアンサー率74% (56/75)
回答No.1

DEPRECATED ・・? php.ini line 516あたり error_reporting = E_ALL & ~E_DEPRECATED の指定は どうでしょう。 私のは 書き換えが あるので、 多少ずれてますが。

php-study-now
質問者

お礼

回答ありがとうございます。 おっしゃる通り、DEPRECATED、でした。スペルミス失礼しました。 いただいた内容はすでに記述しており、 コメントアウトなどをチェックしましたが、ブラウザから起動した場合 (Apacheから動作した場合?)は反映されていました。 コマンドラインからの実行時のみ効いていないようです。