如何建立虛擬web開發環境和伺服器

那麼,如何平衡您的多工能力和在本地環境中開發web應用程式的需要呢?輸入虛擬機器。...

在過去的幾年中,Windows和macosx作為開發人員友好的操作系統已經取得了進展,但是每個web開發人員都需要在web的原生環境Linux中工作。

virtual-web-dev-environment

本文將向您展示如何做到兩全其美:堅持使用穩定且對消費者友好的操作系統(如Windows或OSX)來滿足您的日常需求,同時收穫在與生產代碼相同的生態系統中開發的好處。

介紹

很多web都運行在開發人員稱之為“LAMP stack”的平臺上,這個縮寫詞意味著Linux、Apache、MySQL、PHP捆綁在一起,就像你通常理解的web服務器一樣工作。(一個密切相關的堆棧或一組技術是“LEMP”,其中“E”來自Apache的替代品Nginx的發音,稱為“engine x”)

您可能注意到這裡顯式地包含了Linux,但開發人員推薦Linux的原因不僅僅是這個。其他技術—Apache(或Nginx)、MySQL和PHP—都有不同的工具和實現,可用於不同的平臺,但由於歷史和技術原因,基於Linux的配置佔據了服務器空間的主導地位,而且往往更具可預測性。

007Ys3FFgy1h1onpm1ocnj3046046glg

可預測性和可靠性也是您希望在一個僅用於此目的的操作系統上開發的重要原因—一個專用的操作系統,而不是一個支持您作為web開發人員每天執行的無數任務的操作系統。換言之,您不希望在安裝新圖形驅動程序時需要重新啟動的同一操作系統上運行服務器,也不希望在需要打包放進揹包才能上路的機器上運行。一句話,在混合使用機器上運行服務器所需的進程和軟件是混亂的。

那麼,如何平衡您的多任務能力和在應用程序的本地環境中開發的需求呢?

輸入虛擬機。

虛擬機與流浪漢

虛擬機是在主操作系統中運行的程序。它們有效地允許您在一個窗口中運行一個完全獨立的操作系統,完全獨立於物理機器上發生的任何事情,但要付出一些開銷。

然而,優點有很多:

  • 安裝、配置或刪除軟件時出錯?沒什麼大不了的,你可以用一個全新的形象重新開始。
  • 你的實驗有沒有災難性的失敗並凍結了它周圍的操作系統?同樣,這不是問題,因為只有虛擬機受到影響。
  • 您需要在稍微不同的條件下迭代嗎?每一組條件,如不同的軟件版本或不同的軟件(例如,使用Apache和Nginx),都可以成為一個單獨的軟件機或虛擬“盒子”

virtual-machine-linux

一個名為Vagrant的工具將幫助您部署包含各種風格的預配置Linux操作系統的“基本盒”。

本文假設您可以在沒有GUI的情況下單獨通過命令行界面(CLI)操作虛擬機。

在配置基本框之前,讓我們先獲得一個虛擬機提供者和Vagrant。

  1. 確保您的操作系統有一個虛擬機提供程序。Windows和Mac OSX都可以使用虛擬盒。VMware也在這兩種平臺上運行。(Windows 10 Pro及更高版本可以使用Hyper V,這是一個進步,因為它更好地利用了硬件。)
  2. 訪問Vagrantup.com並選擇合適的安裝程序。
  3. 在本地目錄樹結構中,創建一個新文件夾來存放該框。(從屬於您的用戶配置文件的位置工作得很好,而系統目錄中的位置通常不工作。)

web開發環境配置

自動化的魔力就在這裡發生:一個名為PuPHPet的工具濃縮和GUI化了選擇和配置LAMP中常用軟件的過程,甚至通過添加對Ruby和GUI等服務器端語言的支持而超越了這一點節點.js(從技術上講,JavaScript並不完全是服務器端的,但這種類型是),以及燈管其他部件的替代品。

PuPHPet為Vagrant創建基本配置文件。這個嚮導包括20多個不同的維度要配置,所以我只討論一些最重要的維度。

007Ys3FFgy1h1onpnf6mkj30im07rmxf

  • 部署目標——在這裡,您可以選擇是創建適合VirtualBox、VMWare等的映像,還是創建適合AWS或Digital Ocean等雲計算基礎設施的映像。
  • System > Packages -- You can include any software here that you'd install as you would on a normal installation. In particular, you should include whichever packages you use for development that are included in the base of the OS distribution.
    • To include development dependencies for Ubuntu, specify build-essentials
    • To include the same for CentOS 7, specify "Development Tools"
  • Web服務器——選擇Apache或Nginx作為L(A | E)MP堆棧的主幹。
  • 語言——PHP,Ruby,節點.js,蟒蛇。
  • 數據庫——這種方法最吸引人的特性之一可能是能夠構造虛擬機來處理各種可用的數據庫。雖然MySQL是默認的,但您可能希望使用MariaDB之類的更新版本。
  • 其餘的選項有些異國情調,如果您不知道它們是什麼,可以稍後再安裝。畢竟,你擁有的是一個完全成熟的操作系統。

