3.2.1. Instalación y configuración del servidor - diezMalena/api_FCTFiller GitHub Wiki

SSH

Para poder acceder al sistema más fácilmente y concurrir varios usuarios en el sistema, instalamos openssh:

sudo apt install openssh

PHP

  1. Actualizamos el sistema.
sudo apt update 
  1. Instalamos php.
sudo apt install php
  1. Comprobamos la vesión instalada:
php -version

Debemos asegurarnos que la versión de PHP instalada es 7.4 o superior, ya que es el mínimo requisito de la API de FCTFiller

MySQL

Instalación de MySQL

  1. Actualizamos el sistema.
sudo apt update
  1. Instalamos el paquete MySQL server.
sudo apt-install mysql-server
  1. Ponemos la contraseña para el usuario root.
  2. Ejecutamos:
mysql_secure_installation
  1. Le daremos a todas que sí, menos a la que permite al usuario root conectarse remotamente, la de usuarios anónimos y la de cambiar la contraseña, ya que nosotros ya la cambiamos en pasos anteriores.

Configuración de MySQL

  1. Accedemos a la consola mysql.
mysql -u root -p
use mysql
  1. Primero vamos a comprobar el estado de las variables relaccionadas con los requisitos de las contraseñas.
SHOW VARIABLES LIKE 'validate_password%';
  1. Debemos cambiar dos de los parametros para que se nos permita poner la contraseña que queramos.
SET GLOBAL validate_password_policy=LOW; o SET GLOBAL validate_password.policy=LOW;
SET GLOBAL validate_password_length=1; o -SET GLOBAL validate_password.length=1;
  1. Ahora crearemos usuarios con sus permisos (hacer esto por cada usuario).
CREATE USER 'david'@'%' IDENTIFIED BY 'david';
GRANT ALL PRIVILEGES ON *.* TO 'david'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
  1. Ahora esta todo listo, podemos salirnos de mysql.
quit;

phpMyAdmin

Instalación y configuración

  1. Actualizamos el sistema.
sudo apt update
  1. Instalamos phpmyadmin.
sudo apt install phpMyAdmin
  1. A continuación se nos mostrarán estas ventanas.

    • apache2 (pulsamos espacio) -> Aceptar
      image

    • Si.
      image

    • Introducimos la contraseña y la repetimos en la siguiente pantalla.
      image

  2. Añadimos esta línea al final en el archivo apache2.conf que se encuentra en etc/apache2.
    image

  3. Como reconfigurar phpMyAdmin.

sudo dpkg-reconfigure phpmyadmin

Errores encontrados

  • En phpmyadmin me han surgido estos dos errores que se solucionan a la vez.
    image
  1. Primero ingresamos en mysql como root
mysql -u root -p
  1. Creamos el usuario phpmyadmin así.
CREATE USER 'pma'@'localhost' IDENTIFIED BY 'tu contraseña';
  1. En el archivo config.inc.php (que depende de si estás configurando un xampp estará en xampp/phpMyAdmin/config.inc.php, o si estás desde un linux en /etc/phpmyadmin/config.inc.php) cambiamos estas dos líneas.
    • $cfg['Servers'][$i]['controluser'] = 'phpmyadmin';
    • $cfg['Servers'][$i]['controlpass'] = 'tu contraseña';
  2. Por último reiniciamos el servicio de MySQL con
systemctl restart mysql.service.

  • Otro error muy común es que, cuando estas intalando phpMyAdmin no te permita ingresar la contraseña que has elegido por que no satisface los requisitos de contraseñas, esto es lo que debes hacer:
  1. Primero ingresamos en mysql como root.
mysql -u root -p
use mysql
  1. Comprobamos el estado de las variables de requisitos de contraseñas y como podeís ver, no están como las habiais dejado.
SHOW VARIABLES LIKE 'validate_password%';
  1. Las volvemos a configurar.
SET GLOBAL validate_password_policy=LOW; o SET GLOBAL validate_password.policy=LOW;
SET GLOBAL validate_password_length=1; o -SET GLOBAL validate_password.length=1;
  1. Salimos de mysql.
quit;
  1. Volvemos a reconfigurar phpMyAdmin.
sudo dpkg-reconfigure phpmyadmin

Servidor web - Apache

Se utilizará Apache2 como servidor web. Para instalarlo, hay que ejecutar el siguiente comando:

apt install apache2

Habilitamos el mod rewrite para permitir que Laravel reescriba las rutas de la API:

a2enmod rewrite

Creamos tres archivos de sitio en sites-available: uno para el cliente y dos para la API (uno público y otro privado). Los habilitamos y deshabilitamos el sitio por defecto:

a2ensite angular.conf
a2ensite laravel.conf
a2ensite laravel-public.conf
a2dissite 000-default.conf

El resto del proceso se explica en las instrucciones del despliegue