INSTALAR DRUPAL EN RASPBERRY PI 1

He estado unos días ocupado en una prueba de instalar DRUPAL en una raspberry, con objeto de poner utilizar un pequeño servidor para ir probando este sistema de gestor de contenidos para una pequeña asociación.

El motivo de utilizar una Raspberry pi 1 (tipo B) es por los bajos recursos que utiliza e inicialmente la carga no será muy elevada, permite ir tomando el pulso a este sistema.

El material completo es:

* Rasberry pi 1, viene un poco justa pero de momento es la que usaremos.

* Fuente de alimentación para ella

* Un adaptador wifi usb compatible, yo usaré uno viejo que compré de segunda mano por un par de euros. http://elinux.org/RPi_VerifiedPeripherals#USB_Wi-Fi_Adapters

* Una tarjeta SD normal o micro sd con un adaptador.

* f3write y f3read, para comprobar la tarjeta, normalmente tenemos tarjetas de sobra, algunas funcionan mejor que otras, con esta aplicación podremos elegir la más apropiada.

* La imagen de Raspbian lite, con esta es suficiente, salvo que quiera entorno gráfico, que no será el caso.

Lo primero es poner a descargar la última imagen de Raspbian. https://www.raspberrypi.org/downloads/raspbian/

Mientras puedes verificar la tarjeta sd, con f3.

Descargada la imagen comprobamos que está correcta con el sha1sum, por ejemplo

10-02

10-01  Nos devolverá una cadena, deberá coincidir con la indicada para la imagen descargada, como es este caso.

En septiembre de 2017 se publicó la nueva versión de Raspbian, denominada stretch, donde la comprobación se hace con SHA256SUM

Ahora extraemos la img del zip, se puede utilizar la aplicación gráfica de archivadores, si vas a copiar la imagen a la sd desde la terminal con el comando dd es mejor poner una ruta fácil.

10-03

Yo usaré para copiar la imagen la aplicación de discos.

10-04

Con la aplicación Discos abierta, seleccionamos el dispositivo donde vamos a grabar la imagen, ES MUY IMPORTANTE YA QUE BORRARÁ LOS DATOS existentes seleccionar el dispositivo correcto.

En el menú de la aplicación pulsamos “restaurar imagen de disco…” y seleccionamos la imagen de raspbian, en los links dejo la web con el proceso detallado, aunque no es difícil.

Este proceso pedirá la contraseña de root.

10-05

Al terminar este proceso nos habrá creado varias particiones e instalado el sistema en la sd.

Buscamos la partición de 1,3 gb (para la versión lite) y dentro la siguiente ruta para abrir el fichero interfaces, para configurar la red wifi, que así no tendremos que conectarnos por cable.

/etc/network/intefaces

Recién instalado auto lo

iface lo inet loopback

iface eth0 inet manual

allow-hotplug wlan0

iface wlan0 inet manual

wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1

iface wlan1 inet manual

wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Modificado
auto lo
iface lo inet loopback

iface eth0 inet dhcp

allow-hotplug wlan0
auto wlan0
iface wlan0 inet dhcp
        wpa-ssid "mi SSID"
        wpa-psk "mi password" #caracteres ascit

Utilizaré la terminal ya que es necesario ser root para modificarlo

10-06
10-07

La wpa-psk puesta es un ejemplo, no se corresponde con la real de esta red.

Hacemos los cambios, guardamos con ctrl+o, confirmamos con enter y salimos con ctrl+x.

Ahora necesitamos activar el servidor ssh de la Raspberry.

En las últimas versiones es suficiente con crear un archivo en blanco en la partición boot llamado ssh.

En versiones más antiguas el proceso era el siguiente:

Vamos a la capeta /etc/rc2.d, modificamos el nombre del fichero K01ssh a S01ssh, el número puede ser diferente.

10-08
Ahora modificamos el siguiente fichero para permitir conectarse al root con ssh

/etc/ssh/sshd_config y modificar la entrada “PermitRootLogin”  para que ponga “PermitRootLogin yes”, luego lo dejamos en no por seguridad.

Salimos de la terminal, expulsamos y sacamos la tarjeta, ahora la pinchamos en la raspberry pi.

Comprobamos que tenemos todo puesto; tarjeta, usb wifi y conectamos a la red electrica. No necesitaremos ni monitor ni cable de red.

Nos conectamos a la raspberry mediante ssh, donde pi es el usuario y la ip es donde está conectada la raspberry. Para conocer la IP de la raspberry podemos hacerlo conectándonos con el navegador de internet a router y ver la ip asignada, también podíamos haber fijado una ip cuando hemos modificado el fichero “interfaces” pero de esta manera falla menos la primera conexión, después ya podremos hacer ajustes más finos.

