目錄
關鍵要點
創建虛擬機
關於 LTS 版本
安裝 Ubuntu
為 Vagrant 配置虛擬機
安裝 VirtualBox 客戶機附加組件
創建基礎鏡像包
共享基礎鏡像
結論
創建和共享 Vagrant 基礎鏡像的常見問題解答 (FAQ)
什麼是 Vagrant 基礎鏡像,為什麼我需要它?
如何創建 Vagrant 基礎鏡像?
如何與他人共享我的 Vagrant 基礎鏡像?
我的 Vagrant 基礎鏡像中應該包含什麼?
如何更新我的 Vagrant 基礎鏡像?
我可以將 Vagrant 基礎鏡像用於生產環境嗎?
如何排除我的 Vagrant 基礎鏡像的問題?
我可以將 Vagrant 基礎鏡像與其他虛擬化軟件一起使用嗎?
如何優化我的 Vagrant 基礎鏡像?
我可以將 Vagrant 基礎鏡像用於跨平台開發嗎?
首頁 後端開發 php教程 如何創建和共享流浪者的基礎框

如何創建和共享流浪者的基礎框

Feb 20, 2025 am 09:51 AM

每天都有有趣的新工具出現,幫助開發者提高效率,讓他們專注於項目的實際業務價值。

Vagrant 就是這樣一個工具,它正成為開發者最強大的助手之一,它標準化了開發環境的創建和管理方式。

本文將教你如何基於 Ubuntu 14.04 LTS 創建你自己的 Vagrant 基礎鏡像,用你喜歡的應用程序配置它,並通過 Vagrant Cloud 與其他人分享。

關鍵要點

  • 創建 Vagrant 基礎鏡像,需要在你的機器上安裝 VirtualBox 和 Vagrant,然後使用 VirtualBox 創建一個新的虛擬機。安裝必要的軟件和配置,並使用 vagrant package 命令將其打包成鏡像文件。
  • Vagrant 基礎鏡像是一個預先打包的環境,可以用作項目的起點。它確保了不同開發環境之間的一致性,並通過消除從頭手動設置一切的需要來節省時間。
  • 可以通過將其上傳到 Vagrant Cloud 等鏡像託管服務來共享 Vagrant 基礎鏡像。上傳後,可以與其他人共享鏡像 URL,他們可以使用 vagrant box add 命令將其添加到他們的 Vagrant 環境中。
  • Vagrant 基礎鏡像通常包括操作系統、必要的軟件(如 Web 服務器或數據庫服務器)以及開發環境所需的任何配置。但是,內容可以根據特定項目的需要進行調整。

創建虛擬機

注意:以下示例需要在本地計算機上安裝至少 1.5 版本的 Vagrant。

要創建虛擬機,你需要一個虛擬化提供程序。雖然 Vagrant 對使用哪個提供程序沒有歧視,但以下示例將使用 VirtualBox。

在創建虛擬機之前,你需要先安裝 VirtualBox。

接下來,前往 Ubuntu 下載頁面並獲取 Ubuntu 14.04 LTS ISO 鏡像。

How to Create and Share a Vagrant Base Box

關於 LTS 版本

每六個月就會發布一個新的 Ubuntu 版本,並且每個版本的支持都是有限的。

LTS 代表長期支持,它被賦予特定子集的 Ubuntu 版本。 LTS 的時間跨度長達五年。如果你今天安裝了 LTS 版本,你將獲得五年後的更新。

對於 Web 開發,最好始終使用帶有 LTS 標籤的 Ubuntu,好消息是 Ubuntu 14.04 LTS 於 2014 年 4 月 17 日發布,因此支持持續到 2019 年。


安裝 Ubuntu

ISO 文件下載完成後,啟動VirtualBox 並單擊“新建”以創建一個新的虛擬機,然後選擇Linux 作為類型,Ubuntu (64 位) 作為版本,並為你的虛擬機命名。

How to Create and Share a Vagrant Base Box

單擊“繼續”,將內存大小設置為 1024 MB 或更高(如果你認為虛擬機中將運行內存密集型任務)。

