Laravel Homestead 사용 : '지정된 입력 파일 없음'
저는 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
확인했고 내 컴퓨터 예제 프로젝트 파일에 대한 변경 사항이 방랑 상자 파일에 반영된 것을 볼 수 있습니다.
이것을 알아내는 방법을 잘 모르겠습니다 !! 가능한 도움을 주시면 감사하겠습니다. :)
다시 설치하는 대신
vagrant up --provision
또는
homestead up --provision
나는 똑같은 문제가 있었고 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/
폴더 이름을 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
웹 브라우저를 새로 고침하세요. 지금 작동합니다.
나를 위해 다음이 작동했습니다.
vagrant reload --provision
이 문제로 어려움을 겪는 사람이있을 경우를 대비하여 내 답변을 제공합니다.
"/ etc / ngnx / sites-available / domain"의 server.root 구성이 "Homestead.yaml"의 sites.to 구성과 일치하는지 확인해야 할 수 있습니다.
일치하지 않는 경우 변경하고 "sudo service nginx restart"를 사용하여 웹 서버를 다시 시작하십시오.
그리고 여전히 작동하지 않고 "YOURSITE / app / storage"폴더에 대한 쓰기 권한을 "chmod -R 777 app / storage"로 허용합니다.
나도 같은 문제가 있었는데, Laravel이 "즉시 설치"되어 있다고 가정했지만 그렇지 않은 것 같습니다. 컴퓨터에 SSH로 연결하고 다음 명령을 실행했습니다.
cd Code
sudo composer self-update #not necessary, but I did it anyways
composer create-project laravel/laravel Laravel --prefer-dist
그리고 모든 것이 평소대로 실행되었습니다.
이 문제는 Homestead.yaml을 편집 한 후에 발생했습니다. 이 문제를 다음과 같이 해결했습니다.
homestead destroy
homestead up
나는 같은 문제가 있었다
그러나 사양에 구성 파일이
~ / .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
이것이 다른 사람에게 효과가 있기를 바랍니다.
농가를 다시 시작하십시오. 나를 위해 일했습니다.
homestead destroy
homestead up
Laravel 문서 ( https://laravel.com/docs/5.2/homestead ) 를 따르는 동안 동일한 문제가 발생했습니다.
내 문제는 매우 간단했습니다. 문서에서이 부분을 읽지 못했습니다.
Homestead.yaml 파일은 ~ / .homestead 숨겨진 디렉토리에 위치합니다 :
그래서 bash init.sh 명령을 실행할 때 파일이 이동되었으므로 잘못된 Homestead.yaml 파일을 업데이트했습니다.
나는 많은 검색 후에 이것을 깨달았으므로 이것이 누군가를 도울 수 있기를 바랍니다.
주의 할 점은 Linux는 대소 문자를 구분합니다. 이것이 아마도 "Code"와 "code"디렉토리를 보는 이유 일 것입니다.
내가 할 일은 방랑자 설정을 다시 다시 실행하고 간단하게 유지하고 Homestead 상자가 기본으로 가지고있는 것과 일치 시키려면 호스트 컴퓨터 "Code"의 디렉토리를 대문자로 만듭니다.
나중에 홈스테드 설정에 더 많은 사이트를 추가하기로 결정한 경우 "폴더"섹션에서 컴퓨터의 "코드"폴더에 매핑 할 수도 있습니다. 그렇게하면 / home / vagrant / Code / 아래에서 모든 사이트 프로젝트를 볼 수 있으며 "공용"디렉토리를 가리키는 더 많은 사이트를 볼 수 있습니다.
의 nginx 웹 서버가 있기 때문에이 가능성이 없는 올바른 경로를 가리키는.
확인해야 할 두 가지 키가 있습니다 . 아래에 있는 키 와 map
아래 folders
에있는 to
키 sites
입니다. folders
키는 방랑하는 VM에 로컬 컴퓨터에 폴더를 매핑합니다. sites
키의 값과의 nginx에 가상 호스트를 만드는 데 사용됩니다 to
.
당신이 확인하고 싶은 것은 to
아래 sites
에 올바른 경로를 가리키는 것 public
입니다.
문제는 내가 composer create laravel/laravel
. 이것은 내 현재 디렉토리에 laravel
. 그런 다음 디렉토리를 변경하지 않고 홈스테드 도우미를 composer require laravel/homestead --dev
.
실행 한 후 php vendor/bin/homestead make
및 vagrant 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
아래 sites
의 to
키가 아래 folders
에 /public
추가 된 키 인지 확인하십시오 .
예를 들면 :
folders:
- map: "/Users/USER/Sites/sandbox/php/laravel51/laravel"
to: "/home/vagrant/laravel51"
sites:
- map: laravel51
to: "/home/vagrant/laravel51/public"
Now run composer require laravel/homestead --dev
so that the homestead helper is required into your current project's composer.json file and installed.
Run vagrant reload --provision
and you should be all set.
This usually happens when you edit the Homestead.yaml file.
If like me you tried homestead up --provision
and didn't worked! then try this (it works for me):
homestead destroy
homestead up
Older versions of Homestead maps folders in ~/Code
to say for example by default ~/Code/laravel/public
. Notice the case capitalisations in ~/Code
. These are case sensitive. New versions use lower case ~/code
. Update these directories in your Homestead.yaml
according to your actual directories.
TL;DR;
Update ~/Code
to ~/code
or vice versa depending on your actual directory names.
I was just struggling with same situation. Following solved the issue:
If you have directory structure like this:
folders:
- map: /Users/me/code/exampleproject
to: /home/vagrant/code/exampleproject
Just create 'public' folder within exampleproject on your host machine.
After I renamed some directories, I had to destroy and rerun vagrant. None of the solutions here worked.
This worked for me:
vagrant destroy
vagrant up
Same issue for me.
Neither vagrant provision
or homestead up --provision
worked for me, but the below did - probably as homestead was already running when I modified the yml file
vagrant reload --provision
In Laravel 5 I had to ssh into my homestead server and run these commands:
sudo chmod -R 777 storage
sudo chmod -R 777 bootstrap/cache
Here's my solution:
It's a file path problem so below are my folders & sites paths. Also, I had to use "vagrant destroy" as provisioning didn't work.
My problem was in the config file of the domain:
the public folder of my project was created in /home/vagrant/Code/demo/public
the config file of the domain (for me /etc/nginx/sites-available/demo.app) had configured: "/home/vagrant/Code/Laravel/public" instead of "/home/vagrant/Code/demo/public".
Now it is working perfect.
I have had similar issues with Homestead and just provisioning the box worked for me. So you should try this:
vagrant provision
vagrant provision
related codes didn't work for me, after lost some time, I've restart the whole system. Now it works... -,-"
I edited homestead.yaml
and hosts
according to this laracast tutorial and restarted homestead using vagrant suspend
, vagrant halt
, etc. /vagrant up
; I tried to vagrant provision
as well, but no file specified
only went away after I restarted my computer (I'm on Windows 7 PC) after doing all of the above. It is certainly a time consuming and tricky error.
This is what my working homestead.yaml
looks like for two laravel projects:
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
and here is my hosts
file:
...
127.0.0.1 localhost
192.168.10.10 projectone.app
192.168.10.10 projecttwo.app
Note, there are two separate installations of laravel in D:\Projects\ProjectOne
and D:\Projects\ProjectTwo
I then access the first project by typing projectone.app:8000
in the browser and projecttwo.app:8000
for the second project.
P.S. I tested this for Laravel 5.2 on Windows
This happens because you need to configure your nginx server properly in order to serve you application. You can do this following this guide, starting in the topic Configure Nginx and the Web Root.
After properly configuring your symbolic link between your /etc/nginx/sites-available and /etc/nginx/sites-enabled you need to make sure your root variable is set to your application's folder path. Set your nginx root from
root /usr/share/nginx/html;
to
/home/vagrant/Projects/ProjectOne/public
Also, you have to place index.php before your html files so php is served before html. Change this
index index.html index.htm;
to this
index index.php index.html index.htm;
After finish your configuration restart your nginx server with
sudo service nginx restart
Your application should be served now.
I am using Windows 10 and has the following Homestead configuration
---
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
I PINGed the homestead.local domain and was getting results.
But when I typed http://homestead.local in the browser, I got 'no input file specified' error
I checked the code/public folder and there was no index file. I was sure the system was looking for the default file which was somehow missing.
Once I created an index file it started working fine.
참고URL : https://stackoverflow.com/questions/24274387/using-laravel-homestead-no-input-file-specified
'developer tip' 카테고리의 다른 글
UIAlertAction에 대한 핸들러 작성 (0) | 2020.09.02 |
---|---|
Node.js의 JSON 객체로 응답 (객체 / 배열을 JSON 문자열로 변환) (0) | 2020.09.02 |
약속 체인에서 setTimeout 사용 (0) | 2020.09.02 |
Chrome 확장 프로그램 첫 실행 / 업데이트 감지 (0) | 2020.09.02 |
Phonegap이있는 iOS 7 상태 표시 줄 (0) | 2020.09.02 |