En ésta tercera entrega del tutorial veremos como instalar un servidor LAMP (Linux, Apache, MySQL, PHP) en una RPi y configurarlo para que funcione como un servidor web.
Vamos a descargar e instalar WordPress y configurar un sitio web básico que se pueda acceder en cualquier dispositivo en la misma red que la RPi.

Manos a la obra!

Paso 1: Instalar el servidor web Apache

Apache es un servidor web de los más populares que se pueden instalar en una RPi.
Por sí solo, Apache puede servir archivos HTML a través de HTTP, y con algunos módulos adicionales puede servir páginas web dinámicas utilizando lenguajes de programación como PHP.

INSTALAR APACHE

En primer lugar deberemos de instalar el paquete apache2 escribiendo el siguiente comando en el terminal:

sudo apt-get install apache2 -y

PROBAR EL SERVIDOR WEB

Por defecto, Apache pone un archivo HTML de prueba en la carpeta web.
Esta página web por defecto se sirve cuando navega a la dirección http://localhost/ (en la propia RPi), o accediendo a la dirección IP de la RPi desde otro ordenador de la red, en éste caso http://192.168.1.81
Iremos a la página web por defecto, ya sea en la RPi o desde otro ordenador de la red, y nos debería de mostrar la siguiente página:

apache_done

Ésto significa que Apache se ha instalado correctamente.

CAMBIANDO LA PÁGINA POR DEFECTO

Esta página web por defecto es sólo un archivo HTML en el sistema de archivos y se encuentra (en Raspbian Jessie) en /var/www/html/index.html

Si deseáramos hacer algún cambio sobre ella, deberíamos de utilizar el comando sudo, ya que para editar la misma, es necesario hacerlo como usuario root.

En caso de que os interese probar a editarla, deberíais de teclear los siguientes comandos:

cd /var/www/html
sudo nano index.html

Y recordar que una vez realizados los cambios, debéis pulsar CRTL + X, Y e intro para sobrescribir el fichero.

Paso 2: Instalar PHP

PHP es un preprocesador; es el código que se ejecuta cuando el servidor recibe una petición de una página web.
Se ejecuta, resuelve lo que necesita ser mostrado en la página y a continuación, envía la página al navegador. A diferencia del HTML estático, PHP puede mostrar contenidos diferentes en diferentes circunstancias. Otros lenguajes son capaces de esto, pero ya que WordPress está escrito en PHP, es lógico que lo utilizemos.
PHP es un lenguaje muy popular en la web; grandes proyectos como son Facebook y Wikipedia están escritos en PHP.

Instalaremos los paquetes de PHP y Apache con el siguiente comando:

sudo apt-get install php5 libapache2-mod-php5 -y

PROBANDO PHP

Crearemos el archivo index.php:

sudo nano index.php

Y a modo de prueba, pondremos algo de código dentro del archivo que hemos creado, por ejemplo, pediremos que nos muestre la información de nuestro PHP:

<? php phpinfo(); ?>

Ahora, salvaremos el fichero. (CTRL + X, Y e intro para sobrescribir).

A continuación, eliminaremos index.html, ya que toma precedencia con respecto a index.php

sudo rm index.html

Por último, reiniciaremos el servicio de Apache:

sudo service apache2 restart

Ahora, al cargar nuestra página, veremos una similar a ésta:

php_info

Paso 3: Instalar MySQL

MySQL es un popular motor de base de datos. Como PHP, su presencia abrumadora en los servidores web ha beneficiado a su popularidad.
Esta es la razón por la que proyectos como WordPress la utilizan, y por qué estos proyectos son tan populares.

Instalaremos los paquetes MySQL Server y PHP-MySQL introduciendo el siguiente comando en el terminal

sudo apt-get install mysql-server php5-mysql -y

Al instalar MySQL, se pedirá una contraseña de root. Tendrá que recordar ésta para permitir que su sitio web acceda a la base de datos.

mysql_root_psw

Por último, reiniciaremos el servicio de Apache:

sudo service apache2 restart

Paso 4: Descargar WordPress

Para descargar WordPress utilizaremos el comando wget. Por suerte, una copia de la última versión de WordPress está siempre disponible en wordpress.org/latest.tar.gz y wordpress.org/latest.zip, para que pueda instalar la versión más reciente sin tener que estar buscándola en el sitio web. Al momento de realizar éste tutorial, la versión más actual es la 4.5

