Monta tu propio blog con WordPress y Raspberry Pi

Raspberry-Pi-Logo

Durante mi crisis con Google por el cierre de Google Reader uno de los primeros servicios que me decidí a migrar fue este blog. Anteriormente lo tenia alojado en Blogger, la plataforma de blogs de Google, pero durante la elección de CMS (Content Management System) para el blog se me pasaron varias opciones por la cabeza que fui descartando y me decidi por WordPress que es un CMS open source.

Ahora venía otra de las decisiones duras, el hosting, ¿donde voy a alojar mi blog? Buscas por internet y hay miles de opciones WordPress.com que da hosting gratuito con opciones de pago mediante el que se financia el desarrollo de su CMS. Hay otras opciones gratuitas con publicidad o con planes de pago, Hostgator, GoDaddy… pero no me acababa de convencer sus planes gratuitos y pagar por hosting no me llamaba mucho, así que pense que pasaria si me montara yo mi propio hosting.

En casa tengo disponibles dos dispositivos ideales para mantener un hosting de bajo coste, el primero es un Nas Synology 212j que viene con una opción para montarte un WordPress propio. Esta opción la descarte de primeras porque WordPress puede tener bugs de seguridad que puedan comprometer el contenido del Nas.

La otra opción es usar mi Raspberry Pi pero el problema de mantener la base de datos que necesita WordPress con todos los datos del blog en una tarjeta SD no me atraia mucho porque las tarjetas SD no son muy fiables, se pueden corromper celdas de memoria y cascar el sistema operativo, la bbdd o las tablas que contiene.
La mejor opción fue la combinación de ambos dispositivos, la bbdd en el Nas con MySQL+phpMyadmin y el WordPress sobre la Raspberry Pi con php y un servidor web. Como servidor web tenemos varias opciones, Apache, Nginx o Cherokee, yo en mi caso despues de probar con Apache y como no me convencian los resultados pase a usar Nginx.

Esta instalacion esta hecha sobre una imagen standard de Raspbian en una tarjeta de 8Gb clase 4.

En este enlace se puede ver como instalar una versión de Raspbian estandar.

Una vez tenemos instalado Raspbian instalamos los paquetes de nginx, php5 y MySQL

sudo apt-get update

sudo apt-get install nginx php5-fpm php5-cli php5-curl php5-gd php5-mcrypt php5-mysql php5-cgi mysql-server

Creamos el fichero de configuracion de nginx para nuestro site de WordPress

# Upstream to abstract backend connection(s) for php

upstream php {

server unix:/var/run/php5-fpm.sock;

}

server {

## Your only path reference.

root /srv/www/wordpress/public_html;

listen 80;

## Your website name goes here. Change to domain.ltd in VPS

server_name _;

access_log /srv/www/wordpress/logs/access.log;

error_log /srv/www/wordpress/logs/error.log;

## This should be in your http block and if it is, it’s not needed here.

index index.php;

location = /favicon.ico {

log_not_found off;

access_log off;

}

location = /robots.txt {

allow all;

log_not_found off;

access_log off;

}

location / {

# This is cool because no php is touched for static content

try_files $uri $uri/ /index.php;

}

location ~ \.php$ {

#NOTE: You should have “cgi.fix_pathinfo = 0;” in php.ini

include fastcgi_params;

fastcgi_intercept_errors on;

fastcgi_pass php;

}

location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {

expires max;

log_not_found off;

}

}

Activamos el site con un enlace al fichero de configuracion que tenemos en sites-available en sites-enabled

sudo ln -s ../sites-available/wordpress ../sites-enabled/wordpress

sudo rm default

sudo rm ../sites-enabled/default

Seguidamente editamos el php.ini en /etc/php5/fpm/php.ini y modificamos la linea

cgi.fix_pathinfo = 0;

Arrancamos el servicio de Nginx con

sudo service nginx start

y al conectarnos a la ip de nuestra Raspberry Pi con el navegador veremos el mensaje de bienvenida del servidor web. Ahora ya tenemos funcionando el servidor web, así que nos toca bajar y configurar el software de WordPress

sudo mkdir -p /srv/www/wordpress/logs/

sudo mkdir -p /srv/www/wordpress/public_html

cd /srv/www/wordpress/public_html

