Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/petehouston/laravel-deploy-on-shared-hosting
The simple guide to deploy Laravel application to shared hosting services.
https://github.com/petehouston/laravel-deploy-on-shared-hosting
laravel php
Last synced: 6 days ago
JSON representation
The simple guide to deploy Laravel application to shared hosting services.
- Host: GitHub
- URL: https://github.com/petehouston/laravel-deploy-on-shared-hosting
- Owner: petehouston
- Created: 2016-02-23T08:40:38.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-08-02T13:35:15.000Z (over 6 years ago)
- Last Synced: 2024-10-22T20:33:35.330Z (15 days ago)
- Topics: laravel, php
- Size: 24.4 KB
- Stars: 307
- Watchers: 20
- Forks: 77
- Open Issues: 13
-
Metadata Files:
- Readme: README-es.md
Awesome Lists containing this project
README
# Cómo desplegar aplicaciones Laravel en hosting compartido
[![API Documentation](http://img.shields.io/badge/en-English-yellow.svg)](README.md)
[![API Documentation](http://img.shields.io/badge/es-Español-brightgreen.svg)](README-es.md)
[![API Documentation](http://img.shields.io/badge/vi-Ti%E1%BA%BFng%20Vi%E1%BB%87t-yellow.svg)](README-vi.md)
[![API Documentation](https://img.shields.io/badge/zh_CN-%E4%B8%AD%E6%96%87%EF%BC%88%E4%B8%AD%E5%9B%BD%E5%A4%A7%E9%99%86%EF%BC%89-yellow.svg)](README-zh_CN.md)Guía simple de cómo desplegar aplicaciones Laravel y Lumen en servicios de alojamiento compartidos.
Para una versión rápida de esta guía, lee el post original en Medium: "[The simple guide to deploy Laravel 5 application on shared hosting](https://medium.com/laravel-news/the-simple-guide-to-deploy-laravel-5-application-on-shared-hosting-1a8d0aee923e#.7y3pk6wrm)" (en inglés).
## Requisitos
Antes de intentar publicar tu aplicación en un servicio de alojamiento, necesitas asegurarte de que cumple con los [requisitos de Laravel](https://laravel.com/docs/5.2#server-requirements). Básicamente, Laravel `5.2` necesita:
- PHP >= `5.5.9`
- Extensiones PHP:
- OpenSSL
- PDO
- Mbstring
- Tokenizer> Estos requisitos pueden variar dependiendo de la versión de Laravel que quieres instalar. Verifica los requisitos del servidor para la versión de Laravel apropiada en la [documentación oficial](https://laravel.com/docs/master).
Además de esto, **necesitas tener permisos de acceso SSH para tu cuenta en tu servicio de alojamiento; de otro modo, nada de lo que sigue funcionará.**
Además de PHP y esas extensiones requeridas, podrías necesitaralgunas utilidades para hacer tu despliegue más fácil:
- [Git](https://git-scm.com/)
- [Composer](https://getcomposer.org/)Eso es todo por ahora. Por favor, sírvase leer las siguientes secciones para aprender más acerca del despliegue (deployment).
## Intrucciones
Iniciemos por entender cómo deberíamos organizar la estructura de nuestra aplicación Laravel.
En primer lugar, deberías tener algo similar a estos archivos y carpetas en tu cuenta de tu alojamiento:
```bash
.bash_history
.bash_logout
.bash_profile
.bashrc
.cache
.cpanel
.htpasswds
logs
public_ftp
public_html
.ssh
tmp
etc
www -> public_html
```El código para el front-end para la cuenta principal, la cuál está vinculada con tu dominio principal, debería estar en `public_html` o `www`. Debido a que no queremos exponer las *cosas de Laravel* (como `,env`, etc..) al mundo exterior, las ocultaremos.
Crea un nuevo directorio para almacenar todo el código; colócale el nombre `projects` o cualquiera que desees.
```bash
$ mkdir projects
$ cd projects
```Bien. Desde aquí, simplemente ejecuta un comando `git` para obtener tu código:
```bash
$ git clone http://[GIT_SERVER]/awesome-app.git
$ cd awesome-app
```El próximo paso es hacer que la carpeta `awesome-app/public` se mapee con la carpeta `www` mencionada anteriormente. Los enlaces simbólicos son de gran ayuda para esto, pero primero necesitamos respaldar la carpeta `public` de nuestro proyecto.
```bash
$ mv public public_bak
$ ln -s ~/www public
$ cp -a public_bak/* public/
$ cp public_bak/.htaccess public/
```Debido a que creamos el enlace simbólico desde la carpeta `~/www` para hacer que se convierta en la carpeta `public` *virtual* en tu proyecto, debemos actualizar el archivo `~/www/index.php` para reemplazar las rutas viejas con las nuevas:
```diff
- require __DIR__.’/../bootstrap/autoload.php’;
+ require __DIR__.'/../projects/awesome-app/bootstrap/autoload.php';- $app = require_once __DIR__.’/../bootstrap/app.php’;
+ $app = require_once __DIR__.'/../projects/awesome-app/bootstrap/app.php';
```El archivo actualizado debera quedar así:
```php
require __DIR__.'/../projects/awesome-app/bootstrap/autoload.php';$app = require_once __DIR__.'/../projects/awesome-app/bootstrap/app.php';
```Ya lo difícil está hecho. El resto es hacer algunas configuraciones básicas de Laravel.
Permitir permisos de escritura al directorio `storage` es importante:
```bash
$ chmod -R o+w storage
```**Edita tu archivo`.env` con la configuración apropiada. ¡No lo pases por alto!**
Por último, actualiza los paquetes requeridos por tu proyecto Laravel usando **composer** y agrega algunas caché necesarias:
```bash
$ php composer install
$ php composer dumpautoload -o
$ php artisan config:cache
$ php artisan route:cache
```**¡Felicidades! Has configurado exitosamente una aplicación Laravel en un servicio de alojamiento web compartido.**
## Preguntas Frecuentes (FAQ)
> **1. ¿Cómo adquiero permiso de acceso SSH para mi cuenta?**
Simplemente contacta con el soporte de tu proveedor de hospedaje. Necesitarán confirmar tu identidad y te permitirán acceso SSH inmediatamente.
> **2. ¿En dónde está `git`? No lo piedo encontrar.**
Por lo general, `git` es colocado en esta ruta para proveedores de alojamiento con CPanel, `/usr/local/cpanel/3rdparty/bin/git`. Así que debes acceder a él escribiendo la ruta completa si quieres ejecutar un comando `git`. O, mejor aún, crear un alias más conveniente:
```bash
alias git="/usr/local/cpanel/3rdparty/bin/git"
```> **3. ¿Cómo obtener composer?**
Puedes usar FTP o comandos SCP para subir el archivo `composer.phar` a tu alojamiento remoto después de descargarlo localmente. También puedes usar `wget` o `curl` para descargar el archivo directamente en tu remoto:
```bash
$ wget https://getcomposer.org/composer.phar
```ó
```bash
$ curl -sS https://getcomposer.org/installer | php — –filename=composer
```> **4. ¿Estas instrucciones funciona con Lumen?**
Laravel y Lumen son como gemelos, así que lo mismo aplica para Lumen.
> **5. Intento ejecutar `composer` pero no muestra nada. ¿Cuál es el problema?**
Tienes que proveer una configuración PHP apropiada para ejecutar `composer`, lo que significa que no puedes usar `composer` directamente en algunos servicios de alojamiento. Así que para ejecutarlo, necesitarás ejecutar este comando:
```bash
$ php -c php.ini composer [COMMAND]
```> **6. ¿De dónde puedo obtener el `php.ini` para cargar con `composer`?**
Puedes copiar la configuración predeterminada de PHP, la cual por lo general está en `/usr/local/lib/php.ini` o puedes encontrarlo con este comando:
```bash
$ php -i | grep "php.ini"
```## Lista de proveedores de servicio comprobados en los que funciona
Los siguientes servicios de alojamiento compartidos han sido probadas estas instrucciones y funcionado perfectamente al 100%.
* [NameCheap](https://www.namecheap.com/)
* [JustHost](https://www.justhost.com/)
* [bluehost](https://www.bluehost.com/)
* [GoDaddy](https://godaddy.com/)
* [HostGator](http://www.hostgator.com/)
* [GeekStorage](https://www.geekstorage.com/)Funciona en el plan compartido de [GeekStorage](https://www.geekstorage.com/), pero hay que habilitar PHP 5.6 a través de .htaccess: `AddHandler application/x-httpd-php56 .php`
Si encuentras algún otro proveedor de servicio en que funcione, por favor, notifícalo. Esta lista se actualizará para informar a otros acerca de ello también.
## ¿Aún tienes problemas?
Si sigues fallando al intentar desplegar tu aplicación, puedes crear una nueva [insidencia](https://github.com/petehouston/laravel-deploy-on-shared-hosting/issues) con los detalles para ayudarte.
## Guía de Contribución
Siéntete libre de clonar (folk) el proyecto a tu cuenta y enviar una petición de [pull](https://github.com/petehouston/laravel-deploy-on-shared-hosting/pulls).