3.2.2. Instrucciones del despliegue - diezMalena/api_FCTFiller GitHub Wiki
En esta sección de la Wiki se detallan las instrucciones para desplegar el cliente y el servidor de la aplicación. En los scripts utilizados para la simplificación del proceso se utilizará el usuario fctfiller
.
- Ubuntu 20.04. El servidor testado en Ubuntu 22.0.4
- Laravel v8
- Composer v2.3.7
- Angular CLI: v13.0.4
- Node v16.15.1
- Package Manager: npm v8.11.0
- Apache v2.4.52
- PHP v8.1.2
- MySQL v8.0.29
Una vez satisfechos los requisitos mínimos, el primer paso es establecer los servidores virtuales en Apache. Previamente, hemos de incluir la siguiente línea en el archivo /etc/apache2/ports.conf
:
Listen 8000
Esto es necesario porque la API se sirve en el puerto 8000.
Tras esto, se debe deshabilitar el servidor virtual por defecto. hemos de crear y habilitar dos servidores virtuales:
- Servidor virtual para el cliente -
angular.conf
:<VirtualHost *:80> ServerName fct.filler.vdg ServerAdmin webmaster@localhost DocumentRoot /var/www/html/fctfiller/cliente_FCTFiller/dist/cliente-fct-filler <Directory /var/www/html/fctfiller/cliente_FCTFiller/dist/cliente-fct-filler/> AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
- Servidor virtual para la API -
laravel.conf
:<VirtualHost *:8000> ServerAdmin webmaster@localhost DocumentRoot /var/www/html/fctfiller/api_FCTFiller/public <Directory /var/www/html/fctfiller/api_FCTFiller/public> AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Con esta configuración, el cliente será accesible desde cualquier máquina mediante la URL fct.filler.vdg
. El servidor sólo será accesible mediante el puerto 8000 desde cualquier máquina, aunque se plantea que de servicio sólo al cliente, dado que no especifica una URL para acceder desde fuera.
En caso de duda sobre cómo llevar a cabo estos pasos, puedes consultar la documentación sobre instalación y configuración del servidor
Tal y como están planteados los servidores virtuales, los repositorios de cliente y de servidor deberán alojarse en el directorio /var/www/html/fctfiller/
.
Antes de comenzar a descargar los repositorios, sea o no mediante el script proporcionado posteriormente, conviene añadir los directorios de destino como seguros, ya que se ejecutarán comandos de git con permisos de superusuario:
sudo git config --global --add safe.directory /var/www/html/fctfiller/cliente_FCTFiller
sudo git config --global --add safe.directory /var/www/html/fctfiller/api_FCTFiller
Para hacerlo lo más cómodamente posible, se puede usar el archivo update_fctfiller.sh
. Este archivo se encuentra en la raíz de este proyecto (api_FCTFiller). Se debe copiar en /var/www/html/fctfiller
. Después se le deben dar permisos de ejecución con:
sudo chmod +x update.sh
Tras esto, se debe ejecutar la siguiente orden como superusuario:
sudo ./update.sh
Este archivo clona los repositorios y los despliega si no existen los directorios en la ruta. Si existen, hace un pull y los despliega también.
Para consultar los pasos del despliegue, puede consultarse el archivo update_fctfiller.sh
Para inicializar la base de datos, existen dos opciones:
- Crearla ejecutando el script
deploy_database.sh
en la raíz de la API:- Crear una base de datos vacía en PHPMyAdmin y llamarla 'fct_filler_produccion'. Si se quiere poner otro nombre a la base de datos, cambiar los datos de autenticación o apuntar a una base de datos creada fuera de localhost, debe editarse el archivo
.env
- Ejecutar el siguiente comando desde el directorio raíz api_FCTFiller:
./deploy_database.sh
- Ejecutar los siguientes comandos en la raíz del repositorio:
php artisan passport:install -n php artisan vendor:publish --tag=passport-config
- Crear una base de datos vacía en PHPMyAdmin y llamarla 'fct_filler_produccion'. Si se quiere poner otro nombre a la base de datos, cambiar los datos de autenticación o apuntar a una base de datos creada fuera de localhost, debe editarse el archivo
- Importar la base de datos de pruebas que proporcionemos los desarrolladores mediante petición por e-mail. Es posible que haya que ejecutar el comando
php artisan vendor:publish --tag=passport-config
- Rol: Director
- Email: [email protected]
- Password: superman