Laravel Homestead 사용 : '지정된 입력 파일 없음'


113

저는 Laravel과 Homestead를 처음 사용하고 있으며 올바른 방향으로 도움이나 지적을 주시면 감사하겠습니다. "php artisan serve"를 실행할 때 "You have arrival"화면에 성공적으로 도달 할 수 있었지만 Vagrant를 통해 동일한 작업을 시도하면 "no input file specified"가 표시됩니다. 내 Homestead.yaml 파일은 다음과 같습니다.

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

내 컴퓨터에는 다음 디렉토리가 있습니다.

/Users/me/code/Homestead
/Users/me/code/exampleproject //this is the directory created with composer

내 Vagrant Box에는 어떤 이유로 "code"와 "Code"라는 두 개의 디렉토리가 있습니다.

/home/vagrant/code/exampleproject 
/home/vagrant/Code

확인했고 내 컴퓨터 예제 프로젝트 파일에 대한 변경 사항이 방랑 상자 파일에 반영된 것을 볼 수 있습니다.

이것을 알아내는 방법을 잘 모르겠습니다 !! 가능한 도움을 주시면 감사하겠습니다. :)

답변:


163

다시 설치하는 대신

vagrant up --provision

또는

homestead up --provision

1
vagrant up --provision나를 위해 작동하지 않았다, 그러나 homestead up --provision않았다
zillaofthegods

정말 고맙습니다!
yohannan_sobin

1
그냥하세요 vagrant reload --proivision.
Omar Tariq

1
이 방법은 또한 작동하고 있습니다. 방랑 파괴와 방랑을 시도한 다음 모든 구성을 만들고 훨씬 더 깨끗하게 만들 수 있습니다.
George Plamenov Georgiev

안녕하세요 저는 농가 대신에 여기에 동일한 문제가 있습니다. cpanel에서 어떤 제안을 실행합니까?
Aslam

45

나는 똑같은 문제가 있었고 larachat을 사용하여 해결책을 찾았습니다.

homestead.yaml 파일 설정을 올바르게하기 위해 필요한 문제를 해결하는 방법은 다음과 같습니다. 어떻게 완료되었는지 알고 싶다면 homestead 2.0 https://laracasts.com/lessons/say-hello-to-laravel-homestead-two 에서 Jeffery Way 튜토리얼을 따르십시오 .

이제 Input not specified문제를 해결하려면 홈스테드 상자에 ssh를 입력하고

serve domain.app /home/vagrant/Code/path/to/public/directory그러면 nginx에 대한 제공 스크립트가 생성됩니다. 프로젝트를 전환 할 때마다이 작업을 수행해야합니다.

그는 또한 내가이 시리즈에서 설명한 내용에 대해 논의했습니다. https://laracasts.com/series/laravel-5-fundamentals/


2
이것이 바로 제가 찾던 것입니다. 감사합니다 Rudy!
Matthew Fritz

Homestead에 다른 프로젝트를 추가하면 문제가 발생하는 것 같습니다. serve모두 를 위해 자동으로 실행할 수 없습니까?
Volatil3

튜토리얼을 공유해 주셔서 감사합니다. 지금 작동합니다!
Dan Aronne

vagrant, virtualbox, homestead를 새로 설치하고 destroy / up을 시도하면 serve 명령이 마침내 작동했습니다. 감사합니다
Chris

28

폴더 이름을 exampleproject로 변경했기 때문에 수정하기 쉽습니다.

그래서 당신의 방랑자에 SSH :

ssh vagrant@127.0.0.1 -p 2222

그런 다음 nginx 구성을 변경하십시오.

sudo vi /etc/nginx/sites-enabled/homestead.app

새 폴더 이름을 사용하여 3 행의 루트에 대한 올바른 URI 를 편집 하십시오 .

root "/Users/MYUSERNAME/Code/exampleproject/public";

Nginx 다시 시작

sudo service nginx reload

웹 브라우저를 새로 고침하세요. 지금 작동합니다.


이 문제에 대한 모든 웹에서 가장 좋은 답변입니다. 명성!
Defkon1 2016-07-25

이로 인해 내 컴퓨터가 잠겼습니다. 이 명령에 대한 이유가 주어지면 좋을 것입니다-정확히 필요한 이유와 수행하는 작업.
Joshua Foxworth

