php - digitalocean - Despliegue de Laravel… ¿Hay una forma estándar?
laravel project on shared hosting (5)
Es posible que desee revisar Rocketeer : http://rocketeer.autopergamene.eu/
Estoy empezando a usar Laravel 4 seriamente en mis proyectos. Entiendo que este marco ofrece muchas ventajas al desarrollar aplicaciones RESTful. Pero entiendo que no hay consenso sobre cómo se implementan / publican y las aplicaciones usando Laravel. Todavía estoy usando FTP para transferir archivos a mi host de producción. Pero mi pregunta es: ¿Hay alguna forma estándar de hacer lo mismo pero desde Laravel? Soy fiel creyendo que con un poco de ingenio se puede crear algo como php artisan publish [Nombre del servidor de producción y credenciales SSH] como parámetros.
He leído algo interesante de Anahkiasen/rocketeer y Christopher Pitt , ambas grandes fuentes, pero ¿existe un consenso o una forma estándar de publicar aplicaciones utilizando laravel?
Esto no es realmente un problema / pregunta de Laravel, tienes que preguntar en un foro de dev-ops qué harían para implementar una aplicación PHP como la tuya.
Su aplicación Laravel es básicamente una aplicación PHP, algunos paquetes son proporcionados por Composer, por lo que es más una aplicación Composer que una Laravel, pero es posible que tenga algunas necesidades de Laravel, como ejecutar php artisan migrate
, o cualquier otro comando de Artisan para post-implementar su Aplicación, o no, entonces, es más un requisito de su aplicación que Laravel, ¿verdad?
Desarrollé un paquete para hacer mis implementaciones, Deeployer . La intención de este paquete es que, cada vez que envío mi aplicación a la rama de producción (o puesta en escena), Github activará un enlace que le indica a mi servidor que haga lo que sea necesario para implementar mi aplicación en mi propio VPS. En una implementación básica:
1) git pull
el repositorio
2) Ejecutar composer update
para actualizar la carpeta de mi proveedor
3) Ejecutar bower update
para descargar cualquier archivo js o css que haya instalado
4) Ejecutar la php artisan migrate
para actualizar el esquema de mi base de datos
5) Ejecute chmod
y chown
para corregir cualquier desorden de permisos que esos comandos pudieran haber hecho en mis directorios al descargar archivos
¿Ver? Esas son cosas que son muy particulares a mi estructura de implementación, por eso realmente no creo que vaya a encontrar un consenso sobre una aplicación de implementación. Cuando Anahkiasen construye Rocketeer por primera vez, alguien grita: "¿Por qué haces esto si ya tenemos Capistrano?".
Ayer me topé con este: http://www.deployhq.com/packages , usado por Ben Corlet de Cartalyst y otros chicos agradables.
También hay Rocketeer: http://rocketeer.autopergamene.eu/ .
No olvide que Laravel tiene su propio componente remoto SSH (lo usé en Deeployer y Rocketeer también lo usa), que podría ayudarlo a hacer lo que sea necesario para implementar su aplicación.
Por lo tanto, es mejor que piense cuáles son sus necesidades de implementación y encuentre su camino, utilizando un paquete, una aplicación o simplemente Laravel.
Hay muchas herramientas de despliegue, como Capistrano. Te recomiendo que eches un vistazo a Deployer: tiene una API simple, con recetas para los marcos y aplicaciones populares, y puede hacer una ejecución de tareas paralela al 100%. También requiere solo para PHP.
Aquí hay un ejemplo de tarea simple:
task(''my_task'', function () {
// Your tasks code...
});
También tiene un código de buena calidad:
Si usted está pidiendo un estándar, no creo que haya uno. Pero una alternativa de FTP, bueno, ¿ha considerado usar git como una forma de implementar su sitio en producción?
Así es como lo hace: http://danbarber.me/using-git-for-deployment/ (El enlace está roto) https://www.digitalocean.com/community/tutorials/how-to-set-up-automatic-deployment-with-git-with-a-vps
Básicamente, el resumen es que tiene un bare git repository
, su propio local repository
y su production repository
. Ahora, configurando los ganchos correctos, cuando empuja al bare git repository
, un gancho en este le indicará al repositorio de producción que tire de la Cambios más recientes que ha comprometido a la producción. Y además, configurando las credenciales correctas en su configuración dependiendo del entorno ... puede crear una nueva carpeta ej. app/config/production
y app/config/stage
para que pueda ejecutar fácilmente la aplicación incluso al encender ambos servidores.
Tampoco estoy seguro de una manera estándar. Tienes a Forge y Envoyer que trabajan con Laravel, así que eso es algo que debes analizar.
Aquí hay una forma de implementar Laravel usando Rocketeer y Git. Es muy fácil de configurar y le permite utilizar varios servidores (pensar en la puesta en escena, producción, etc.)
http://dericcain.com/blog/deploying-laravel-5-with-rocketeer