Pregunta

En un servidor Linux que ejecuta Apache y PHP 5, tenemos varios hosts virtuales con archivos de registro separados.Parece que no podemos separar el php. error_log entre hosts virtuales.

Anular esta configuración en el <Location> del httpd.conf no parece hacer nada.

¿Hay alguna manera de tener php separado? error_logs para cada Host Virtual?

¿Fue útil?

Solución

Para configurar el apache (no el PHP) iniciar sesión, la forma más sencilla de hacerlo sería hacer:

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

Si no hay un "/" inicial, se supone que es relativo.

Página de registro de errores de Apache

Otros consejos

Si alguien viene a buscar, debería verse así:

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

Esto es sólo para el desarrollo ya que display_error está prendido.Notará que el registro de errores de Apache está separado del registro de errores de PHP.Lo bueno está en php.error.log.

Echa un vistazo aquí para el error_reporting llave http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting

Normalmente solo especifico esto en un .htaccess archivo o el vhost.conf en el dominio en el que estoy trabajando.Agregue esto a uno de estos archivos:

php_admin_value error_log "/var/www/vhosts/example.com/error_log"

El comportamiento predeterminado es que error_log() envíe el mensaje al registro de errores de Apache.Si esto no sucede, verifique la configuración de php.ini para la directiva error_log; déjela sin configurar para usar el archivo de registro de Apache para el vhost actual.

No establezcas error_log a donde tu syslog las cosas van, eg /var/log/apache2, porque sus errores serán interceptados por ErrorLog.En lugar de eso, cree un subdir en tus carpeta de proyecto para registros y hacer php_value error_log "/path/to/project/logs".esto va para ambos .htaccess archivos y hosts virtuales.Asegúrate también de poner php_flag log_errors en

¿Has intentado agregar el php_value error_log '/path/to/php_error_log a su configuración de VirtualHost?

Sí, puedes intentarlo.

php_value error_log "/var/log/php_log" 

en .htaccess o puedes hacer que los usuarios usen ini_set() al principio de sus scripts si quieren tener registro.

Otra opción sería permitir que los scripts utilicen de forma predeterminada el php.ini en la carpeta con el script, luego vaya a la carpeta raíz del usuario/host, luego a la raíz del servidor, o algo similar.Esto permitiría a los anfitriones agregar sus propios php.ini valores y propios error_log ubicaciones.

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

A mí me funciona, pero tengo que cambiar el permiso del archivo de registro.

o Apache escribirá el registro en su error_log.

Mi Apache tenía algo como esto en httpd.conf.Simplemente cambie la configuración de ErrorLog y 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>

Tu podrías intentar:

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

Pero no estoy seguro de si va a funcionar.Lo intenté en mis sitios sin éxito.

Crear un host virtual simple:

nombre de host de ejemplo: - thecontrolist.localhost

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

    127.0.0.1 thecontrolist.localhost en el archivo de 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. No olvide reiniciar su Apache.para más controlar este enlace

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top