sudo wget http://wordpress.org/latest.tar.gz

sudo tar xzvf latest.tar.gz

sudo mv wordpress/* .

Una vez copiado el software de WordPress seguimos las instrucciones para instalarlo. Como en mi caso el servidor de MySQL lo tengo en la Nas lo tengo configurado con php-myadmin. Pero con las siguientes instrucciones podremos configurar MySQL en la propia tarjeta de la Raspberry Pi.

 $ mysql -u root -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 5340 to server version: 3.23.54

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

Creamos la BBDD para el blog

mysql> CREATE DATABASE wordpress;

Query OK, 1 row affected (0.00 sec)

Creamos el usuario para acceder a la BBDD

mysql> GRANT ALL PRIVILEGES ON wordpress.* TO “wordpress”@”localhost”IDENTIFIED BY “raspi”;

Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.01 sec)

mysql> EXIT

Bye

En la ruta /srv/www/wordpress/public_html editamos la configuracion de WordPress:

sudo cp wp-config-sample.php wp-config.php

sudo edit wp-config.php

Configuramos el fichero con los datos de nuestro servidor MySQL, el nombre de la BBDD y las credenciales del usuario de acceso.

define(‘DB_NAME’, ‘wordpress’);

/** MySQL database username */

define(‘DB_USER’, ‘wordpress’);

/** MySQL database password */

define(‘DB_PASSWORD’, ‘raspi’);

Cambiamos los permisos del directorio y arrancamos el servidor web.

sudo chown www-data.www-data /srv/www/wordpress/public_html/ -R

sudo service nginx restart

sudo service php5-fpm restart

Accedemos a la ip de nuestra Raspberry Pi en la siguiente ruta y tendremos disponible nuestro WordPress.

http://192.168.0.106/wp-admin/install.php

Despues de varias pruebas no quede totalmente satisfecho con el comportamiento de la Raspberry con el blog, sobre todo con los plugins de WordPress que tardaban en cargar, como Twitter o Flickr.

Al final lo aloje en WordPress.com y añadi la opción de enlazar con mi dominio de http://www.lamilongadelmarinero.com por 12$ que ademas sirven para contribuir con el desarrollo del propio WordPress, pero para un blog sencillo con texto plano sin que sean necesarias muchas florituras usar una Raspberry Pi es una muy buena opción.

Anuncios

Acerca de Marineru Vagarientu

El viejo truhán capitán de un barco que tuviera por bandera un par de tibias y una calavera.

Publicado el 29 marzo, 2013 en Hardware, Software Libre y etiquetado en , , , , , . Guarda el enlace permanente. 4 comentarios.

  1. Hola buenas! , ya se que el post es un poco antiguo , pero te pregunto por si las moscas…. he seguido tu tutorial y tengo un pequeño problema , al iniciar el servicio de nginx , recibo lo siguiente:

    Starting nginx: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: [emerg] open() “/srv/www/wordpress/logs/access.log” failed (2: No such file or directory)
    nginx: configuration file /etc/nginx/nginx.conf test failed

    Efectivamente el directorio srv , esta vacio , he probado a seguir todos los pasos 4 veces , usando una raspbian limpia , sin tocar….

    Gracias de antemano! un saludo.

  2. Hola Victor, no es normal que el directorio /srv este vacío, tendrías que tener una carpeta www, el error lo que te dice es que el nginx no esta encontrando el fichero access.log que es donde registra los logins de wordpress ¿Has hecho esto? Es para crear los directorios y copiar el codigo de wordpress.

    sudo mkdir -p /srv/www/wordpress/logs/

    sudo mkdir -p /srv/www/wordpress/public_html

    cd /srv/www/wordpress/public_html

    sudo wget http://wordpress.org/latest.tar.gz

    sudo tar xzvf latest.tar.gz

    sudo mv wordpress/* .

  3. Muy buena info. Yo tengo el blog alojado en Digital Ocean que por 5 dólares tengo un espacio de trabajo (VPS) como si fuera una raspberry pi (512 de ram y 20GB de disco) pero lo bueno es que lo podés configurar para que ya venga preparado para usar WordPress bajo Ubuntu server entonces solo te dedicás a configurar y listo.

  1. Pingback: Hosting Casero: WordPress en Raspberry Pi | Cheko HackLab

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s