Archivo

Entradas Etiquetadas ‘apache’

Registrar IP del header X_FORWARDED_FOR en Apache

sábado, 22 de marzo de 2014 Sin comentarios

Hay algunas instalaciones de Apache que no son accesibles directamente desde Internet, sino que a través de un proxy inverso cache o balanceo de carga, esto significa que en los registros (logs) de acceso las visitas aparecerán con la IP del proxy/balanceador en lugar de la IP del visitante.

image

La IP real del visitante la envía el proxy/balanceador en el header “X_FORWARDED_FOR” el que debe usarse en los scripts en lugar de REMOTE_ADDR, para que Apache la utilice en los registros en el archivo de configuración del virtual host se deben agregar estas líneas: (el del sitio por defecto está ubicado en /etc/apache2/sites-available/default)

LogFormat «%{X-Forwarded-For}i %l %u %t \»%r\» %>s %b \»%{Referer}i\» \»%{User-Agent}i\»» proxy
SetEnvIf X-Forwarded-For «^.*\..*\..*\..*» forwarded
CustomLog ${APACHE_LOG_DIR}/direct.log proxy env=forwarded

image

Esto creará un archivo direct.log en la carpeta de logs del apache que es por defecto /var/log/apache2 en Debian/Ubuntu Server.

Luego de guardar los cambios y reiniciar el servicio aparecerá el mencionado archivo, el que contendrá la IP del visitante como primer campo.

image

Fuente: http://www.techstacks.com/howto/log-client-ip-and-xforwardedfor-ip-in-apache.html (incluye script para probar el registro)

Error pagina en blanco phpMyAdmin

jueves, 20 de marzo de 2014 Sin comentarios

Hoy traté de entrar al phpMyAdmin y la página me salía en blanco, además no tenía ningún registro en los errores de PHP, por lo que busqué en Internet sobre el problema y hallé que la directiva disable_functions del php.ini estaba haciendo conflicto.

Dentro de las funciones deshabilitadas tenía la función ini_set, la que phpMyAdmin requería para funcionar, la quité del listado, reinicié el servicio Apache y ahí volvió a funcionar phpMyAdmin.

image

Actualizar PHP en paquete Xampp

domingo, 21 de marzo de 2010 9 comentarios

La ultima version de Xampp viene con PHP 5.3.1 y la ultima version es la 5.3.2.

¿Para que quiero actualizar PHP?

Para los programas que escribo no hay problema en usar una version u otra, pero sin embargo el programa MediaWiki no es compatible con esta version y si la detecta se niega a ejecutar.

image

Asi que para ejecutar MediaWiki hay que actualizar PHP, primero descargas la version thread safe desde la pagina oficial

http://windows.php.net/download/

image

Descargas la version Zip.

Ahora debes detener el servicio de apache, ejecutando en un cmd como administrador

net stop apache2.2

image

Ahora anda a C:\Xampp y la carpeta php renombrala a php_old u otro nombre, luego crea una carpeta llamada php. Esto es para respaldar la instalacion actual y ademas debes copiar un archivo desde esta carpeta  a la carpeta nueva, al terminar el proceso puedes eliminarla si quieres.

image

En la nueva carpeta php copia los archivos de la ultima version de php que descargaste

image

Luego de la carpeta php_old copia el archivo php.ini a la carpeta php, luego abrelo. Busca esta seccion y la linea seleccionada

image

Cambialo por esto, lo que esta seleccionado

image

Guarda los cambios y en el cmd que abriste al inicio ejecuta este comando

net start apache2.2

image

Deberia decir que se inicio correctamente, de lo contrario si falla al iniciar revisa los pasos anteriores o ejecuta apache directamente, ahi mostrara el error en pantalla.

C:\xampp\apache\bin\httpd.exe

Ahora puedes iniciar el navegador y en el caso de la instalacion de MediaWiki se podra realizar sin ningun problema.

image

La instalacion de MediaWiki se detallara en otro post…

Enjoy

Categories: Webmaster, Windows Tags: , , , ,

Personalizar pagina de error HTTP 404

sábado, 8 de diciembre de 2007 5 comentarios

