私は現在php 5.4でサイトを実行していますが、これより前は5.3.8でサイトを実行していました。残念ながら、PHP 5.4コンバインE_ALL
やE_STRICT
、そのための私の以前の設定があることを意味error_reporting
、今は動作しません。以前の値はE_ALL & ~E_NOTICE & ~E_STRICT
、一度に1つずつ値を有効にする必要がありますか?
エラーが多すぎて、ファイルに含まれているコードが多すぎて修正できません。
私は現在php 5.4でサイトを実行していますが、これより前は5.3.8でサイトを実行していました。残念ながら、PHP 5.4コンバインE_ALL
やE_STRICT
、そのための私の以前の設定があることを意味error_reporting
、今は動作しません。以前の値はE_ALL & ~E_NOTICE & ~E_STRICT
、一度に1つずつ値を有効にする必要がありますか?
エラーが多すぎて、ファイルに含まれているコードが多すぎて修正できません。
回答:
コメンターが述べたように、最善の選択肢はエラーを修正することですが、限られた時間や知識で、それが常に可能であるとは限りません。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は、WebサーバーApacheのモジュールとしてPHPサーバーAPIを使用する場合にのみ機能します。IfModule構文を使用します。
# PHP 5, Apache 1 and 2.
<IfModule mod_php5.c>
php_value error_reporting 30711
</IfModule>
PHPサーバーAPI CGI / FastCGIを使用する場合
ini_set('error_reporting', 30711);
または
error_reporting(E_ALL & ~E_STRICT & ~E_NOTICE);
PHPコード、またはPHP構成ファイルで。php.iniの変更:
error_reporting = E_ALL & ~E_STRICT & ~E_NOTICE
仮想ホスト、サーバーレベル。
PHPコードのどこかでerror_reportingを2か所に同時に設定すると、うまくいきました
ini_set('error_reporting', 30711);
と.htaccessファイル
php_value error_reporting 30711
E_DEPRACATEDも無効にする必要がある場合は、次を使用します。
php_value error_reporting 22527
私の場合、CMS Made Simpleは「error_reportingでE_STRICTが有効になっている」および「E_DEPRECATEDが有効になっている」と文句を言っていました。その1行を.htaccessに追加すると、両方の設定ミスが解決されました。
これを有効にするには、LAMP、Apacheなどを使用して再起動する必要があるかもしれません。これについてしばらく頭を悩ませましたが、おそらくウェブサイトがキャッシュしていたため、サービスが再開されるまで何の影響もないように見えました。