Paso 1: Actualizar el sistema
Antes de instalar cualquier software, asegúrate de que el sistema esté al día:
sudo apt update && sudo apt upgrade -y Paso 2: Crear un usuario sin privilegios root
Operar como root de forma permanente es una mala práctica de seguridad. Crea un usuario dedicado con permisos de administración:
adduser tu_usuario
usermod -aG sudo tu_usuario Cambia a ese usuario para el resto del proceso:
su - tu_usuario Paso 3: Deshabilitar el login directo de root por SSH
sudo nano /etc/ssh/sshd_config Busca y modifica la línea:
PermitRootLogin no Reinicia el servicio SSH:
sudo systemctl restart ssh Paso 4: Configurar el firewall
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status Más adelante, cuando instales Apache, recuerda agregar también las reglas para HTTP y HTTPS.
Paso 5: Instalar Apache
sudo apt install apache2 -y
sudo systemctl enable apache2
sudo systemctl start apache2 Paso 6: Instalar y configurar MySQL
sudo apt install mysql-server -y
sudo mysql_secure_installation El asistente mysql_secure_installation te guiará para establecer una contraseña de root robusta y eliminar configuraciones inseguras por defecto.
Crea la base de datos y el usuario específico para tu aplicación Laravel:
sudo mysql -u root -p CREATE DATABASE laravel_db;
CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'tu_contraseña_segura';
GRANT ALL ON laravel_db.* TO 'laravel_user'@'localhost';
FLUSH PRIVILEGES;
EXIT; Paso 7: Instalar PHP y las extensiones necesarias
Laravel requiere varias extensiones de PHP para funcionar correctamente:
sudo apt install php libapache2-mod-php php-mysql php-cli php-curl php-mbstring php-xml php-zip -y Verifica la versión instalada:
php -v Paso 8: Instalar Composer
Composer es el gestor de dependencias de PHP, indispensable para instalar y actualizar los paquetes que usa Laravel:
sudo apt install composer -y
composer -v Paso 9: Descargar y preparar el proyecto Laravel
cd /var/www/
git clone https://github.com/tu_usuario/tu_proyecto_laravel.git
cd tu_proyecto_laravel
composer install Paso 10: Configurar el archivo .env
Copia el archivo de ejemplo y ajústalo con tus credenciales de base de datos:
cp .env.example .env 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, indispensable para el cifrado interno de Laravel:
php artisan key:generate Paso 11: Ejecutar las migraciones de base de datos
php artisan migrate Paso 12: Configurar Apache para servir Laravel
Crea un archivo de configuración de sitio virtual apuntando al directorio public de Laravel (nunca a la raíz del proyecto, por seguridad):
sudo nano /etc/apache2/sites-available/tu_proyecto_laravel.conf <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> Activa el sitio y el módulo de reescritura de URLs (necesario para las rutas de Laravel):
sudo a2ensite tu_proyecto_laravel.conf
sudo a2enmod rewrite
sudo systemctl restart apache2 Paso 13: Configurar certificado SSL con Let's Encrypt
sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d tu_dominio.com Programada la renovación automática, ya que los certificados de Let's Encrypt expiran cada 90 días:
sudo crontab -e 0 0 * * * certbot renew --quiet Paso 14: Configurar permisos de carpetas
Laravel necesita permisos de escritura en las carpetas storage y bootstrap/cache para funcionar correctamente:
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 15: Verificar que todo funcione
Accede a https://tu_dominio.com desde el navegador. Si algo no carga correctamente, los logs son tu primer punto de investigación:
tail -f /var/log/apache2/error.log
tail -f /var/www/tu_proyecto_laravel/storage/logs/laravel.log La mayoría de los problemas en este punto se deben a permisos incorrectos, credenciales de base de datos mal configuradas en .env, o el DocumentRoot apuntando a la carpeta equivocada.
Poner una aplicación Laravel en producción implica coordinar varias piezas —sistema operativo, base de datos, PHP, Apache y SSL— pero siguiendo el orden correcto el proceso es predecible y repetible. Guarda esta checklist para futuros despliegues: actualizar y asegurar el VPS, instalar el stack LAMP, configurar Laravel con Composer y .env, ajustar Apache para servir la aplicación desde public/, y habilitar SSL antes de anunciar el sitio como listo. Si tienes dudas durante la implementación, nuestro equipo de soporte técnico está disponible 24/7 para ayudarte.
LiteSpeed hosting, NVMe and 24/7 support from $3/mo.