123

Apache と PHP 5 を実行している 1 つの Linux サーバーには、個別のログ ファイルを持つ複数の仮想ホストがあります。error_log仮想ホスト間で php を分離することはできないようです。

でこの設定をオーバーライドしても<Location>httpd.conf何も起こらないようです。

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

4

11 に答える 11

144

誰かが見に来たら、次のようになります。

<VirtualHost *:80>
    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
</VirtualHost>

がオンになっているため、これは開発専用です。display_errorApache エラー ログは PHP エラー ログとは別のものであることがわかります。良いものがありphp.error.logます。

error_reportingキーについては、こちらをご覧ください http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting

于 2010-08-26T15:29:29.597 に答える
88

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

<VirtualHost IP:Port>
   # Stuff,
   # More Stuff,
   ErrorLog /path/where/you/want/the/error.log
</VirtualHost>

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

Apache エラー ログ ページ

于 2008-08-01T19:58:45.837 に答える
14

私は通常、これを.htaccessファイルまたはvhost.conf作業中のドメインで指定するだけです。これらのファイルの1つにこれを追加します。

php_admin_value error_log "/var/www/vhosts/example.com/error_log"
于 2008-08-02T01:10:41.027 に答える
8

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

于 2008-08-01T22:20:05.117 に答える
7

エラーが によって傍受されるため、自分のものの行き先に を設定error_logしないでください。代わりに、ログ用にプロジェクト フォルダーに を作成し、 を実行します。これは、ファイルと仮想ホストの両方に当てはまります。こちらも必ず装着してくださいsyslogeg /var/log/apache2ErrorLogsubdirphp_value error_log "/path/to/project/logs".htaccess php_flag log_errors

于 2010-04-02T20:50:36.650 に答える
6

php_value error_log '/path/to/php_error_logを VirtualHost 構成に追加してみてください。

于 2008-08-29T06:13:17.963 に答える
5
php_value error_log "/var/log/httpd/vhost_php_error_log"

それは私にとってはうまくいきますが、ログファイルの許可を変更する必要があります.

または Apache はログをそのerror_log.

于 2009-07-02T23:54:59.463 に答える
5

はい、試すことができます。

php_value error_log "/var/log/php_log" 

または、ユーザーがログを記録したい場合は、スクリプトの最初に.htaccess使用することができます。ini_set()

もう 1 つのオプションは、スクリプトをスクリプトphp.iniのあるフォルダにデフォルト設定してから、ユーザー/ホストのルート フォルダに移動し、次にサーバーのルートに移動するなどです。これにより、ホストは独自のphp.ini値と独自のerror_log場所を追加できます。

于 2008-09-22T23:29:15.800 に答える
4

My Apache had something like this in httpd.conf. Just change the ErrorLog and CustomLog settings

<VirtualHost myvhost:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /opt/web
    ServerName myvhost
    ErrorLog logs/myvhost-error_log
    CustomLog logs/myvhost-access_log common
</VirtualHost>
于 2008-08-09T02:51:15.417 に答える
3

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

    <VirtualHost myvhost:80>
       php_value error_log "/var/log/httpd/vhost_php_error_log"
    </Virtual Host>

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

于 2008-09-22T23:22:10.077 に答える