在Windows下安裝Vagrant的方法和注意事項
做Web開發少不了要在本地搭建好開發環境,雖然說目前各種腳本都有對應的Windows版,甚至是一鍵安裝包,但很多時候和Windows環境的相性並不是那麼好,各麻煩的問題是實際部署的環境通常是Linux,常常還要面臨開發和部署環境不一致,上線前還要大量的調試。
Windows下玩Linux少不了虛擬機,但裝系統依舊是相當費事。在現在什麼都在自動化的今天,Vagrant就是這麼一個神器,基於Ruby開發,使用開源 VirtualBox 作為虛擬化支持,可以輕鬆的跨平台部署。
今天試著把幾台機器的環境都換成Vagrant,很爽很順暢,我本人實測發現,運行一個centos只需要不到60兆內存,相當的給力。
下面說下安裝步驟,順便把注意點說一下!
準備工作:
下載安裝VirtualBox :https://www.virtualbox.org/
下載安裝Vagrant :http://www.vagrantup.com/
下載需要使用的box :
官方提供的範例:http://files.vagrantup.com/precise32.box
也可以在http://www. vagrantbox.es/ 這裡下載更多不同系統甚至是已經配置好環境直接可以用的box,雖然可以直接在Vagrant直接使用網址,由Vagrant自動下載安裝,但是考慮到網絡情況,還是建議自行先下載好。
由於習慣用CentOS,於是我就下了CentOS 6.3 x86_64 minimal,這個Box根據個人情況進行選擇即可。
設定環境:
安裝完成並且重新啟動好系統之後就可以開始設定環境了。
先在本地建立好工作目錄,並在命令列下切換到對應目錄
vagrant box add base CentOS-6.3-x86_64-minimal.box
base 表示指定預設的box,也可以為box指定名稱,例如centos63 ,使用base時,之後可以直接使用vagrant init 進行初始化,如果自行指定名稱,則初始化的時候需要指定box的名稱。
CentOS-6.3-x86_64-minimal.box 是box對應的檔名,這裡可以是本地保存box的路徑,也可以是可以下載box的網址,如果是網址的話,Vagrant會自動啟動下載。
[vagrant] Downloading with Vagrant::Downloaders::File... [vagrant] Copying box to temporary location... [vagrant] Extracting box... [vagrant] Verifying box... [vagrant] Cleaning up downloaded box...
設定好box之後,在目前工作目錄執行
vagrant init
產生對應的Vagrantfile。透過文字編輯器開啟Vagrantfile可以進行一些進一步的常用配置:
網路配置:
Vagrant的網路有三種模式
1、較常用是連接埠映射,就是將虛擬機器中的連接埠對應到宿主機器對應的連接埠直接使用,在Vagrantfile中設定:
config.vm.network :forwarded_port, guest: 80, host: 8080
guest: 80 表示虛擬機器中的80埠,host: 8080 表示對應到宿主機器的8080埠。
2、如果需要自己自由的存取虛擬機,但是別人不需要存取虛擬機,可以使用private_network,並為虛擬機設定IP ,在Vagrantfile中設定:
config.vm.network :private_network, ip: "192.168.1.104"
192.168. 1.104 表示虛擬機的IP,多台虛擬機的話需要互相訪問的話,設置在相同網段即可
3、如果需要將虛擬機作為當前局域網中的一台計算機,由局域網進行DHCP ,那麼在Vagrantfile中配置:
config.vm.network :public_network
目錄映射:
既然是開發環境,那麼開發工作肯定還是需要在本地完成,而不是都要進到虛擬機器中去完成,虛擬機器就好好在後台運行服務就好了,不然就本末倒置了,所以這裡就需要使用目錄映射功能,將本地的目錄映射到虛擬機器的對應目錄。
預設情況下,目前的工作目錄,會被對應到虛擬機器的/vagrant 目錄,目前目錄下的檔案可以直接在/vagrant 下進行訪問,當然也可以透過ln 建立軟連接,如
ln -fs /vagrant/wwwroot /var/www
來進行目錄映射,當然,從自動化配置的角度,能不進系統就不需要進系統,所以在Vagrant也可以進行目錄映射的操作:
config.vm.synced_folder "wwwroot/", "/var/www"
前面的參數「wwwroot/」 表示的是本地的路徑,這裡使用對於工作目錄的相對路徑,這裡也可以使用絕對路徑,例如: “d:/www/”
#後面的參數“/var /www” 表示虛擬機器中對應映射的目錄。
運行腳本:
雖然不是必須,但是如果有需要在啟動時運行一些腳本(環境的安裝或有些服務的啟動需要在完成目錄映射之後進行),可以編輯腳本,類似如下(摘自Vagrant Document):
#!/usr/bin/env bash apt-get update apt-get install -y apache2 rm -rf /var/www ln -fs /vagrant /var/www
儲存在和Vagrantfile相同目錄,檔案名稱自取(如boot.sh),然後在Vagrantfile中加入:
config.vm.provision :shell, :path => "boot.sh"
當初次使用基本的設定都完成則之後,則可以使用vagrant up 啟動虛擬機
Bringing machine 'default' up with 'virtualbox' provider... [default] Setting the name of the VM... [default] Clearing any previously set forwarded ports... [default] Creating shared folders metadata... [default] Clearing any previously set network interfaces... [default] Preparing network interfaces based on configuration... [default] You are trying to forward to privileged ports (ports < = 1024). Most operating systems restrict this to only privileged process (typicallyprocesses running as an administrative user). This is a warning in case the port forwarding doesn't work. If any problems occur, please try a port higher than 1024. [default] Forwarding ports... [default] -- 22 => <strong>2222</strong> (adapter 1) [default] -- 80 => 8080 (adapter 1) [default] Booting VM... [default] Waiting for VM to boot. This can take a few minutes. [default] VM booted and ready for use! [default] The guest additions on this VM do not match the installed version of VirtualBox! In most cases this is fine, but in rare cases it can cause things such as shared folders to not work properly. If you see shared folder errors, please update the guest additions within the virtual machine and reload your VM. Guest Additions Version: 4.1.18 VirtualBox Version: 4.2 [default] Mounting shared folders... [default] -- /var/www [default] -- /vagrant [default] Running provisioner: shell...
虛擬機啟動之後則可以透過vagrant ssh 聯入虛擬機進行進一步的環境配置,或者軟體安裝相關的工作,在Windows系統下,並不能直接透過vagrant ssh 連接到虛擬機,需要使用Putty,Xshell 等第三方工具進行連接
連接的IP和連接埠根據網路環境配置的不同有所不同,如果是默認使用連接埠對映的話,一般是連接本地的2222埠。
登录的帐号密码均为 vagrant ,登录之后如果需要 su root ,密码也是 vagrant
注:使用 vagrant ssh 时,会提示可以使用密钥进行登录,如果需要使用putty进行密钥登录的话,需要下载 puttygen 将 ssh 的密钥转换为 ppk 文件才能使用。
登录ssh完成环境的配置,如果在开发环境中使用webserver(nginx/apache)为了避免一些静态文件处理的问题,可能还需要进行一些额外的配置:Vagrant下共享目录静态文件(js/jpg/png等)“缓存”问题
在不进入虚拟机的情况下,还可以使用下面的命令对 虚拟机进行管理:
vagrant up (启动虚拟机) vagrant halt (关闭虚拟机——对应就是关机) vagrant suspend (暂停虚拟机——只是暂停,虚拟机内存等信息将以状态文件的方式保存在本地,可以执行恢复操作后继续使用) vagrant resume (恢复虚拟机 —— 与前面的暂停相对应) vagrant destroy (删除虚拟机,删除后在当前虚拟机所做进行的除开Vagrantfile中的配置都不会保留) 当在启动Vagrant后,对于虚拟机有进行过安装环境相关的配置,如果并不希望写在Vagrant的启动shell里面每次都重新安装配置一遍,可以将当前配置好的虚拟机打包成box, vagrant package --output NAME --vagrantfile FILE
可选参数:
--output NAME : (可选)设置通过NAME来指定输出的文件名
--vagrantfile FILE:(可选)可以将Vagrantfile直接封进box中
注:如果网络模式中使用 private_network 的话,在打包之前需要清除一下private_network的设置,避免不必要的错误:
sudo rm -f /etc/udev/rule.d/70-persistent-net.rules
制作完成之后直接将box文件拿到其他计算机上配置即可使用。
注意点: 1.如果在windows下无法启动,则可以开启box的gui端,这样就可以看到出现什么问题。
开启方法:
修改Vagrantfile文件,添加一下内容:
config.vm.provider :virtualbox do |vb|
vb.gui = true
end
我就遇到了这个问题,虚拟机需要VT虚拟技术支持,所以要开启VT
以上是在Windows下安裝Vagrant的方法和注意事項的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

