sábado, 1 de septiembre de 2018

Deployment (Produccion) Laravel con nginx


En los siguientes dos videos aprenderermos como hacer deployment (producción) a un proyecto laravel.

La primera parte del vídeo se centra en la configuración del proyecto laravel con la autenticacion que provee laravel:



Algunos comandos necesarios en el primer video:


Crear nuevo proyecto Laravel

laravel new [nombre]




Auntenticacion proporcionada por Laravel

php artisan make:auth


Ejecutar migración

php artisan migrate



La segunda parte del video nos centraremos mas en como configurar un servidor nginx apuntando a la carpeta public de nuestro proyecto laravel a la que necesitamos montar un ambiente de pruebas o produccion.



Algunos comandos necesarios en el segundo video:

Instalar nginx:

sudo apt-get install nginx

Configurar el perfil nginx para abrir los puertos 80 y/o 443 (SSL/TLS)
  • Nginx Full: Este perfil abre tanto el puerto 80 (tráfico web normal, sin cifrar) como el puerto 443 (tráfico cifrado TLS / SSL)
  • Nginx HTTP: Este perfil abre sólo el puerto 80 (normal, tráfico web no cifrado)
  • Nginx HTTPS: Este perfil abre sólo el puerto 443 (tráfico cifrado TLS / SSL)

sudo ufw allow 'Nginx HTTP'


Comprobacion del estado del servidor de nginx

systemctl status nginx

Administrar el Proceso de Nginx:

Para detener su servidor web, puede escribir:
sudo systemctl stop nginx

Para iniciar el servidor web cuando está detenido, escriba:
sudo systemctl start nginx

Para detener e iniciar de nuevo el servicio, escriba:
sudo systemctl restart nginx

Si simplemente está realizando cambios de configuración, Nginx puede recargar a menudo sin abandonar las conexiones. Para ello, se puede utilizar este comando:
sudo systemctl reload nginx

De forma predeterminada, Nginx está configurado para iniciarse automáticamente cuando se inicia el servidor. Si esto no es lo que desea, puede desactivar este comportamiento escribiendo:
sudo systemctl disable nginx

Para volver a habilitar el servicio para arrancar al arrancar, puede escribir:
sudo systemctl disable nginx


Configuracion del archivo de sitio de nginx


server {
listen 80;
server_name localhost;
root /var/www/codigoweblibre/public; #ruta del proyecto en laravel, apunta a la carpeta public

add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";

index index.html index.htm 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$ {
include fastcgi.conf;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; #ubicacion del socket php7.2-fpm.sock
fastcgi_index index.php;
}

location ~ /\.(?!well-known).* {
deny all;
}
}


Instalacion del socket de php (7.2 para este ejemplo)
sudo apt-get install php-fpm

Configuracion del php.ini
Hablititar la siguiente extension (quitar ";")

php_pdo_mysql.so

Instalación de la extension de php y mysql en caso que no la tena en su equipo
sudo apt-get install php-mysql

Espero que te sea de utilidad el articulo y el video de nuestro canal de youtube, no olvides suscribirte, estaré actualizando contenido en los próximos días.








No hay comentarios:

Publicar un comentario

Post Recomendado

Envio de Correos con PHPMailer 5.5 y PHP 7

En el siguiente post veremos como implementar la librería PHPMailer para el envío de correos con PHP. Para ello solo necesitamos la confi...

Post Destacados