ホームページ  >  記事  >  バックエンド開発  >  PHP 構成、php.ini、およびカバレッジの問題

PHP 構成、php.ini、およびカバレッジの問題

WBOY
WBOYオリジナル
2016-06-23 13:24:191015ブラウズ

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);}
以下は、Stefano Locati のブログからの詳細な説明です。

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", )」を使用すると、スクリプトが実行されないため、コンパイル エラーが表示される可能性があります。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。