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
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.
Yo usaré para copiar la imagen la aplicación de discos.
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.
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.
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Al final del archivo añadimos:
network={ ssid="NOMBREDERED" psk="CONTRASEÑA" }
Guardamos y salimos.
***** Versión antiguas *****
/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
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.
***** fin de las versiones antiguas de incluir la red wifi ****
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.
/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. La contraseña antes de modificarla es raspberry
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
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
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
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
|
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,
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
Añadimos index.php
El siguiente bloque descomentamos algunas líneas
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
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
Volvemos a recargar y a obtener el ok
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
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
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
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/
Ya lo tenemos en español lo siguiente es tan solo seguir el asistente.
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.
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/
Hola gracias por el contenido, todo me ha funcionado hasta configurar el lenguaje.
Me sale el siguiente mensaje:
Problema de requisitos
Errores encontrados
EXTENSIONES PHP
Desactivado
Drupal necesita activar las extensiones PHP de la siguiente lista (consulte la página de requisitos del sistema para más información):
dom
gd
SimpleXML
xml
Revise y no tengo estas extensiones instaladas, como puedo solucionar?
Saludos
Me gustaMe gusta
Parece que faltan algunas dependencias de php, si puedes comprobar la versión que tienes instalada y añadir las extensiones que faltan con sudo apt install php7.0-gd php7.0-xml
si la versión 7 la que tienes instalada.
Luego reinicia el servicio web
Me gustaMe gusta
Intaladas las extensiones PHP faltantes.
Sin embargo continua este error en la configuración de drupal:
FUNCIONALIDAD DE BASES DE DATOS
Desactivado
Su servidor web parece que no admite ninguna extensión de base de datos común de PDO. Compruébelo con su proveedor de alojamiento para ver si admite PDO (PHP Data Objects) y si ofrecen alguna base de datos que funcione con Drupal.
Estuve leyendo que hay que instalar php5 pero me da este error:
E: Package ‘php5-common’ has no installation candidate
E: Package ‘php5-mysql’ has no installation candidate
Nuevamente agradezco si me puedes dar una mano
Saludos
Me gustaMe gusta
Indica también los siguientes mensajes:
Advertencias encontradas
RANGO DE FECHAS LIMITADO
Su instalación de PHP tiene un rango de fechas limitado.
Se está ejecutando en un sistema en el que PHP se compila o se limita a utilizar enteros de 32 bits. Esto limitará el rango de fechas y marcas de tiempo a los años 1901-2038. Lea acerca de las limitaciones de PHP de 32 bits .
OK
SERVIDOR WEB
nginx/1.14.2
PHP
7.3.11-1~deb10u1
EXTENSIONES PHP
Activado
OPCODE CACHING DE PHP
Activado
GENERACIÓN DE NÚMEROS ALEATORIOS
Exitoso
LÍMITE DE MEMORIA PHP
256M
SISTEMA DE ARCHIVOS
Se puede escribir (método público de descarga)
BIBLIOTECA UNICODE
Extensión Mbstring de PHP
ARCHIVO DE CONFIGURACIÓN
El archivo ./sites/default/settings.php existe.
ARCHIVO DE CONFIGURACIÓN
El archivo %file tiene permisos de escritura.
Me gustaMe gusta