Installation Vagrant pour projet Laravel - PHP - Programmation
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
Et lire la doc de Vagrant, elle est vraiment trés simple
PS: curiosité personnelle, c'est quoi comme études ?
Marsh Posté le 20-08-2014 à 08:28:00
scull a écrit : Salut, |
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 »
Je suis complètement largué…
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 ), 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
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 ?
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. |
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
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
Marsh Posté le 20-08-2014 à 15:11:37
ReplyMarsh 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 , ça commence à rentrer
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 Claravel_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
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. |
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 )
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
Ce soir je me lance dans les Routes, Vues, Contrôleurs,… pffffff, ça va chi**
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)
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 |
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...
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
Marsh Posté le 21-08-2014 à 18:28:48
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 ), c'est le "You have arrived" qui est toujours là
J'y arriverai hein...
Marsh Posté le 21-08-2014 à 20:40:24
ReplyMarsh 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!
Marsh Posté le 21-08-2014 à 22:23:59
Je connais pas du tout Laravel, mais remplace ceci
Code :
|
Par cela :
Code :
|
Cela affiche le chemin complet, tu devrais voir une sacré différence suivant quel environnement l'affiche
Marsh Posté le 22-08-2014 à 08:17:54
scull a écrit : Je connais pas du tout Laravel, mais remplace ceci
|
Ok je teste ça en rentrant merci.
Et bon vendredi!
Marsh Posté le 22-08-2014 à 12:45:29
J'ai peur que 'hello' soit pas un "string", mais le nom de ton template
En cas, ajoute un var_dump(__DIR__); au dessus
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 |
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...
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...)
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 )
Bonne chose de faite, ça m’a pris toute la soirée
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
Merci d’avance
(Pour info (tant qu’à être complet , le dossier « Vagrant » contient 3 dossiers : « puppet », « vagrant » et « www » + 2 fichiers : « vagrantfile » et « readme.md »)