2011-07-20 11 views

Respuesta

2

Por lo que yo sé, Apache no revelará esa información para PHP, incluso si se ejecuta como módulo de Apache. Tiene dos posibilidades:

  • Si controla el servidor, puede activar el módulo de Apache mod_info. Genera una página HTML que se ve así:

    In file: C:/Archivos de programa/Apache Software Foundation/Apache2.2/conf/sitios.d/foo.conf 
        4: <VirtualHost *:80> 
        5: ServerName foo 
        7: DocumentRoot "C:/Sites/Foo/htdocs" 
        9: ErrorLog logs/foo-error.log 
        12: <Directory "C:/Sites/Foo/htdocs"> 
        13:  AllowOverride All 
        14:  Options Indexes FollowSymLinks 
        : </Directory> 
        : </VirtualHost> 
    

    Por supuesto, si el control de servidor sólo tiene que inspeccionar el *.conf archivos por sí mismo.

  • Siempre puede configurar PHP para enviar sus errores a una ubicación conocida (yo diría que este es el enfoque más común). Puede utilizar las directivas PHP error_log y log_errors.

0
<?php 
phpinfo(); 
?> 

Esto le dará a cada parte de la configuración php

No estoy seguro de que puede obtener la configuración de Apache, aunque

+0

No se encontró la ruta de registro de Apache. Si PHP se configurara para escribir los registros dentro de su propio registro, sería simple sin embargo. – Gedrox

+0

Tengo APACHE_LOG_DIR \t/var/log/apache2 – genesis

+0

Gracias, pero aún así no es suficiente. Puede establecer cualquier archivo utilizando la directiva ErrorLog. – Gedrox

3

PHP no tiene un comando integrado para localizar el registro de errores de Apache . Como alternativa, podría hacer algo como esto en la configuración de Apache.

ErrorLog /var/log/apache/error_log 
SetEnv APACHE_ERROR_LOG /var/log/apache/error_log 
PassEnv APACHE_ERROR_LOG 

En su script PHP $ _SERVER [ 'APACHE_ERROR_LOG'] debe ser lo que usted está pidiendo.

+0

Solución interesante. Gracias. – Gedrox

+0

Pero cuando probé la línea 'PassEnv APACHE_ERROR_LOG', la variable PassEnv APACHE_ERROR_LOG no estaba definida – Sahal

+0

simplemente estableciendo SetEnv funcionó, no hay necesidad de PassEnv ya que da una advertencia al volver a cargar apache http://davetayls.me/blog/2012/01/04/ set-custom-environment-variables-apache-php/ –

3

Para obtener la configuración de Apache, puede configurar el módulo mod_info. Mira this. Obtiene la configuración de Apache en el enlace: http://localhost/server-info. Here ejemplo en vivo.

<Location /server-info> 
    SetHandler server-info 
    AllowOverride All 
    Order allow,deny 
    Allow from all 
</Location> 

Para obtener esta información en PHP que puede usar:

<?php 
    echo(file_get_contents('http://localhost/server-info')); 
?> 
+0

Gracias, este parece el único enfoque para este problema. – Gedrox

Cuestiones relacionadas