Installation Vagrant pour projet Laravel

Installation Vagrant pour projet Laravel - PHP - Programmation

Marsh Posté le 19-08-2014 à 09:51:47    

Bonjour tout le monde,
 
Dans le cadre de mes études, je dois développer une application de gestion de stock en PHP.
 
Pour ce faire, le prof nous a demandé de travailler avec le framework Laravel, et afin d'avoir tous le même environnement, d'installer Vagrant.
 
Nous avions fait tout ça ensemble en classe l'année passée, mais j'ai du changer de PC durant les vacances et je dois rendre ce travail pour la rentrée...
 
Donc hier je me suis mis à la tâche, reparti de zéro, installation d'un éditeur de texte, de WAMP (oui je sais Windows c’est de la m*****), de MySql Workbench, enfin je vous passe les détails…
 
Ensuite Laravel, un peu plus compliqué, l’installation se fait via Composer, qui lui nécessite GIT. Après quelques fouilles sur le web, j’ai su m’en sortir. J’ai donc créé un nouveau projet Laravel dans mon répertoire C://wamp/www/  (et ça fonctionne, j’ai testé localhost/laravel/public, it works  :bounce: )
 
Bonne chose de faite, ça m’a pris toute la soirée  :pt1cable:  
 
Bon, maintenant il me reste à installer Vagrant, (ça me fait penser que j’ai oublié d’installer VirtualBox !). A l’époque, le prof nous avait donné un dossier « Vagrant » en nous demandant de le décompresser à la racine, donc direct sur C://, et de créer un nouveau projet à la racine lui aussi, et ensuite de faire un « Vagrant up » dans ce projet.
 
Ma question, est ce que je dois qd-même décompresser ce dossier à la racine si mon projet Laravel ne s’y trouve pas ? Y’avait une raison pour laquelle le prof nous demandait de créer le projet à la racine ?
 
Je sais je suis un peu long mais j’aime autant bien me faire comprendre car je sens que j’aurai d’autres questions :D
 
Merci d’avance   :jap:  
 
(Pour info (tant qu’à être complet  :) , le dossier « Vagrant » contient 3 dossiers : « puppet », « vagrant » et « www » + 2 fichiers : « vagrantfile » et « readme.md »)
 
 
 

Reply

Marsh Posté le 19-08-2014 à 09:51:47   

Reply

Marsh Posté le 19-08-2014 à 19:48:21    

Salut,
 
L'intérêt de travailler sur une VM, c'est justement qu'avec Vagrant (et puphet pour tes provisioning) c'est que c'est portable :
En théorie, avec de simples fichiers de configs, ton prof pourra recréer la même machine virtuel que celle sur laquelle tu as mis ton projet, sans s'embêter à devoir reproduire tous les environnements de tous ses élèves.
 
Si tu as compris cela, tu dois comprendre que en dehors de la configuration de VirtualBox et la création de tes fichiers de configs de ta VM, tout ce que tu fais est de trop (et ton prof passera pas des heures à refaire tes configs) ;)
Ce qu'il veux, c'est importer tes configs de VM, lancer la VM et consulter ton travail.
 
Dans le milieu pro c'est idem, on aime avoir une config qui reproduit les réglages de la prod, pour facilement ce les partager entre dev, sans devoir passer des heures à tout configurer.
 
Alors pour te faire avancer un peu (et dans le bon sens), sache qu'étant donné que ton projet doit être "isolé" sur une VM, c'est sur cette VM que tu dois installer PHP, MYSQL, GIT, COMPOSER & co. Sans quoi, ta VM sera incapable d'executer ton projet (et donc ton prof).
Pour ce faire, je te recommande l'excellent puphet :D
 
Et lire la doc de Vagrant, elle est vraiment trés simple :hello:  
 
PS: curiosité personnelle, c'est quoi comme études ?

Reply

Marsh Posté le 20-08-2014 à 08:28:00    

scull a écrit :

Salut,
 
