Instalar Laravel en hosting compartido: guía completa

Laravel es el framework PHP más popular y funciona muy bien en hosting compartido. En esta guía aprenderás a instalar y configurar Laravel y a dejarlo listo para producción en el hosting de Theory7.

Requisitos de Laravel

Antes de empezar, comprueba que tu hosting cumple los requisitos.

Requisitos de PHP

Laravel 11 requiere:

  • PHP 8.2 o superior
  • BCMath PHP Extension
  • Ctype PHP Extension
  • Fileinfo PHP Extension
  • JSON PHP Extension
  • Mbstring PHP Extension
  • OpenSSL PHP Extension
  • PDO PHP Extension
  • Tokenizer PHP Extension
  • XML PHP Extension En el hosting de Theory7, todas las extensiones necesarias están disponibles de forma predeterminada.

Otros requisitos

  • Acceso SSH (para Composer)
  • Base de datos MySQL o MariaDB
  • Espacio en disco suficiente (como mínimo 100MB)
  • Composer disponible desde la línea de comandos

Activar el acceso SSH

Para instalar Laravel necesitas acceso SSH.

Activar SSH en DirectAdmin

  1. Inicia sesión en DirectAdmin
  2. Ve a Account Manager
  3. Haz clic en SSH Keys
  4. Genera o sube tu clave SSH
  5. Activa el acceso SSH Consulta también: activar el acceso SSH

Conectarse

ssh gebruikersnaam@example.nl
# O con puerto:
ssh -p 7777 gebruikersnaam@server.theory7.net

Instalar Laravel con Composer

Ahora ya puedes instalar Laravel.

Ir a la carpeta correcta

# Ve a la carpeta de tu dominio
cd ~/domains/example.nl

Crear el proyecto de Laravel

Instala Laravel en un subdirectorio:

# Crea un proyecto Laravel nuevo
composer create-project laravel/laravel project
# Esto crea una carpeta 'project' con Laravel

O directamente en la carpeta actual:

# En una carpeta vacía
composer create-project laravel/laravel .

Verificar la instalación

# Comprueba la versión de Laravel
cd project
php artisan --version
# Salida: Laravel Framework 11.x.x

Configurar la raíz de documentos

El hosting compartido requiere una configuración especial para Laravel.

Crear el enlace simbólico public_html

La carpeta public de Laravel debe ser la raíz de documentos:

# Elimina o renombra el public_html antiguo
cd ~/domains/example.nl
mv public_html public_html_backup
# Crea un enlace simbólico a la carpeta public de Laravel
ln -s project/public public_html

Alternativa: .htaccess en la raíz

Si los enlaces simbólicos no funcionan:

# En el .htaccess de la raíz
RewriteEngine On
RewriteRule ^(.*)$ project/public/$1 [L]

Configurar la base de datos

Laravel necesita una base de datos.

Crear la base de datos en DirectAdmin

  1. Ve a Account Manager y después a MySQL Management
  2. Haz clic en Create new Database
  3. Elige un nombre y una contraseña
  4. Anota los datos

Configurar el archivo .env

Edita el archivo .env:

cd ~/domains/example.nl/project
nano .env

Ajusta la configuración de la base de datos:

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=jouw_database_naam
DB_USERNAME=jouw_database_user
DB_PASSWORD=jouw_database_wachtwoord

Configurar la aplicación

Establece la configuración básica.

Generar la clave de la aplicación

php artisan key:generate

Esto genera una clave de cifrado única en .env.

Ajustes de producción

Adapta .env para producción:

APP_NAME="Mijn Laravel App"
APP_ENV=production
APP_DEBUG=false
APP_URL=https://example.nl
LOG_CHANNEL=daily
LOG_LEVEL=error

Ajustes de caché

Optimiza para producción:

CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_CONNECTION=database

Configurar la carpeta storage

Laravel necesita permisos de escritura en la carpeta storage.

Crear el enlace de storage

php artisan storage:link

Esto crea un enlace simbólico de public/storage a storage/app/public.

Establecer los permisos

# Asegúrate de que storage tenga permisos de escritura
chmod -R 775 storage
chmod -R 775 bootstrap/cache

Ejecutar las migraciones

Crea las tablas de la base de datos:

# Ejecuta las migraciones
php artisan migrate
# Con seeding (si está disponible)
php artisan migrate --seed

Optimización para producción

Optimiza Laravel para ganar velocidad.

Caché de configuración

php artisan config:cache

Esto guarda en caché toda la configuración en un único archivo.

Caché de rutas

php artisan route:cache

Acelera notablemente la resolución de rutas.

Caché de vistas

php artisan view:cache

Precompila todas las plantillas Blade.

Optimización del autoloader

composer install --optimize-autoloader --no-dev

Todo de una vez

php artisan optimize

Configurar la tarea cron

El programador de Laravel necesita una tarea cron:

  1. Ve a DirectAdmin
  2. Ve a Advanced Features y después a Cron Jobs
  3. Añade una tarea cron:
* * * * * cd ~/domains/example.nl/project && php artisan schedule:run >> /dev/null 2>&1

Problemas frecuentes

Error 500 después de la instalación

  1. Comprueba que existe .env
  2. Genera la clave de la aplicación: php artisan key:generate
  3. Comprueba los permisos de storage

El enlace de storage no funciona

# Elimina el enlace antiguo
rm -f public/storage
# Vuelve a crearlo
php artisan storage:link

Error de memoria de Composer

# Aumenta el límite de memoria
php -d memory_limit=512M /usr/local/bin/composer install

Página en blanco sin mensaje de error

  1. Activa temporalmente la depuración: APP_DEBUG=true
  2. Consulta el error
  3. Vuelve a desactivar la depuración

Ejecutar actualizaciones

Mantén Laravel actualizado:

# Actualiza las dependencias
composer update
# Ejecuta las migraciones nuevas
php artisan migrate
# Vacía y regenera la caché
php artisan optimize:clear
php artisan optimize

¿Necesitas ayuda?

Estamos a tu disposición. ¿Te has atascado con algo o tienes alguna pregunta? Nuestro equipo de soporte te ayuda con gusto de forma personal. Envíanos un mensaje a través del sistema de tickets: normalmente respondemos en unas horas y buscamos la solución contigo.

¿Buscas hosting WordPress? Consulta nuestra oferta.