在下一個面板中,選擇 現在創建虛擬硬盤,然後選擇 VMDK (虛擬機磁盤)

物理硬盤存儲 面板中,選擇 動態分配 並設置至少 8 GB。單擊“繼續”,你的虛擬機就快完成了。

你需要將下載的 Ubuntu 14.04 LTS ISO 文件作為虛擬 CD 插入,以便在啟動虛擬機時安裝操作系統。這就像你將可啟動 CD 插入 CD-ROM 一樣。

從列表中選擇虛擬機,單擊 設置,然後單擊 存儲 選項卡。在 控制器:IDE 上,單擊小的 CD 圖標(在下面的圖像中以紅色突出顯示),然後單擊 選擇磁盤 並選擇 Ubuntu ISO 文件。

How to Create and Share a Vagrant Base Box

現在我們準備啟動虛擬機並將 Ubuntu 作為客戶操作系統安裝。安裝過程中還有幾個步驟,例如選擇語言、國家/地區等。我將在下面介紹更重要的步驟。

  • 當提示輸入主機名時,鍵入 vagrant
  • 對於用戶名和密碼,也鍵入 vagrant
  • 加密你的主目錄? 選擇
  • 在時區面板上,選擇 UTC 或你自己的首選時區
  • 分區方法:引導式 – 使用整個磁盤並設置 LVM
  • 當提示安裝哪些軟件時,選擇 OpenSSH 服務器,其餘的軟件(如 LAMP 或 MySQL)稍後將安裝
  • 選擇在主引導記錄上安裝 GRUB 引導加載程序

這應該總結了安裝過程,接下來將提示你登錄。使用 vagrant 用戶和密碼登錄。

How to Create and Share a Vagrant Base Box

接下來,通過鍵入以下命令切換到 root 用戶:

<code>sudo su -</code>
登入後複製
登入後複製
登入後複製

請注意,這不是一個非常安全的設置,保護 Ubuntu 的安全不在本文的討論範圍之內。對於開發機器,安全並不重要。

使用 root 用戶,通過鍵入以下命令更新到最新的軟件包

<code>apt-get update
apt-get upgrade</code>
登入後複製
登入後複製
登入後複製

為 Vagrant 配置虛擬機

Vagrant 需要設置一些特定的選項才能與虛擬機良好配合。

無需密碼的命令執行

Vagrant 執行的所有操作都將使用 vagrant 用戶,並且所有 sudo 命令都需要在每次運行時無需密碼即可執行。

要設置此項,我們需要運行 visudo 命令來為用戶配置無需密碼的 sudo。只需鍵入:

<code>visudo</code>
登入後複製
登入後複製
登入後複製

將以下行添加到文件的末尾並保存:

<code>vagrant ALL=(ALL) NOPASSWD:ALL</code>
登入後複製
登入後複製
登入後複製

Root 密碼

創建 Vagrant 鏡像時的一般準則是將 root 密碼設置為眾所周知的密碼。 Vagrant 使用 vagrant 作為密碼。要設置此項,請以 root 用戶身份鍵入以下命令,並在提示時鍵入密碼:

<code>sudo su -</code>
登入後複製
登入後複製
登入後複製

SSH 配置

為了讓 Vagrant 能夠 SSH 到虛擬機,它使用公鑰身份驗證。我們需要為我們的 vagrant 用戶設置此項。

仍然以 root 用戶身份登錄,轉到 vagrant 用戶的主目錄:

<code>apt-get update
apt-get upgrade</code>
登入後複製
登入後複製
登入後複製

創建以下文件夾:

<code>visudo</code>
登入後複製
登入後複製
登入後複製

Vagrant 使用不安全的密鑰對連接到虛擬機,你可以在此處下載:github.com/mitchellh/vagrant/blob/master/keys/vagrant.pub

只需運行以下命令即可直接獲取它:

<code>vagrant ALL=(ALL) NOPASSWD:ALL</code>
登入後複製
登入後複製
登入後複製