10-09
La primera vez que se inicia aparece una pantalla azul para la configuración, si no aparece o hemos tenido que reiniciarla (sin ponernos conectar sin monitor) la configuramos ejecutando

10-10
10-11
Imprescindible:

1- cambiar la contraseña

2- cambiar las opciones de localización (idioma, codificación caracteres, zona horaria…

3- opciones avanzadas – > expandir la instalación para que ocupe toda la tarjeta sd (recordemos que instalamos en una tarjeta de 8 gbs una imagen de 1,3 y hasta después de expandir la partición ese solo será el espacio que tendremos.

Reiniciar y volverse a conectar.

Eliminamos las claves públicas y privadas que vienen con la iso para generar unas nuevas

sudo rm /etc/ssh/ssh_host_* && sudo dpkg-reconfigure openssh-server

Cerramos la conexión con

exit

Eliminamos las claves de nuestro cliente

ssh-keygen -R 192.168.1.185

y nos volvemos a conectar.

Actualizamos con sudo apt-get update && sudo apt-get upgrade

Instalación del servidor web.

En la nueva versión de septiembre ya está disponible en los repositorios la versión php7 para esta nueva versión no siendo necesario añadir el repositorio siguiente.

Cuando tenemos un equipo potente Apache suele ser la primera opción, cuando tenemos un equipo como la raspberry necesitamos uno que consuma menos recursos, por eso opto por instalar php7+nginx 1.9, pero php7 no tiene versión estable, de manera que debemos añadir la rama de desarrollo en los repositorios de la raspberrypi.

Abrimos el archivo de repositorios con:

sudo nano /etc/apt/sources.list

y añadimos la siguiente línea:

deb http://mirrordirector.raspbian.org/raspbian/ stretch main contrib non-free rpi

Para dar prioridad a la rama estable sobre la desarrollo añadimos un fichero de preferencias:

sudo nano /etc/apt/preferences

Con el siguiente contenido

Package: * Pin: release n=jessie Pin-Priority: 600

Actualizamos con

sudo apt-get update

Nota que puedes ver la versión publicada que está disponible y su prioridad con

sudo apt-cache policy nombre del paquete

10-12
Y ahora instalamos la versión php7 con

pi@raspberrypi:~ $ sudo apt-get install -t stretch php7.0 php7.0-curl php7.0-gd php7.0-fpm php7.0-cli php7.0-opcache php7.0-mbstring php7.0-xml php7.0-zip

Al terminar comprobamos que está instalado correctamente con

php -v

Ahora instalamos el servidor web

10-13
Al terminar desde el navegador del ordenador podemos poner la dirección ip de la raspberry pi, deberíamos ver algo parecido a esto

Pero sí instalamos php, el servidor y mysql

Para php:

sudo apt-get install php7.0 php7.0-curl php7.0-gd php7.0-fpm php7.0-cli php7.0-opcache php7.0-mbstring php7.0-xml php7.0-zip

El paquete php7.0-fpm es debido a que se instala nginx

El servidor con:

sudo apt-get install nginx

Tras la instalación del servidor lo iniciamos

sudo /etc/init.d/nginx start

vemos en el navegador, tras poner la ip,

10-14

Este archivo se encuentra en /var/www/html

Se puede cambiar en el archivo /etc/nginx/sites-avalible

Algunos comandos importantes de nginx son:

nginx -s quit

nginx -s stop

nginx -s reload

Pero todavía falta por configurar el servidor web.

Primero con

pi@raspberrypi:~ $ sudo nano /etc/php/7.0/fpm/pool.d/www.conf

vemos los datos de usuario y grupo por si es necesario cambiarlos o la ruta de “listen=”

user = www-data

group = www-data

listen = /run/php/php7.0-fpm.sock

Luego con

sudo nano /etc/nginx/sites-enabled/default

comentamos la tercera línea de este bloque al no tener pensado utilizar ipv6

10-15

Añadimos index.php

10-16

El siguiente bloque descomentamos algunas líneas

10-17
Guardamos, salimos y recargamos la configuración

sudo /etc/init.d/nginx reload

Debería devolver un Ok sino el siguiente comando nos puede ayudar a buscar el fallo

tail -f /var/log/nginx/error.log

10-18

Para reforzar la seguridad puedes editar php.ini, descomentando cgi.fix_pathinfo y poner 0

sudo /etc/php/7.0/fpm/php.ini

Ojo con la ruta, ya que cambia respecto a la anterior versión más extendida, la 5 → /etc/php5/fpm/php.ini

10-19

Volvemos a recargar y a obtener el ok

10-20
Probamos la configuración php creando un fichero php que nos mostrará info del sistema con

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

escribimos

<?php echo phpinfo(); ?>

Guardamos, salimos y refrescamos el navegador. Nos debería mostrar algo como esto

10-21
Finalmente instalamos mysql como base de datos

sudo apt-get install mysql-server php7.0-mysql -y

Nos pedirá una contraseña para el usuario root de la base de datos. Si no lo hace cuando ejecutemos el siguiente script la ponemos.

sudo mysql_secure_installation

Recargamos el servidor web

sudo /etc/init.d/nginx reload

Al terminar entramos como root en mysql para crear un usuario con todos los permisos en una base de datos específica para Drupal. La captura es de la versión anterior de mysql cuando no pedía sudo antes de mysql, ahora sí debemos poner sudo mysql -u root -p

10-22
Cada instrucción termina en ;

mysql> create database drupal;

mysql> CREATE USER drupaluser@localhost IDENTIFIED BY ‘password-para-wpuser’;

mysql> GRANT ALL PRIVILEGES ON drupal.* TO drupaluser@localhost;

FLUSH PRIVILEGES; recomiendo no ejecutar esto, aunque se ve mucho.

quit;

Llega el momento de instalar Drupal.

Nos ubicamos en /var/www/html y descargamos

cd /var/www/html

sudo wget http://ftp.drupal.org/files/projects/drupal-8.3.7.tar.gz

comprobar cual es la última versión estable en el momento de la descarga

Extraemos el contenido comprimido

sudo tar xvzf drupal-8.3.7.tar.gz

cambiamos el nombre a la carpeta descomprimida donde se ha extraído

sudo mv drupal-8.3.7 drupal

utilizamos la configuración por defecto en nuestro site

cd drupal/sites/default

sudo cp default.settings.php settings.php

Le cambiamos los permisos para que durante la configuración pueda ser escrito

sudo chmod a+w settings.php

En el navegador escribimos la dirección de nuestro servidor

192.168.1.185/drupal/

y nos debe aparecer algo como lo siguiente

10-23
Si queremos español tendremos que crear manualmente los directorios que nos indique en la ayuda de drupal (en la web o en el directorio drupal/core/INSTALL.txt), si queremos mantener en inglés continuamos sin el siguiente paso.

En la terminal conectados a la raspberry pi, según las instrucciones para esta versión, creamos los siguientes directorios (files/translations, la -p sirve para crear los directorios que falten, los “parents”) y vamos a ello

sudo mkdir -p /var/www/html/drupal/sites/default/files/translations

cd /var/www/html/drupal/sites/default/files/translations

y descargamos de la web de drupal la versión del idioma que queramos

sudo wget http://ftp.drupal.org/files/translations/8.x/drupal/drupal-8.4.0-rc1.es.po

Si tenemos que descargar el idioma manualmente aprovechamos para cambiar los permisos a la carpeta files

sudo chmod a+w /var/www/html/drupal/sites/default/files/

10-24
Ya lo tenemos en español lo siguiente es tan solo seguir el asistente.

10-25
Después del punto de instalar sitio se me quedó pillado, pulsé el botón refrescar y continuó con la configuración de las traducciones, quizás si no se instalan otros idiomas no pase.

En el punto de configurar sitio ponemos los datos del propio sitio.

Volvemos a cambiar los permisos del fichero de configuración, ahora de solo escritura para root.

sudo chmod go-w /var/www/html/drupal/sites/default/files/

sudo chmod go-w settings.php

Borramos el fichero info.php

sudo rm /var/www/html/index.php

A mi me gusta reiniciar el equipo cuando se hacen cambios tan importantes como estos.

Accedemos a nuestro site.

10-26
Ya podemos comenzar a añadir contenido, que es la parte más complicada.

Fuentes:

https://www.raspberrypi.org/documentation/installation/installing-images/linux.md

http://www.pildoricasdigitales.com/grabar-imagen-de-raspbian-desde-ubuntu/

http://nideaderedes.urlansoft.com/2014/01/15/raspberry-pi-como-conectarnos-via-ssh-sin-monitor/

https://www.raspberrypi.org/documentation/remote-access/web-server/nginx.md

http://www.juanjosevalera.com/archivos/instalando-y-configurando-nginx-en-raspberry-pi/

http://www.microordenadores.com/tutoriales/nginx-php-mariadb-raspberry-pi/

https://www.raspberrypi.org/learning/lamp-web-server-with-wordpress/worksheet/

https://blog.deinventos.com/es/servidor-wordpress-con-la-raspberry-pi/

http://unixetc.co.uk/2013/09/25/install-wordpress-blog-on-raspberry-pi/

https://dbahire.com/dejad-de-usar-flush-privileges/

Anuncios

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