質問
Apache と PHP 5 を実行している 1 つの Linux サーバー上に、個別のログ ファイルを持つ複数の仮想ホストがあります。phpを分離できないようです error_log
仮想ホスト間。
この設定を上書きすると、 <Location>
の httpd.conf
何もしていないようです。
個別のphpを持つ方法はありますか error_logs
仮想ホストごとに?
解決
設定するには、 アパッチ (PHPではありません) ログを確認する場合、これを行う最も簡単な方法は次のとおりです。
<VirtualHost IP:Port>
# Stuff,
# More Stuff,
ErrorLog /path/where/you/want/the/error.log
</VirtualHost>
先頭に「/」がない場合は、相対的なものとみなされます。
他のヒント
誰かが見に来た場合、次のように表示されるはずです。
<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_error
がオンになっています。Apache エラー ログが PHP エラー ログとは別であることがわかります。良いものは入っています php.error.log
.
ここを見てください。 error_reporting
鍵 http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting
通常はこれを .htaccess
ファイル または の vhost.conf
私が取り組んでいるドメイン上で。これを次のファイルのいずれかに追加します。
php_admin_value error_log "/var/www/vhosts/example.com/error_log"
デフォルトの動作では、error_log() は Apache エラー ログに出力します。これが発生しない場合は、php.ini の error_log ディレクティブの設定を確認してください。現在の vhost の Apache ログ ファイルを使用するには、未設定のままにしておきます。
設定しないでください error_log
あなたのどこへ syslog
物事は進みます、 eg /var/log/apache2
, 、それらのエラーはインターセプトされるためです。 ErrorLog
. 。代わりに、 subdir
あなたの中で プロジェクトフォルダー ログと実行の場合 php_value
error_log "/path/to/project/logs"
. 。これは両方に当てはまります .htaccess
ファイルと仮想ホスト. 。また、必ず入れてください php_flag
log_errors
の上
を追加してみましたか php_value error_log '/path/to/php_error_log
VirtualHost 構成に影響を与えますか?
はい、試してみてもいいでしょう、
php_value error_log "/var/log/php_log"
で .htaccess
または、ユーザーに使用してもらうこともできます ini_set()
ログを記録したい場合は、スクリプトの先頭に記述します。
別のオプションは、スクリプトをデフォルトで有効にすることです。 php.ini
スクリプトのあるフォルダーに移動し、ユーザー/ホストのルート フォルダーに移動し、次にサーバーのルート フォルダーなどに移動します。これにより、ホストが独自のを追加できるようになります php.ini
価値観と自分自身の error_log
場所。
php_value error_log "/var/log/httpd/vhost_php_error_log"
私にとっては機能しますが、ログファイルのアクセス許可を変更する必要があります。
または、Apache がログをその error_log
.
私のApacheにはhttpd.confに次のようなものがありました。ErrorLog と CustomLog の設定を変更するだけです
<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>
次のことを試してみてください:
<VirtualHost myvhost:80>
php_value error_log "/var/log/httpd/vhost_php_error_log"
</Virtual Host>
しかし、うまくいくかどうかはわかりません。自分のサイトで試してみましたが、成功しませんでした。
単純な仮想ホストを作成します。
ホスト名の例:- thecontrolist.localhost
C:\Windows\System32\ドライバー\etc
127.0.0.1 thecontrolist.localhost
ホストファイル内C:\xampp\apache\conf\extra\httpd-vhosts.conf
<VirtualHost *> ServerName thecontrolist.localhost ServerAlias thecontrolist.localhost DocumentRoot "/xampp/htdocs/thecontrolist" <Directory "/xampp/htdocs/thecontrolist"> Options +Indexes +Includes +FollowSymLinks +MultiViews AllowOverride All Require local </Directory> </VirtualHost>
Apacheを再起動することを忘れないでください。多くのための チェック このリンク