Per pujar un projecte Laravel i posar-lo en producció en un servidor amb allotjament compartit haurem de seguir els passos següents:
-
La documentació de Laravel indica uns passos per optimitzar els arxius. Mirar bé i amb la calma la documentació, per saber si les comandes que indica s'han de fer en local o en producció. Tenir en compte que a vegades s'ha de netejar la caché, i com que en un hosting compartit no hi ha accés per ssh a la consola, potser haurem d'anar a
\storage\frameworki esborrar el contingut de la carpeta/cache,/sessionsi/views. És de suposar que també es deu poder fer en local, abans de pujar-ho tot. -
Per penjar el codi al servidor, s'ha de posar tot el projecte excepte la carpeta
/publica una carpeta qualsevol, es pot anomenar/projecte, per exemple. Aquesta carpeta s'ha de penjar a l'arrel del hosting. Llavors només el CONTINGUT de la carpeta/publics'ha de posar al mateix lloc, a l'arrel del hosting. -
Un cop fet això, mirar que a la carpeta
/projectehi hagi l'arxiu de configuració.envamb les variables que toquen segons l'entorn de producció:APP_ENV=production APP_DEBUG=false DB_DATABASE=db_name_produccio DB_USERNAME=db_usuari DB_PASSWORD=dw_pASSword
Donat que el projecte desa les imatges de contingut a la carpeta
projecte/storage, hem de crear un arxiu simbòlic a l'arrel. Penjarem a l'arrel del hosting un arxiusymlink.phpamb aquest script:$target = 'projecte/storage/app/public'; $link = 'storage'; echo "TARGET: " . $target . " / LINK: " . $link; symlink($target, $link); echo " / READLINK: " . readlink($link);
Un cop fet això, anirem al navegador i des del domini o subdomini del projecte cridarem aquest arxiu. Una altra manera —segurament més d'acord amb el framework Laravel— seria crear una ruta que executi aquest script, en un controlador creat a tal efecte.
-
Modificar l'arxiu
index.phpde l'arrel del hosting, retocant aquestes línies:if (file_exists(__DIR__.'/projecte/storage/framework/maintenance.php')) { require __DIR__.'/projecte/storage/framework/maintenance.php'; } require __DIR__. '/projecte/vendor/autoload.php'; $app = require_once __DIR__.'/projecte/bootstrap/app.php';

Comentaris
Publica un comentari a l'entrada