_sites-enabled
_から利用できる_/etc/Apache2/sites-available
_をいくつか想像してみてください。 (Debianベースのディストリビューションのみがこのように機能します。)
実際のwarning
に触れずに、特定のサイトからのphpスクリプトからのhtdocs
メッセージをミュートすることはできますか?
通常、関連を実現するための解決策がいくつかあります。
error_reporting()
ディレクティブを追加します。 error_reporting(E_ERROR);
を実行されたスクリプトに。.htaccess
_ファイルに次のように設定します:_php_flag display_errors off
_スクリプト内で_ini_set
_を使用します。
_ini_set('display_errors', 'Off');
ini_set('display_startup_errors', 'Off');
error_reporting(0);
_
警告またはエラーをスローする関数の前に_@
_を追加します。
php.ini
_を実際に言うように変更error_reporting = E_ALL ^ E_WARNING
_display_errors = 1
_ただし、これらはすべてhtdocsに触れるか、変更をグローバルに適用することを意味します。 htdocs
が読み取り専用でマウントされていると想像してください。特定のサイトのみの警告(または通知)を抑制するにはどうすればよいですか?
Debian/Ubuntuには何らかの理由で_a2ensite
_固有の構成があると想定しており、それらを変更できることを期待しています。 「利用可能なサイト」の設定例には_log_level
_ディレクティブがありますが、これはログに記録されるメッセージの量を処理します。 PHPスクリプトが出力するメッセージではありません。
_php.ini
_または_Apache2.conf
_または_httpd.conf
_に手動でセクションを追加することもできます。もし可能ならば。
以下も参照してください。
Apache vhost設定にアクセスできる場合は、もちろん、sites-availableディレクトリの仮想ホスト内でphp_flagディレクティブを使用することもできます。このように、それらはこの仮想ホストにのみ適用されます。
仮想ホスト内に次のようなものを追加します。
<IfModule mod_php5.c>
php_admin_flag display_errors off
</IfModule>
編集:
実際のエラーのみを表示する場合は、phpディレクティブerror_reporting
を使用して、表示するエラーレベルのタイプを説明する整数値を指定できます。
<IfModule mod_php5.c>
php_admin_flag display_errors on
php_admin_value error_reporting 22517
</IfModule>
これは次の設定と同等です。
error_reporting = E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_DEPRECATED;
php.ini。ここに例としてより多くの可能な値:
エラー報告値計算機:
http://www.bx.com.au/tools/ultimate-php-error-reporting-wizard
追加した :
<IfModule mod_php5.c>
php_admin_flag display_errors on
php_admin_value error_reporting 30711
</IfModule>
/ etc/Apache2/sites-enabled/workに移動すると、問題なく動作します。
はい、私はそれらの通知を修正する必要があることを知っていますが、古いスクリプトに取り組んでいるので、それに戻る必要があります。今のところ、これで私の問題が解決し、opが探していたものでした。これが誰かを助けることを願っています。
.htaccessなしで、またはグローバルに設定を適用せずに、これを行う方法はありません。 Apacheはルートフォルダー(htdocs)外のファイルを「見る」ことができず、.htaccessファイルはサイトのフォルダーにある場合にのみ機能します。 php_flagも.htaccess以外では機能しません。
したがって、基本的には、サイトごとにsome変更または.htaccessファイルなしで行うことはできません。