WordPress en Raspberry Pi con lighttpd y php5 (III)

Bueno, en los anteriores posts dedicado a esta bonita y espantaja tarea de hacer correr a WordPress en una Raspberry Pi que corre un servidor web lighttpd os comentaba al final que descubrí un detallejo que podría tener interés explicar.

Dado que soy un principiante en estas cosas y que de administración de sistemas/redes/servidores se bastante poco, es posible que algún ser humano más espabilado que yo pueda decir que estoy haciendo tonterías… pues bien, para eso está el dejar comentarios… los espero con ansia para aprender de ellos.

Pero… ¿Cual es el problema con WordPress y la Raspberry Pi?

Pues resulta que yo todo alucinado con los resultados que estaba obteniendo decidí llevármela a presumir un poco  y que la vieran algunas gentes a las cuales tengo un profundo respeto por su sabiduría en esto de los bits. Cual fue mi sorpresa al pinchar la Raspberry en otra red distinta a la de mi casa y comprobar que WordPress no funcionaba como era debido. Aparte de quedarse esperando sin límite a la carga de la página, aparecía la página sin formato ninguno. Afortunadamente, la pista crucial me la dio Javi, el informático de mi trabajo, que advirtió al ver el código fuente de la página que en algunas rutas de acceso a algunos archivos (el de la propia hoja de estilos, por ejemplo) figuraba una IP… que no era sino la que me había otorgado el servidor DHCP del router de mi red doméstica cuando instalé WordPress en la Raspberry… Por eso no cargaba ni cargaría la página… y al momento di con el quid de la cuestión.

WordPress no está pensado para servidores móviles

Y la Raspberry Pi lo es, porque podemos coger nuestra Raspberry y pincharla en una red del vecino, o en el trabajo o donde queramos porque para eso tiene un tamaño un poco más grande que una tarjeta de crédito.

El problema viene porque WordPress almacena una variable, la dirección web del sitio y de la página de inicio, que es la que luego usará para generar los enlaces a los archivos que forman las páginas. Cuando el script de instalación creó el archivo wp_config.php, usó la IP que tenía entonces el servidor. Ahora, al cambiar la IP de nuestra maquinita ya que hemos conectado a otra red y su DHCP nos habrá asignado otra, los navegadores estarán pidiendo los archivos mediante enlaces equivocados… y la cosa no funcionará.

La cosa, en pricipio , parece tan sencilla como acceder al panel de control de WordPress -> Ajustes -> Generales  y cambiar los valores de Dirección del sitio (URL), donde aparecería la IP original por la nueva… pero de eso nada…

Hay que tocar en las tripas de WordPress

Pues sí… tenemos que tocar ahí… y esas tripas no son sino las tablas de MySQL donde WordPress almacena el contenido y la configuración de nuestro sitio. Después de investigar un poco, resulta que esta variable está almacenada en la tabla wp_options de la base de datos. La variable se llama siteurl y es la que debemos cambiar para que todo vuelva a funcionar.

OJO, CUIDADÍN CON LO QUE HACES A PARTIR DE AHORA PORQUE PUEDES, COMO YO HE HECHO, CARGARTE TODO TU WORDPRESS… ¡¡¡ESPECIAL ATENCIÓN A LA CLAUSULA WHERE DE LA SENTENCIA UPDATE QUE VAS A HACER!!!

Lo primero es acceder a la base de datos, como ya expliqué el otro día, lo haces a través de la línea de comandos:

Una vez que te aparezca el prompt que te indica que el cliente de MySQL está dispuesto a recibir órdenes y, si has conectado con el servidor sin especificar la base de datos, es el momento de conectar con ésta mediante use wordpress. Ahora puedes pajarear un poco desoxidando tu SQL o pasar directamente, sin pensártelo, a cambiar la IP. Yo por lo menos, prefiero mirar primero a ver cómo están las cosas:

Bueno, ya tenemos claro qué campos tiene la tabla… como os he dicho, la opción que tenemos que modificar se llama siteurl… luego vamos a ver, antes de nada, qué valor almacena:

Ahí tenéis el valor que ahora no es válido… pues nada, imaginad que ahora, mediante ifconfig, por ejemplo, habéis obtenido como IP de vuestra máquina la 172.23.2.199… pues cambiamos el valor en la tabla y listos:

