linux - error_log pro virtuellem Host?

Translate

Auf einem Linux-Server mit Apache und PHP 5 verfügen wir über mehrere virtuelle Hosts mit separaten Protokolldateien. Wir können das PHP nicht trennenerror_logzwischen virtuellen Hosts.

Überschreiben dieser Einstellung in der<Location>deshttpd.confscheint nichts zu tun.

Gibt es eine Möglichkeit, separate PHP zu habenerror_logsfür jeden virtuellen Host?

This question and all comments follow the "Attribution Required."

Alle Antworten

Translate

Zum Einstellen derApache (nicht das PHP) log, der einfachste Weg, dies zu tun, wäre:

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

Wenn es kein führendes "/" gibt, wird angenommen, dass es relativ ist.

Apache-Fehlerprotokollseite

Quelle
Translate

Wenn jemand auf der Suche ist, sollte es so aussehen:

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

Dies ist nur für die Entwicklung seitdemdisplay_errorIst eingeschaltet. Sie werden feststellen, dass das Apache-Fehlerprotokoll vom PHP-Fehlerprotokoll getrennt ist. Das gute Zeug ist drinphp.error.log.

Schauen Sie hier nach demerror_reportingSchlüsselhttp://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting

Quelle
Translate

Normalerweise spezifiziere ich dies einfach in einem.htaccessDateiordasvhost.confauf der Domain, an der ich arbeite. Fügen Sie dies einer dieser Dateien hinzu:

php_admin_value error_log "/var/www/vhosts/example.com/error_log"
Quelle
Mat
Translate

Das Standardverhalten ist, dass error_log () in das Apache-Fehlerprotokoll ausgegeben wird. Wenn dies nicht der Fall ist, überprüfen Sie Ihre php.ini-Einstellungen auf die Anweisung error_log - lassen Sie es deaktiviert, die Apache-Protokolldatei für den aktuellen vhost zu verwenden.

Quelle
Translate

Nicht einstellenerror_logwohin deinsyslogZeug geht,eg /var/log/apache2, weil sie Fehler von abgefangen werdenErrorLog. Erstellen Sie stattdessen einesubdirin deinerProjektordnerfür Protokolle und tunphp_value error_log "/path/to/project/logs". Das gilt für beide.htaccess Dateien und vhosts. Stellen Sie auch sicher, dass Sie setzenphp_flag log_errorsauf

Quelle
Translate

Haben Sie versucht, die hinzuzufügenphp_value error_log '/path/to/php_error_logzu Ihrer VirtualHost-Konfiguration?

Quelle
Translate

Ja, du kannst es versuchen,

php_value error_log "/var/log/php_log" 

im.htaccessoder Sie können Benutzer verwenden lassenini_set()am Anfang ihrer Skripte, wenn sie Protokollierung haben möchten.

Eine andere Option wäre, Skripte so zu aktivieren, dass sie standardmäßig auf "S" gesetzt sindphp.iniWechseln Sie im Ordner mit dem Skript zum Stammordner des Benutzers / Hosts, dann zum Stammverzeichnis des Servers oder ähnlichem. Dies würde es Hosts ermöglichen, ihre eigenen hinzuzufügenphp.iniWerte und ihre eigenenerror_logStandorte.

Quelle
Venus Lee
Translate
php_value error_log "/var/log/httpd/vhost_php_error_log"

Es funktioniert für mich, aber ich muss die Berechtigung der Protokolldatei ändern.

oder Apache schreibt das Protokoll in das itserror_log.

Quelle
Translate

Mein Apache hatte so etwas in httpd.conf. Ändern Sie einfach die Einstellungen für ErrorLog und CustomLog

<VirtualHost myvhost:80>
    ServerAdmin [email protected]
    DocumentRoot /opt/web
    ServerName myvhost
    ErrorLog logs/myvhost-error_log
    CustomLog logs/myvhost-access_log common
</VirtualHost>
Quelle
David Lee
Translate

Du könntest es versuchen:

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

Aber ich bin mir nicht sicher, ob es funktionieren wird. Ich habe meine Websites ohne Erfolg ausprobiert.

Quelle
Translate

Einfachen VirtualHost erstellen:

Beispiel Hostname: -thecontrolist.localhost

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

    127.0.0.1 thecontrolist.localhostin der Hosts-Datei

  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. Vergessen Sie nicht, Ihren Apache neu zu starten. für mehrprüfendieser Link

Quelle