L'intérêt de travailler sur une VM, c'est justement qu'avec Vagrant (et puphet pour tes provisioning) c'est que c'est portable :
En théorie, avec de simples fichiers de configs, ton prof pourra recréer la même machine virtuel que celle sur laquelle tu as mis ton projet, sans s'embêter à devoir reproduire tous les environnements de tous ses élèves.
 
Si tu as compris cela, tu dois comprendre que en dehors de la configuration de VirtualBox et la création de tes fichiers de configs de ta VM, tout ce que tu fais est de trop (et ton prof passera pas des heures à refaire tes configs) ;)
Ce qu'il veux, c'est importer tes configs de VM, lancer la VM et consulter ton travail.
 
Dans le milieu pro c'est idem, on aime avoir une config qui reproduit les réglages de la prod, pour facilement ce les partager entre dev, sans devoir passer des heures à tout configurer.
 
Alors pour te faire avancer un peu (et dans le bon sens), sache qu'étant donné que ton projet doit être "isolé" sur une VM, c'est sur cette VM que tu dois installer PHP, MYSQL, GIT, COMPOSER & co. Sans quoi, ta VM sera incapable d'executer ton projet (et donc ton prof).
Pour ce faire, je te recommande l'excellent puphet :D
 
Et lire la doc de Vagrant, elle est vraiment trés simple :hello:  
 
PS: curiosité personnelle, c'est quoi comme études ?


 
J’avoue que j’ai un peu de mal avec cette “philosophie”… ça fait beaucoup de choses en même temps !
 
Ici le prof nous avait demandé d’installer Vagrant mais de prendre un fichier de config à lui pour que nous ayons tous le même environnement (p-ê le même que celui de son pc en fait?)
 
Je ne comprends donc pas ce que je fais de superflu ?
 
En ce qui concerne ça :
 
« Alors pour te faire avancer un peu (et dans le bon sens), sache qu'étant donné que ton projet doit être "isolé" sur une VM, c'est sur cette VM que tu dois installer PHP, MYSQL, GIT, COMPOSER & co. Sans quoi, ta VM sera incapable d'executer ton projet (et donc ton prof).
Pour ce faire, je te recommande l'excellent puphet :D »
 
Je suis complètement largué… :D  
Moi hier soir j’ai installé Vagrant, j’ai ensuite décompressé le dossier de config (je suppose) que mon prof nous avait donné dans mon projet laravel (qui est dans C://WAMP/WWW). Et (après avoir réglé qques soucis de comptabilité avec VirtualBox et Win 8.1  :pfff: ), j’ai ouvert mon editeur de texte dans lequel je sais directement faire une « Vagrant up » (je travail dans phpStorm), et tout s’est bien passé.
 
En fait c’est ça qui me frustre, je fais des choses, mais sans bien les comprendre en profondeur...
 
Oui j'aurai bien besoin de la Doc car je suis loin d'être bon en PHP et ce projet me semble au dessus de mes capacités.
 
C’est un BES (Brevet d’Etudes Supérieures, nouveau « grade » en Belgique) de Webdeveloper.
 
Merci bien pour la réponse en tout cas, je me sens moins seul   :jap:  :D  

Reply

Marsh Posté le 20-08-2014 à 13:42:04    

1) non le fichier de config de ton prof ne doit pas correspondre à son pc, mais à sa VM.
 
2) Y a vraiment 4 cmd basiques pr utiliser Vagrant, avant d'utiliser les raccourcis de ton IDE, tape les dans un terminal. Et si t'es allergique au terminal, change vite de job ^^
 
3) +1, t'a l'air de suivre les premières étapes de 15 tutos différents pompés sur le net, sans comprendre ce que tu fais.
 
Il ce passe quoi quand tu accèdes à l'ip de ta machine vagrant ?
http://www.updemia.com/static/b/h/ll/53f4896d27990.png

Message cité 1 fois
Message édité par scull le 20-08-2014 à 13:44:02

---------------
Créer son forum gratuit |  Mon beau blog phpBB caÿ le mal :o
Reply

Marsh Posté le 20-08-2014 à 14:39:22    

scull a écrit :

1) non le fichier de config de ton prof ne doit pas correspondre à son pc, mais à sa VM.
 
