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!!!

 

 

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!

WordPress con Raspberry Pi, lighttpd y php5 (I)

Ayer estuve viendo la página de Simon the Pi Man, que aparte de sabio el tipo debe ser un cachondo por el juego de palabras que hace entre Pi (el número) y Pie (la empanada), y seguí las instrucciones que facilita para montar un servidor web en la Raspberry Pi.

Dado que Apache parece ser un poquito demasiado pesado para la Raspberry Pi, parece una opción más lógica lighttpd. Instalarlo, en principio es fácil, lo que pasa es que hay que tener algún conocimiento extra de configuración d e servidores para conseguirlo.

Instalando lighttpd en la Raspberry Pi

La primera cosa fuera de lo que un novato como yo pensaría hacer es que tenemos que crear un grupo en nuestro sistema para el servidor. Este grupo se llamará www-data y  para añadirlo emplearemos (mediante sudo o como superusuario)

Las instrucciones de Simon para instalar lighttpd y php5 en la Raspberry Pi son mucho más detalladas que las que os voy a dar, sobre todo en lo concerniente a comprobaciones, etc… creo que con éstas puede bastar, pero pasaros por la página que dedica Simon a esto si queréis aprender más.

Ahora es cuando hacemos lo que cualquier otro haría: Instalar lighttpd mediante apt-get:

Ya sabréis que, o bien hacemos esto desde la línea de comandos de nuestra Raspberry Pi, en cuyo caso deberemos tenerla conectada a un monitor/TV o bien podremos hacerlo mediante ssh. Este es mi método preferido. Y como siempre, o bien empleando una cuenta de superusuario o bien empleando sudo.

Comprobamos si todo ha funcionado conectando con nuestro servidor, en la IP que tenga asignada la Raspberry Pi. Desde luego, entiendo que tenéis conectada vuestra Raspberry Pi o cualquier otro dispositivo en red. Por defecto, trae la típica página de inicio… yo la he cambiado para darle un aire más espantajo a la cosa:

Firefox muestra página servida por lighttpd en Raspberry Pi

Bien, ahora toca el tema de instalar php5, que es muy sencillo pero que tiene una detallito luego que os explico:

Por cierto, que dicho esto os comento que yo, que vengo de OpenSuse y me enfrento a Debian en esta ocasión, me está costando un poco encontrar paquetes, porque el nombre de alguno de ellos no es igual… la solución de momento es pasar por el repositorio de paquetes de Debian y buscar… o aprender a usar apt bien… que creo que será lo mejor.

La cosa ahora es (gracias Simon) modificar la configuración de lighttp para que coja bien los módulos de php recién instalado. Para hacerlo tenemos que editar el fichero de configuración de lighttpd:

En este fichero tenemos que introducir, en la parte correspondiente a los módulos (server.modules) :

“mod_fastcgi”

Y al final del archivo:

Bueno… sólo queda reiniciar nuestro servidor

Y ya estaría listo. Para ver si todo funciona, podemos crear un archivo index.php en la raíz de nuestro servidor (/var/www/) que contenga las siguientes líneas:

Y accedemos a nuestro servidor vía web tal y como hicimos antes, solo que en esta ocasión nos debe salir una pantalla con la información relativa a la configuración de php:

Comprobación instalación php en lighttpd y Raspberry Pi

Ya tenemos el servidor instalado. Ahora, el siguiente paso, es instalar WordPress… pero eso lo dejo para otro día..