24

나를 위해 다음이 작동했습니다.

vagrant reload --provision


1
이것은 기본 호스트 디렉토리를 webdesign 대신 Code로 변경 한 후 사이트를로드하는데도 효과적이었습니다. 감사! - rhand 지금 편집
rhand

Homestead.yaml파일 의 소문자 또는 대문자 문제 일 수도 있습니다 . 예를 들어, /phpmyadmin내 디렉토리 이름이 실제로 phpMyAdmin.
Pathros

1
이 솔루션을 사용하는 이유는 데이터베이스 데이터를 그대로 유지하기 때문입니다. 이 솔루션은 여기에 자세히 설명되어 있습니다. laracasts.com/discuss/channels/general-discussion/…
lwitzel

8

이 문제로 어려움을 겪는 사람이있을 경우를 대비하여 내 답변을 제공합니다.

  1. "/ etc / ngnx / sites-available / domain"의 server.root 구성이 "Homestead.yaml"의 sites.to 구성과 일치하는지 확인해야 할 수 있습니다.

  2. 일치하지 않는 경우 변경하고 "sudo service nginx restart"를 사용하여 웹 서버를 다시 시작하십시오.

  3. 그리고 여전히 작동하지 않고 "YOURSITE / app / storage"폴더에 대한 쓰기 권한을 "chmod -R 777 app / storage"로 허용합니다.


7

나도 같은 문제가 있었는데, Laravel이 "즉시 설치"되어 있다고 가정했지만 그렇지 않은 것 같습니다. 컴퓨터에 SSH로 연결하고 다음 명령을 실행했습니다.

cd Code
sudo composer self-update #not necessary, but I did it anyways
composer create-project laravel/laravel Laravel --prefer-dist

그리고 모든 것이 평소대로 실행되었습니다.


1
감사합니다 Arda! 그것이 핵심입니다. 그것은 나에게 몇 시간이 걸렸다 :( 당신은 가상 머신 내부에 가서 실행해야합니다 : 작곡가 만들 프로젝트 laravel / laravel 폴더 이름
gtamborero

1
"No input file specified"오류로 이해하는 것이 중요한 것은 호스트 컴퓨터에서 Homestead.yaml의 구성을 확인하는 것입니다.->이 파일에는 사이트 매핑이 포함되어 있습니다 (map : homestead.test to : / home / vagrant / code / public) 즉, 가상 머신에서 root-> / home / vagrant / code / public /으로 이동하면 거기에 html php 파일이 있어야합니다. 없으면 다음을 실행하십시오. composer create-project laravel / laravel :) 모든 것이 작동하면 "~ /"는 "c : / windows / users / yourname /"을 의미하므로 sincronized 파일이있을 것입니다. 호스트에 방랑에서
gtamborero

5

이 문제는 Homestead.yaml을 편집 한 후에 발생했습니다. 이 문제를 다음과 같이 해결했습니다.

homestead destroy
homestead up

슬프게도 이것은 저에게도 효과가 있으며, 매번 데이터베이스가 파괴되는 결과입니다. 이에 대한 해결책을 찾았습니까?
LoveAndHappiness 2015 년

대신 '홈스테드 제공'을 할 수도 있습니다. 또한 아직하지 않은 경우 데이터베이스 보호 수준을 낮출 수 있도록 시드 및 마이그레이션을 설정하는 것이 좋습니다.
Rayzor 2015 년

이 수정 내 문제 : D, 이것은 좋은 : laracasts.com/lessons/say-hello-to-laravel-homestead-two
이하 브 Shoully

5

나는 같은 문제가 있었다

그러나 사양에 구성 파일이

~ / .homestead / Homestead.yaml 및 ~ / Homestead / src / stubs / Homestead.yaml 업데이트 중

그래서 FIX는 여기에있는 Homestead.yaml을 업데이트하는 것이 었습니다.

~ / .homestead / Homestead.yaml

전에

sites: - map: homestead.app to: /home/vagrant/Laravel/public

sites: - map: homestead.app to: /home/vagrant/Code/mysitename/public

그리고 나는 달렸다
vagrant up --provision

이것이 다른 사람에게 효과가 있기를 바랍니다.


3