2) Y a vraiment 4 cmd basiques pr utiliser Vagrant, avant d'utiliser les raccourcis de ton IDE, tape les dans un terminal. Et si t'es allergique au terminal, change vite de job ^^
 
3) +1, t'a l'air de suivre les premières étapes de 15 tutos différents pompés sur le net, sans comprendre ce que tu fais.
 
Il ce passe quoi quand tu accèdes à l'ip de ta machine vagrant ?
http://www.updemia.com/static/b/h/ll/53f4896d27990.png


 
1) Oui donc comme ça nous avons tous la même VM (la même que le prof), et notre programme tourne de la même façon chez tout le monde
 
2) J'ai fait un Vagrant up direct dans PHPStorm car c'était les consignes du prof :)
(j'ai eu un cours de Shell sur LinuxMint et j'ai vraiment bien aimé, donc je ne change pas d'orientation :))
 
3) Merci beaucoup pour le petit schéma... mais faut que j'y réflféchisse car je comprends qd-même pas mega bien  :pt1cable:  
 
En gros ce que moi je vois, c'est que j'ouvre mon projet Laravel qui est dans mon wamp/www, je fais un Vagrant up (la 1ere fois en pointant sur le dossier c://HashiCorp/vagrant/bin/vagrant.exe (de mémoire, mais ça y ressemble)), là ça lance la VM (configurée par mon prof).
Ce qui veut donc dire que quand je teste mon programme, c'est via la VM...? parce que moi, je tape localhost/laravel/public, donc c'est mon serveur local... rho put*** j'y comprends plus rien  :(  Et c'est quoi le c:\laravel_src ?  
J'ai vraiment du mal  :cry:


Message édité par antoun4 le 20-08-2014 à 14:42:27
Reply

Marsh Posté le 20-08-2014 à 15:11:37    

Tu n'as pas besoin de WAMP, il ya dejà un apache dans Vagrant


---------------

Reply

Marsh Posté le 20-08-2014 à 15:13:52    

flo850 a écrit :

Tu n'as pas besoin de WAMP, il ya dejà un apache dans Vagrant


 
C'est bien ce que je me disais... mais c'est trompeur car je vais dans localhost... en fait c'est le localhost de la VM quoi.
 
et d'où il ne faut pas spécialement créer son projet dans la WAMP/WWW en fait?!
 
Dites moi que oui svp :D, ça commence à rentrer :)


Message édité par antoun4 le 20-08-2014 à 15:14:50
Reply

Marsh Posté le 20-08-2014 à 18:48:02    

c'est quoi l'ip de ta VM ? Trouve la et ouvre là, tu devrais y voir ton projet  laravel.

 

Ensuite, pour t'aider à comprendre ce que tu fais, éteind ta VM (vagrant halt, ou depuis l'interface de virtualbox), prend ton répertoire de laravel, déplace le ou tu veux, par exemple dans C:/laravel_src. Vas dedans, lance la VM (vagrant up), rend toi sur l'ip de ta vm et... Oh, ça marche!

 

Pourtant tu n'es plus dans ton wamp, mais dans ta VM.
Autre technique pour comprendre ce qui ce passe, créer un fichier phpinfo et lance le depuis ton WAMP, et depuis ta VM, il y a des chances pour que tu n'est pas exactement la meme version de php ;)

Message cité 1 fois
Message édité par scull le 20-08-2014 à 18:48:15
Reply

Marsh Posté le 21-08-2014 à 09:04:23    

scull a écrit :

c'est quoi l'ip de ta VM ? Trouve la et ouvre là, tu devrais y voir ton projet  laravel.
 
Ensuite, pour t'aider à comprendre ce que tu fais, éteind ta VM (vagrant halt, ou depuis l'interface de virtualbox), prend ton répertoire de laravel, déplace le ou tu veux, par exemple dans C:/laravel_src. Vas dedans, lance la VM (vagrant up), rend toi sur l'ip de ta vm et... Oh, ça marche!
 
