Laravel 4 : chapitre 2 : Installation
Nous avons vu dans le fil précédent où trouver le package d’installation. Voyons à présent comment l’installer et le configurer.
Prérequis
Laravel nécessite un serveur Apache avec au minimum PHP 5.3 et l’extension Mcrypt.
Vous pouvez installer en local un pack comme Wamp (c’est celui que j’utilise personnellement), Xampp ou EasyPHP .
Vérifiez que vous avez l’extension Mcrypt activée.
Composer
Laravel 4 utilise Composer, un gestionnaire de dépendances, pour son installation.
Les frameworks sont composés de nombreux éléments et utilisent souvent des applications « tierces », c’est à dire qui sont développées dans le cadre d’autres projets. Ces applications peuvent avoir elles-mêmes d’autres applications « tierces ». Avoir en permanence tous ces éléments à jour est un défi qui n’est pas facile à assumer dans le cadre d’un package figé. C’est pour cette raison que les gestionnaires de dépendance ont été créés.
L’objectif d’un gestionnaire de dépendances est de télécharger les dernières versions de ces applications et de les conserver à jour. Composer est le gestionnaire le plus récent et sans aucun doute le plus abouti, en tout cas c’est celui qui a été choisi pour l’installation de Laravel. Il offre aussi l’avantage de créer un fichier pour générer automatiquement des références de chargement automatique de classes (Laravel 4 respecte les PSR-0 et PSR-1 du fig-standards) . Si le chargement de classe ne vous est pas familier aller faire un tour sur cet article.
Il vous faut donc installer Composer, ce qui est relativement facile. Vous avez toutes les informations requises ici : http://getcomposer.org/doc/00-intro.md .
Composer ne fonctionnera pas si vous n’avez pas Git installé sur votre ordinateur. Vous pouvez télécharger la version correspondant à votre système ici .
Vous n’avez pas besoin de maîtriser ces deux applications pour installer Laravel, nous allons voir les commandes de base pour télécharger les fichiers.
Vérifiez que Composer fonctionne en utilisant simplement la commande composer à partir de l’invite de commande. Vous devez voir apparaître un logo d’accueil ainsi qu’une liste des commandes disponibles :
Installation en un clic
Méthode 1
La façon la plus simple d’installer Laravel est d’utiliser la commande create-project de Composer :
Il suffit d’attendre quelques minutes pour avoir une installation complète !
Méthode 2
Vous pouvez aussi utiliser l’archive phar de l’installateur de Laravel. Vous la placez sur votre serveur et vous entrez laravel new pour créer directement une nouvelle version de Laravel dans le dossier. Vous pouvez aussi pointer un autre dossier avec laravel new mon_dossier.
Installation plus laborieuse
Vous pouvez télécharger le pack de base comme nous l’avons vu au fil précédent dans un dossier de votre serveur. Dans mon cas j’ai créé un dossier laravel :
Ouvrez le fichier « composer.json » :
{ "name": "laravel/laravel", "description": "The Laravel Framework.", "keywords": ["framework", "laravel"], "license": "MIT", "require": { "laravel/framework": "4.1.*" }, "autoload": { "classmap": [ "app/commands", "app/controllers", "app/models", "app/database/migrations", "app/database/seeds", "app/tests/TestCase.php" ] }, "scripts": { "post-install-cmd": [ "php artisan optimize" ], "post-update-cmd": [ "php artisan clear-compiled", "php artisan optimize" ], "post-create-project-cmd": [ "php artisan key:generate" ] }, "config": { "preferred-install": "dist" }, "minimum-stability": "dev" }
C’est le fichier qui va indiquer à Composer les applications à télécharger. La clé « require » indique qu’il faut aller chercher le package laravel/framework dans sa version 4.1 la plus récente. Pour sa localisation c’est tout simple, c’est dans github.com/laravel/framework. Pour la clé autoload sont inclus les dossiers de Laravel qui nécessitent un chargement automatique des classes.
Pour finir l’installation de Laravel il suffit de taper composer install dans le dossier racine de l’application et d’attendre la fin des téléchargements :
Résultat de l’installation
Si on regarde maintenant ce qu’il s’est passé on découvre un nouveau dossier bien garni :
On trouve en particulier un fichier autoload.php qui est là pour gérer le chargement automatique dont j’ai parlé plus haut.
L’installation est maintenant terminée, vous n’avez plus qu’à vérifier que tout fonctionne en entrant l’URL de votre site en pointant le répertoire public. Ce qui donne dans mon cas :
http://localhost/laravel/public/
Normalement vous obtenez ça :
Si ce n’est pas le cas reprenez tout depuis le début .
Comment mettre à jour Laravel ? Mais c’est d’une simplicité enfantine, il suffit de taper la commande composer update !
Pour l’installation sur un serveur distant il faut disposer d’un accès SSH, il suffit alors d’utiliser composer.phar sur le serveur (et de disposer de toutes les commandes utiles, ce qui n’est pas souvent le cas sur les serveurs mutualisés). Sinon il faut tout transmettre en FTP.
14 commentaires
John Smith
Eh bien, j’ai fini par trouver. Il semblerait que la constante magique __DIR__ ne marche qu’avec des versions récentes de PHP, aussi, il fallait que je modifie le .htaccess qui se trouve dans /public en ajoutant la ligne :
SetEnv PHP_VER 5_4
Pour indiquer au serveur OVH d’utiliser la version 5.4 de PHP.
Voili voilou !
John Smith
Bonsoir Momo,
Désolé de poser des questions tous azimut mais tu sais c’que c’est quand on débute. Alors voilà : comment se fait-il que mon site qui marche en local, une fois transférer sur mon serveur (chez OVH) ne fonctionne pas et m’affiche :
Warning: require(__DIR__/../bootstrap/autoload.php) [function.require]: failed to open stream: No such file or directory in /home/dictionn/www/laravel/public/index.php on line 21
Fatal error: require() [function.require]: Failed opening required ‘__DIR__/../bootstrap/autoload.php’ (include_path=’.:/usr/local/lib/php’) in /home/dictionn/www/laravel/public/index.php on line 21
Y-a-t-il un fichier à modifier pour qu’il retrouve ses petits ? Merci d’avance de ta réponse.
christoff
J’ai réussi à installer Laravel et mon site, en production sur un serveur partagé 1and1. J’ai juste tout envoyé par mon client ftp et j’ai réglé le php de mon hébergeur..
Par contre je n’ai pas pu utiliser le fichier .htaccess fournit par défaut, afin de ne pas faire apparaître index.php dans l’url. J’ai passé bcp de temps sur google et j’ai essayé des dizaines de possibilités de code sans succès, avant de trouver la solution qui a fonctionné pour mon hébergeur.
Si quelqu’un rencontre le même problème que moi, j’ai trouvé la solution sur ce site :
http://ellislab.com/expressionengine/user-guide/urls/remove_index.php.html
bestmomo
C’est amusant de trouver la solution chez CI 🙂
bejita
Bonjour,
Est-ce que tu pourrais me dire comment on héberge un site web développé avec Laravel sur 1and1 ? En local j’ai compris comment on fait mais sur un hébergeur, je suis un peu confuse…
Et quelle est la configuration requise ? a-t-on besoin d’un serveur dédié … d’un certificat SSL ….
Désolée pour les questions mais je débute sur ce framework et suis un peu perdue
Merci
bestmomo
Dans un premier temps tu peux lire cette page d’un cours que j’ai rédigé chez Open Classrooms :
Le déploiement
Cette page aussi peut t’aider :
http://laravel.io/forum/03-21-2014-laravel-production-deployment-on-1and1
Chez 1and1 je ne pense pas que tu disposes de SSH, tu devras certainement tout transmettre en FTP. Par contre tu peux très bien faire pointer ton domaine sur un sous-dossier pour éviter de réorganiser la structure de Laravel.
Tu as intérêt à te créer un environnement local pour avoir à distance les bons paramètres (base de données…).
thuyetti
Bonjour et merci pour ce tuto.
Juste une remarque qui peut aider les débutant comme moi.
Il ne faut pas oublier de faire un » chmod -R 777 » sur le dossier app/storage ( permettre l’écriture sur le dossier strorage ), sinon on obtient une belle erreur.
Thibault
bestmomo
Oui bonne remarque il faut effectivement les droits s’écriture là 😉
GroBurger
ce petit framework me donne envie mais je bloque directement sur l’invite de commande…
j’ai l’erreur suivante quand j’essai d’installer les « dépendances » :
« [RuntimeException]
You must enable the openssl extension to download files via https »
toute mes recherches sont infructueuse car elle ne marche pas chez moi 🙂 (décommenter tout les fichier.ini de wamp, le lien « installer un certificat ssl sous wamp » je n’y arrive pas (openssl ne fonctionne pas…))
auriez vous une solution ou un lien à me faire parvenir ?
sur mon ordi vista : wamp – composer – git
bestmomo
Salut !
Peut-être ici la solution : https://github.com/composer/composer/issues/1440
GroBurger
j’ai tout désinstallé y compris wamp et j’ai tout réinstallé et configuré dans l’ordre. La commande composer install a bien marché, je vais pouvoir continuer mon apprentissage sereinement.
encore merci pour le lien et la réactivité 😉
Frink
Salut,
Petit détail sur l’install:
– La première fois que j’ai suivi ce chapitre (y’a un mois), je n’ai rencontré aucune difficulté
– Par contre, quand j’y suis revenu pour faire une installation neuve de laravel (pour la partie blog des tutos), j’ai rencontré des difficultés au ‘composer install’.
L’erreur était dûe au fait que certains composants (j’ai oublié lesquels) nécessitaient ssl pour s’installer.
Et effectivement, une fois ssl installé sur mon localhost, tout s’est passé sans accroc.
Je me permets de poster l’adresse du tuto que j’ai suivi pour créer mon certificat:
http://www.blog.florian-bogey.fr/installer-un-certificat-ssl-sous-wamp.html
@+
AhmedZahraz
Salut,
Je viens d’installer Laravel 4 aujourd’hui et j’ai rencontré la même erreur :
« Unable to find the socket transport « https » – did you forget to enable it when you configured PHP?)… »
J’ai trouvé une solution plus simple :
Il suffit d’enlever décommenter la ligne :
extension=php_openssl.dll
dans le fichier php.ini de ton serveur.
Merci.
ahmed.zahraz@hotmail.fr
Frink
Oui, décommenter la ligne dont tu parles faisait en plus partie de la procédure d’installation d’un certificat mais je n’ai pas réalisé que je pouvais m’arrêter à cette étape-là 🙂
Ceci dit, c’était intéressant d’aller jusqu’au bout.
Merci pour l’info!