Utilisation de vagrant et homestead pour plusieurs sites et par installation de projet

J'utilise XAMPP depuis un bon moment, et après avoir découvert Laravel et découvert que J'aime bien ça, j'ai aussi voulu utiliser Homestead. Le problème, c'est que je n'arrive pas à gérer plusieurs sites.

j'ai essayé plusieurs choses, mais le principal problème est actuellement qu'un projet fonctionne, alors que tous les autres obtiennent un délai de connexion, en essayant d'accéder à leur page web.

Voici les étapes que j'ai prises pour utiliser Homestead

  1. Installation De VirtualBox
  2. Installation Vagrant
  3. ajout de homestead avec vagrant box add laravel/homestead
  4. Clonging le référentiel git clone https://github.com/laravel/homestead.git Homestead
  5. Créer Homestead.fichier yaml dans le Homestead répertoire avec le bash init.sh script
  6. Créer un nouveau projet laravel new projectA
  7. Besoin homestead composer require laravel/homestead
  8. Générer Vagrantfile php vendor/bin/homestead make
  9. modifier le Homestead.yaml d'avoir une IP qui se termine par 10
  10. Créer un autre projet laravel new projectB
  11. Besoin homestead composer require laravel/homestead
  12. Générer Vagrantfile php vendor/bin/homestead make
  13. modifier le Homestead.yaml d'avoir une IP qui se termine par 11
  14. ajouter ces deux sites au fichier hosts sudo nano /etc/hosts=>xxx.xx.xx.10 projecta.app& xxx.xx.xx.11 projectb.app
  15. démarrage vagrant à partir de l'un des deux répertoires vagrant up

maintenant, j'ai le problème, qu'un seul des projets est accessible. C'est toujours celui d'où j'ai appelé vagrant up. Donc, si j'appelle vagrant up à partir d'Un Projet que je peux y accéder http://projecta.app et http://projectb.app fois. Le même dans l'autre sens, malheureusement.

C'est mon vagrant global-status

id       name    provider   state   directory                           
------------------------------------------------------------------------
fc6fadb  default virtualbox running /Users/mknb/work/projectA

j'ai pensé que je voudrais juste faire un autre vagrant upprojectB répertoire mais cela ne fonctionne pas bien sûr.

Je ne veux pas utiliser le Homestead global, parce que Laravel a dit, qu'il est possible d'avoir un per project installation, alors, comment puis-je l'atteindre? Avez-vous besoin de plus d'informations?

Je n'ai pas modifié le Homestead.yaml sauf IP et domainname homestead.app=>projecta.app

il semble comme une installation globale est assez facile avec Homestead, puisque je devrais juste ajouter plus de sites à la Homestead.yaml, mais comme je l'ai dit j'aimerais avoir un projet d'installation. Quelqu'un peut-il aider?

Démarrer vagrant à partir du répertoire Homestead ne fonctionne pas bien sûr.

18
demandé sur Musterknabe 2015-06-30 16:13:38

4 réponses

en utilisant Homestead à votre façon, vous créez une machine virtuelle pour chaque projet. Par conséquent, la VirtualBox ne peut pas transmettre la requête HTTP depuis votre machine hôte pour de machine virtuelle. Vous ne pouvez exécuter qu'une machine (donc un projet) à chaque fois.

pour exécuter plusieurs projets avec Homestead, vous pouvez faire comme suit:

  • Clone Homestead git clone https://github.com/laravel/homestead.git Homestead
  • à l'intérieur du Homestead dossier, exécutez bash init.sh

éditer le folders~/.homestead/Homestead.yaml pour partager votre code de deux projets, avec VM:

folders:
    - map: ~/pj1
      to: /path/to/project1
    - map: ~/pj2
      to: /path/to/project2

éditer le sites~/.homestead/Homestead.yaml pour faire Nginx activer le domaine de la deux site:

sites:
    - map: project1.local
      to: /home/vagrant/pj1/public
    - map: project2.local
      to: /home/vagrant/pj2/public

Modifier hosts le fichier à transférer ces domaine fo localhost

127.0.0.1 project1.local
127.0.0.1 project2.local
  • Exécuter vagrant up dans le dossier que vous avez cloné le code Homestead à l'intérieur (qui contient le init.sh fichier.)

Maintenant, vous pouvez exécuter autant de projets que vous voulez avec une seule machine virtuelle Homestead.

27
répondu Hieu Le 2015-07-01 07:17:46

il manque des étapes importantes dans la réponse acceptée, bien que cela m'ait beaucoup aidé. J'ai ajouté les mesures nécessaires. Merci @Hieu Le pour la réponse.