Y ahora que todo ha ido bien, ya podremos acceder a nuestro Blog sin problemas.

En casa del herrero, cuchillo de palo…

Bien, ¿habéis tomado nota de la advertencia que os he hecho unas líneas atrás? Así lo espero… ya que yo me despisté y se me olvidó poner la clausula where en la sentencia update… y el efecto ha sido que todas las opciones tienen el “option_value” con el mismo valor… Resultado: WordPress descojonado… no diréis que no os lo advertí…

En mi próximo post voy a tratar de daros un script de python para hacer todo esto más fácil… pero antes tengo que volver a instalar todo otra vez… No pasa nada… ¡¡¡esto es Linux!!!

 

 

La picantosa o rin-ran: Tuéstame ese bacalao

Plato y rebanada de pan con rin-ran o picantosa, sabroso aperitivo murciano

No recuerdo la primera vez que comí rin-ran (así lo llaman en el pueblo de mi padre, Abarán, en el murciano Valle de Ricote, aunque en el de mi madre,  Blanca, apenas unos kilómetros aguas abajo del Río Segura, lo llaman picantosa), pero seguro que fue de pequeño y desde entonces procuro prepararlo de vez en cuando. Las bases de este plato son el bacalao seco y las ñoras, que combinan perfectamente para dar un aperitivo muy sabroso y nutritivo.

Preparando rin-ran con un excelente ayudante...

Como siempre, lo más importante es el ayudante…

Una tostada cubierta de picantosa (a mí) viene bien a cualquier hora. Y se puede conservar perfectamente en el frigorífico una semana, la verdad es que sospecho que más, pero nunca he preparado lo suficiente como para que me dure más de este tiempo. Aunque la receta tradicional preconiza el empleo de ñoras para hacer el rin-ran, en esta ocasión yo he empleado pimientos rojos secos, pues en ocasiones es difícil encontrar ñoras.

Por cierto, en cuanto al nombre del plato, no sé de donde vendrá lo de rin-ran, pero los de picantosa probablemente sea porque en el pueblo de mi madre, Blanca, suele ser un poco picante, o al menos yo en las ocasiones en las que lo he probado allí un poco picante sí que es… para darle ese toque, añadid un poco de guindilla o cayena al conjunto y removed bien… ¡¡¡no vaya a ser que a alguien le toque el premio!!!

La picantosa o rin-ran: Tuéstame ese bacalao
Tipo de Receta: Aperitivo
Tiempo Prep.: 
Tiempo Cocina: 
Tiempo Total: 
 
Un sabroso aperitivo para ser acompañado de cosas fresquitas
Ingredientes
  • 300 gramos de bacalao seco
  • 4 ñoras
  • Una cebolla grande
  • Aceite de Oliva
Instrucciones
  1. Desalar el bacalao debajo del grifo.
  2. Poner una sartén al fuego y tostar bien el bacalao.
  3. Desmenuzar el bacalao y su piel a conciencia retirando cuidadosamente las espinas.
  4. En la misma sartén o en el horno tostar las ñoras hasta que se inflen y queden quebradizas y se puedan desmenuzar sin problemas.
  5. Cortar y picar la cebolla.
  6. Mezclar todos los ingredientes anteriores y añadir el aceite de oliva.
Notas
Antes de su consumo es mejor esperar unas horas para que los sabores se mezclen y la cebolla incorpore sus jugos al conjunto. Se puede echar un chorro de limón por encima a la hora de tomarlol

¡¡Espero que os guste!!

WordPress en Raspberry Pi con lighttpd y php5 (II)

Hace bien poco comenté que para ir probando cosillas en la Raspberry Pi me había propuesto instalar un servidor web en la Raspberry y que funcionara WordPress. Para conseguirlo, os daba unas pocas instrucciones resumen de lo que daba detalladamente Simon The Pi Man en su web, y nos quedamos en tener nuestro lighttpd y php5 instalado.

No obstante, no es lo único que necesitaremos para que funcione todo como es debido. WordPress necesita mysql para funcionar y a la par, php5 necesita del módulo mysql para poder interactuar correctamente con la base de datos de la que tirará WordPress.