일부 디렉토리의 이름을 바꾼 후에는 vagrant를 파괴하고 다시 실행해야했습니다. 여기에서 어떤 해결책도 효과가 없었습니다.

이것은 나를 위해 일했습니다.

vagrant destroy
vagrant up

1
vagrant destroy를 사용하지 마십시오. vagrant halt를 사용하여 가상 머신을 정상적으로 종료하십시오.
AbdulBasit


2

Laravel 문서 ( https://laravel.com/docs/5.2/homestead ) 를 따르는 동안 동일한 문제가 발생했습니다.

내 문제는 매우 간단했습니다. 문서에서이 부분을 읽지 못했습니다.

Homestead.yaml 파일은 ~ / .homestead 숨겨진 디렉토리에 위치합니다 :

그래서 bash init.sh 명령을 실행할 때 파일이 이동되었으므로 잘못된 Homestead.yaml 파일을 업데이트했습니다.

나는 많은 검색 후에 이것을 깨달았으므로 이것이 누군가를 도울 수 있기를 바랍니다.


2

나는 단지 같은 상황에서 고군분투하고 있었다. 다음은 문제를 해결했습니다.

다음과 같은 디렉토리 구조가있는 경우 :

folders:
    - map: /Users/me/code/exampleproject
      to: /home/vagrant/code/exampleproject

호스트 컴퓨터의 exampleproject 내에 '공용'폴더를 만드십시오.


2

Windows 10을 사용하고 있으며 다음과 같은 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

나는 homestead.local 도메인을 하여 결과를 얻었습니다.

하지만 브라우저에 http : //homestead.local 을 입력했을 때 '지정된 입력 파일 없음'이 표시됩니다. 오류가 발생했습니다.

코드 / 공용 폴더를 확인했는데 색인 파일이 없습니다. 나는 시스템이 어떻게 든 누락 된 기본 파일을 찾고 있다고 확신했습니다.

색인 파일을 만들면 제대로 작동하기 시작했습니다.

최신 정보:

다음에 Homestead.yaml 파일 이 변경된 후 발생했을 때vagrant reload --provision 명령을 제대로 작동했습니다.

실행 vagrant reload만으로는 방랑자 상자를 제공하지 않는 것 같습니다. 여기에서 읽으십시오


1

주의 할 점은 Linux는 대소 문자를 구분합니다. 이것이 아마도 "Code"와 "code"디렉토리를 보는 이유 일 것입니다.

내가 할 일은 방랑자 설정을 다시 다시 실행하고 간단하게 유지하고 Homestead 상자가 기본으로 가지고있는 것과 일치 시키려면 호스트 컴퓨터 "Code"의 디렉토리를 대문자로 만듭니다.

나중에 홈스테드 설정에 더 많은 사이트를 추가하기로 결정한 경우 "폴더"섹션에서 컴퓨터의 "코드"폴더에 매핑 할 수도 있습니다. 그렇게하면 / home / vagrant / Code / 아래에서 모든 사이트 프로젝트를 볼 수 있으며 "공용"디렉토리를 가리키는 더 많은 사이트를 볼 수 있습니다.


감사합니다, @noeldiaz! 어제 당신이 말한대로 했어요 다시 vagrant를 다운로드 한 다음 "rm -r Homestead"를 사용하여 Homestead 디렉토리를 제거한 다음, vagrant up을 수행했으며, vagrant up 절차가 nginx 서버 부팅과 같은 추가 작업을 실행하는 것을 보았습니다. 내가 사이트를 시도했을 때 작동했습니다! 또한 "코드" "코드"폴더 문제가 사라졌습니다. :) "폴더"섹션에 대한 제안도 수행했습니다. 나는 서버 / 가상 상자 문제를 디버깅하는 방법을 이해하지 못하는 것 같아서 조금 무서워하지만 계속할 것입니다! 난 정말 당신의 도움 :) 감사
브라이언

1

의 nginx 웹 서버이기 때문 가능성이 없습니다 올바른 경로를 가리키는.

확인해야 할 두 가지 키가 있습니다 . 아래에 있는 키 와 map아래 folders에있는 tosites입니다. folders키는 방랑하는 VM에 로컬 컴퓨터에 폴더를 매핑합니다. sites키의 값과의 nginx에 가상 호스트를 만드는 데 사용됩니다 to.