OpenSSH 對此文件夾和文件權限非常嚴格,因此讓我們將其更改為正確的權限:

<code>passwd</code>
登入後複製

如果一切順利,這就是 /home/vagrant/home/vagrant/.ssh 的文件夾結構,包括權限。

How to Create and Share a Vagrant Base Box

可選步驟:為了加快到虛擬機的 SSH 連接速度,我們需要修改 SSH 服務器配置:

<code>cd /home/vagrant</code>
登入後複製

將此行添加到文件的末尾並保存:

<code>mkdir .ssh</code>
登入後複製

然後重新啟動 SSH 服務器:

<code>wget https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub -O .ssh/authorized_keys</code>
登入後複製

最後,我們可以通過鍵入以下命令註銷 root 用戶:

<code>chmod 700 .ssh
chmod 600 .ssh/authorized_keys
chown -R vagrant:vagrant .ssh</code>
登入後複製

安裝 VirtualBox 客戶機附加組件

為了讓 Vagrant 正確共享客戶機和主機操作系統之間的文件夾,需要安裝 VirtualBox 客戶機附加組件

在 Linux 系統上安裝客戶機附加組件的先決條件是一些軟件包,例如 Linux 頭文件和開發工具。讓我們首先安裝它們,方法是鍵入以下內容:

<code>cd /etc/ssh
pico sshd_config</code>
登入後複製

接下來,我們需要確保客戶機附加組件映像已插入虛擬機的虛擬 CD-ROM 中。為此,請關注虛擬機的窗口,選擇 設備 -> 插入客戶機附加組件 CD 映像

How to Create and Share a Vagrant Base Box

你可以通過從列表中選擇正在運行的虛擬機並單擊 設置 -> 存儲 來驗證映像是否已插入 VirtualBox。你應該在 控制器:IDE 下看到 VBoxGuestAdditions.iso

How to Create and Share a Vagrant Base Box

接下來,我們需要掛載 CD 並運行實際的安裝 shell 腳本,方法是運行以下命令:

<code>UseDNS no</code>
登入後複製

此操作完成後,最好重新啟動虛擬機以確保新的設置生效:

<code>sudo su -</code>
登入後複製
登入後複製
登入後複製

創建基礎鏡像包

現在,我們創建了基本的虛擬機,我們需要創建實際的 Vagrant 基礎鏡像。只需在你的實際主機機器的終端(而不是你的虛擬機的命令行)中鍵入以下命令:

<code>apt-get update
apt-get upgrade</code>
登入後複製
登入後複製
登入後複製

是你在 VirtualBox 設置中指定的虛擬機的名稱。如果你不知道名稱是什麼,你可以鍵入以下命令來查找:

<code>visudo</code>
登入後複製
登入後複製
登入後複製

在我們的例子中,它被稱為 Ubuntu 14.04 x64 LTS Vagrant Base Box,它也包含空格,所以確保你像這樣用引號將其括起來:

<code>vagrant ALL=(ALL) NOPASSWD:ALL</code>
登入後複製
登入後複製
登入後複製

此過程將生成一個 package.box 文件,它是虛擬機和 Vagrant 元數據文件的存檔。

共享基礎鏡像

Vagrant 最近創建了一項名為 Vagrant Cloud 的服務,任何人都可以在其中創建和共享 Vagrant 鏡像供其他人使用。

要在 Vagrant Cloud 上共享我們的基礎鏡像,我們首先需要註冊。登錄後,你將看到下面的儀表板。單擊右上角的 創建鏡像 鏈接。

How to Create and Share a Vagrant Base Box

我們需要為我們的鏡像指定一個名稱和簡短描述。你可以在此處輸入任何內容,我為我們的鏡像添加了 ubuntu-trusty64Trusty 是 Ubuntu 14.04 LTS 的開發代號。

How to Create and Share a Vagrant Base Box

接下來,你需要為鏡像創建一個版本,讓我們為初始版本號添加 1.0.0 並單擊 創建版本

How to Create and Share a Vagrant Base Box

