私は現在php 5.4でサイトを運営していますが、これに先立って5.3.8でサイトを運営していました。残念ながら、php 5.4はE_ALL
とE_STRICT
を組み合わせているため、error_reporting
の以前の設定は現在機能していません。以前の値はE_ALL & ~E_NOTICE & ~E_STRICT
でした。値を1つずつ有効にする必要がありますか?
エラーが多すぎて、修正できないコードがファイルに含まれています。
コメンターが述べているように、bestオプションはエラーを修正することですが、限られた時間または知識で、それが常に可能であるとは限りません。 php.iniの変更
error_reporting = E_ALL
に
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
Php.iniにアクセスできない場合、これを.htaccessファイルに含めることができます。
php_value error_reporting 30711
これはE_ALL値(32767)と、E_STRICT(2048)およびE_NOTICE(8)値の削除です。
.htaccessファイルにアクセスできない場合、または有効になっていない場合は、おそらくブラウザー呼び出しからロードされるスクリプトのPHPセクションの先頭にこれを配置する必要があります。
error_reporting(E_ALL & ~E_STRICT & ~E_NOTICE);
それらの1つは、ソフトウェアを使用できるようにするのに役立つはずです。通知と厳密なものは、問題または潜在的な問題の指標であり、PHP 5.4ではコードの一部が正しく機能しないことがあります。
お役に立てれば。
.htaccess php_valueは、PHPサーバーAPIをWebサーバーApacheのモジュールとして使用する場合にのみ機能します。 IfModule構文を使用します。
# PHP 5, Apache 1 and 2.
<IfModule mod_php5.c>
php_value error_reporting 30711
</IfModule>
PHP Server API CGI/FastCGIを使用する場合
ini_set('error_reporting', 30711);
または
error_reporting(E_ALL & ~E_STRICT & ~E_NOTICE);
PHPコード、またはPHP構成ファイルの.user.ini | php.iniの変更:
error_reporting = E_ALL & ~E_STRICT & ~E_NOTICE
仮想ホスト、サーバーレベル。
E_DEPRACATEDも無効にする必要がある場合は、次を使用します。
php_value error_reporting 22527
私の場合、CMS Made Simpleは「E_STRICTがerror_reportingで有効になっている」および「E_DEPRECATEDが有効になっている」と不平を言っていました。その1行を.htaccessに追加すると、両方の設定ミスが解決されました。
同時に2つの場所でerror_reportingを設定すると、うまくいきました
PHPコードのどこかに
ini_set('error_reporting', 30711);
および.htaccessファイル
php_value error_reporting 30711
気をつけて、LAMP、Apache、またはこれを有効にするために使用しているものを再起動する必要があるかもしれません。これについてはしばらく頭を悩ませましたが、おそらくウェブサイトがキャッシュしていたために、サービスが再開されるまで何の影響も与えないようでした。