error_log za Wirtualnej Host?

głosy
97

Linux na jednym serwerze Apache i PHP 5, mamy wiele serwerów wirtualnych z oddzielnych plików dziennika. Nie możemy oddzielić php error_logpomiędzy wirtualnymi hostami.

Przesłanianie tego ustawienia w <Location>z httpd.confnie wydają się nic zrobić.

Czy istnieje sposób, aby mieć oddzielny php error_logsdla każdego wirtualnego hosta?

Utwórz 01/08/2008 o 19:37
źródło użytkownik
W innych językach...                            


11 odpowiedzi

głosy
133

Jeśli ktoś przychodzi patrząc powinno to wyglądać tak:

<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 tylko od rozwoju display_errorjest włączony. Można zauważyć, że dziennik błędów Apache jest oddzielony od dzienniku błędów PHP. Dobre rzeczy jest php.error.log.

Spójrz tutaj na error_reportingklucz http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting

Odpowiedział 26/08/2010 o 16:29
źródło użytkownik

głosy
72

Aby ustawić Apache ( nie PHP ) log, najprostszym sposobem, aby to zrobić byłoby zrobić:

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

Jeśli nie ma wiodącym „/” zakłada się względne.

Błąd Apache Log Page

Odpowiedział 01/08/2008 o 20:58
źródło użytkownik

głosy
12

Zwykle wystarczy określić to w .htaccesspliku lubvhost.conf w domenie ja pracuję. Dodaj to do jednego z tych plików:

php_admin_value error_log "/var/www/vhosts/example.com/error_log"
Odpowiedział 02/08/2008 o 02:10
źródło użytkownik

głosy
8

Domyślnym zachowaniem jest dla error_log () w celu wyjścia do dziennika błędów Apache. Jeśli tak się nie dzieje sprawdzić ustawienia php.ini dla error_log dyrektywy - pozostawić wyłączony użyć pliku dziennika Apache dla bieżącego vhost.

Odpowiedział 01/08/2008 o 23:20
źródło użytkownik

głosy
6

Nie nastawiaj error_logsię, gdzie syslogrzeczy idzie, eg /var/log/apache2, bo błędy będą przechwytywane przez ErrorLog. Zamiast utworzyć subdirw folderze projektu dla dzienników i zrobić php_value error_log "/path/to/project/logs". Dotyczy to zarówno .htaccess plików i vhostów . Również upewnić się, można umieścić php_flag log_errorsna

Odpowiedział 02/04/2010 o 21:50
źródło użytkownik

głosy
5
php_value error_log "/var/log/httpd/vhost_php_error_log"

To działa na mnie, ale muszę zmienić uprawnienia pliku dziennika.

lub Apache będzie pisać dziennik, które reguluje error_log.

Odpowiedział 03/07/2009 o 00:54
źródło użytkownik

głosy
5

Tak, można spróbować,

php_value error_log "/var/log/php_log" 

w .htaccessczy można mieć użytkownicy korzystają ini_set()na początku swoich skryptów, jeśli chcą mieć rejestrowanie.

Innym rozwiązaniem byłoby umożliwienie skrypty do domyślnego ustawienia php.iniw folderze z skryptu, a następnie przejdź do folderu głównego użytkownika / hosta, a następnie do katalogu głównego serwera, lub coś podobnego. Pozwoliłoby to gospodarze dodać własne php.iniwartości i własne error_loglokalizacje.

Odpowiedział 23/09/2008 o 00:29
źródło użytkownik

głosy
5

Czy próbowałeś dodanie php_value error_log '/path/to/php_error_logdo konfiguracji wirtualnego hosta?

Odpowiedział 29/08/2008 o 07:13
źródło użytkownik

głosy
4

Moja Apache miał coś takiego w httpd.conf. Wystarczy zmienić ustawienia ErrorLog i 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>
Odpowiedział 09/08/2008 o 03:51
źródło użytkownik

głosy
3

Możesz spróbować:

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

Ale nie jestem pewien, czy będzie działać. Próbowałem na moich stron bez powodzenia.

Odpowiedział 23/09/2008 o 00:22
źródło użytkownik

głosy
0

Tworzenie prostych VirtualHost:

Przykładem hosta: - thecontrolist.localhost

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

    127.0.0.1 thecontrolist.localhost w pliku hosts

  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. Nie zapomnij, aby ponownie uruchomić apache. dłużej sprawdzić ten link

Odpowiedział 31/05/2018 o 06:58
źródło użytkownik

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