Ciber Geek >

apache

Acceder a WordPress en una red local

Con la llegada del responsive design, y todos los nombres cool que tienen las paginas que se adaptan a diferentes tamaños de pantallas, es recurrente la necesidad de probar éstas paginas en diferentes dispositivos, para lo cual, entre varias técnicas, una de mis favoritas (?) es acceder al servidor en la PC en que estamos desarrollando mediante otros dispositivos, todos conectados a una red local. Ojo, ésto no funciona si están usando el 3G de su teléfono, tienen que estar en al misma red por cuestiones de simplicidad, o sea usar el WiFi, si se quieren poner a jugar con las configuraciones avanzadas de su router, bueno, pueden hacerlo.

wordpress logo

WordPress

Acceder a una instalación de WordPress en la red local

Antes de hacerlo deben configurar el servidor (para Apache), de modo que les quede así la directiva Listen.

Listen *:80

Ésto puede llegar a variar, pero él anterior es el caso mas común.

También deben fijarse de que el Firewall no les esté filtrando el acceso.

Y aquí, la magia, deben agregar lo siguiente al archivo wp-config.php.

define( ‘WP_SITEURL’, ‘http://’ . $_SERVER[‘HTTP_HOST’] . ‘/directorio_donde_esta_wordpress’ );
define(‘WP_HOME’, WP_SITEURL);

Es pura magia, traída a ustedes gracias a las constantes WP_SITEURL y WP_HOME. Antes de hacer ésto, si podían acceder a su blog/sitio de WordPress, varias cosas no iban a funcionar, como por ejemplo la hoja de estilos y demás, tengan en cuenta que es fundamental utilizar las funciones de WordPress para definir rutas, si están hardcodeadas o escritas a mano, ésto no va a funcionar.

Ésta modificación al archivo wp-config.php lo que hace es modificar el valor sin interferir con el valor que está guardado en la base de datos, así que después es solo cuestión de borrar éstas lineas de código y listo.

Protegiendo tus directorios en Apache, ideal para WordPress

Empecemos con un viejo y conocido refrán: “En casa de herrero, cuchillo de palo“. Dicho esto, seguimos con el post, y estén atentos, ya que esto los puede salvar de un aprieto, y es super sencillo, tan sencillo que hasta yo podría hacerlo.

Evitar el listado de directorios en Apache

Seguramente estén pensando ¿A mi para que me sirve esto? Y bueno, no hay mejor forma que ejemplificando, por ejemplo, existen plugins en WordPress que almacenan archivos en la carpeta “wp-content/uploads”, muchos de estos son plugins que hacen backups o permiten descargar listados de emails, así que con un poco de Google-fu pueden llegar a encontrar muchas cosas.

http://www.google.com/#q=%22Index+of+%2Fwp-content%2Fuploads%2Fbackupbuddy_backups%22+zip

Pero los backups son aburridos y no se pueden vender, mejor vamos por un listado de mails.

https://www.google.com/search?q=”Index%20of%20%2Fwp-content%2Fuploads%2Fwp-mailinglist”%20csv

E incluso hay cosas mas interesantes, por ejemplo, el otro día encontré un sitio que vende un plugin para ayudar con el marketing de WordPress a 65 dolares y lo tiene disponible para descargar gratis en la carpeta “uploads”. Les avisé hace mas de una semana y ni siquiera intentaron bajarlo, o al menos cambiar la configuración. Pero bueno, ahora vamos a lo importante, como evitarlo.

Hay 2 formas de evitarlo (en Apache):

  1. Una forma de hacerlo, mas “artesanal”, es poniendo un archivo con el nombre “index.html” (sin comillas) en el directorio en el que quiere evitar el listado. El archivo puede estar vacío.
  2. La forma que recomendaría un sysadmin es utilizando el archivo “.htaccess” y agregando la siguiente linea:

    Options -Indexes
     

    Esto deshabilita el listado en el directorio en donde se encuentra el  archivo “.htaccess” y en todos los subdirectorios que se encuentren por debajo. 

listado directorio apache

Otra forma de hacerlo es con la directiva “IndexIgnore, por ejemplo, para que no se listen los archivos PHP se usa así “IndexIgnore *.php“, si quieren bloquear todo solo escriben el asterisco (wildcard).

Si tienen acceso al archivos de configuración de Apache esto también se puede hacer desde ahí, pero no es la situación mas habitual.