je suppose que vous avez correctement installé votre premier site comme par les instructions de Laravel docs. Maintenant, vous avez un autre site laravel que vous voulez déplacer sur vagrant. Suivez les étapes suivantes.

  1. cd dans le répertoire du nouveau projet Laravel que vous souhaitez ajouter. Je suppose que vous avez tous les fichiers laravel dedans et son fonctionnement en utilisant MAMP ou toute solution non vagabonde.
  2. exécuter vagrant init laravel/homestead. Cette commande ajoutera la nécessaire VagrantFile dans ce nouveau projet.
  3. ouvrir le répertoire de votre premier projet original et ouvrir son Homestead.yaml le fichier dans l'éditeur.
  4. Maintenant, suivez les étapes définies par @Hieu Le Dans réponse acceptée modifier .yaml le fichier

    folders:
         - map: ~/pj1
           to: /path/to/project1
         - map: ~/pj2
           to: /path/to/project2
    
    sites:
        - map: project1.local
          to: /home/vagrant/pj1/public
        - map: project2.local
          to: /home/vagrant/pj2/public
    

    éditez votre fichier hosts pour transmettre ces domain fo localhost

    127.0.0.1 project1.local
    127.0.0.1 project2.local
    
  5. sur terminal cd dans votre premier projet original répertoire.
  6. Exécuter la commande vagrant reload --provision. Cela va recharger le vagrant pour que les changements que nous avons faits en .yaml entrée en vigueur du fichier. Votre base de données du projet original restera intacte.
  7. Exécuter vagrant ssh
  8. Exécuter ls et assurez-vous que vous pouvez voir le dossier de votre nouveau projet. Si son là vous avez configuré votre nouveau site correctement.
  9. cliquez sur l'url du nouveau site avec l'ajout de http:// et vous FAIRE.
8
répondu hhsadiq 2015-07-30 10:36:50

Comme la façon dont ici dit, vous pouvez installer le Homestead directement dans votre projet, nécessitent l'aide de ce composer require laravel/homestead --dev au répertoire racine de chaque projet que vous avez. Maintenant par make commande vous pouvez générer Vagrantfile et Homestead.yaml fichier dans le répertoire racine de votre projet.

  • Mac / Linux:

    php vendor/bin/homestead make
    
  • Windows:

    vendor\bin\homestead make
    

sur chaque racine de projet vous aurez un Homestead.yaml fichier edit:

  • Projet

    ip: "192.168.10.10"
    ...
    folders:
        - map: "~/Code/projecta"
          to: "/home/vagrant/projecta"
    sites:
        - map: project.a
          to: "/home/vagrant/projecta/public"
    
  • Projet-B

    ip: "192.168.10.10"
    ...
    folders:
        - map: "~/Code/projectb"
          to: "/home/vagrant/projectb"
    sites:
        - map: project.b
          to: "/home/vagrant/projectb/public"
    

Ajouter à /etc/hosts:

    192.168.10.10 project.a
    192.168.10.10 project.b

alors vous devez cd à la racine de chaque projet et vagrant up. Maintenant si vous vagrant ssh de chaque projet, vous aurez ce projet dans votre environnement VM.

0
répondu Soroush 2015-08-24 04:19:45

il y a une commande raccourcie pour afficher les sites que vous voulez ajouter..

sans avoir à détruire votre propriété.yaml file et fournit à nouveau ta boite vagabonde...

ceci s'applique à L'INSTALLATION globale et par projet

assurez-vous simplement si vous ajoutez un autre projet...

vous l'ajoutez le (projet entier) sur votre dossier partagé Déclaré dans votre propriété.yaml

en supposant votre dossier partagé être C:/Users/MYACCOUNT/Codes

Ajouter un autre projet dans ce dossier laravel new homestead.app

en supposant que vous êtes ssh dans votre ferme Type A.) si vous utilisez nginx

serve homestead.app /home/Vagrant/Code/homestead/public

B.) si vous utilisez hhvm serve-hhvm homestead.app /home/Vagrant/Code/homestead/public Il suffit de changer votre nom de domaine et votre chemin vers le dossier public de votre projet

puis éditez votre fichier etc / hosts en tant qu'administrateur

quelle que soit l'adresse ip que vous définissez dans votre Homestead.yaml

habituellement, la la valeur par défaut est 192.168.10.10

utilisez - le au lieu de 127.0.0.1

Pourquoi? parce que si vous utilisez 127.0.0.1 votre url ressemblera à Homestead.app: 8000

si vous utilisez L'adresse IP dans le Homestead.yaml

192.168.10.10 homestead.app

vous pouvez accéder à votre site sans port 8000 et il suffit d'utiliser homestead.app

Cette Solution est bien meilleure que la Provision... Et il est plus Rapide...

C'est ce que je Fais

0
répondu Midas Code 2016-05-03 01:07:22