Je suis novice dans l'utilisation de Laravel et Homestead et j'apprécierais toute aide ou tout point dans la bonne direction. J'ai réussi à accéder à l'écran "Vous êtes arrivé" lorsque j'exécute "php artisan serve", mais lorsque j'essaie de faire la même chose via Vagrant, je n'ai "aucun fichier d'entrée spécifié". Mon fichier Homestead.yaml ressemble à ceci:
authorize: /Users/me/.ssh/id_rsa.pub
keys:
- /Users/me/.ssh/id_rsa
folders:
- map: /Users/me/code/exampleproject
to: /home/vagrant/code/exampleproject
sites:
- map: exampleproject.app
to: /home/vagrant/code/exampleproject/public
variables:
- key: APP_ENV
value: local
Sur mon ordinateur, j'ai les répertoires suivants:
/Users/me/code/Homestead
/Users/me/code/exampleproject //this is the directory created with composer
Sur ma Vagrant Box, j'ai pour une raison quelconque deux répertoires nommés "code" et "code":
/home/vagrant/code/exampleproject
/home/vagrant/Code
J'ai vérifié et je peux voir que les modifications apportées à mon ordinateur sont des exemples de fichiers de projet qui sont reflétés dans les fichiers de boîte vagabonde.
Pas vraiment sûr de savoir comment résoudre cela !! J'apprécierais vraiment toute aide possible :)
Au lieu de réinstaller essayer
vagrant up --provision
ou
Homestead up --provision
J'ai eu exactement le même problème et j'ai trouvé la solution grâce à l'utilisation de larachat.
Voici comment y remédier, vous devez avoir les paramètres de fichier Homestead.yaml corrects. Si vous voulez savoir comment cela est fait, suivez le didacticiel de Jeffery Way sur Homestead 2.0 https://laracasts.com/lessons/say-hello-to-larlar-Homestead-two .
Maintenant, pour réparer Input not specified
question que vous devez ssh dans la boîte Homestead et tapez
serve domain.app /home/vagrant/Code/path/to/public/directory
ceci générera un script de service pour nginx. Vous devrez le faire chaque fois que vous changez de projet.
Il a également discuté de ce que j'ai expliqué dans cette série https://laracasts.com/series/laravel-5-fundamentals/
Ceci est facile à corriger, car vous avez changé le nom du dossier en: exampleproject
Alors SSH à votre vagabond:
ssh [email protected] -p 2222
Puis changez votre configuration nginx:
Sudo vi /etc/nginx/sites-enabled/Homestead.app
Editez l'URI correct à la racine sur la ligne 3 de cette avec le nouveau nom de dossier:
root "/Users/MYUSERNAME/Code/exampleproject/public";
Redémarrez Nginx
Sudo service nginx reload
Recharger le navigateur web, cela devrait fonctionner maintenant
Pour moi, ce qui suit a fonctionné:
vagrant reload --provision
Donner ma réponse au cas où quelqu'un aurait du mal à résoudre ce problème.
Vous devrez peut-être vérifier que la configuration server.root dans "/ etc/ngnx/sites-available/domain" correspond à votre site.to config dans "Homestead.yaml".
S'il ne correspond pas, changez-le et redémarrez le serveur Web avec "Sudo service nginx restart".
Et les choses ne fonctionnent toujours pas, puis autorisez les droits en écriture pour le dossier "YOURSITE/app/storage" en tant que "chmod -R 777 app/storage"
J'ai également eu le même problème, j'avais supposé que Laravel est installé "out of the box" mais il semble que ce ne soit pas le cas. J'ai SSH sur la machine et j'ai exécuté ces commandes:
cd Code
Sudo composer self-update #not necessary, but I did it anyways
composer create-project laravel/laravel Laravel --prefer-dist
Et tout fonctionnait comme d'habitude.
Ce problème est survenu après la modification du fichier Homestead.yaml. J'ai résolu ce problème en
Homestead destroy
Homestead up
J'ai eu les mêmes problèmes
Mais oublié que les spécifications ont déclaré que le fichier de configuration serait situé à
~/.Homestead/Homestead.yaml et mettait à jour ~/Homestead/src/stubs/Homestead.yaml
Le FIX devait donc mettre à jour le fichier Homestead.yaml situé ici:
~/.Homestead/Homestead.yaml
Avant
sites: - map: Homestead.app to: /home/vagrant/Laravel/public
Après
sites: - map: Homestead.app to: /home/vagrant/Code/mysitename/public
Puis j'ai couruvagrant up --provision
J'espère que cela fonctionne pour quelqu'un d'autre.
J'ai eu le même problème en suivant les Laravel docs ( https://laravel.com/docs/5.2/Homestead )
Mon problème était très simple, j'ai raté cette partie de la documentation:
Le fichier Homestead.yaml sera placé dans le répertoire caché ~/.Homestead:
Je mettais donc à jour le mauvais fichier Homestead.yaml, car le fichier avait été déplacé lorsque j'ai exécuté la commande bash init.sh.
Je ne m'en suis rendu compte qu'après beaucoup de recherches, alors espérons que cela aidera quelqu'un.
Redémarrez votre homestead. Travaillé pour moi.
Homestead destroy
Homestead up
Après avoir renommé certains répertoires, j'ai dû détruire et réexécuter vagrant. Aucune des solutions ici n'a fonctionné.
Cela a fonctionné pour moi:
vagrant destroy
vagrant up
Attention, Linux est sensible à la casse. C'est probablement pourquoi vous voyez un répertoire "Code" et un répertoire "code".
Ce que je ferais, c’est de refaire la configuration du vagabond et si vous voulez garder la simplicité et faire correspondre ce que la boîte Homestead a par défaut, créez votre répertoire dans votre ordinateur hôte "Code" en majuscule.
Vous pouvez également, dans la section "dossiers", vous connecter au dossier "Code" de votre ordinateur, au cas où vous décideriez d'ajouter ultérieurement d'autres sites à votre configuration Homestead. De cette façon, sous/home/vagrant/Code /, vous verrez tous les projets de votre site et vous pourrez voir plus de sites pointant vers leurs répertoires "publics".
Les anciennes versions de Homestead cartographient les dossiers dans ~/Code
pour dire par exemple par défaut ~/Code/laravel/public
. Remarquez les capitalisations de cas dans ~/Code
. Ce sont sensibles à la casse. Les nouvelles versions utilisent des minuscules ~/code
. Mettez à jour ces répertoires dans votre Homestead.yaml
selon vos répertoires réels.
TL; DR;
Mise à jour ~/Code
à ~/code
ou vice versa, en fonction de vos noms de répertoire actuels.
Cela est probablement dû au fait que le serveur Web nginx not pointe vers le bon chemin.
Vous devez examiner deux clés: la clé map
sous folders
et la touche to
sous sites
. La touche folders
mappe les dossiers de votre ordinateur local sur la machine virtuelle errante. La clé sites
sert à créer un hôte virtuel sur nginx avec la valeur dans to
.
Ce que vous voulez vous assurer, c’est que to
sous sites
pointe vers le bon chemin vers public
.
Le problème était que j'ai créé mon projet laravel avec composer create laravel/laravel
. Cela a créé un dossier dans mon répertoire actuel nommé laravel
. Puis, sans changer de répertoire, j'ai installé l'assistant Homestead avec composer require laravel/Homestead --dev
.
Après avoir exécuté php vendor/bin/Homestead make
et vagrant up
ma structure de répertoire ressemblait à ceci:
$ cd laravel51
$ ls -a
.
..
.vagrant
laravel
composer.json
composer.lock
vendor
Homestead.yml
Vagrantfile
Mon Homestead.yml ressemblait à ceci:
folders:
- map: "/Users/USER/Sites/sandbox/php/laravel51"
to: "/home/vagrant/laravel51"
sites:
- map: laravel51
to: "/home/vagrant/laravel51/public"
Si vous regardez de près, le /Users/USER/Sites/sandbox/php/laravel51
chemin sera monté sur la machine virtuelle vagabonde. Ce répertoire est incorrect car il doit pointer vers la racine du projet laravel où se trouve le répertoire de votre application. Ce qui s’est passé ici est que j’étais censé avoir besoin de l’aide Homestead pendant que j’étais dans la racine du projet .
Alors maintenant, la question est que dois-je faire? Vous avez deux options: supprimer votre Homestead actuel VM et recommencer, mais cette fois à partir de la racine du projet OU sauver ce que vous avez déjà.
Si vous voulez récupérer ce que vous avez, vous devrez déplacer plusieurs fichiers et un dossier vers votre racine de projet laravel.
Voici les artefacts que vous devrez déplacer:
.vagrant
Homestead.yml
Vagrantfile
Le composer.json
ne sera pas nécessaire puisque vous en aurez besoin plus tard.
Déplacez ces fichiers vers la racine de votre projet laravel) et modifiez-y votre répertoire de travail actuel (cd laravel
). À ce stade, mettez à jour le map
sous folders
et assurez-vous qu'il pointe vers la racine du projet. Assurez-vous également que la clé to
sous sites
est la clé to
sous folders
avec /public
y est ajouté.
Par exemple:
folders:
- map: "/Users/USER/Sites/sandbox/php/laravel51/laravel"
to: "/home/vagrant/laravel51"
sites:
- map: laravel51
to: "/home/vagrant/laravel51/public"
Maintenant, lancez composer require laravel/Homestead --dev
de sorte que l’assistant Homestead soit requis dans le fichier composer.json de votre projet actuel et qu’il soit installé.
Courir vagrant reload --provision
et vous devriez être tous ensemble.
Je me débattais juste avec la même situation. Après résolu le problème:
Si vous avez une structure de répertoire comme celle-ci:
folders:
- map: /Users/me/code/exampleproject
to: /home/vagrant/code/exampleproject
Créez simplement un dossier "public" dans exampleproject sur votre ordinateur hôte.
J'utilise Windows 10 et a la configuration suivante de Homestead
---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
- map: ~/code #folder in local computer where codes are stored eg, c:\xampp\htdocs\project1
to: /home/vagrant/code #folder in the VM where the above code will be mapped
sites:
- map: Homestead.local #fake name of the site (redirect this domain to the above IP ie 192.168.10.10 in hosts file ie, c:\windows\system32\etc\hosts)
to: /home/vagrant/code/public #complete path to index.php file in the local computer to be utilized by Homestead.local
databases:
- Homestead
J'ai [~ # ~] ping [~ # ~] édité le domaine Homestead.local et obtenais des résultats.
Mais quand j'ai tapé http: //Homestead.local dans le navigateur, j'ai eu 'aucun fichier d'entrée spécifié' error
J'ai vérifié le code/dossier public et il n'y avait pas de fichier d'index. J'étais certain que le système recherchait le fichier par défaut qui manquait.
Une fois que j'ai créé un fichier d'index, il a bien fonctionné.
Cela se produit généralement lorsque vous modifiez le fichier Homestead.yaml.
Si comme moi tu as essayé Homestead up --provision
et n'a pas fonctionné! alors essayez ceci (cela fonctionne pour moi):
Homestead destroy
Homestead up
J'ai eu des problèmes similaires avec Homestead et le seul approvisionnement de la boîte a fonctionné pour moi. Donc, vous devriez essayer ceci:
vagrant provision
J'ai édité Homestead.yaml
et hosts
selon ce tutoriel sur laracast et a redémarré Homestead avec vagrant suspend
, vagrant halt
, etc. /vagrant up
; J'ai essayé de vagrant provision
aussi, mais no file specified
n'est parti qu'après le redémarrage de mon ordinateur (sous Windows 7) après avoir effectué toutes les opérations susmentionnées. C'est certainement une erreur fastidieuse et délicate.
C'est ce que mon travail Homestead.yaml
ressemble à deux laravel projets:
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
- map: D:\Projects
to: /home/vagrant/Projects
sites:
- map: projectone.app
to: /home/vagrant/Projects/ProjectOne/public
- map: projecttwo.app
to: /home/vagrant/Projects/ProjectTwo/public
databases:
- laraveldb
et voici mon fichier hosts
:
...
127.0.0.1 localhost
192.168.10.10 projectone.app
192.168.10.10 projecttwo.app
Notez qu'il existe deux installations distinctes de laravel dans D:\Projects\ProjectOne
et D:\Projects\ProjectTwo
J'accède ensuite au premier projet en tapant projectone.app:8000
dans le navigateur et projecttwo.app:8000
pour le deuxième projet.
P.S. J'ai testé cela pour Laravel 5.2 sous Windows
Les codes liés à vagrant provision
N'ont pas fonctionné pour moi. Après une perte de temps, j'ai redémarré l'ensemble du système. Maintenant ça marche... -,-"
Cela est dû au fait que vous devez configurer votre serveur nginx correctement pour pouvoir servir votre application. Vous pouvez le faire en suivant ce guide, en commençant par la rubrique Configurer Nginx et la racine Web .
Après correctement configuration de votre lien symbolique entre votre/etc/nginx/sites-available et/etc/nginx/sites-enabled, vous devez vous assurer que votre variable racine est définie sur le chemin du dossier de votre application. Définissez votre racine nginx de
root /usr/share/nginx/html;
à
/home/vagrant/Projects/ProjectOne/public
En outre, vous devez placer index.php avant vos fichiers html afin que php soit servi avant html. Change ça
index index.html index.htm;
pour ça
index index.php index.html index.htm;
Une fois votre configuration terminée, redémarrez votre serveur nginx avec
Sudo service nginx restart
Votre demande devrait être signifiée maintenant.
Dans Laravel 5 je devais ssh sur mon serveur Homestead et exécuter ces commandes:
Sudo chmod -R 777 storage
Sudo chmod -R 777 bootstrap/cache
Même problème pour moi.
Ni vagrant provision
ou Homestead up --provision
_ a fonctionné pour moi, mais le texte ci-dessous le faisait, probablement parce que Homestead était déjà en cours d'exécution lorsque j'ai modifié le fichier yml.
vagrant reload --provision
Mon problème était dans le fichier de configuration du domaine:
le dossier public de mon projet a été créé dans/home/vagrant/Code/demo/public
le fichier de configuration du domaine (pour moi /etc/nginx/sites-available/demo.app) avait configuré: "/ home/vagrant/Code/Laravel/public" au lieu de "/ home/vagrant/Code/demo/public ".
Maintenant cela fonctionne parfaitement.