Categories: Amazon Web Services

Cómo instalar Laravel en AWS EC2 de la manera correcta

¿Estás cansado de desarrollar tu aplicación de Laravel en tu servidor local? ¿Quisieras ver tu aplicación en la nube? Esto puede sonar aterrador al principio, pero en este tutorial, cubriremos todas las configuraciones que necesitas para implementar tu aplicación en una instancia de EC2 de Amazon Web Services (AWS).

Aplicaciones de Laravel en la nube

Hoy en día, Laravel es uno de los frameworks PHP más populares en el mundo. Los desarrolladores prefieren usar Laravel en lugar de CodeIgniter, CakePHP o el framework Yii debido a su fácil integración de bases de datos, alta personalización, facilidad de desarrollo y creación de plantillas, bibliotecas y excelente documentación.

Tal vez te interese leer nuestro blog: Laravel 5.6 vs Symfony 4: La mejor batalla de PHP Framework

AWS nos ofrece las mejores soluciones y tecnologías Cloud para implementar aplicaciones en la nube, como RDS (Servicio de Base de Datos Relacional), EC2 (Elastic Compute Cloud), S3 (Simple Storage Service, Cloudfront, AutoScaling, Classic y Application Load Balancers.

Para implementar nuestra aplicación Laravel, debemos tener estos recursos listos para usar:

Una vez que tenemos estos recursos disponibles, podemos proceder a instalar nuestro Laravel Stack en nuestro servidor.

Stack

  • Ubuntu 16.04
  • Nginx 1.14
  • PHP-7.2
  • PHP7.2-FP

Procedimiento para configurar Laravel en AWS

1. Inicia sesión en tu instancia de EC2.
Si no sabes cómo hacerlo, ¡Mira este blog para obtener ayuda!

2. Actualiza tus bibliotecas.
Actualicemos nuestras bibliotecas a los últimos paquetes disponibles.

Advertencia: si tu servidor es nuevo, no habrá ningún problema actualizando las bibliotecas, de lo contrario, asegúrate de no romper nada. Puedes actualizar un paquete que no sea compatible con tu stack actual.

$ sudo apt-get update
$ sudo apt-get upgrade

3. Instalar la última versión de Nginx
Antes de eso, obtengamos permisos de superusuario.

$ sudo su

Establezcamos una variable para la última versión de nginx.

$ nginx=stable

Ahora agrega el repositorio usando la variable anterior.

$ add-apt-repository ppa:nginx/$nginx

Presiona enter para confirmar esta adición.

Ahora actualicemos nuestras bibliotecas nuevamente con la última versión de Nginx.

$ apt-get update

Y por último pero no menos importante, instala Nginx.

$ apt-get install nginx

Tip: Verifica la versión de Nginx con el siguiente comando:

$ nginx -v

4. Instalar php 7.2 y php7.2-fpm
Antes que nada, instalemos el siguiente paquete.

$ apt-get install python-software-properties

Ahora agrega el repositorio.

$ add-apt-repository ppa:ondrej/php

Presiona enter para confirmar esta adición.

Ahora actualicemos nuestras bibliotecas nuevamente con la versión php7.2.

$ apt-get update

Y finalmente, instale php7.2 con php7.2-fpm también.

$ apt-get install php7.2 php7.2-msql php7.2-mysql php7.2-fpm php7.2-xml php7.2-gd php7.2-opcache php7.2-mbstring

Además, instala estas bibliotecas.

$ apt install zip unzip php7.2-zip

Para verificar su instalación, verifica la versión de PHP.

$ php -V

5. Install Laravel/Deploy your code.
En este paso, puedes enviar tu aplicación a tu servidor utilizando SCP, FTP o cualquier otra aplicación en la que desee implementar su código. En este tutorial, Laravel se instalará desde cero.

Descargar Composer

$ curl -sS https://getcomposer.org/installer | php

Mueve el Composer para hacerlo ejecutable.

$ mv composer.phar /usr/local/bin/composer

Pasemos al directorio donde queremos instalar/mover nuestro Laravel.

$ cd /var/www

Ahora instalemos Laravel.
Nota: omite este paso si ya tienes tu código.

$ composer create-project laravel/laravel test --prefer-dist

Establecer la propiedad adecuada para nuestro directorio.

$ chown -R www-data:www-data test/

Y también establece los permisos adecuados

$ chmod -R 775 test/

6. Configurar el host virtual en Nginx.
Ve a la carpeta de sitios disponibles en Nginx.

$ cd /etc/nginx/sites/available

Modifica el archivo de host virtual predeterminado con el editor vim; el archivo debería verse así:

server {
		listen 80 default_server;
		listen [::]:80 default_server;

		root /var/www/test/public;
		
		index index.php index.html index.htm index.nginx-debian.html;

		server_name _;

		location / {
			try_files $uri $uri/ =404;
		}

		location ~ \.php$ {
			include snippets/fastcgi-php.conf;
			
			# With php-fpm (or other unix sockets);
			fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
# With php-fpm (or other unix sockets);
		}
}

Ahora guarda y sal.

$ :wq

Tip: Antes de reiniciar en Nginx, primero comprueba la sintaxis de Nginx. Si la sintaxis está bien, entonces es seguro realizar un reinicio

$ nginx -t

Ahora reinicia Nginx, para cargar nuestros cambios.

$ service nginx restart

Ahora, ve a tu navegador web y pega tu IP pública y ¡Deberías poder ver tu aplicación Laravel!

Tip: Si no conoces tu IP pública, puedes usar este comando para ver la dirección IP rápidamente. Además, puedes ir al panel de instrumentos de AWS y buscar tu IP pública.

$ curl icanhazip.com

Nota: Si implementaste tu aplicación personalizada, asegúrate de reemplazarla en tu archivo .env, punto final RDS para habilitar la conexión a la base de datos.

¿Qué sigue?

Ahora que has implementado/instalado tu aplicación Laravel en AWS, es posible que te preocupe el rendimiento. Si deseas ampliar tu aplicación, puedes usar la función Auto Scaling para habilitar la alta disponibilidad en tu aplicación. Por ejemplo, si tu aplicación alcanza cierto uso de CPU al tener muchos visitantes, se lanzará otra copia exacta del servidor. Para entregar el tráfico entre dos (o tanto como sea necesario), también podemos usar el servicio de AWS Load Balancer. Por lo tanto, ambos servidores se registrarán en el equilibrador de carga y el tráfico se dividirá en ambos servidores.

Ayudamos a empresas digitales como la tuya a implementar aplicaciones web en AWS.

  • Implementa la migración de tu aplicación en la nube.
  • Mejora la escalabilidad y la seguridad de tu infraestructura.
  • Guía a tu equipo a adoptar las prácticas AWS DevOps.
Development Clickittech

Share
Published by
Development Clickittech

Recent Posts

AWS Precios: Como funcionan los costos en la nube de Amazon

Migrar a la nube es un paso muy importante para cualquier compañía ya que brinda…

4 años ago

Guía paso paso para un WordPress de alto rendimiento

¿Tienes problemas de carga con tu servidor? ¿El CPU alcanza el 100% de uso en…

6 años ago

Cómo redirigir HTTP HTTPS

¿Has instalado un certificado SSL pero tu sitio no redirecciona al protocolo HTTPS? Esta vez…

6 años ago

ClickIT una de las 5 Mejores Empresas de Outsourcing TI en México

ClickIT Smart Technologies se preocupa por dar un servicio excelente para ayudar a las empresas…

6 años ago

Cómo configurar PayPal con WooCommerce.

Paypal es el método de pago predeterminado en WooCommerce cuando lo instalas por primera vez,…

6 años ago

Cómo elegir el AWS Partner adecuado para administrar tu infraestructura en la nube.

En este momento, ya has tomado una gran decisión. Comenzar a buscar un partner especializado…

6 años ago