質問

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>

先頭に「/」がない場合は、相対的なものとみなされます。

Apache エラー ログ ページ

他のヒント

誰かが見に来た場合、次のように表示されるはずです。

<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_reportinghttp://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

  1. C:\Windows\System32\ドライバー\etc

    127.0.0.1 thecontrolist.localhost ホストファイル内

  2. 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>
    
  3. Apacheを再起動することを忘れないでください。多くのための チェック このリンク

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top