Instalando un servidor LEMP. Cap.IV Bonus

¡Bonus! Complementos en un servidor LEMP

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.


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

CAP.I PHP
CAP.II NGINX
CAP.III MARIADB
CAP.IV BONUS

phpMyAdmin

Logo 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.

Empezamos como siempre instalando:

sudo pacman -S phpmyadmin

Verificamos y si fuese necesario descomentámos las siguientes lineas 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/

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

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 ultimo reiniciamos nginx y php-fpm:

sudo systemctl restart nginx
sudo systemctl restart php-fpm

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

http://phpmyadmin.rpi/

Ventana de bienvenida de phpMyAdmin

Y nos aparecerá el menu de acceso

Desarrollo web

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

Node.js

Logo nodejs

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

sudo pacman -S nodejs npm

Instalación alternativa de nodejs

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 nodejs 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 nodejs que nos haga falta ¡Vamos allá!

Nos conectamos mediante SSH a nuestra Raspberry y empezaremos desinstalando nodejs 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 Gulp

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

sudo npm i -g gulp-cli

Sass

Logo SASS

SASS Basicamente 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 nodejs, deberemos utilizar tambien 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 instalara node-sass indicando la version que queremos instalar, al igual que hemos hecho con nodejs:

npm install node-sass@4.12.0

Webmin

Logo 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».

Hay que modificar PKGBULID:

nano PKGBUILD

Y modificar la siguiente linea:

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.
==> Dependencias que faltan:
  -> perl-authen-pam
  -> perl-encode-detect
==> Comprobando dependencias mientras se compila...
==> ERROR: No se pudieron resolver todas las dependencias.

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
cd ..
rm -rf perl-authen-pam
git clone https://aur.archlinux.org/perl-encode-detect.git
cd perl-encode-detect
makepkg
cd ..
rm -rf perl-encode-detect

Y al tercer intento:

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

Activamos y arrancamos:

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

Una vez en marcha, desde nuestro navegador:

192.168.1.76:10000


Web server port (default 10000): Login name (default admin): Login password

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

Soy Jaume Ferré, aficionado a los nuevas tecnologias, aunque ya no lo son tanto.
¡Gracias por leerme!

Valora este artículo1 2 3 4 5 (0 votos)

(0 votos)

Categorias del blog

twitter

Últimos tweets