당신이 확인하고 싶은 것은 to아래 sites에 올바른 경로를 가리키는 것입니다.public 입니다.

문제는 내가 composer create laravel/laravel. 이것은 내 현재 디렉토리에 laravel. 그런 다음 디렉토리를 변경하지 않고 홈스테드 도우미를 설치했습니다.composer require laravel/homestead --dev .

실행 한 후 php vendor/bin/homestead makevagrant up내 디렉토리 구조는 다음과 같은 것을 보았다 :

$ cd laravel51
$ ls -a
.
..
.vagrant
laravel
composer.json
composer.lock
vendor
Homestead.yml
Vagrantfile 

My Homestead.yml은 다음과 같습니다.

folders:
    - map: "/Users/USER/Sites/sandbox/php/laravel51"
      to: "/home/vagrant/laravel51"

sites:
    - map: laravel51
      to: "/home/vagrant/laravel51/public"

자세히 살펴보면 /Users/USER/Sites/sandbox/php/laravel51경로가 방랑자 VM에 마운트됩니다. 앱 디렉터리가있는 laravel 프로젝트 루트를 가리켜 야하기 때문에 잘못된 디렉터리입니다. 여기서 일어난 일은 내가 프로젝트 루트에있는 동안 농가 도우미가 필요하다는 것 입니다.

이제 질문은 내가 무엇을 하는가하는 것입니다. 두 가지 옵션이 있습니다. 현재 홈스테드 VM을 제거하고 다시 시작하지만 이번에는 프로젝트 루트에서 또는 이미 가지고있는 것을 회수하십시오.

가지고있는 것을 복구하려면 여러 파일과 폴더를 laravel 프로젝트 루트로 이동해야합니다.

이동해야하는 유물은 다음과 같습니다.

.vagrant
Homestead.yml
Vagrantfile

그만큼 composer.json 당신이 나중에 필요로 할 것이기 때문에 필요하지 않습니다.

해당 파일을 laravel 프로젝트 루트로 이동하고 현재 작업 디렉토리를 변경하십시오 ( cd laravel). 그 시점에서 map아래를 업데이트 folders하고 프로젝트 루트를 가리키고 있는지 확인하십시오. 또한 to아래 sitesto키가 아래 folders/public추가 된 키 인지 확인하십시오 .

예를 들면 :

folders:
    - map: "/Users/USER/Sites/sandbox/php/laravel51/laravel"
      to: "/home/vagrant/laravel51"

sites:
    - map: laravel51
      to: "/home/vagrant/laravel51/public"

이제 실행 composer require laravel/homestead --dev 홈스테드 도우미가 현재 프로젝트의 composer.json 파일에 필요하고 설치되도록 실행합니다.

실행 vagrant reload --provision하면 모든 준비가 완료됩니다.


1

이것은 일반적으로 Homestead.yaml 을 편집 할 때 발생합니다. 파일 합니다.

나처럼 당신은 시도했지만 homestead up --provision일하지 않았다면! 그런 다음 이것을 시도하십시오 (나에게 효과적입니다).

  • homestead destroy
  • homestead up

1

이전 버전의 Homestead는 ~/Code기본적으로 폴더를 매핑 ~/Code/laravel/public합니다. 의 경우 자본화를 주목하라 ~/Code. 대소 문자를 구분합니다. 새 버전은 소문자를 사용 ~/code합니다. Homestead.yaml실제 디렉토리에 따라 이러한 디렉토리를 업데이트 하십시오.

TL; DR;

업데이트 ~/Code~/code또는 그 실제 디렉토리 이름에 따라도 마찬가지입니다.


1

나에게도 같은 문제입니다.

둘 다 vagrant provision또는 homestead up --provision나를 위해 일하지 않았지만 아래는 아마도 yml 파일을 수정할 때 농가가 이미 실행 중이었을 것입니다.

vagrant reload --provision


0

Laravel 5에서는 홈스테드 서버에 ssh를 입력하고 다음 명령을 실행해야했습니다.

sudo chmod -R 777 storage
sudo chmod -R 777 bootstrap/cache

0

내 해결책은 다음과 같습니다.

파일 경로 문제이므로 아래는 내 폴더 및 사이트 경로입니다. 또한 프로비저닝이 작동하지 않기 때문에 "방랑자 파괴"를 사용해야했습니다.