Nos situaremos en /var/www/html/, y descargaremos WordPress en esta ubicación. Tendremos que vaciar la carpeta primero (debemos de asegurarnos de que no se estan eliminando archivos que necesitaremos antes de ejecutar rm); además deberemos de cambiar la propiedad de esta carpeta al usuario pi

cd /var/www/html/
sudo rm *
sudo wget http://wordpress.org/latest.tar.gz

Ahora extraeremos el contenido del archivo tar, moveremos el contenido de la carpeta al directorio actual y eliminaremos la carpeta (que se encontrará vacía) y el archivo tar para dejar una instalación limpia:

sudo tar xzf latest.tar.gz
sudo mv wordpress/* .
sudo rm -rf wordpress latest.tar.gz

Colocando el comando ls ó tree -L 1 nos devolverá el contenido del proyecto WordPress:

terminal_tree

Esta es la carpeta por defecto de una instalación de WordPress predeterminada.
Los archivos que se pueden editar para personalizar la instalación se encuentran en  la carpeta wp-content.

Deberemos de cambiar la propiedad de estos archivos al usuario de Apache:

sudo chown -R www-data: .

Paso 5: Instalación de la base de datos WordPress

Para tener un sitio WordPress online, necesitamos una base de datos. Correremos el comando mysql en el terminal y colocaremos nuestra credenciales de usuario (el usuario será root, a menos que lo hayamos cambiado, y la contraseña la que hayamos elegido en el momento de la instalación de MySQL):

mysql -uroot -ppassword

De forma alternativa, podemos colocar un comando -p vacío para ser preguntados por la contraseña:

mysql -uroot -p

Una vez que estemos conectados a MySQL, podremos crear una base de datos en nuestra instalación de WordPress, para ello utilizaremos el siguiente comando:

create database wordpress;

Como aclaración, veremos que el ; finaliza la sentencia. Si la misma ha resultado exitosa, veremos el siguiente mensaje:

Query OK, 1 row affected (0.00 sec)

Para salir de MySQL, presionaremos CTRL + D.

Paso 6: Configuración de WordPress

Accederemos a WordPress colocando en el navegador, la dirección IP de nuestra RPi, que en mi caso será http://192.168.1.81

Deberemos de ver la página de bienvenida de WordPress, donde, primero nos preguntará el idioma deseado y luego la página de configuración inicial:

choose_lan

wp_setup

Haremos clic en el el botón ¡Vamos a ello!

Ahora, rellenaremos toda la información básica de la forma siguiente:

Database Name: wordpress
User Name: root
Password: <TU CONTRASEÑA>
Database Host: localhost
Table Prefix: wp_

y haremos clic en el botón Enviar para proceder.

Por último haremos clic en el botón Ejecutar la instalación.

wp_hello

Daremos al sitio web un título, introduciremos un nombre de usuario y una contraseña para la gestión del sitio. También colocaremos nuestra dirección de correo electrónico.

Una vez completado todos los campos, procedemos a hacer clic en el botón Instalar WordPress y con ello la instalación de WordPress habrá finalizado.

Ahora podrá ver su sitio web visitando la dirección IP en el navegador de la RPi ó a través de otro navegador en otro  equipo de la red.
Para conectarse de nuevo (o en otro equipo), vaya a su dirección IP, que en mi caso sería http://192.168.1.81/wp-login.php

Paso 7: Enlaces permanentes

Es recomendado que se cambie la forma de los enlaces permanentes por una mas amistosa.

Para realizar éste cambio, nos logueamos en el escritorio de WordPress.

Debemos de ir a Ajustes y luego a Enlaces Permanentes.

Seleccionar Nombre de la entrada y clicar en el botón de Guardar cambios.

Luego, deberemos de habilitar el modo de Apache’s rewrite mod:

sudo a2enmod rewrite

Y luego reiniciar el servicio de Apache

sudo service apache2 restart

También tendremos que decirle al virtual host que permita que las solicitudes sean sobrescritas.

Para ellos editaremos el archivo de configuración de Apache para nuestro virtual host:

sudo nano /etc/apache2/sites-available/000-default.conf

Añadiremos las siguiente líneas después de la línea 1:

<Directory “/var/www/html”>
AllowOverride All
</Directory>

Corroborando de que queda como lo siguiente:

terminal_over

Luego, reiniciaremos el servicio Apache y habremos terminado:

sudo service apache2 restart

Ahora, podremos proceder con la parte 4 del tutorial, Configurar el servidor para acceder desde internet