Una de las paginas mas visitadas es la de error 404 ya que llegan mediante enlaces caducados, errores de tipeo, buscadores con indices desactualizados, cuando los buscadores buscan el robots.txt de tu sitio o los navegadores cuando buscan el favicon.ico, pero la pagina de error predeterminada

Not Found
The requested URL /archivo/que/no/existe was not found on this server.
______________________________________________________________
Apache {version} at {nombre_del_host} – {modulos instalados}

Esa pagina la podemos personalizar para que pueda lucir asi por ejemplo

Error 404
El archivo que has solicitado no existe en el servidor

(Link home)
(Codigo adsense)
(Codigo google analytics y/o statcounter)

Y asi el visitante puede buscar la pagina en otras secciones del sitio, ademas puedes instalar codigos estadistica, mantener diseño sitio, etc…

Para cambiar esta pagina debes hacer estas dos cosas:

  1. Crear la(s) pagina(s) de error y guardarlas como HTML, PHP, etc
  2. Configurar el servidor para que las use cuando haya un error HTTP.

Para crear las paginas puedes usar desde el bloc de notas hasta Frontpage o Dreamweaver y ahi incorporar diseño, CSS, scripts, etc.

La configuracion del servidor dependera de cual sea, en el mayor de los casos es Apache, si es asi continua…

Debes crear un archivo archivos .hta_ccess el que debe contener lo siguiente:
ErrorDocument 404 /error.html

Obviamente cambias error.html por el nombre que le hayas puesto, debes dejar el / inicial.

Este mismo procedimiento puedes hacer para personalizar las paginas de otros errores, aqui hay una lista de los mas comunes

  • 400 = Error en la peticion del navegador al servidor
  • 401 = La pagina usa Autenticacion HTTP y se ha presionado el boton cancelar en el cuadro que te pide usuario/contraseña
  • 403 = No tienes permisos de acceso a la carpeta, se puede restringir poniendo Deny from All en un archivos .hta_ccess dento de la carpeta a bloquear.
  • 404 = El descrito anteriormente, archivo/carpeta no existente en el servidor
  • 500 = Error interno del servidor, ocurre cuando el archivos .hta_ccess tiene errores de sintaxis o el script CGI arroja errores, el detalle lo puedes ver en el log del servidor.
  • 503 = Servidor fuera de servicio temporalmente

Para personalizar todos estos errores puedes crear una pagina para cada uno y poner en el archivos .hta_ccess

ErrorDocument 400 /error400.htm
ErrorDocument 401 /error401.htm
ErrorDocument 402 /error402.htm
ErrorDocument 403 /error403.htm
ErrorDocument 404 /error404.htm
ErrorDocument 500 /error500.htm
ErrorDocument 501 /error501.htm
ErrorDocument 503 /error503.htm

Asi para evitar crear tantos archivos puedes usar PHP y solo crear una pagina con un parametro donde ira el codigo del error, el script puedes personalizarlo para colocar los mensajes de cada error, asi quedaria el archivos .hta_ccess

ErrorDocument 400 /error.php?error=400
ErrorDocument 401 /error.php?error=401
ErrorDocument 402 /error.php?error=402
ErrorDocument 403 /error.php?error=403
ErrorDocument 404 /error.php?error=404
ErrorDocument 500 /error.php?error=500
ErrorDocument 501 /error.php?error=501
ErrorDocument 503 /error.php?error=503

El script seria asi mas o menos

[sourcecode language=»php»]

Error

Volver al home

[/sourcecode]


Aqui yo he hecho uno para macroflood, lo pueden ver en funcionamiento aqui: 400 401 403 404 500 y aplicado 404

Este ejemplo lo pueden descargar tambien, incluye todos los errores explicados, la opcion de notificar admin y una imagen de Nelson de Los Simpsons para errores de acceso denegado (401 y 403)

DESCARGAR EJEMPLO

No olviden dejar su post si funciono el codigo, opiniones, etc xD

NOTA: He tenido que poner los archivos .hta_ccesscomo imagen pues si los ponia como texto el servidor me arrojaba error 406.