Laravel sur un hébergement partagé (shared)

Catégorie: Web (Mis à jour le 19-11-2014 21:43:11)

Laravel est devenu de plus en plus influent ces derniéres années. Je vous présente donc un guide pour installer votre application laravel sur un hebergement mutualisé (shared hosting) simplement!

Prérequis

Voici les points à faire attention. Il est conseillé de verifier via le forum ou le phpinfo de votre hebergement que ces caractéritiques sont présentes.

  • PHP 5.5 minimum
  • MCrypt installé
  • Url rewriting actif

Upload FTP

Laravel utilise composer pour installer ses dépendances, sauf que les mutualisés ne proposent pas cette fonctionnalité. Il faut donc installer votre site web en local, y lancer composer update puis uploader le tout sur votre FTP (en incluant le dossier vendor).

Migration de la base de donnée

Comme on ne peux pas non plus utiliser la commande artisan migrate pour génerer notre base de donnée, il faut donc soit la générer en local, puis la transferer via PHPMyAdmin, soit lancer la migration sans la console.

Personnellement, je préfére la seconde solution. L'astuce consiste ici à creer une route secrete (par exemple admin/install) qui va permettre d'installer votre base de donnée.

Un exemple de controlleur:

Ce controlleur, migre la base de donnée lorsqu'on apelle sa route. J'ai rajouté une authentification basique afin de ne pas permettre à n'importe qui de recharger la base de donnée comme ça!

Redirection du repertoire public

Pour ceux qui ne peuvent pas changer le Web root de leur hébergement, voici un htaccess simple qui redirige toutes les requetes vers le routeur de laravel (dossier /public):

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !^public
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

Cela permet de retirer le dossier public de votre url visible.

Aller plus loin

Comme l'upload FTP peut être long (45 minutes pour 4000 fichiers!), vérifiez si votre hebergeur supporte l'extension ZipArchive (sur Hostinger et Byethost par exemple). Si c'est le cas, uploadez votre site en tant que ZIP, puis extrayez le via un script php tout simple.

Hébergements confirmés

Voici une liste des hebergements qui supportent laravel (testé et confirmé) avec la langue de leur site web et la localisation de leurs serveurs.

Si vous cherchez une alternative plus flexible, je vous conseille de regarder du coté des hébergements cloud.

A lire aussi:

Nodejs et la simplification de l'asynchrone

[Web] On entend souvent parler de nodejs comme une révolution sans le monde du temps réel. Voici une présentation de cet outil qui permet de réaliser simplement des applications performantes et asynchrones.
Suite...

[PHP] [Laravel] Repository (Convertir Eloquent en stdClass)

[Web] L'application du RepositoryPattern implique de séparer les modèles Eloquent du controlleur via un Repository. Voici une alternative à toArray pour découpler vos controlleurs de vos objects modeles.
Suite...