至于怎麼安裝vagrant,python,php,本文就不講解了。
本文主要講解以本地作為開發環境,寫完代碼能直接自動同步到虛拟機(測試環境),提高測試開發效率。
其中為了測試友善,python和php都用内置的web server,而不搭建nginx或者apache。
用python和php的内置web server的做法隻适合開發測試環境,不适合生産環境。
1.首先需要對vagrant環境進行配置。編輯vagrant檔案,如下,去掉注釋。
config.vm.network :forwarded_port, guest: 3000, host: 8080
這樣就可以通過主控端8080端口通路到虛拟機上得3000端口。這步解決了在本地進行通路測試。而不需要跑到虛拟機裡測試。
2.本地代碼怎麼自動同步到測試環境,同樣修改vagrant檔案。如下。
config.vm.synced_folder "./data", "/vagrant"
其中第一個參數是主控端檔案夾,存放本地代碼,第二個參數是虛拟機對應的目錄,當本地data目錄有更新時,vagrant目錄就會同步。是不是很友善啊。
主控端data目錄結構如下:
localhost:data angel$ ll -r
total 0
drwxr-xr-x 3 angel staff 102 4 28 18:51 phptest
drwxr-xr-x 3 angel staff 102 4 28 19:52 pythontest
./phptest:
total 8
-rw-r--r-- 1 angel staff 192 4 28 18:51 router.php
./pythontest:
-rw-r--r-- 1 angel staff 88 4 28 19:36 index.html
虛拟機上vagrnt上的目錄結構如下:
[vagrant@localhost vagrant]$ ll -r
.:
drwxr-xr-x 1 vagrant vagrant 102 apr 28 11:51 phptest
drwxr-xr-x 1 vagrant vagrant 102 apr 28 12:52 pythontest
total 4
-rw-r--r-- 1 vagrant vagrant 192 apr 28 11:51 router.php
-rw-r--r-- 1 vagrant vagrant 88 apr 28 12:36 index.html
發現沒有,是不是一模一樣啊,全自動的哦, 是不是很友善啊。
3.啟動python自帶web server
在虛拟機上的pythontest目錄啟動如下指令:
[vagrant@localhost pythontest]$ python -m simplehttpserver 3000
serving http on 0.0.0.0 port 3000 ...
在主控端浏覽器上輸入http://localhost:8080,就可以看到,
這樣簡易的python環境就搭建好了。
4.啟動php自帶的web server
在虛拟機上得phptest目錄下啟動如下指令
[vagrant@localhost phptest]$ php -s 0.0.0.0:3000 router.php
php 5.5.11 development server started at mon apr 28 13:37:19 2014
listening on http://0.0.0.0:3000
document root is /vagrant/phptest
這樣簡易的php環境就搭建好了。
看官注意了,php啟動内置web server,想要遠端通路,host必須是 0.0.0.0, 本人就因為開始用localhost而報錯,調試了一下午.
不對之處,歡迎拍磚。轉載請注明原處。