Pourtant tu n'es plus dans ton wamp, mais dans ta VM.
Autre technique pour comprendre ce qui ce passe, créer un fichier phpinfo et lance le depuis ton WAMP, et depuis ta VM, il y a des chances pour que tu n'est pas exactement la meme version de php ;)


 
Merci pour les explications, j'ai bien compris cette fois  :)  
C'est vrai que je me suis un peu embrouillé car j'ai du tout réinstaller sur mon nouveau PC, dont WAMP, mais qui n'est pas nécessaire dans ce cas-ci. En fait dans ma tête, la VM lançait mon projet via mon Appache... (un peu tordu, je sais  :pt1cable: )
Et en effet vu que j’ai une version de WAMP toute récente, je suis surement en PHP 5.5.x, tandis que sur la VM à mon avis en 5.4.x.  
 
Je regarderai pour l'IP tantôt car là suis au boulot (oui, j'ai oublié de préciser que je fais ça en cours du soir et que je travaille dans un tout autre domaine, d'où je n'ai pas encore beaucoup de pratique!)
 
J'aurai encore un ou deux mystères à élucider, c'est une histoire de port. Je me souviens qu’au cours, pour lancer nos projet, nous devions taper «localhost :8888/laravel/public », donc préciser le port, et je ne sais pas pourquoi car chez moi je n’ai pas à le faire… ?
 
Et qd j’ai du créer une nouvelle connexion dans MySqlWorkbench, j’ai du mettre le port 8889  (tout cela étant toujours les consignes du prof), pourquoi 8889?  
Ensuite on me demandait un mot de passe (que le prof nous avait donné), où est défini ce mot de passe ? dans le fichier config Vagrant de mon prof ?
 
Bon maintenant j’arrête  :D  
 
Ce soir je me lance dans les Routes, Vues, Contrôleurs,… pffffff, ça va chi**  :sweat:  
 

Reply

Marsh Posté le 21-08-2014 à 09:35:54    

ta conf vagrant utilise probablement des port forwarded : https://docs.vagrantup.com/v2/netwo [...] ports.html
 
Ca permet de ne pas avoir à connaitre l'ip de la VM : le port 80 de la VM est accessble par le port 8888 de l'hote ( ton c windows), et le port 3306 de la vm ( mysql)  est redirigé sur le port 8889 du PC.
Tout ça est défini dans le fichier de conf  
 
( ton prof a bien bossé au passage)


---------------

Reply

Marsh Posté le 21-08-2014 à 09:35:54   

Reply

Marsh Posté le 21-08-2014 à 16:05:12    

flo850 a écrit :

ta conf vagrant utilise probablement des port forwarded : https://docs.vagrantup.com/v2/netwo [...] ports.html
 
Ca permet de ne pas avoir à connaitre l'ip de la VM : le port 80 de la VM est accessble par le port 8888 de l'hote ( ton c windows), et le port 3306 de la vm ( mysql)  est redirigé sur le port 8889 du PC.
Tout ça est défini dans le fichier de conf  
 
( ton prof a bien bossé au passage)


 
Ha okéééééé!  
Moi comprendre, thanks ;)
 
Et pourquoi chez moi quand je fais un localhost/laravel/public ça fonctionne aussi?
C'est pas sur la VM alors ce que je vois, mais simplement sur "mon" serveur (vu que j'ai créé mon projet dans wamp/www)?  
Pourtant j'ai fait un Vagrant up dans ce projet...


Message édité par antoun4 le 21-08-2014 à 16:07:21
Reply

Marsh Posté le 21-08-2014 à 16:26:21    

oui

 

tu as bien fait vagrant up dans ce projet, et vagrant t'attendais sagement sur les ports 8888 et 8889, mais tu as préféré aller voir le port 80

 

Il t'attend surement toujours, comme un chien fidèle attendant le retour de son maître. Ne le déçois pas plus :o


Message édité par flo850 le 21-08-2014 à 16:26:36

---------------

Reply

Marsh Posté le 21-08-2014 à 18:01:02    

[:alerte canard]

Reply

Marsh Posté le 21-08-2014 à 18:28:48    

