アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。

■環境
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になにか編集が必要なのでしょうか?

以上、長文となりましたが、どなたかご教示いただきたく存じます。

A 回答 (3件)

http://blog.livedoor.jp/fbikqtfm/archives/508077 …

で、紹介されてました。 こちらはどうでしょうw
が、私も勉強になります。
    • good
    • 0

phpinfo() の error に関する値は どうなっていますか?


php core部
display_errorsOnOn
display_startup_errorsOffOff
error_logno valueno value
error_prepend_stringno valueno value
error_reporting11
↑となっていれば make からの気ガスルのですが、
yum なんですね。。;

この回答への補足

補足から失礼します。

PHPですが、
CentOS5.5に元から入っていたPHP5.1.6?を削除し、
yumにてインストールしております。
(依存対象パッケージもすべて入れています。)

ソースからのコンパイルでもよかったのですが、
PHP自体のバージョンアップが必要になった場合(脆弱性露見など)、
手間取るとまずいと思いまして・・・

補足日時:2011/03/19 20:58
    • good
    • 0
この回答へのお礼

たびたびお手数おかけしております。

以下となりました。
-----------------------------------------------------
■ブラウザから"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エラーが表示されてしまうのです。

お礼日時:2011/03/19 20:54

DEPRECATED ・・?



php.ini line 516あたり

error_reporting = E_ALL & ~E_DEPRECATED

の指定は どうでしょう。

私のは 書き換えが あるので、 多少ずれてますが。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

おっしゃる通り、DEPRECATED、でした。スペルミス失礼しました。

いただいた内容はすでに記述しており、
コメントアウトなどをチェックしましたが、ブラウザから起動した場合
(Apacheから動作した場合?)は反映されていました。
コマンドラインからの実行時のみ効いていないようです。

お礼日時:2011/03/19 16:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!