完成鏡像和版本的創建後,我們需要添加一個提供程序。單擊 創建新的提供程序 並鍵入 virtualbox,然後單擊 URL 按鈕並鍵入 package.box 文件所在的 URL。

注意:只有付費高級用戶才能直接將基礎鏡像上傳到 Vagrant Cloud。有關更多信息,請查看定價頁面。

添加提供程序後,單擊 立即發布 按鈕以使鏡像在 Vagrant Cloud 上可用。

本文中用作示例的 Vagrant 鏡像可在 https://www.php.cn/link/cb0d6d3459c57b7a5c968956b1ecf1e3 獲取。這是一個你可以用於開發環境的完美基礎鏡像,但請記住它並不安全,只在本地使用。

結論

你學習瞭如何創建一個 VirtualBox 虛擬機,安裝 Ubuntu 作為客戶操作系統以及如何打包此 VM 以與 Vagrant 一起使用。

最後,我們向你展示瞭如何在 Vagrant Cloud 上分發你的 Vagrant 基礎鏡像並在互聯網上公開共享它。

在本文的後續文章中,你將學習如何使用此 Vagrant 基礎鏡像來安裝你首選的軟件並使用 shell 腳本和其他配置工具的組合來設置開發環境。

創建和共享 Vagrant 基礎鏡像的常見問題解答 (FAQ)

什麼是 Vagrant 基礎鏡像,為什麼我需要它?

Vagrant 基礎鏡像本質上是一個預先打包的環境,你可以將其用作項目的起點。它包含操作系統、預安裝的軟件以及開發環境所需的配置。使用 Vagrant 基礎鏡像的主要優點是它確保了不同開發環境之間的一致性,從而減少了遇到“在我的機器上可以工作”問題的可能性。它還可以節省時間,因為你無需從頭開始手動設置所有內容。

如何創建 Vagrant 基礎鏡像?

創建 Vagrant 基礎鏡像涉及多個步驟。首先,你需要在你的機器上安裝 VirtualBox 和 Vagrant。然後,你使用 VirtualBox 創建一個新的虛擬機,安裝必要的軟件和配置,並使用 vagrant package 命令將其打包成鏡像文件。然後,可以使用此鏡像文件來初始化新的 Vagrant 環境。

如何與他人共享我的 Vagrant 基礎鏡像?

你可以通過將其上傳到 Vagrant Cloud 等鏡像託管服務來共享你的 Vagrant 基礎鏡像。上傳後,你可以與他人共享鏡像 URL,他們可以使用 vagrant box add 命令將其添加到他們的 Vagrant 環境中。

我的 Vagrant 基礎鏡像中應該包含什麼?

你的 Vagrant 基礎鏡像中包含的內容取決於你的項目需求。但是,它通常包括操作系統、必要的軟件(如 Web 服務器或數據庫服務器)以及開發環境所需的任何配置。

如何更新我的 Vagrant 基礎鏡像?

要更新你的 Vagrant 基礎鏡像,你需要對虛擬機進行必要的更改,將其重新打包成鏡像文件,然後將其上傳到鏡像託管服務。然後,你可以使用 vagrant box update 命令更新 Vagrant 環境中的鏡像。

我可以將 Vagrant 基礎鏡像用於生產環境嗎?

雖然你可以在技術上將 Vagrant 基礎鏡像用於生產環境,但不建議這樣做。 Vagrant 主要用於創建可重現的開發環境,將其用於生產可能會導致性能和安全問題。

如何排除我的 Vagrant 基礎鏡像的問題?

排除 Vagrant 基礎鏡像的問題可能包括檢查 Vagrant 和 VirtualBox 日誌、驗證鏡像文件完整性以及確保你的 Vagrant 和 VirtualBox 版本兼容。

我可以將 Vagrant 基礎鏡像與其他虛擬化軟件一起使用嗎?

是的,Vagrant 支持除 VirtualBox 之外的其他幾種虛擬化提供程序,包括 VMware、Hyper-V 和 Docker。但是,你需要確保鏡像文件與你使用的提供程序兼容。

如何優化我的 Vagrant 基礎鏡像?