여기에 이미지 설명 입력


0

내 문제는 도메인의 구성 파일에 있습니다.

내 프로젝트의 공용 폴더가 / home / vagrant / Code / demo / public에 생성되었습니다.

도메인의 구성 파일 (나의 경우 /etc/nginx/sites-available/demo.app)이 "/ home / vagrant / Code / demo / public"대신 "/ home / vagrant / Code / Laravel / public"으로 구성되었습니다. ".

이제 완벽하게 작동합니다.


0

나는 Homestead와 비슷한 문제가 있었고 상자를 프로비저닝하는 것만으로도 효과적이었습니다. 따라서 이것을 시도해야합니다.

vagrant provision


0

vagrant provision관련 코드가 작동하지 않아 시간을 잃은 후 전체 시스템을 다시 시작했습니다. 이제 작동합니다 ...-,- "


0

I 편집 homestead.yamlhosts따른 본 laracast 튜토리얼 사용 재시작 농가 vagrant suspend, vagrant halt등 / vagrant up; 나는에 노력 vagrant provision뿐만 아니라,하지만 no file specified난 후 단지 멀리 가서 컴퓨터를 다시 시작 위를 모두 수행 한 후 (I 윈도우 7 PC에있어). 확실히 시간이 많이 걸리고 까다로운 오류입니다.

이것은 두 개의 laravel 프로젝트에 homestead.yaml대한 내 작업 모습입니다 .

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

hosts파일 은 다음과 같습니다 .

...
127.0.0.1       localhost
192.168.10.10   projectone.app
192.168.10.10   projecttwo.app

참고, 거기 laravel의 두 개의 별도의 설치는 D:\Projects\ProjectOneD:\Projects\ProjectTwo

그런 다음 projectone.app:8000브라우저 에 입력하여 첫 번째 프로젝트에 액세스 하고projecttwo.app:8000 .

추신 : Windows에서 Laravel 5.2에 대해 테스트했습니다.


0

이는 애플리케이션을 제공하기 위해 nginx 서버를 올바르게 구성해야하기 때문에 발생합니다. 이 가이드에 따라 Nginx 및 웹 루트 구성 항목 부터이 작업을 수행 할 수 있습니다 .

/ etc / nginx / sites-available과 / etc / nginx / sites-enabled간에 심볼릭 링크를 올바르게 구성한 후에 는 루트 변수가 애플리케이션의 폴더 경로로 설정되어 있는지 확인해야합니다. nginx 루트 설정

root /usr/share/nginx/html;

/home/vagrant/Projects/ProjectOne/public

또한 php가 html보다 먼저 제공되도록 index.php를 html 파일 앞에 배치해야합니다. 이것을 변경

index index.html index.htm;

이에

index index.php index.html index.htm;

구성을 마친 후 nginx 서버를 다시 시작하십시오.

sudo service nginx restart

귀하의 신청서는 지금 제공되어야합니다.


0

나는 그런 문제가 있었다. Homestead.yaml 파일을 검토했고 모든 파일과 모든 설정이 정확했습니다. 내 문제는 다음 단계 후에 제거되었습니다.

1-vagrant @ homestead : ~ $ 명령 줄에있는 경우 다음을 입력합니다. exit command를 합니다.

2- 이제 Homestead 폴더 안에 있어야합니다. 이 명령을 실행

vagrant reload --provision

3- 달리기 vagrant ssh

이제 브라우저에 관련 주소를 입력하면 Laravel 페이지가 표시됩니다.


0

컴퓨터를 다시 시작하십시오

작동중인 Homestead가 로컬에서 실행 중이 었는데, 어느 시점에서 중지되고 "No input file specified"오류가 발생했습니다. 추적 할 수 없었습니다.

컴퓨터를 다시 시작하면 오류가 사라졌습니다.


0

Homestead 프로젝트가 포함 된 폴더의 이름을 변경하면이 오류가 발생합니다. Homestead.yaml파일을 방문하여 이름이 변경된 폴더를 가리 키도록 참조를 업데이트 한 다음 vagrant up다시 수행 하십시오.


0

새 버전의 larval 7> =을 사용하는 경우 homested 디렉토리에서 사용할 수 있습니다. vagrant provision

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.