Ubuntu · Laravel implementación

Cómo implementar Laravel en unUbuntu VPS

Por · Última actualización: · lectura gratuita, sin muro de pago

Un VPS de $5 a $7/mes sigue siendo la forma más barata y flexible de ejecutar Laravel en producción, si lo configura correctamente. Esta guía recorre toda la pila de producción, cada paso manual, la alternativa de un solo comando y los hábitos operativos que mantienen un servidor en buen estado durante años.

En esta guía
  1. Por qué un VPS (y cuándo no)
  2. La pila de producción, explicada.
  3. La configuración manual, paso a paso
  4. La alternativa de un solo comando
  5. Operaciones posteriores a la implementación que importan
  6. Errores comunes a evitar
  7. Preguntas frecuentes

Por qué un VPS (y cuándo no)

El alojamiento compartido no puede ejecutar trabajadores en cola, WebSockets o Laravel Octane correctamente y plataformas PaaS administradas Cobra por comodidad con precios basados en el uso. Un VPS de Hetzner, DigitalOcean, Vultr o Linodo le brinda acceso raíz, facturación predecible y suficiente espacio para alojar varios Laravel aplicaciones en una máquina.

La pila de producción, explicada.

Cada servidor de producción Laravel converge en los mismos componentes. Entiende qué hace cada pieza antes automatizas cualquiera de ellos:

ComponenteRolNotas
NginxServidor web/proxy inversoSirve activos estáticos, proxy PHP solicitudes
PHP-FPM o OctanePHP tiempo de ejecuciónFPM es el valor predeterminado confiable; Octane (FrankenPHP) mantiene la aplicación iniciada para un alto rendimiento
MariaDB / PostgreSQLBase de datosCualquiera funciona con Laravel; elegir por aplicación
Valkey (Redis-compatible)Caché, sesiones, colasOpen-source Redis tenedor; sin cita previa para Laravel
SupervisorGerente de procesosmantiene queue:work y Horizon vivo
CronProgramadorUna entrada: artisan schedule:run cada minuto
UFW + Fail2banFirewall/protección de fuerza brutaDenegar por defecto, prohibir fallas repetidas de SSH
CertbotTLS certificadosCertificados Let's Encrypt gratuitos con renovación automática
Lanzamientos de estilo implementadorImplementaciones sin tiempo de inactividadDirectorio de versiones + intercambio de enlaces simbólicos

La configuración manual, paso a paso

Esta es la lista de verificación honesta e íntegra. Haga un presupuesto de 2 a 4 horas la primera vez y recuerde que será dueño de cada una de estas opciones también en el momento de la actualización.

  1. Cree un usuario sudo y bloquee SSH. adduser deploy, instala tu publico clave, luego deshabilite el inicio de sesión raíz y la autenticación de contraseña en /etc/ssh/sshd_config.
  2. Habilite el firewall. ufw allow OpenSSH http https entonces ufw enable. Instale Fail2ban para protección de fuerza bruta SSH.
  3. Instale Nginx. apt install nginx.
  4. Instale PHP. Agregue un repositorio PHP mantenido y luego instálelo php8.x-fpm con las extensiones Laravel necesita: mbstring, xml, curl, zip, intl, mysql (o pgsql), redis, gd, opcache.
  5. Sintonice PHP para producción. Habilitar opcache, configurar sano memory_limit y upload_max_filesize, girar expose_php apagado.
  6. Instalar Composer globalmente.
  7. Instalar MariaDB, correr mariadb-secure-installation, crear una base de datos y un usuario dedicado por aplicación: nunca reutilice la raíz.
  8. Instalar Valkey (o Redis) para caché, sesiones y colas.
  9. Escribe el bloque del servidor Nginx. Documentar los puntos raíz en current/public, try_files vuelve a caer a index.php, CGI rápido pasa al socket PHP-FPM de la aplicación.
  10. Envía el código. Clonar en un releases/ directorio, composer install --no-dev --optimize-autoloader, copiar .env, correr php artisan key:generate, storage:linky arreglar los permisos para que solo storage/ y bootstrap/cache/ son grabables.
  11. Migrar y almacenar en caché. php artisan migrate --force entonces config:cache, route:cache, view:cache.
  12. Configurar Supervisor correr php artisan queue:work (o Horizon) y reinícielo en cada implementación.
  13. Agregue el programador cron: * * * * * php artisan schedule:run.
  14. Emitir certificados TLS con Certbot y fuerce HTTPS.

