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
-
C: / Windows / System32 / drivers / etc
127.0.0.1 thecontrolist.localhost
en el archivo hosts -
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>
-
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.
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
.