Cómo implementar Laravel en unUbuntu VPS
Por Andrea Pollastri · Ú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.
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.
- Tamaño: 1 vCPU / 2 GB de RAM es un cómodo punto de partida para una aplicación de producción con un base de datos, trabajador de cola y caché en el mismo cuadro. Agregue intercambio en cualquier cosa de menos de 4 GB.
- Ubuntu versión: utilice un LTS actual: Ubuntu 24.04 o 26.04. Saltar lanzamientos provisionales para producción.
- Cuándo no utilizar un VPS: Si nadie en el equipo puede responder a una alerta del servidor, un administrador plataforma como Laravel Nube es mas seguro comercio: usted paga para que las operaciones sean un problema de otra persona.
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:
| Componente | Rol | Notas |
|---|---|---|
| Nginx | Servidor web/proxy inverso | Sirve activos estáticos, proxy PHP solicitudes |
| PHP-FPM o Octane | PHP tiempo de ejecución | FPM es el valor predeterminado confiable; Octane (FrankenPHP) mantiene la aplicación iniciada para un alto rendimiento |
| MariaDB / PostgreSQL | Base de datos | Cualquiera funciona con Laravel; elegir por aplicación |
| Valkey (Redis-compatible) | Caché, sesiones, colas | Open-source Redis tenedor; sin cita previa para Laravel |
| Supervisor | Gerente de procesos | mantiene queue:work y Horizon vivo |
| Cron | Programador | Una entrada: artisan schedule:run cada minuto |
| UFW + Fail2ban | Firewall/protección de fuerza bruta | Denegar por defecto, prohibir fallas repetidas de SSH |
| Certbot | TLS certificados | Certificados Let's Encrypt gratuitos con renovación automática |
| Lanzamientos de estilo implementador | Implementaciones sin tiempo de inactividad | Directorio 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.
- 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. - Habilite el firewall.
ufw allow OpenSSH http httpsentoncesufw enable. Instale Fail2ban para protección de fuerza bruta SSH. - Instale Nginx.
apt install nginx. - Instale PHP. Agregue un repositorio PHP mantenido y luego instálelo
php8.x-fpmcon las extensiones Laravel necesita: mbstring, xml, curl, zip, intl, mysql (o pgsql), redis, gd, opcache. - Sintonice PHP para producción. Habilitar opcache, configurar sano
memory_limityupload_max_filesize, girarexpose_phpapagado. - Instalar Composer globalmente.
- Instalar MariaDB, correr
mariadb-secure-installation, crear una base de datos y un usuario dedicado por aplicación: nunca reutilice la raíz. - Instalar Valkey (o Redis) para caché, sesiones y colas.
- Escribe el bloque del servidor Nginx. Documentar los puntos raíz en
current/public,try_filesvuelve a caer aindex.php, CGI rápido pasa al socket PHP-FPM de la aplicación. - Envía el código. Clonar en un
releases/directorio,composer install --no-dev --optimize-autoloader, copiar.env, correrphp artisan key:generate,storage:linky arreglar los permisos para que solostorage/ybootstrap/cache/son grabables. - Migrar y almacenar en caché.
php artisan migrate --forceentoncesconfig:cache,route:cache,view:cache. - Configurar Supervisor correr
php artisan queue:work(o Horizon) y reinícielo en cada implementación. - Agregue el programador cron:
* * * * * php artisan schedule:run. - 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:
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:
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:
- Copias de seguridad que realmente has restaurado. Automatizar las copias de seguridad de bases de datos y almacenamiento para
Almacenamiento compatible con S3 (
cipi backup configuremaneja el cronograma y la retención). Cualquier S3 obras objetivo, incluidas Johnny, un almacenamiento de objetos compatible con open-source S3 que puedes ejecutar en un segundo VPS para obtener resultados genuinamente independientes copias fuera del sitio. Realice un simulacro de restauración trimestralmente: una copia de seguridad no probada es una esperanza, no un plan. - Seguimiento de excepciones desde el primer día. Los errores de producción deben llegar a usted antes que a los usuarios. hacer. Boogle es un self-hosted rastreador de excepciones que mantiene los datos de errores en su propia infraestructura: una buena opción si elige VPS para la propiedad de los datos en primer lugar.
- Controles y registros de salud. Cipi 5 controles de estado de la aplicación de barcos, y
cipi app logstails Laravel, Nginx e implementar registros sin gimnasia SSH. - Disciplina de parcheo. Actualizaciones de seguridad del sistema operativo desatendidas más una actualización deliberada PHP
camino (
cipi php upgradeadministra PHP parches de seguridad con una verificación semanal) supere "vamos a actualizar cuando recordemos". - Controle su expansión SSH. Una vez que ejecuta más de dos servidores, los detalles de la conexión se pudren tu historial de shell. conexión es un pequeño Herramienta Bash que administra servidores como alias con nombre y se combina muy bien con una flota de Cipi máquinas.
Errores comunes a evitar
- Implementando como root. Una aplicación comprometida posee toda la caja. Utilice usuarios por aplicación: esto Es por eso que Cipi aísla cada aplicación bajo su propio usuario del sistema.
- APP_DEBUG=true en producción. Las páginas de depuración filtran variables de entorno, credenciales y rutas. es la infracción Laravel autoinfligida más común.
- Comprometerse
.envo saliendo.git/accesible a través de la web. - 777 permisos "para que el error desaparezca". Sólo
storage/ybootstrap/cache/El usuario en tiempo de ejecución debe poder escribirlo. - Ningún trabajador de cola. El correo y los trabajos se acumulan silenciosamente en la cola para siempre.
- Saltar opcache — Pérdida de rendimiento gratuito entre 2 y 3 veces.
- No hay intercambio en instancias pequeñas — Composer y el activo construye OOM-kill en el peor momento.
- SSL renovaciones no probadas. Los certificados se renuevan automáticamente hasta el día en que no lo hacen; monitorear caducidad.
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.
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.