Vagrant搭建可移動的PHP開發環境

準備

開發所需工具:html

系統環境:macOS Sierra 10.12.5
搭建系統:CentOS 7
搭建環境:Oneinstack(PHP以及Java環境網絡

爲啥不用docker?由於不少公司用的windows,然而windows 10才能正常支持,在wineows下安裝一大堆東西不行,折騰了好些下,決定不躺着個坑。app

安裝

首先須要先安裝VirtualboxVagrant,按照官方文檔選擇對應操做系統安裝便可。ssh

檢查是否安裝完成ide

➜  ~ vagrant -v
Vagrant 1.9.8

準備就緒,走起!!!工具

走起

➜ morgan cd path          #cd 到你要操做的目錄
➜ path mkdir vagrant      #建立目錄
➜ vagrant cd vagrant      #進入目錄

選擇boxs,打開Vagrant box,在box列表選擇CentOS 7 x64 (Minimal, Shrinked, Guest Additions 4.3.26) (Monthly updates)根據你的須要選擇對應的系統,複製對應URL。

➜  vagrant vagrant init centos/7 #在Vagrant box 中的名字,而後等待
➜  vagrant vagrant up            #啓動
➜  vagrant vagrant ssh           #進入ssh
[vagrant@localhost ~]$ cd /home/ #進入你準備用來下載oneinstack的目錄,而後根據官方安裝教程完成環境安裝

到這裏PHP環境安裝完畢,問題來了,如何訪問呢?端口映射。
打開所在目錄Vagrant生成的Vagrantfile查找被註釋的forwarded_port,其實該配置文件寫的很詳細,能夠根聽說明完成大部分配置。複製,粘貼之註釋下方,端口號根據系統環境以及我的需求更改,而後保存。

# config.vm.network "forwarded_port", guest: 80, host: 8080
+ config.vm.network "forwarded_port", guest: 80, host: 8989

退出ssh,而後重啓。

[vagrant@localhost root]$ exit; #退出ssh
➜  vagrant vagrant reload       #重啓

訪問127.0.0.1:8989OK,展現出歡迎service歡迎頁面。
訪問的問題解決了,那麼該如何編輯代碼呢?同步文件夾解決這個問題。爲了更快的同步到box裏面,Mac可使用NFSWindows可使用SMB方式。以Mac爲例,配置不一樣的是type參數。打開Vagrantfile,查找synced_folder複製到下方,查找private_network複製到下方,修改對應目錄,保存。

# config.vm.synced_folder "../data", "/vagrant_data"
+ config.vm.synced_folder "本機文件路徑", "vagrant上面須要掛載的目錄"
# config.vm.network "private_network", ip: "192.168.33.10"
+ config.vm.network "private_network", ip: "192.168.33.10" #文件同步須要通信,因此須要配置網絡,這裏配置的私有網絡。若是你須要局域網其餘人可以訪問你的Vagrant中的項目,那麼你可能須要配置共有網絡,查看Vagrant的docs Networking 查看更多。

重啓服務

➜  vagrant vagrant up

到這裏,環境的配置完成了!

其餘修改

加註釋的爲其餘修改

Vagrant.configure("2") do |config|
  config.vm.hostname = "morgan" #修改主機名,ssh登錄後的左側提示
  config.vm.box = "centos/7"
  config.vm.network "forwarded_port", guest: 80, host: 8989    
  config.vm.network "private_network", ip: "192.168.33.10"
  config.vm.synced_folder "/Users/morgan/Desktop/www/", "/data/wwwroot/default/", type: "nfs"

  config.vm.provider "virtualbox" do |vb|
      vb.name = "morgan-centos" #虛擬機名
      vb.memory = "1024"    #內存大小
      vb.cpus = 2    #CPU數量
  end
end

在開發測試的時候,發現要刷新幾回纔可以顯示新的頁面,查看文檔發現是Nginx 的sendfile 致使的。修改配置。

#In Nginx:
sendfile off;

#In Apache:
EnableSendfile Off

打包

➜  vagrant vagrant package name

參考文檔:
Vagrant docs

相關文章
相關標籤/搜索