Instalación manual en Ubuntu

Para completar este tutorial, necesitará acceso a un servidor Ubuntu 22.04 o superior con privilegios de usuario root.

Instalación de Nginx

Si esta es la primera vez que usa apt para esta sesión, comience actualizando el índice de paquetes de su servidor:

sudo apt update

Después de eso, ejecute apt install para instalar Nginx:

sudo apt install nginx

Escribe la dirección IP de tu servidor en un navegador web y verifica la página de inicio predeterminada de Nginx:

http://nombre_de_dominio_o_IP

Si observas esta página, significa que ha instalado Nginx correctamente y ha habilitado el tráfico HTTP para su servidor web.

Instalación de MySQL

Nuevamente, use apt para instalar:

sudo apt install mysql-server

Cuando se le solicite, confirme la instalación presionando Y y luego ENTER.

Inicie el script interactivo de seguridad ejecutando el siguiente comando:

sudo mysql_secure_installation

Se le preguntará si desea configurar VALIDATE PASSWORD PLUGIN

Responda con la tecla N para no configurar el plugin.

Para el resto de las preguntas, presione Y y luego ENTER en cada mensaje.

Crear usuario y base de datos MySQL

Para conectarse a la base de datos desde la aplicación, crearemos un usuario MySQL dedicado y le otorgaremos privilegios completos sobre la base de datos.

Para comenzar, inicie sesión en la consola MySQL como usuario root:

sudo mysql

Para crear una nueva base de datos, ejecute el siguiente comando desde su consola MySQL:

CREATE DATABASE aurora;

Ahora puede crear un nuevo usuario y otorgarle privilegios completos en la base de datos que acaba de crear. En este ejemplo, estamos creando un usuario llamado facturador con contraseña password, debe usar una contraseña más segura en su instalación.

CREATE USER 'facturador'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

Ahora necesitamos darle permiso a este usuario sobre la base de datos:

GRANT ALL ON aurora.* TO 'facturador'@'%';

Después de esto, salga de la consola MySQL:

exit

Instalación de PHP

De forma predeterminada, Ubuntu 22.04 viene con repositorio para PHP 8.1 pero recomendamos usar una versión actual. En este ejemplo instalaremos PHP 8.3 con el repositorio ondrej/php.

Primero, instale los paquetes necesarios usando el siguiente comando:

sudo apt-get install ca-certificates apt-transport-https software-properties-common

Una vez que todos los paquetes estén instalados, agregue el PPA ondrej/php usando el siguiente comando:

sudo add-apt-repository ppa:ondrej/php

Una vez que haya terminado, actualice el repositorio con el siguiente comando:

sudo apt update

Ahora puede instalar los paquetes PHP necesarios con:

sudo apt install php8.3-fpm php8.3-mysql php8.3-mbstring php8.3-xml php8.3-bcmath php8.3-curl php8.3-intl php8.3-gd php8.3-zip php8.3-soap

Cuando se le solicite, presione Y y ENTER para confirmar la instalación.

Si se muestra la siguiente pantalla y seleccione <Ok> presione ENTER.

Instalación del sistema facturador

Ahora podemos copiar el código fuente del sistema facturador Aurora a nuestro servidor, existen muchas opciones para este paso.

Recomendamos crear un repositorio privado en GitHub o GitLab para clonar y actualizar el repositorio con mayor facilidad.

Opcionalmente, puede copiar los archivos mediante un cliente SFTP como WinSCP o FileZilla.

En este ejemplo, usamos WinSCP para conectarnos a nuestro servidor y copiar el archivo facturador-aurora-1.0.0.zip en el directorio /home/ubuntu, el nombre directorio puede ser diferente en su servidor.

Ejecute los siguientes comandos para instalar Composer y Unzip:

sudo apt-get install composer
sudo apt-get install unzip

Cuando se le solicite, presione Y y ENTER para confirmar la instalación.

Cree el directorio web raíz para el sistema facturador con el siguiente comando:

sudo mkdir /var/www/aurora

Ejecute el siguiente comando en su terminal para cambiar a su directorio home:

cd ~

Ahora debe descomprimir el archivo facturador-aurora-1.0.0.zip con:

sudo unzip /home/ubuntu/facturador-aurora-1.0.0.zip

Use el comando mv para mover la aplicación con todo su contenido a /var/www/aurora:

sudo cp -a -r /home/ubuntu/facturador-aurora-1.0.0/. /var/www/aurora/

Ahora necesitamos darle al usuario del servidor web acceso de escritura a las carpetas de storage y cache, donde se almacenan los archivos generados por la aplicación:

sudo chown -R www-data.www-data /var/www/aurora/storage
sudo chown -R www-data.www-data /var/www/aurora/bootstrap/cache

Ahora vaya al directorio web del sistema:

cd /var/www/aurora

Ahora copiamos el archivo .env.example para personalizar las opciones de configuración de entorno.

sudo cp .env.example .env

Abra el archivo .env usando el editor de línea de comando de su elección. En este ejemplo usaremos nano:

sudo nano .env

Aunque hay muchas variables de configuración en este archivo, no es necesario configurarlas todas. La siguiente lista contiene las variables que requieren modificación inmediata:

APP_NAME="Facturador Aurora"
APP_ENV=local
APP_DEBUG=false
APP_URL=http://nombre_de_dominio_o_IP

AURORA_PRODUCTION_MODE=false

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=aurora
DB_USERNAME=facturador
DB_PASSWORD=password

# Las variables MAIL_ hacen referencia a la configuración SMTP
# de su proveedor de correos

MAIL_MAILER=smtp
MAIL_HOST=sandbox.smtp.mailtrap.io
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=password
MAIL_ENCRYPTION=STARTTLS
MAIL_FROM_ADDRESS="[email protected]"
MAIL_FROM_NAME="${APP_NAME}"

Ajuste las variables a su gusto. Cuando haya terminado de editar, guarde y cierre el archivo para conservar los cambios. Si estás usando nano, puedes hacerlo con CTRL+X, luego Y y ENTER para confirmar.

Ahora instalaremos las dependencias requeridas por el sistema de facturación con composer:

sudo composer install

Cuando se le solicite, presione Y y ENTER para confirmar la instalación.

Finalmente, ejecute los siguientes comandos para terminar la configuración del sistema:

sudo php artisan key:generate
sudo php artisan storage:link
sudo php artisan migrate --seed
sudo php artisan config:cache

Configuración de Nginx

Crearemos un nuevo archivo de configuración de host virtual en /etc/nginx/sites-available:

sudo nano /etc/nginx/sites-available/aurora

El siguiente archivo de configuración contiene las configuraciones recomendadas para aplicaciones Laravel en Nginx:

server {
    listen 80;
    listen [::]:80;
    server_name nombre_de_dominio_o_IP;
    root /var/www/aurora/public;
 
    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";
 
    index index.php;
 
    charset utf-8;
 
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
 
    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }
 
    error_page 404 /index.php;
 
    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }
 
    location ~ /\.(?!well-known).* {
        deny all;
    }
}

Guarde y cierre el archivo cuando haya terminado de editarlo.

Para activar el nuevo archivo de configuración del host virtual, cree un enlace simbólico en sites-enabled:

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

Luego, desvincule el archivo de configuración predeterminado del directorio sites-enabled:

sudo unlink /etc/nginx/sites-enabled/default

Para confirmar que la configuración no contiene ningún error de sintaxis, puede utilizar:

sudo nginx -t

Para aplicar los cambios, recargar Nginx con:

sudo systemctl reload nginx

Escribe la dirección IP de tu servidor en un navegador web y verifica la nueva página de inicio:

http://nombre_de_dominio_o_IP

Esto confirma que su servidor Nginx está configurado correctamente para servir a el facturador electrónico Aurora.

Actualizar código fuente por SFTP

Si utiliza SFTP para copiar los archivos a su servidor, puede copiar los archivos modificados con el siguiente comando:

sudo cp -r -u /home/ubuntu/facturador-aurora-1.0.0/* /var/www/aurora

Opcionalmente puede ejecutar los siguientes comandos para reestablecer el acceso de escritura a las carpetas de storage y cache.

sudo chown -R www-data.www-data /var/www/aurora/storage
sudo chown -R www-data.www-data /var/www/aurora/bootstrap/cache

Última actualización