104


19

仮想ホストごとのerror_log

ApacheとPHP 5を実行している1台のLinuxサーバー上に、別々のログファイルを持つ複数の仮想ホストがあります。 PHPの `error_log`を仮想ホスト間で分けることはできません。

httpd.conf`の でこの設定を上書きしても何もしないようです。

仮想ホストごとに別々のphp `error_logs`を持つ方法はありますか?

11 Answer


136


誰かが見に来た場合は、このようになります。

    ServerName example.com
    DocumentRoot /var/www/domains/example.com/html
    ErrorLog /var/www/domains/example.com/apache.error.log
    CustomLog /var/www/domains/example.com/apache.access.log common
    php_flag log_errors on
    php_flag display_errors on
    php_value error_reporting 2147483647
    php_value error_log /var/www/domains/example.com/php.error.log

`display_error`がオンになっているのでこれは開発用です。 ApacheのエラーログはPHPのエラーログとは別のものです。 良いものは `php.error.log`にあります。

ここで `error_reporting`キーについて調べてください。http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting


77


Apache(PHPではなく_)ログを設定するには、これを行う最も簡単な方法は次のとおりです。

#スタッフ、#その他スタッフ、ErrorLog /path/where/you/want/the/error.log

先頭に "/"がない場合は、相対的であると見なされます。

http://httpd.apache.org/docs/1.3/mod/core.html#errorlog[Apacheエラーログページ]


13


私は通常、これを私が取り組んでいるドメインの .htaccess`ファイルあるいは vhost.conf`で指定するだけです。 これらのファイルの1つにこれを追加して下さい:

php_admin_value error_log "/var/www/vhosts/example.com/error_log"


9


デフォルトの動作は、error_log()がApacheエラーログに出力することです。 そうでない場合は、error_logディレクティブのphp.ini設定を確認してください - 現在の仮想ホストにApacheログファイルを使用するように設定しないでください。


6


error_log`をあなたの syslog`のものが行くところ、例えば / var / log / apache2`に設定しないでください。それらのエラーは ErrorLog`によってインターセプトされるからです。 代わりに、ログ用に_project folder_に subdir`を作成し、 php_value` error_log" / path / to / project / logs "`を実行してください。 これは `.htaccess _filesとvhosts_の両方に当てはまります。 また `php_flag`とlog_errorsをつけてください。


5


あなたのVirtualHost設定に `php_value error_log '/ path / to / php_error_logを追加してみましたか?


5


はい、できます

php_value error_log "/var/log/php_log"

ロギングを行いたい場合は、スクリプトの最初にini_set()を使用させることができます。

別の選択肢は、スクリプトがデフォルトでスクリプトのあるフォルダの php.ini`に設定してから、ユーザ/ホストのルートフォルダに行き、次にサーバのルートに行くか、あるいは同様のものにすることです。 これはホストが独自の `php.ini`値と独自の error_log`の場所を追加することを可能にします。


5


php_value error_log "/var/log/httpd/vhost_php_error_log"

それは私のために働くが、私はログファイルの許可を変更しなければならない。

またはApacheはログを `error_log`に書き込みます。


4


私のApacheはhttpd.confにこのようなものを持っていました。 ErrorLogとCustomLogの設定を変更するだけです

ServerAdmin [email protected] DocumentRoot / opt / web ServerName myvhostエラーログログ/ myvhost-error_logカスタムログログ/ myvhost-access_log共通


3


あなたが試すことができます:

php_value error_log "/ var / log / httpd / vhost_php_error_log"

しかし、うまくいくかどうかはわかりません。 私は自分のサイトで試してみたが成功しなかった。