PuPHPet將在配置過程結束時生成存檔。將其解壓縮到配置新服務器參數之前創建的目錄。

現在,執行以下操作:

$ vagrant up

觀察結果:

007Ys3FFgy1h1onpoenqqj30im06tjs2

由於本地目錄中沒有基本框,vagrant將從Atlas檢索圖像,Atlas是預先配置的vagrant框的存儲庫。

(從技術上講,可以通過發出以下命令將其中任何一個添加到本地計算機:

$ vagrant box add USER/BOX

)

總結

在這一點上,你的虛擬機啟動,你基本上是在線的。只剩下一件事:發出命令

$ vagrant ssh

讓你自己進入一個合適的SSH會話,讓你的(無頭)VM充當LAMP服務器。恭喜!

瞭解更多

從這裡開始,在流浪漢中有更多的話要說,也有更多的事要做,正如你所知道的,用你自己的發展操場來完成無**的工作。請查看官方的入門指南,以瞭解我所說的內容。

您是否曾經在自己的開發環境中使用過虛擬機?你是使用這個設置還是採取了不同的方法?在下面的評論部分分享你的想法!

  • 發表於 2021-03-15 21:34
  • 閱讀 ( 48 )
  • 分類:程式設計

你可能感興趣的文章

安卓工作室(android studio)和日食(eclipse)的區別

...要優點是可以用來開發JavaEnterpriseEdition(JEE)應用程式。伺服器檢視允許在web開發中控制伺服器。另一個特點是透檢視。可用的透檢視取決於安裝。預設透檢視是Java,但可以將其更改為另一個透檢視,如Debug。 Eclipse系統地安排...

  • 發佈於 2020-10-19 18:41
  • 閲讀 ( 42 )

菲律賓比索(php)和.net版(.net)的區別

...情況改變頁面內容。PHP和.NET的主要區別在於,PHP是一種伺服器端指令碼語言,.NET是Microsoft構建的主要在Windows上執行的軟體框架。軟體框架提供了構建和部署應用程式的標準方法。 目錄 1. 概述和主要區別 2. 什麼是PHP 3. 什麼是.N...

  • 發佈於 2020-10-19 23:44
  • 閲讀 ( 47 )

mono是什麼?它如何幫助windows切換到linux?

...與LastPass不同的是,為了方便起見,您的資訊不會繫結到伺服器。但這可能是一個值得付出的代價,更高水平的控制在你手中。 ...

  • 發佈於 2021-03-12 18:14
  • 閲讀 ( 50 )

如何使用cloud9在虛擬伺服器上免費安裝wordpress

建立一個本地的WordPress伺服器並執行起來是非常複雜的。如果您是經驗豐富的開發人員,那麼使用XAMPP或WAMP設定本地伺服器是有意義的。但是如果你是一個初學者,只想搞亂一個自託管的WordPress安裝(這與wordpress.com網站),看看...

  • 發佈於 2021-03-14 04:53
  • 閲讀 ( 50 )

如何為您的網站建立登入保護區

... 今天我將向您展示如何使用您的web伺服器對您的網站進行密碼保護。 ...

  • 發佈於 2021-03-14 14:27
  • 閲讀 ( 54 )

如何選擇正確的web程式語言

...pt在流行程度上超過了PHP和Java。諸如此類的節點.js,一個伺服器端JavaScript環境,使用JS作為主幹。 Java——不要混淆JavaScript和Java。Java是程式設計社群中長期存在的主流。因為它已經存在了20多年,有一個龐大的專...

  • 發佈於 2021-03-16 01:36
  • 閲讀 ( 63 )

9個最好的程式碼遊戲,以建立你的程式設計技能

...個*****,你可以在那裡玩自己,加上30天的完全訪問官方伺服器。之後,你可以在官方伺服器上以有限的容量繼續播放,每月訂閱即可取消。 ...

  • 發佈於 2021-03-17 21:19
  • 閲讀 ( 40 )

前端與後端web開發:哪條路適合您?

... 後端開發是為了構建網站和web應用程式的伺服器端而編寫的程式碼。後端開發人員建立了一種將資訊儲存在伺服器上並將資訊載入到web應用程式的技術。 ...

  • 發佈於 2021-03-18 15:23
  • 閲讀 ( 43 )

使用microsoft visual studio online在瀏覽器中開始編碼

...。因為它是開源軟體,所以沒有什麼可以阻止您為自己的伺服器構建一個版本。如果這看起來是太多的工作,像Coder和StackBlitz這樣的網站都是VS-Code的瀏覽器版本。 ...

  • 發佈於 2021-03-20 14:11
  • 閲讀 ( 50 )

學習c#程式設計的7個實際原因

...何平臺上執行。現在,您可以開發ASP.NETmacOS或Linux上任何伺服器的核心MVC(Model View Controller)網站。 ...

  • 發佈於 2021-03-21 18:41
  • 閲讀 ( 62 )