Lo peor que le puede suceder a uno, la mayor frustración es cuando uno tiene el proyecto listo y funcionando en sun màquina local pero no hay forma de que este pueda estar publicado para mostrarlo al mundo!
Voy a explicarte paso a paso cual ha sido mi experiencia al querer publicar mi proyecto en Laravel 5.1 a un hosting compartido.
Lo primero que hay que saber…
- Partimos de un ordenador con sistema operativo Windows 7
- Utilizamos XAMPP para nuestro servidor local
- Configuramos nuestro proyecto en un Virtual Host de modo que podemos acceder a ella a través de dilemy.app
- El proyecto esta funcionando localmente, es decir (podemos crear usuarios, loguearnos…) todo funciona perfectamente y ya queremos que nuestro proyecto sea accesible para cualquier usuario a traves de su dominio www.dilemy.com
Como queremos publicarlo en un hosting compartido, sólo disponemos de lo siguiente…
- Acceso a nuestro hosting por FTP
- Acceso a nuestra base de datos MySQL por phpMyAdmin
Bien, lo primero que haremos es acceder a nuestro proyecto que tenemos localmente, es decir dentro de nuestro directorio de proyectos de XAMPP, veamos la dirección:
C:/xampp/htdocs/dilemy
Dentro del directorio dilemy tenemos a todo el proyecto Laravel 5.1, la estructura del framework sin mas, como sigue en la imagen:
A continuación accedemos a nuestro hosting mediante FTP con el programa FileZilla, nos conectamos y debemos fijarnos a que altura estamos, en mi caso puedo estar hasta la raiz del hosting con una dirección como la que sigue:
var/wens/dilemy.com/html
Cuando me conecto a mi cuenta de FTP puedo notar que donde deberia tener el contenido raiz de mi web es dentro de /html es decir si hubieramos de meter solo un archivo index.html lo meteriamos dentro de /html quedando así una ruta como la que sigue:
var/webs/dilemy.com/html/index.html
Bien ahora lo que debemos hacer es simplemente copiar el directorio de nuestro proyecto que tenemos en nuestro servidor local. Voy a insistir en este punto, lo que debes copiar no es el contenido de tu directorio, sinó el directorio de tu proyecto, en mi caso copiaré el directorio «dilemy» que tengo en la siguiente ruta:
C:/xampp/htdocs/dilemy
Lo pegaremos (o arrastramos) dentro del directorio /html de nuestro hosting compartido, al final cuando termine de subirse todo nos quedará una ruta como la que sigue:
var/webs/dilemy.com/html/dilemy
Genial, ahora ya tenemos todo el proyecto en nuestro hosting compartido, pero aun nos falta un poco más. Vamos a subir primero nuestra base de datos por phpMyAdmin, este punto no tiene ningún secreto simplemente creamos una base de datos importamos el archivo de la base de datos y listo.
Ahora lo que haremos es configurar nuestro archivo .env para que sea acorde a nuestra configuracion de nuestro hosting compartido, simplemente abrimos el fichero modificamos los datos de nuestra base de datos y nuestra url, en mi caso solo tube que modificar los siguientes campos:
- APP_URL
- DB_HOST=127.0.0.1
- DB_DATABASE=mybdd
- DB_USERNAME=myuser
- DB_PASSWORD=mypassword
Una vez tengamos nuestro archivo modificado, lo subimos y seguimos. Lo que sigue trata sencillamente de modificar nuestro archivo de configuración para nuestro Virtual Host, en nuestro caso tubimos acceso a ello y pudimos hacerlo sin problema, en caso que no puedas o no tengas acceso pidelo a tu proveedor de hosting para que lo haga por ti.
Necesitamos que nuestro dominio apunte directamente al directorio /public de Laravel 5.1, sin ello no nos va a funcionar, así que nuestro archivo debe lucir como lo siguiente:
<VirtualHost 194.140.166.118:80> DocumentRoot /var/webs/dilemy.com/html/dilemy/public ServerName www.dilemy.com ServerAlias dilemy.com </VirtualHost>
Fijaros que la IP deberá ser la vuestra y el path tambien deberiais substituïr por el vuestro. Una vez hecho esto se acabó, no hay mas, solo debereis ir al navegador y acceder a vuestro sitio.
Sólo hay un aspecto a tener en cuenta y es que Laravel 5.1 como alguna de sus otras versiones guarda las configuraciones en cache dentro de la siguiente ruta:
bootstrap/cache
Simplemente el contenido de ese directorio eliminadlo para forzar a que se generen de nuevo con la nueva configuración, recuerda que has subido un proyecto de tu servidor local con la configuración del servidor local.
Por último te dejo otro tip a tener en cuenta, por si aún seguir el articulo te sale algun error, muchos desarrolladores pecamos en ignorar los logs y queremos resolver las cosas por intuición. El caso es que debes revisar los errores que se registran en los logs de tu maquina, ahí es donde encontrareis realmente la solución al problema.
Suerte! =)