Ahora multiplique por cada aplicación que aloja y nuevamente por cada servidor, y mantenga PHP, Nginx y el sistema operativo parcheados. para siempre. Todo es factible; es simplemente un trabajo indiferenciado.

La alternativa de un solo comando

Todo lo que aparece en la sección anterior es exactamente lo que Cipi automatiza. en un nuevo Ubuntu 24.04/26.04 VPS:

wget -O - https://cipi.sh/setup.sh | fiesta

En unos diez minutos obtienes la pila completa: Nginx, PHP, MariaDB, Valkey, Supervisor, UFW, Fail2ban, Certbot, Deployer: además del refuerzo que de otro modo haría a mano: inicio de sesión raíz deshabilitado, SSH solo con clave para el usuario administrador y una contraseña de root aleatoria almacenada en /etc/cipi/server.json. Entonces cada aplicación es una más comando:

cipi creación de aplicación # add --octane for Laravel Octane on FrankenPHP

Que disponga una usuario de sistema aislado, grupo PHP-FPM, Nginx vhost y base de datos por aplicación, conecta GitHub o GitLab con claves de implementación y webhooks para implementaciones de Git sin tiempo de inactividad y colas de cables trabajadores y el planificador. SSL es cipi ssl install; PostgreSQL es cipi db install pgsql. Ver el empezando guía para el tutorial completo, o el centro de comparación si lo estás evaluando con Forge, Ploi y amigos.

Operaciones posteriores a la implementación que importan

Llegar a "funciona" es la mitad del trabajo. Estos hábitos son los que separan a un servidor que dura años de uno eso te sorprende:

Errores comunes a evitar

Pon esto en práctica con Cipi

Cipi es la open-source implementación gratuita CLI a la que se hace referencia en esta guía: un comando se convierte en un nuevo Ubuntu VPS en un servidor de producción reforzado para Laravel — Nginx, PHP-FPM o Octane, MariaDB o PostgreSQL, colas, programador, SSL e implementaciones de Git sin tiempo de inactividad incluidas.

wget -O - https://cipi.sh/setup.sh | fiesta

Preguntas frecuentes

¿Cuáles son los requisitos mínimos del servidor para Laravel en producción?

Una única vCPU con 2 GB de RAM ejecuta cómodamente una aplicación Laravel típica con base de datos, caché y un trabajador en cola; agregue intercambio por debajo de 4 GB. Octane, Horizon y los pasos de construcción pesados se benefician de 4 GB. Cipi instala su pila completa en cualquier Ubuntu 24.04/26.04 VPS nuevo.

¿Puedo alojar varias Laravel aplicaciones en una VPS?

Sí, y suele ser la configuración más rentable. La clave es el aislamiento: cada aplicación debe tener su propio usuario del sistema, grupo PHP-FPM y credenciales de base de datos para que una aplicación comprometida o que se comporte mal no pueda tocar a las demás. Cipi proporciona exactamente ese aislamiento automáticamente con la creación de la aplicación cipi.

¿Debo usar PHP-FPM o Laravel Octane?

PHP-FPM es el valor predeterminado, aburrido y confiable, y adecuado para la mayoría de las aplicaciones. Octane mantiene el marco iniciado entre solicitudes y brilla en API de alto tráfico y puntos finales sensibles a la latencia. Con Cipi puedes ejecutar ambos en el mismo servidor y crear Octane aplicaciones con cipi creación de aplicaciones --octane.

¿Cómo mantengo a PHP actualizado el Ubuntu?

Realice un seguimiento de un repositorio PHP mantenido y aplique parches de seguridad rápidamente en lugar de esperar actualizaciones de distribución. Cipi administra PHP parches de seguridad con una verificación semanal (actualización cipi php), para que los servidores no se queden atrás silenciosamente.

¿Todavía necesito Laravel Forge si administro mi propio VPS?

No. Forge es un SaaS pago que automatiza la misma pila que describe esta guía. Si desea esa automatización sin la suscripción o la dependencia de terceros, Cipi cubre el mismo flujo de trabajo de forma gratuita y open source: consulte la comparación detallada entre Cipi y Forge.

Sigue leyendo