MySQL 中的複制粘貼包含以下步驟:選擇數據,使用 Ctrl C(Windows)或 Cmd C(Mac)複製;在目標位置右鍵單擊,選擇“粘貼”或使用 Ctrl V(Windows)或 Cmd V(Mac);複製的數據將插入到目標位置,或替換現有數據(取決於目標位置是否已存在數據)。

VS Code可以在Windows 8上運行,但體驗可能不佳。首先確保系統已更新到最新補丁,然後下載與系統架構匹配的VS Code安裝包,按照提示安裝。安裝後,注意某些擴展程序可能與Windows 8不兼容,需要尋找替代擴展或在虛擬機中使用更新的Windows系統。安裝必要的擴展,檢查是否正常工作。儘管VS Code在Windows 8上可行,但建議升級到更新的Windows系統以獲得更好的開發體驗和安全保障。

開源VNC工具Tigervnc兼容眾多操作系統,其中包括Windows、Linux和macOS。本文將詳細介紹Tigervnc在Debian系統上的應用情況。 Tigervnc在Debian系統的應用系統集成:在Debian系統中,Tigervnc作為VNC服務器組件被集成到系統中。用戶可通過命令行工具(例如vncserver)啟動VNC服務,並自定義顯示設置,如分辨率和色彩深度。跨平台連接:Tigervnc客戶端支持Windows、Linux和macOS,這意味著用戶可以從任何運行這

