2014-11-05 64 views
7

我遇到了一個問題,與流浪者宅基地無家可歸的人一起工作。我homestead.yaml文件看起來像:流浪者與拉拉維爾宅基地分享

--- 
ip: "192.168.10.10" 
memory: 2048 
cpus: 1 

authorize: /Users/me/.ssh/id_rsa.pub 

keys: 
    - /Users/me/.ssh/id_rsa 

folders: 
    - map: /Users/me/Projects/laravel 
     to: /home/vagrant/laravel 

sites: 
    - map: laravel.app 
     to: /home/vagrant/laravel/public 

variables: 
    - key: APP_ENV 
     value: local 

當我打http://laravel.app:8000 - 一切正常。當我啓動vagrant share生成的URL返回錯誤No input file specified.

我很難過。搜索Google數小時並未產生解決方案。我確定這只是一些基本的配置,而我並沒有將這些點連接起來。任何指針將不勝感激。謝謝!

回答

3

第一步是爲Vagrant Cloud創建一個帳戶,如果您還沒有。

一旦你做到了這一點,在你的終端(登錄到宅基機)運行vagrant login,並與您的詳細信息登錄。

然後運行vagrant global-status查找流浪機械Homestead運行的ID。

運行vagrant share 123a4(其中123a4是機器ID),您的機器將被共享!

請注意,您可能必須設置Nginx配置才能偵聽爲您生成的URL,以便它指向機器上的正確站點。

+1

哇。謝謝。我一直試圖弄清這個問題的時間最長。 – yan 2015-06-05 17:25:10

+0

你能解釋最後一段嗎?你如何「聽URL」? – 2015-11-17 23:29:07

+0

您需要將URL映射到流浪機器上的目錄。因此,使用Homestead,你可以運行'serve url-to-vagrant-cloud.com〜/ path/to/your/code/public',這將爲你做到這一點。 – Sacha 2015-11-18 09:38:42

7

@ sanaco的答案錯過了我的一些步驟。這是完整的命令創建共享(登錄後)

vagrant share --http 80 --name silly-sausage 

完成後該命令將出來把它看起來應該像這樣

http://silly-sausage.vagrantshare.com 

一旦份額的份額網址是高達你需要SSH進入流浪漢框

vagrant ssh 

和運行

serve silly-sausage.vagrantshare.com ~/Code/project/path/public 

沒有http標誌vagrant將443分配給http,這使得nginx抱怨HTTPS端口被用於HTTP連接。

通過指定名稱,您只需要首次執行serve命令。

3

有一個解決方案,而不必在你的宅基地虛擬機上做任何事情。

您可以安裝名爲ngrok的程序,它與vagrant share類似,但可以更好地處理Homestead使用的多個網站。您需要註冊一個帳戶,但基本使用是免費的。

運行:ngrok http -host-header=rewrite your-local-site.app:80

(其中your-local-site.app是什麼用於映射指令在Homestead.yaml文件)

那麼你的網站將可在全球範圍對ngrok的網址給你。