Sanal Sunucu başına error_log?

10 Cevap php

Apache ve PHP 5 çalışan bir Linux Server, biz ayrı çetere ve her şeyi ile çoklu sanal konaklar var. Biz sanal konaklar arasında ayırmak için görünmüyor olabilir tek şey php error_log. <Location> httpd.conf hiçbir şey görünmüyor içinde bu ayarı geçersiz.

Ben bir şey göz ardı mı? Her Sanal Sunucu için ayrı php error_logs için bir yolu var mı?

10 Cevap

Apache (not the PHP) günlüğünü ayarlamak için, bunu yapmak için en kolay yolu yapmak olacaktır:

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

Hiçbir lider "/" göreli olduğu varsayılır varsa.

Apache Error Log Page

Biri seyir gelirse bu gibi görünmelidir:

<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>

This is for development only since display_error is turned on. You will notice that the apache error log is separate from the php error log. The good stuff is in php.error.log. Take a look here for the error_reporting key http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting

. Ben genellikle sadece bir htaccess dosyası üzerinde çalışıyorum etki or Vhost.conf Bu belirtin:

php_admin_value hatalar.log "/ var / www / vhosts / example.com / hatalar.log"

Varsayılan davranış error_log () Apache hata günlüğüne çıktı içindir. Geçerli Sankon için Apache log dosyasını kullanmak için unset bırakın - bu hatalar.log yönergesi php.ini ayarlarını kontrol oluyor değilse.

error_log sizin syslog şeyler nereye gittiğini koymayın, eg /var/log/apache2, onlar hataları ile ele alacak, çünkü ErrorLog. Bunun yerine, günlükleri için project folder bir subdir oluşturmak ve mutlaka php_value error_log "/path/to/project/logs". Bu, her iki .htaccess files and vhosts için de geçerlidir. Ayrıca emin php_flag log_errors koymak yapmak

Eğer VirtualHost yapılandırması için php_value error_log '/path/to/php_error_log ekleyerek denediniz mi?

Benim Apache httpd.conf böyle bir şey vardı. Sadece ErrorLog ve CustomLog ayarlarını değiştirmek

<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>

yes, you can try php_value error_log "/var/log/php_log" in .htaccess or you can have users use ini_set() in the beginning of their scripts if they want to have logging

Başka bir seçenek, komut dosyası ile klasöründeki php.ini için varsayılan komut dosyalarını etkinleştirin sonra kullanıcı / host 'nin kök klasörüne gidin, sonra sunucunun kök, ya da ona benzer bir şey olacaktır. Bu bilgisayarlar kendi php.ini değerlerini ve kendi hatalar.log yerleri eklemek için izin verecek.

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

Bu benim için çalışıyor, ama ben günlük dosyasının izni chage var.

Veya Apache kendi error_log için günlüğü yazacak.

Eğer deneyebilirsiniz:

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

Ama işe gidiyor, emin değilim. Ben hiçbir başarı ile benim sitelerde çalıştı.