Configurar un proyecto de Laravel en un VPS puede sonar como desactivar una bomba: estresante, pero emocionante si sabes lo que haces. En esta guía paso a paso aprenderás a configurar todo, desde el VPS recién salido del horno hasta que tu aplicación esté funcionando como un Ferrari bien afinado. ¡Y lo mejor! Lo haremos con humor y algunos chistes tech para hacer más ameno el proceso. 😎
Paso 1: Preparar el VPS
Cuando recibes tu VPS, está como una casa vacía. Antes de decorar (instalar Laravel), necesitamos limpiar y asegurar el lugar.
Actualizar el Sistema
Primero, asegúrate de que todo esté actualizado:
sudo apt update && sudo apt upgrade -y
Pro tip: Este comando es como lavar los platos antes de cocinar. Si no lo haces, terminarás con un desastre más adelante. 🍽️
Crear un Usuario no Root
Por seguridad, no trabajes como root todo el tiempo. Crea un usuario nuevo:
adduser tu_usuario
usermod -aG sudo tu_usuario
Luego inicia sesión con:
su - tu_usuario
Humor tech: Root es como un Jedi con demasiados poderes. Mejor mantén esos poderes limitados. 🛡️
Deshabilitar el Login para Root
¿Por qué deshabilitar el acceso directo como root? Porque es como dejar la llave de tu casa bajo el felpudo: un hacker lo encontrará en minutos.
Edita el archivo de configuración de SSH:
sudo nano /etc/ssh/sshd_config
Busca la línea PermitRootLogin
y cámbiala a:
PermitRootLogin no
Guarda los cambios y reinicia el servicio SSH:
sudo systemctl restart ssh
Pro tip: Si algo sale mal, asegúrate de tener otra sesión SSH abierta antes de reiniciar. Si te bloqueas, necesitarás acceso físico al servidor. 😅
Configurar el Firewall
Si usas UFW:
sudo ufw allow OpenSSH
sudo ufw enable
Verifica el estado:
sudo ufw status
Paso 2: Instalar LAMP Stack
Laravel necesita un entorno de servidor para funcionar. Vamos a instalar Apache, MySQL y PHP (el combo clásico conocido como LAMP).
Instalar Apache
sudo apt install apache2 -y
Habilita Apache:
sudo systemctl enable apache2
sudo systemctl start apache2
Prueba accediendo a la IP de tu VPS en un navegador. Si ves la página predeterminada de Apache, vas por buen camino. 🎉
Instalar MySQL
sudo apt install mysql-server -y
Asegura la instalación:
sudo mysql_secure_installation
Crea una base de datos para Laravel:
sudo mysql -u root -p
CREATE DATABASE laravel_db;
GRANT ALL ON laravel_db.* TO 'laravel_user'@'localhost' IDENTIFIED BY 'tu_contraseña_segura';
FLUSH PRIVILEGES;
EXIT;
Instalar PHP
sudo apt install php libapache2-mod-php php-mysql php-cli php-curl php-mbstring php-xml php-zip -y
Verifica la versión de PHP:
php -v
Humor tech: PHP es como el pegamento que une todo. Si está desactualizado, es como usar pegamento viejo: no funciona. 🧴
Paso 3: Configurar Laravel
Instalar Composer
Laravel necesita Composer, el administrador de dependencias de PHP. Instálalo con:
sudo apt install composer -y
Verifica la versión:
composer -v
Descargar el Proyecto de Laravel
Ve al directorio donde quieres alojar tu aplicación y clona tu proyecto:
cd /var/www/
git clone https://github.com/tu_usuario/tu_proyecto_laravel.git
Accede al directorio del proyecto y configura las dependencias:
cd tu_proyecto_laravel
composer install
Configurar el Archivo .env
Copia el archivo de ejemplo:
cp .env.example .env
Edita el archivo .env
para agregar los detalles de tu base de datos:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_db
DB_USERNAME=laravel_user
DB_PASSWORD=tu_contraseña_segura
Genera la clave de aplicación:
php artisan key:generate
Migrar la Base de Datos
Ejecuta las migraciones para preparar la base de datos:
php artisan migrate
Pro tip: Si esto falla, revisa los permisos de tu base de datos o la configuración de .env
. Es como verificar las llaves antes de intentar abrir una puerta. 🔑
Paso 4: Configurar Apache para Laravel
Crea un archivo de configuración para tu sitio:
sudo nano /etc/apache2/sites-available/tu_proyecto_laravel.conf
Agrega lo siguiente:
<VirtualHost *:80>
ServerName tu_dominio.com
DocumentRoot /var/www/tu_proyecto_laravel/public
<Directory /var/www/tu_proyecto_laravel/public>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Habilita el sitio y el módulo mod_rewrite
:
sudo a2ensite tu_proyecto_laravel.conf
sudo a2enmod rewrite
sudo systemctl restart apache2
Paso 5: Configurar Certificado SSL
Para asegurar tu sitio, utiliza Let’s Encrypt para instalar un certificado SSL gratuito.
Instala Certbot:
sudo apt install certbot python3-certbot-apache -y
Obtén y configura el certificado:
sudo certbot --apache -d tu_dominio.com
Renueva automáticamente el certificado:
sudo crontab -e
Agrega:
0 0 * * * certbot renew --quiet
Humor tech: HTTPS no solo protege tu sitio, también evita que los navegadores te marquen como «No seguro». Es como llevar ropa limpia: esencial para causar buena impresión. 🧼
Paso 6: Configurar Permisos
Laravel necesita permisos para escribir en ciertos directorios:
sudo chown -R www-data:www-data /var/www/tu_proyecto_laravel
sudo chmod -R 775 /var/www/tu_proyecto_laravel/storage
sudo chmod -R 775 /var/www/tu_proyecto_laravel/bootstrap/cache
Paso 7: Acceder a tu Aplicación
Abre tu navegador y accede a la IP de tu VPS o dominio configurado. Si todo está bien, deberías ver la página de inicio de tu aplicación Laravel. 🎉
Humor tech: Si algo no funciona, revisa los logs. Son como el diario de tu servidor: siempre tiene la respuesta. 📖
Resumen
Implementar Laravel en un VPS puede parecer desafiante, pero siguiendo estos pasos detallados lo lograrás:
- Actualiza y asegura tu VPS.
- Instala LAMP Stack.
- Configura Laravel con Composer y
.env
. - Ajusta Apache para servir tu aplicación.
- Habilita SSL para mayor seguridad.
🔥 Pro tip final: Con esta configuración, tu proyecto de Laravel estará listo para el mundo. Mantente siempre actualizado y revisa tu servidor regularmente para mantenerlo seguro y optimizado. 🚀