優化你的 Vagrant 基礎鏡像可能包括減小鏡像文件大小、最大限度地減少預安裝軟件的數量以及使用腳本來自動化鏡像創建過程。

我可以將 Vagrant 基礎鏡像用於跨平台開發嗎?

是的,使用 Vagrant 基礎鏡像的主要優點之一是它允許跨平台開發。由於鏡像文件包含完整的開發環境,因此它可以在支持 Vagrant 和所選虛擬化提供程序的任何平台上使用。

以上是如何創建和共享流浪者的基礎框的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Java教學
1655
14
CakePHP 教程
1413
52
Laravel 教程
1306
25
PHP教程
1252
29
C# 教程
1226
24
在PHP API中說明JSON Web令牌(JWT)及其用例。 在PHP API中說明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

會話如何劫持工作,如何在PHP中減輕它? 會話如何劫持工作,如何在PHP中減輕它? Apr 06, 2025 am 12:02 AM

會話劫持可以通過以下步驟實現:1.獲取會話ID,2.使用會話ID,3.保持會話活躍。在PHP中防範會話劫持的方法包括:1.使用session_regenerate_id()函數重新生成會話ID,2.通過數據庫存儲會話數據,3.確保所有會話數據通過HTTPS傳輸。

什麼是REST API設計原理? 什麼是REST API設計原理? Apr 04, 2025 am 12:01 AM

RESTAPI設計原則包括資源定義、URI設計、HTTP方法使用、狀態碼使用、版本控制和HATEOAS。 1.資源應使用名詞表示並保持層次結構。 2.HTTP方法應符合其語義,如GET用於獲取資源。 3.狀態碼應正確使用,如404表示資源不存在。 4.版本控制可通過URI或頭部實現。 5.HATEOAS通過響應中的鏈接引導客戶端操作。

您如何在PHP中有效處理異常(嘗試,捕捉,最後,投擲)? 您如何在PHP中有效處理異常(嘗試,捕捉,最後,投擲)? Apr 05, 2025 am 12:03 AM

在PHP中,異常處理通過try,catch,finally,和throw關鍵字實現。 1)try塊包圍可能拋出異常的代碼;2)catch塊處理異常;3)finally塊確保代碼始終執行;4)throw用於手動拋出異常。這些機制幫助提升代碼的健壯性和可維護性。

PHP中的匿名類是什麼?您何時可以使用它們? PHP中的匿名類是什麼?您何時可以使用它們? Apr 04, 2025 am 12:02 AM

匿名類在PHP中的主要作用是創建一次性使用的對象。 1.匿名類允許在代碼中直接定義沒有名字的類,適用於臨時需求。 2.它們可以繼承類或實現接口,增加靈活性。 3.使用時需注意性能和代碼可讀性,避免重複定義相同的匿名類。

包括,require,incement_once,require_once之間有什麼區別? 包括,require,incement_once,require_once之間有什麼區別? Apr 05, 2025 am 12:07 AM

在PHP中,include,require,include_once,require_once的區別在於:1)include產生警告並繼續執行,2)require產生致命錯誤並停止執行,3)include_once和require_once防止重複包含。這些函數的選擇取決於文件的重要性和是否需要防止重複包含,合理使用可以提高代碼的可讀性和可維護性。

說明PHP中的不同錯誤類型(注意,警告,致命錯誤,解析錯誤)。 說明PHP中的不同錯誤類型(注意,警告,致命錯誤,解析錯誤)。 Apr 08, 2025 am 12:03 AM

PHP中有四種主要錯誤類型:1.Notice:最輕微,不會中斷程序,如訪問未定義變量;2.Warning:比Notice嚴重,不會終止程序,如包含不存在文件;3.FatalError:最嚴重,會終止程序,如調用不存在函數;4.ParseError:語法錯誤,會阻止程序執行,如忘記添加結束標籤。

PHP和Python:比較兩種流行的編程語言 PHP和Python:比較兩種流行的編程語言 Apr 14, 2025 am 12:13 AM

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

See all articles