CMS プロジェクトをサーバーにデプロイする場合、CMS テンプレートが比較的古く、サーバーで使用される PHP のバージョンが 5.3.3 (5.3 より大きいため、新しいとみなされる) であるため、一部のページに「非推奨」と表示されます。 「カテゴリーエラーメッセージ。セキュリティ上の理由から、ページでのエラー メッセージの出力を抑制したかったので、php.ini を変更したところ、error_reporting が Off に設定されていたことがわかりました。これは、エラーがログ ファイルに出力され、ページには表示されないことを意味します。ただし、ページにエラーが表示されます。
Googleでいくつか検索した後、SOで解決策を見つけました。これは、php.iniの設定がcmsソースコードで上書きされるためです。次に、cms の error_reporting ステートメントを変更すると、次のように問題を解決できます。
if ((DEBUG_MODE & 1) == 1){ error_reporting(E_ALL & ~E_DEPRECATED);}
PHP の設定、php.ini およびオーバーライド
PHP には、設定を設定できる場所がいくつかあります。これらの設定の優先順位については理解していたので、これから言おうとしていることを確認するために、これらの設定を実験的にテストすることにしました。特に、この投稿では error_reporting に焦点を当てていますが、同じ考慮事項がどの設定にも当てはまります。ここでは、よりグローバルなものからより具体的なものまで、これらの場所のリストを示します。
1. php.ini 設定ファイルの場合。 Ubuntu には 2 つあり、/etc/php5/apache2/php.ini は php apache モジュールに使用されるものです。
2. 実際には conf.d ディレクトリです。すべてのインストールにこのモジュール化された構成があるわけではありませんが、Ubuntu の場合は、Apache モジュールの /etc/php5/apache2/conf.d にあり、このディレクトリに追加されたファイルはすべて、メインの php.ini 構成に追加されます。つまり、ここでの設定は php.ini の設定を上書きします。error.ini を追加すると、すべての仮想ホストに影響します。3.通常は /etc/apache2/sites-available に設定され、VirtualHost タグ内に「php_value error_reporting」を含めることができます。ここで、value は定数に対するブール演算の数値結果です。実際には、ニーモニック定数の使用は許可されておらず、単一の仮想ホストにのみ影響します。
4. 設定値を設定することも可能です。特に、.htaccess 内の error_reporting 設定も、3 で説明したのと同じ構文を使用します。これは、.htaccess が存在するディレクトリとすべてのサブディレクトリにのみ影響します。この場合、再起動する必要はありません。 apache.
5. ソース コード。この設定を変更できる最後の場所は、実行された PHP ソース内です。これを使用すると、関数 "error_reporting()" を呼び出して設定できます。 「ini_set( "error_reporting", )」を使用すると、スクリプトが実行されないため、コンパイル エラーが表示される可能性があります。