Instalando los módulos php y mysql

Para que todo esto funcione, tenemos que instalar una serie de paquetes en nuestra Raspberry y estos son el servidor mysql en sí y su cliente, el módulo mysql de php y su driver, así como phpMyAdmin que puede srnos útil en el futuro, lo que hacemos, como siempre, con apt-get. Previamente, si no accedemos directamente a nuestra raspberry, habremos abierto una sesión ssh con nuestra Raspberry Pi. Si no sabes cómo hacerlo, puedes consultarlo aquí.

Recordad que estos pasos los doy con una cuenta de supersuario ,si no tendréis que emplear sudo para ejecutar los comandos.

Pantalla de configuración de mysql

Esto facilita enormemente las cosas…

Lo bueno buenísimo es que ahora, al instalar el servidor, se ejecuta un script de instalación que te permite dejar no sólo tu instalación de mysql funcionando, sino que te da a escoger entre los diferentes servidores web que tengas instalado para reconfigurarlo para que interactúe eficazmente con mysql y los módulos de php recién instalado. Este script te pedirá una contraseña para el superusuario del servidor mysql. Esa contraseña te será necesaria posteriormente, cuando la instalación de WordPress te solicite un nombre de usuario y contraseña para crear la base de datos y las tablas necesarias para funcionar.

Sólo queda reiniciar el servidor web para que todo funcione bien:

Si no fuera así, al ir a instalar WordPress recibiríamos un mensaje de error indicando que el servidor web no tiene soporte php para mysql.

Descargando WordPress

Ahora ya con nuestra base de datos configurada y corriendo, viene siendo hora de instalar WordPress. Lo  primero que tenemos que hacer es crearnos un directorio donde descargar WordPress para luego descomprimirlo donde nos convenga y descargar el fichero comprimido que contiene WordPress. Como la Raspberry Pi no es una máquina muy potente, yo prefiero no usar demasiado los entornos g?aficos y, como os he dicho, utilizar la línea de comandos y preferiblemente ssh desde un ordenador remoto para hacer toda estas operaciones. Utilizar ssh tiene una ventaja adicional y es que puedes utilizar toda la potencia del otro ordenador para utilizar programas pesados tipo navegador, etc. De manera que lo que yo hago para descargar WordPress es lo siguiente:

Abro mi navegador en el ordenador remoto y me dirijo a la página de WordPress en español, http://es.wordpress.org.

Pulso con el botón derecho del ratón sobre el recuadro de descarga o en el enlace para el archivo .tar.gz (según prefiera el zip o el tar) y copio la dirección del enlace.

En mi terminal en la que tengo abierta la sesión ssh con la Raspberry, creo un directorio para guardar el archivo y empleo wget pegando la dirección del enlace copiada anteriormente para

Si todo va bien, deberíais obtener algo como esto:

Lo que nos indica que el fichero ha sido descargado. Ahora, tenemos que descomprimir ese archivo en la raíz de nuestro servidor web, que si recordáis lo que vimos la vez pasada, se aloja en /var/www/.  Suponiendo que hayamos descargado el archivo zip, daremos esa orden de la siguiente manera

Por supuesto, no olvidéis cambiar el nombre del archivo por el correcto según la versión que os hayáis descargado.

Instalando WordPress en la Raspberry Pi

Bueno, ya tenemos todo lo que nos hace falta para instalar WordPress. Ahora viene la parte fácil, al menos con la Raspberry Pi y li.

Lo primero que tenemos que hacer es crear una base de datos en nuestro servidor para que WordPress funcione. Para esto, podríamos conectarnos a nuestra base de datos a través de phpMyAdmin pero yo vo çy a hacerlo a través de la línea de comandos; puesto que en mi caso tengo configurado el usuario root de la base de datos igual que mi usuario root de la Raspberry, sólo tengo que indicarle que me solicite la contraseña para autenticar mi acceso y poder acceder a comunicarme con el servidor mysql a través del cliente:

 Os solicitará vuestra contraseña de usuario para conectar con el servidor mysql,  no la de login en el sistema (aunque yo, para esto de experimentar las he puesto iguales). Una vez que tengamos el prompt de mysql, crearemos una base de datos con el nombre que queramos, esa es la base de datos que usará WordPress:

