Laravel es un framework PHP gratuito y de código abierto basado en el framework Symfony. Sigue el patrón arquitectónico modelo-vista-controlador y se utiliza para un desarrollo rápido de aplicaciones web. Es altamente escalable y tiene soporte integrado para sistemas de caché distribuidos. Viene con una interfaz de línea de comandos que ayuda a realizar varias operaciones para tus aplicaciones.
En esta guía, te explicamos cómo instalar Laravel 8 con Apache y Let's Encrypt SSL en Ubuntu 20.04.
Requisitos Previos
- Un servidor cloud Ubuntu 20.04 instalado en tu sistema.
- Un nombre de dominio válido que apunte a la IP de tu servidor.
- Una contraseña root o un usuario con privilegios sudo.
Instala el Servidor Web Apache
Primero deberás instalar el paquete del servidor web para alojar una aplicación Laravel. Puedes usar el servidor web Nginx o Apache para Laravel.
Para instalar el servidor web Apache, ejecuta el siguiente comando:
# apt-get install apache2 -y Esto instalará el paquete del servidor web Apache e iniciará el servicio web Apache automáticamente.
Para probar el servidor web Apache, abre el navegador web y accede a la URL http: // your-server-ip. Deberías ver la página de prueba de Apache en la siguiente pantalla:
Instala PHP
Laravel es una aplicación basada en PHP, por lo que deberás instalar PHP y otras extensiones necesarias en tu servidor. Puedes instalarlas todas con el siguiente comando:
# apt-get install libapache2-mod-php php php-common php-xml php-gd php-opcache php-mbstring php-tokenizer php-json php-bcmath php-zip unzip -y Después de instalar todos los paquetes, edita el archivo php.ini y habilita cgi.fix_pathinfo:
# nano /etc/php/7.4/apache2/php.iniCambia la siguiente línea:
cgi.fix_pathinfo=0 Guarda y cierra el archivo y después reinicia el servicio Apache para que se apliquen los cambios:
# systemctl restart apache2Instala Composer
Composer es un administrador de dependencias para PHP que se utiliza para administrar las dependencias y bibliotecas necesarias para las aplicaciones PHP.
Para instalar Composer, ejecuta el siguiente comando:
# curl -sS https://getcomposer.org/installer | php Deberías obtener el siguiente resultado:
All settings correct for using Composer
Downloading...
Composer (version 2.1.6) successfully installed to: /root/composer.phar
Use it: php composer.phar
A continuación, mueve el binario descargado a la ruta del sistema:
# mv composer.phar /usr/local/bin/composerPara seguir, verifica la versión de Composer con el siguiente comando:
# composer --version Deberías ver el siguiente resultado:
Composer version 2.1.6 2021-08-19 17:11:08Instala Laravel 8 Utilizando Composer
En este apartado, vas a instalar Laravel utilizando Composer.
Primero, navega hasta el directorio raíz web de Apache y descarga Laravel con el siguiente comando:
# cd /var/www/html
# composer create-project --prefer-dist laravel/laravel laravelDeberías obtener el siguiente resultado:
> @php artisan vendor:publish --tag=laravel-assets --ansi
No publishable resources for tag [laravel-assets].
Publishing complete.
@php artisan key:generate --ansi
Application key set successfully.
A continuación, cambia el permiso y la propiedad del directorio de Laravel:
# chown -R www-data:www-data /var/www/html/laravel
# chmod -R 775 /var/www/html/laravelConfigura Apache para Hospedar Laravel 8
Ahora deberás crear un archivo de configuración de host virtual Apache para alojar una aplicación Laravel.
Puedes hacerlo con el siguiente comando:
# nano /etc/apache2/sites-available/laravel.confAñade las siguientes líneas:
<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName laravel.example.com
DocumentRoot /var/www/html/laravel/public
<Directory /var/www/html/laravel>
Options Indexes MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>Guarda y cierra el archivo y luego habilita el módulo de reescritura de Apache y activa el host virtual Laravel con el siguiente comando:
# a2enmod rewrite
# a2ensite laravel.confPara terminar, carga de nuevo el servicio Apache para aplicar los cambios:
# systemctl restart apache2Instala Let's Encrypt SSL en el sitio de Laravel
Siempre es recomendable proteger tu sitio web con Let's Encrypt SSL. Para hacerlo, deberás instalar el cliente Certbot en su servidor.
Ejecuta el siguiente comando para instalar el cliente Certbot:
# apt-get install python3-certbot-apache -yDespués de instalar Certbot, utiliza el siguiente comando para descargar e instalar Let's Encrypt SSL en tu website Laravel:
# certbot --apache -d laravel.example.comTendrás que proporcionar una dirección de e-mail válida y aceptar los términos del servicio como se muestra más abajo:
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): admin@example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for laravel.example.com
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/laravel-le-ssl.conf
Deploying Certificate to VirtualHost /etc/apache2/sites-available/laravel-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/laravel-le-sslElige si deseas redirigir el tráfico HTTP a HTTPS, eliminando el acceso HTTP.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS.You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2Escribe "2" y presiona "Enter" para descargar e instalar un certificado SSL gratuito para tu dominio, una vez que la instalación se haya completado con éxito. Deberías obtener el siguiente resultado:
Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/laravel.conf to ssl vhost in /etc/apache2/sites-available/
laravel-le-ssl.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://laravel.example.com
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=laravel.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -En este punto, tu sitio web de Laravel está protegido con Let's Encrypt SSL. Ahora puede acceder a él de forma segura con la URL https://laravel.example.com.
Accede al sitio web de Laravel
Ahora, escribe la URL https://laravel.example.com en tu navegador web. Serás redirigido a la página predeterminada de Laravel 8:
Conclusión
Con este tutorial, has aprendido a instalar Laravel 8 con Apache y a asegurarlo con Let's Encrypt SSL en Ubuntu 20.04.
¡Ya puedes empezar a desarrollar una aplicación web integral PHP utilizando el framework de Laravel!