web-dev-qa-db-fra.com

Utilisation de Laravel Homestead: 'aucun fichier d'entrée spécifié'

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 :)

89
bryant

Au lieu de réinstaller essayer

vagrant up --provision

ou

Homestead up --provision
129
sleimanx2

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/

44
Rudy Jessop

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

26
Truc

Pour moi, ce qui suit a fonctionné:

vagrant reload --provision

15
Dave Chambers

Donner ma réponse au cas où quelqu'un aurait du mal à résoudre ce problème.

  1. 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".

  2. S'il ne correspond pas, changez-le et redémarrez le serveur Web avec "Sudo service nginx restart".

  3. 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"

8
Senthil

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.

7
Arda

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
5
Rayzor

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 couru
vagrant up --provision

J'espère que cela fonctionne pour quelqu'un d'autre.

4
lightup

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.

2
aljaydavids

Redémarrez votre homestead. Travaillé pour moi.

Homestead destroy
Homestead up
2
Selassie Twumasi

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
1
yper

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".

1
noeldiaz

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.

1
doncadavona

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.

1
2upmedia

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.

1
Shreyansh Panchal

Voici ma solution:

C'est un problème de chemin de fichier, donc voici les chemins de mes dossiers et sites. De plus, je devais utiliser "vagrant destroy" car le provisioning ne fonctionnait pas.

enter image description here

0
Matt Pierce

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é.

0
Nava Bogatee

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
0
Mahmoud Zalt

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

0
masummdar

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

0
Arthur Tarasov

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... -,-"

0
giovannipds

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.

0
Carlos Adames

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
0
EvWill

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

0
nzbenny

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.

0
Angel Noriega