crear configurar linux apache virtualhost

linux - configurar - virtual host apache windows



error_log por host virtual? (11)

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

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 la <Location> de httpd.conf no parece hacer nada.

¿Hay alguna manera de tener php error_logs separados para cada host virtual?


Crear VirtualHost simple:

ejemplo de nombre de host: - thecontrolist.localhost

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

    127.0.0.1 thecontrolist.localhost en el archivo 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 check este enlace


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


Mi Apache tenía algo como esto en httpd.conf. Simplemente cambie la configuración de ErrorLog y CustomLog

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


No establezca error_log donde va su contenido de syslog , eg /var/log/apache2 , porque ErrorLog interceptará los ErrorLog . En su lugar, cree un subdir en su carpeta de proyecto para registros y haga php_value error_log "/path/to/project/logs" . Esto se aplica tanto a los archivos .htaccess como a los vhosts . También asegúrese de poner php_flag log_errors en


Para configurar el registro de Apache ( no PHP ), la forma más fácil 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


Por lo general, solo especifico esto en un archivo .htaccess o 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"


Sí, puedes intentarlo

php_value error_log "/var/log/php_log"

en .htaccess o puede hacer que los usuarios usen ini_set() al comienzo de sus scripts si desean tener un registro.

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


Si alguien viene buscando, 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 solo para desarrollo ya que display_error está activado. Notará que el registro de errores de Apache es independiente del registro de errores de PHP. Lo bueno está en php.error.log .

Consulte aquí la clave de error_reporting http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting


Tu podrías intentar:

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

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


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 .