在 Sublime 中運行代碼的方法有六種:通過熱鍵、菜單、構建系統、命令行、設置默認構建系統和自定義構建命令,並可通過右鍵單擊項目/文件運行單個文件/項目,構建系統可用性取決於 Sublime Text 的安裝情況。

要安裝 Laravel,需依序進行以下步驟:安裝 Composer(適用於 macOS/Linux 和 Windows)安裝 Laravel 安裝器創建新項目啟動服務訪問應用程序(網址:http://127.0.0.1:8000)設置數據庫連接(如果需要)

Mac 系統維護包括:磁盤管理(使用 OmniDiskSweeper 清理磁盤空間,用磁盤工具檢查磁盤錯誤)內存管理(用 Activity Monitor 監控內存佔用,結束佔用過高的進程)啟動項管理(用 Linc 或 LaunchControl 管理啟動項,禁用不必要的啟動項)系統緩存清理(用 CleanMyMac X 或手動清理系統緩存)軟件更新(及時更新系統和應用程序)定期備份(使用 Time Machine 定期備份數據)良好使用習慣(不過度安裝應用程序,定期清理文件,監控系統日誌)

在Laravel開發中,處理複雜的模型關係一直是個挑戰,特別是當涉及到多層級的BelongsToThrough關係時。最近,我在處理一個多級模型關係的項目中遇到了這個問題,傳統的HasManyThrough關係無法滿足需求,導致數據查詢變得複雜且低效。經過一番探索,我找到了staudenmeir/belongs-to-through這個庫,它通過Composer輕鬆安裝並解決了我的困擾。