Esto lo vemos resumido en este pantallazo tan original que os pongo aquí:

Creación de base de datos en MySQL a través de cliente

La terminal, esa gran amiga…

 

Ahora sí que está todo preparado para que podamos instalar WordPress. Afortunadamente, para la Raspberry Pi con Raspbian y lighttpd instalado tal y como os lo he contado es muy fácil, pues  través de nuestro navegador podemos correr un script que, a la manera de un asistente, nos va guiará a través del proceso.

Recordad ahora que hemos descomprimido el archivo de instalación de WordPress en una carpeta en la raíz de nuestro servidor. Según lo que yo os he comentado, en estos momentos nuestros archivos de WordPress se encontarán en /var/www/wordpress, con lo cual la dirección web de nuestros archivos será:

http://192.168.1.74/wordpress

Al introducirla en nuestro navegador, nos aparecerá un mensaje indicando que se precisa de un archivo de configuracion, wp-config.php y si se desea crearlo. Recuerda que tu dirección IP no tiene por qué ser esa; en todo caso es la misma que utilizas para conectarte con la Raspberry por ssh.

Asistente de instalación de WordPress, primer paso

¡Ay! qué facilico…

Se le indica que sí y la siguiente pantalla es un resumen de lo que vamos a necesitar para completar la instalación:

  1. El nombre de la base de datos, en nuestro caso la creamos con el nombre wordpress.
  2. El nombre de usuario de la base de datos, que en el caso que presentamos es root.
  3. Contraseña de la base de datos.
  4. Host de la base de datos, que en nuestro caso será localhost o 127.0.0.1.
  5. Si se quisiera ejecutar más de un WordPress, podemos añadir un prefijo de tabla para diferenciarlas.

Si disponemos de todos estos datos (¿no hemos dicho que sí, pesao?), avanzamos en el asistente y los introducimos en la siguiente pantalla que nos aparezca:

Segundo paso del asistente de instalación de WordPress

Sí, es así de sencillo…

Ahora puede ocurrir que obtengamos un error porque no se puede escribir el archivo wp-config.php. El asistente te ofrece la posibilidad de crear tú mismo el archivo copiando el texto generado que te aparece en la misma página en un archivo wp-config.php que tu tendrías que crear en la carpeta /var/www/wordpress. Este esrror se debe a que el servidor no tiene permisos de escritura en el directorio donde están alojados los archivos de nuestras páginas web, es decir, el directorio /var/www.

Para solucionar esto, lo que yo he hecho es cambiar el propietario de ese directorio. Si miramos los permisos del directorio www obtendríamos:

Para hacer esto, empleamos el comando chown, que cambia el propietario de un archivo en GNU/Linux:

Con la opción -R lo hago de manera recursiva, es decir, a todos los directorios y ficheros que cuelguen del directorio con lo cual todos los ficheros y directorios dentro de www seran propiedad ahora del grupo www-data, que es al que pertenece lighttpd que ya puede escribirlos/leerlos sin problemas. Ahora, volvemos un paso atrás en el asistente de instalación de WordPress y ya el script nos crea el fichero de instalación; nos pedirá algunos detalles de nuestra instalación, como el título  del sitio, un nombre de usuario, contraseña y dirección de correo de contacto, tal y como veis aquí:

Asistente de instalación de WordPress, paso final

Ya estamos a un pasito de tener WordPress…

Aceptamos el formulario una vez relleno y nos saldrá la gloriosa pantalla de felicitación del asistente:

Wordpress instalado y corriendo en la Raspberry Pi

Toma moreno!!!

Bueno, pues tras todos estos esfuerzos, viene la última y bien merecida recompensa… nuestro WordPress corriendo en Raspbery Pi:

Página inicial de WordPress corriendo en la Raspberry Pi

¡¡¡Ya está listo WordPress!!!

¡Bueno! Ya hemos terminado la faena… ahora ya a llenarlo de contenido 🙂

Por cierto, hay un detalle que he descubierto que te permitirá hacer un poco más portable tu instalación de WordPress y llevártela a cualquier sitio… Pero eso lo dejamos para otro post… ¡ Hasta pronto!