error_log za virtuální Host?

hlasů
97

Na jedné Linux Server spuštěn Apache a PHP 5, máme více virtuálních hostitelů se samostatnými soubory protokolu. Nemůžeme se zdá oddělit php error_logmezi virtuálními hostiteli.

Naléhavými toto nastavení v <Location>z httpd.confnezdá se nic dělat.

Existuje způsob, jak mít oddělené php error_logspro každého virtuálního hostitele?

Položena 01/08/2008 v 19:37
zdroj uživatelem
V jiných jazycích...                            


11 odpovědí

hlasů
133

Pokud někdo přijde při pohledu by měl vypadat takto:

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

To je pro vývoj teprve od display_errorzapnutý. Můžete si všimnout, že protokolu chyb Apache je oddělená od protokolu chyb PHP. Dobrá věc je php.error.log.

Podívejte se zde na error_reportingklíč http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting

Odpovězeno 26/08/2010 v 16:29
zdroj uživatelem

hlasů
72

Chcete-li nastavit Apache ( ne PHP ) log, nejjednodušší způsob, jak to udělat, by bylo třeba udělat:

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

Není-li přední „/“ se předpokládá, že je relativní.

Apache Error Log Stránka

Odpovězeno 01/08/2008 v 20:58
zdroj uživatelem

hlasů
12

Obvykle stačí zadat to v .htaccesssouboru nebovhost.conf na doméně jsem pracoval. Přidat na jedné z těchto souborů:

php_admin_value error_log "/var/www/vhosts/example.com/error_log"
Odpovězeno 02/08/2008 v 02:10
zdroj uživatelem

hlasů
8

Výchozí chování je pro error_log () pro výstup do protokolu chyb Apache. Pokud se tak neděje zkontrolovat nastavení php.ini pro error_log směrnice - nechat nastavena pomocí souboru protokolu Apache pro aktuální vhost.

Odpovězeno 01/08/2008 v 23:20
zdroj uživatelem

hlasů
6

Nenastavíte error_log, kde vaše syslogvěci jde, eg /var/log/apache2, protože chyby dostane zachycuje ErrorLog. Místo toho vytvořit subdirve vaší složce projektu pro protokoly a dělat php_value error_log "/path/to/project/logs". To platí pro oba .htaccess soubory a vhostů . Také zkontrolujte, zda jste dal php_flag log_errorsna

Odpovězeno 02/04/2010 v 21:50
zdroj uživatelem

hlasů
5
php_value error_log "/var/log/httpd/vhost_php_error_log"

Funguje to pro mě, ale musím změnit oprávnění souboru protokolu.

nebo Apache bude zapisovat protokolu k ITS error_log.

Odpovězeno 03/07/2009 v 00:54
zdroj uživatelem

hlasů
5

Ano, můžete to zkusit,

php_value error_log "/var/log/php_log" 

V .htaccessnebo můžete mít uživatelé používat ini_set()na začátku svých skriptech, pokud chtějí mít protokolování.

Další možností by bylo umožnit skripty mají standardní php.inive složce s skriptu, pak přejděte do kořenového adresáře uživatele / hostitele, pak se ke kořeni serveru, nebo něco podobného. To by umožnilo hostitelé přidávat své vlastní php.inihodnoty a vlastní error_logumístění.

Odpovězeno 23/09/2008 v 00:29
zdroj uživatelem

hlasů
5

Už jste vyzkoušeli přidáním php_value error_log '/path/to/php_error_logdo konfigurace VirtualHost?

Odpovězeno 29/08/2008 v 07:13
zdroj uživatelem

hlasů
4

My Apache měl něco takového v httpd.conf. Stačí změnit nastavení ErrorLog a 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>
Odpovězeno 09/08/2008 v 03:51
zdroj uživatelem

hlasů
3

Mohli byste zkusit:

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

Ale nejsem si jistý, jestli bude fungovat. Snažil jsem se na mých stránkách s žádným úspěchem.

Odpovězeno 23/09/2008 v 00:22
zdroj uživatelem

hlasů
0

Vytvoření jednoduchého VirtualHost:

Příklad hostname: - thecontrolist.localhost

  1. C: \ Windows \ System32 \ drivers \ etc

    127.0.0.1 thecontrolist.localhost V souboru hosts

  2. C: \ XAMPP \ apache \ conf \ navíc \ 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. Nezapomeňte restartovat apache. po dobu delší kontrolovat tento odkaz

Odpovězeno 31/05/2018 v 06:58
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more