:D  
 
Je suis allé voir Vagrant mais encore un grand mystère!
 
D'origine, lorsqu'on arrive sur un projet Laravel "vierge", il y a le logo et la fameuse phrase "You have arrived".
Pour tester, j'ai changé cette phrase... en local ça fonctionne bien, mais qd j'y vais via localhost:8888 (donc je vais bien voir mon toutou qui m'attend  :D ), c'est le "You have arrived" qui est toujours là  :heink:
 
J'y arriverai hein...  
 

Reply

Marsh Posté le 21-08-2014 à 20:40:24    

Si ton config vagrant fonctionne, il est possible que ce soit normal ;)

Reply

Marsh Posté le 21-08-2014 à 21:35:12    

scull a écrit :

Si ton config vagrant fonctionne, il est possible que ce soit normal ;)

 

Mais encore?

 

Après cette question j'arrête de vous emmerder et je plonge dans la doc de Laravel mais avant j'aimerais être sur que tout soit bien configuré:

 

Dans le HomeController y'a cette fonction:

 

public function showWelcome()
 {
  return View::make('hello');
 }

 

qui nous envoie donc vers la vue hello.php où il y a le logo et le slogan.

 

J'ai créé une autre vue "test.php" identique à "hello.php" en la modifiant un peu et je l'appelle dans la fonction showWelcome et rien en change à l'écran d'accueil... tout ce que je veux c'est savoir que je suis dans la bonne direction pour démarrer...

 

Enfin je viens qd-même de finir le schéma de ma db, demain je peux attaquer Laravel!


Message édité par antoun4 le 21-08-2014 à 21:36:40
Reply

Marsh Posté le 21-08-2014 à 22:23:59    

Je connais pas du tout Laravel, mais remplace ceci  

Code :
  1. public function showWelcome()
  2. {
  3.  return View::make('hello');
  4. }


 
Par cela :

Code :
  1. public function showWelcome()
  2. {
  3.  return View::make(__DIR__);
  4. }


 
Cela affiche le chemin complet, tu devrais voir une sacré différence suivant quel environnement l'affiche ;)


---------------
Créer son forum gratuit |  Mon beau blog phpBB caÿ le mal :o
Reply

Marsh Posté le 22-08-2014 à 08:17:54    

scull a écrit :

Je connais pas du tout Laravel, mais remplace ceci  

Code :
  1. public function showWelcome()
  2. {
  3.  return View::make('hello');
  4. }


 
Par cela :

Code :
  1. public function showWelcome()
  2. {
  3.  return View::make(__DIR__);
  4. }


 
Cela affiche le chemin complet, tu devrais voir une sacré différence suivant quel environnement l'affiche ;)


 
Ok je teste ça en rentrant merci.
 
Et bon vendredi!  :bounce:

Reply

Marsh Posté le 22-08-2014 à 12:45:29    

J'ai peur que 'hello' soit pas un "string", mais le nom de ton template :hello:  
 
 
En cas, ajoute un var_dump(__DIR__); au dessus ;)

Reply

Marsh Posté le 22-08-2014 à 13:38:30    

scull a écrit :

J'ai peur que 'hello' soit pas un "string", mais le nom de ton template :hello:  
 
 
En cas, ajoute un var_dump(__DIR__); au dessus ;)


 
Merci, je testerai aussi qd je serai rentré et te tiendrai au courant :)
 
Mais ce qui me semble bizarre, c'est qu'en local ça fonctionnait, j'avais juste changé la phrase "You have arrived" dans ma vue "hello.php" qui est appelée par le HomeController dans la fonction ShowWelcome, et ça marchait... donc pourquoi ce serait différent sur ma VM...

Reply

Marsh Posté le 27-08-2014 à 21:46:42    

Bon ben je dois avoir un problème quelque part car je viens de tester 2-3 trucs, et quand j'ajoute une vue ou un controller il n’apparaît même pas dans les dossier de mon projet qd je tape l'IP de ma VM...
 
(je réponds un peu tard mais plus eu trop le temps de bosser ces temps-ci...)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed