Servidor LEMP Parte IV Bonus: phpMyAdmin, Node.js, Gulp y más

Logos de herramientas para servidor LEMP
5 min. Lectura
0 Vistas
0 Valoración

Si hemos estado interesados en instalar un servidor LEMP, lo más seguro es que las herramientas que te presento a continuación nos van a ayudar, y mucho, a la creación y gestión de las páginas web que tengamos hospedadas en él.

Serie completa servidor LEMP

A continuación puedes encontrar la serie completa dedicada a la instalación de un servidor LEMP:

  1. CAP.I PHP
  2. CAP.II NGINX
  3. CAP.III MARIADB
  4. CAP.IV BONUS ← Estás aquí

phpMyAdmin

Logo de phpMyAdmin

Para ayudar a la gestión de las bases de datos MySQL, tenemos a nuestra disposición una herramienta basada en la web que facilita la administración de nuestros datos. Me refiero a phpMyAdmin, y vamos a instalarlo en nuestra flamante Raspberry.

Instalación de phpMyAdmin

Empezamos como siempre instalando:

sudo pacman -S phpmyadmin

Verificamos y si fuese necesario descomentamos las siguientes líneas en:

sudo nano /etc/php/php.ini
extension=pdo_mysql
extension=mysqli

Y actualizamos también:

mysqli.allow_local_infile = On
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/

Nota: open_basedir limita el acceso PHP añadiendo un poco más de seguridad.

Configuración de phpMyAdmin

Creamos un enlace a la carpeta de phpMyAdmin a nuestra carpeta http:

sudo ln -s /usr/share/webapps/phpMyAdmin/ /srv/http/phpMyAdmin

Creamos nuestro bloque de servidor:

sudo nano /etc/nginx/sites-available/phpMyAdmin
server {
        listen 80;
        listen [::]:80;

        server_name     phpmyadmin.rpi;
        access_log /var/log/nginx/phpMyAdmin.access.log;
        error_log /var/log/nginx/phpMyAdmin.error.log;

        location / {
                root    /srv/http/phpMyAdmin;
                index   index.html index.htm index.php;
        }

        location ~ \.php$ {
                root            /srv/http/phpMyAdmin;
                fastcgi_pass    unix:/var/run/php-fpm/php-fpm.sock;
                fastcgi_index   index.php;
                fastcgi_param   SCRIPT_FILENAME  /srv/http/phpMyAdmin/$fastcgi_script_name;
                include         fastcgi_params;
        }
}

Y lo enlazamos a los sitios activados:

sudo ln -s /etc/nginx/sites-available/phpMyAdmin /etc/nginx/sites-enabled

En el equipo cliente hay que declarar el alias en /etc/hosts:

sudo nano /etc/hosts
...
192.168.1.71     phpmyadmin.rpi
...

Y por último reiniciamos nginx y php-fpm:

sudo systemctl restart nginx
sudo systemctl restart php-fpm

Acceder a phpMyAdmin

Para conectarnos a phpMyAdmin, escribiremos en nuestro navegador favorito el alias que acabamos de declarar en /etc/hosts:

http://phpmyadmin.rpi/

Ventana de acceso a phpMyAdmin

Y nos aparecerá el menú de acceso.

Desarrollo web

Las siguientes herramientas nos permitirán optimizar las tareas repetitivas al realizar páginas web.

Node.js

Logo de Node.js

Si no necesitamos una versión en especial, podemos instalar Node.js desde pacman. Si por el contrario, necesitamos una versión en concreto, ve directamente a la instalación alternativa, a continuación:

sudo pacman -S nodejs npm

Instalación alternativa de Node.js con NVM

Lo malo de actualizar en automático nuestra Raspberry, es que alguna vez puede ocasionar problemas, como el que he tenido hace unos días con Node.js que se actualizó a una versión que todavía node-sass no está soportada en ARM.

Afortunadamente, he descubierto NVM (Node Version Manager) en AUR que permite instalar la versión de Node.js que nos haga falta. ¡Vamos allá!

Nos conectamos mediante SSH a nuestra Raspberry y empezaremos desinstalando Node.js y npm:

sudo pacman -Rs npm nodejs

Ahora clonamos el repositorio nvm.git:

git clone https://aur.archlinux.org/nvm.git

Cambiamos a la carpeta recién creada:

cd nvm

Y compilamos:

makepkg -si

Salimos de la carpeta:

cd ..

Y la borramos:

rm -rf nvm

Tal y como nos indica la wiki, añadimos en .bashrc las siguientes líneas:

nano .bashrc
# Set up Node Version Manager
source /usr/share/nvm/init-nvm.sh

Salimos de la terminal, y abrimos otra para que tengamos disponible la modificación de bashrc. Ahora ya podemos instalar la versión que deseemos:

nvm install 12.0
Downloading and installing node v12.0.0...
Downloading https://nodejs.org/dist/v12.0.0/node-v12.0.0-linux-armv7l.tar.xz...
######################################################################### 100,0%
Computing checksum with sha256sum
Checksums matched!
Now using node v12.0.0 (npm v6.9.0)
Creating default alias: default -> 12.0 (-> v12.0.0)

Gulp

Logo de Gulp

Gulp nos ayudará a automatizar tareas comunes y repetitivas en el desarrollo de aplicaciones web, como por ejemplo compilar Sass o JavaScript. Instalamos a nivel global:

sudo npm i -g gulp-cli

Sass

Logo de Sass

SASS básicamente es CSS con superpoderes, ofrece muchas opciones que CSS no ofrece y es el acrónimo de Syntatically Awesome StyleSheet.

Si hemos tenido que utilizar la instalación alternativa de Node.js, deberemos utilizar también la instalación alternativa de Sass, a continuación.

Si no es el caso, instalación habitual:

sudo npm install -g sass

Instalación alternativa de node-sass

Este modo instalará node-sass indicando la versión que queremos instalar, al igual que hemos hecho con Node.js:

npm install node-sass@4.12.0

Webmin

Logo de Webmin

Con Webmin vamos a tener el pleno control del servidor, pero he tenido problemas al instalarlo desde AUR:

git clone https://aur.archlinux.org/webmin.git
cd webmin
makepkg
==> ERROR: webmin no está disponible para la arquitectura «armv7h».

Solución: Modificar PKGBUILD

Hay que modificar PKGBUILD:

nano PKGBUILD

Y modificar la siguiente línea:

arch=(x86_64 armv7h)

Al segundo intento de compilar:

makepkg
error: no se ha encontrado el paquete: perl-authen-pam
error: no se ha encontrado el paquete: perl-encode-detect
==> ERROR: «pacman» ha fallado al instalar las dependencias que faltaban.

Instalar dependencias faltantes

Las dos dependencias que faltaban las he instalado desde AUR:

cd ..
git clone https://aur.archlinux.org/perl-authen-pam.git
cd perl-authen-pam
makepkg -si
cd ..
rm -rf perl-authen-pam

git clone https://aur.archlinux.org/perl-encode-detect.git
cd perl-encode-detect
makepkg -si
cd ..
rm -rf perl-encode-detect

Y al tercer intento:

cd webmin
makepkg -si
cd ..
rm -rf webmin

Activar Webmin

Activamos y arrancamos:

sudo systemctl enable webmin.service
sudo systemctl start webmin.service

Una vez en marcha, desde nuestro navegador:

http://192.168.1.76:10000

Por defecto, el usuario es root y su correspondiente contraseña.


Conclusión de la serie LEMP

Con este capítulo bonus completamos la serie del servidor LEMP. Ahora tienes:

  • PHP configurado y optimizado
  • Nginx como servidor web con virtual hosts
  • MariaDB para bases de datos
  • phpMyAdmin para gestión visual de bases de datos
  • Node.js con control de versiones mediante NVM
  • Gulp para automatización de tareas
  • Sass para desarrollo de estilos avanzado
  • Webmin para administración completa del servidor

¡Tu Raspberry Pi está lista para alojar y desarrollar proyectos web profesionales! 🚀

¿Te ha sido útil?

Ayúdame a mejorar con tu puntuación y comentarios.

0.0 (0 votos)
Jaume Ferré

Jaume Ferré

Soy un entusiasta de las nuevas tecnologías, apasionado por explorar su potencial innovador. Colecciono CDs en formato físico y disfruto creando mezclas musicales. Además, la fotografía es otra de mis pasiones, capturando momentos y expresiones con cada disparo. ¡Gracias por leerme!

💬 Comentarios

Los comentarios están gestionados por GitHub Discussions. Necesitas una cuenta de GitHub para participar. ¡Es gratis y rápido!