Laravel Homestead:便捷的本地開發環境
想快速上手Homestead?請查看快速提示。想了解其詳情,請繼續閱讀。
簡單來說,Laravel Homestead 是:
一個官方預打包的Vagrant “box”,它為你提供了一個絕佳的開發環境,無需在本地機器上安裝PHP、Web服務器及任何其他服務器軟件。
換句話說,它自動完成了我們在之前的文章中(例如這些文章)手動通過Vagrant和PuPHPet完成的操作。
那麼,它與普通的Vaprobash/Vagrant/PuPHPet設置有何不同呢?讓我們來看看。
關鍵要點
- Laravel Homestead是一個預打包的Vagrant box,它提供了一個強大的開發環境,無需手動安裝PHP、Web服務器和其他服務器軟件。
- Homestead由Laravel的創建者Taylor Otwell官方開發,以其高質量、可靠性和簡易性而聞名,是PHP開發人員的首選。
- Homestead的設置簡單快捷,開發人員可以很快開始他們的項目。它還默認打開重要的端口,簡化了從主機管理和維護虛擬機上的數據庫和其他已安裝軟件的過程。
- Homestead的官方地位確保了一個龐大的社區提供幫助和故障排除。它還使添加新站點或虛擬主機變得容易,允許多個項目在一個box中運行。但是,它確實缺少一些功能,例如全局composer安裝、默認虛擬主機中的默認Laravel以及HHVM支持。
1. 它能工作
與其他流行的簡化Vagrantfile設置的解決方案不同,Homestead很少啟動失敗,如果失敗,也能在幾分鐘內修復。如果你處理過GUI Vagrant解決方案,你可能已經註意到,在第一次vagrant up之後,讓一切運行起來是多麼罕見。總是會出現一些問題,例如過時的或更新過多的Puppet、過時的Ubuntu存儲庫或其他一些神秘的錯誤,需要大量的“論壇搜索”才能解決。 Homestead則簡單地……工作。
Homestead安裝在帶有PHP 5.5的Ubuntu 14.04上,所以它盡可能新,不會進入beta/RC領域,Nginx(因為我們現在都放棄Apache了,對吧?)、MySQL和Postgres,所以你可以立即準備好Heroku(它們的默認是Heroku Postgres)、Node(用於所有靜態資源編譯需求、後台任務和其他不太重要的業務)、Redis、Memcached和Beanstalkd(用於所有緩存和排隊需求)、 Laravel Envoy(用於所有遠程服務器任務需求)以及Fabric Hipchat擴展,以便你可以通過Hipchat進行應用程序部署(也稱為chatops)。
2. 它是Otwell認可的
Homestead是官方的,也就是由Laravel之父Taylor Otwell製作的,這意味著它自動被認為符合某些標準。雖然Laravel社區並非沒有爭議(誰在乎一個類叫什麼?如果一個革命性的新框架稱一個模型為土豆、外觀或火箭,只要土豆/外觀/火箭能工作,那就完全沒問題),但Taylor參與其中的獨特性賦予了它在當今PHP世界中非常需要的簡潔性和質量。我們已經看到太多開源項目被團隊自負、狂熱的貢獻者或不稱職的全能者所毀壞,我個人認為Taylor幾乎獨家參與Laravel的改進是使其在其他項目中脫穎而出並真正使其在質量上與Phalcon競爭的原因。
Homestead是他自己的項目,被稱為“官方本地開發環境”,他會盡一切努力保持其高質量並確保其始終有效。任何不足之處,都會影響他的聲譽。在今天的PHP中,一個項目長期可靠性的最佳保證莫過於它(主要)由一個非常關心質量的人擁有。
3. 設置快速
設置Homestead易如反掌。按照文檔頁面上的說明,你只需要將Homestead box添加到你的Vagrant(如果你還沒有的話)並克隆repo。
還有一個我們不習慣的額外步驟——設置SSH。這也很簡單,需要在克隆repo後編輯你的Homestead.yaml文件。只需將相關行指向你的SSH密鑰,就可以了。在我的例子中,我必須更改以下內容:
<code>--- ip: "192.168.10.10" memory: 2048 cpus: 1 authorize: /Users/me/.ssh/id_rsa.pub keys: - /Users/me/.ssh/id_rsa folders: - map: /Users/me/Code to: /home/vagrant/Code sites: - map: homestead.app to: /home/vagrant/Code/Laravel/public variables: - key: APP_ENV value: local</code>
到
<code>--- ip: "192.168.10.10" memory: 2048 cpus: 1 authorize: C:\Users\Bruno\.ssh\id_rsa.pub keys: - C:\Users\Bruno\.ssh\id_rsa folders: - map: D:\VM\vagrant_boxes\homestead\Homestead to: /home/vagrant/Code sites: - map: homestead.app to: /home/vagrant/Code/Laravel/public variables: - key: APP_ENV value: local</code>
在我們運行vagrant up之後,一切應該就緒:
正如你所看到的,我的過程產生了一些錯誤,但最終仍然運行良好:
4. 端口
Homestead默認打開某些重要端口,這使得從主機管理和維護虛擬機上的數據庫和其他已安裝軟件變得輕而易舉。例如,要使用安裝在主機(在我的情況下是Windows)上的MySQL Workbench連接到已安裝的MySQL數據庫,你只需將所需的憑據輸入到連接窗口中:
默認的MySQL和Postgres端口只是附加了一個零(例如,MySQL為33060而不是3306),這允許你連接到localhost(127.0.0.1:33060)並授予對虛擬機上數據庫的訪問權限。
這樣做的潛在缺點是,由於衝突,你不能同時運行多個box而無需更改端口。如果數據庫連接只是打開的,並且可以像往常一樣連接到虛擬機的IP,那就更好了,但這很容易解決——只需查看我之前的一些vagrantfiles即可了解其外觀。
5. 最佳實踐和共同點
由於Homestead是官方的,你可以放心,如果你遇到任何問題,隨時都會有一個龐大的社區提供幫助。你將與所有使用Homestead的人擁有相同的起點,問題將自動變得更容易診斷。
6. 易於添加站點
由於可以在微調Homestead時調整配置文件的簡易性,添加新站點(虛擬主機)輕而易舉——你甚至不必處理nginx文件中的單個虛擬主機配置。
默認情況下,Homestead.yaml文件註冊一個名為“homestead.app”的單個虛擬主機,該虛擬主機作為虛擬機服務器配置的默認站點。你可以通過在瀏覽器中訪問虛擬機的IP地址(常規端口80:https://www.php.cn/link/173e2619a507a324eb10f969df13a372:
<code>--- ip: "192.168.10.10" memory: 2048 cpus: 1 authorize: /Users/me/.ssh/id_rsa.pub keys: - /Users/me/.ssh/id_rsa folders: - map: /Users/me/Code to: /home/vagrant/Code sites: - map: homestead.app to: /home/vagrant/Code/Laravel/public variables: - key: APP_ENV value: local</code>
你註冊了一個新的虛擬主機。然後,如果你將該新站點的名稱添加到你的hosts文件中(在任何平台上),你就可以通過瀏覽器按名稱訪問該新站點,你只需要通過端口8000進行訪問:https ://www.php.cn/link/e1490523b8cd2c130b29656613850cf8。
此過程允許你根據需要向虛擬機添加任意數量的虛擬主機,從而從單個box提供多個項目的服務。
缺少的功能
在一些缺少的功能中,我會列出以下內容:
- Homestead缺少全局composer安裝,這意味著你必須為每個項目手動獲取它。
- 上述端口問題——如果端口只是打開的,那麼連接到虛擬機的IP而不是通過特定端口連接到localhost IP會更好。這將避免端口衝突,並允許同時運行多個Homestead虛擬機。
- 沒有Laravel。 Homestead最好在默認虛擬主機中默認包含基本的Laravel項目,以便可以立即開始開發,而無需從頭創建一個新項目。
- HHVM支持會很不錯,符合Vaprobash的精神。
結論
Laravel Homestead是迄今為止最好和最穩定的PHP Vagrant環境之一。它啟動速度極快,包含很少的依賴項,這些依賴項在運行時可能會中斷,並為立即開始進行黑客攻擊配置了一個現代的、最新的PHP環境。
你正在使用它嗎?請告訴我們。
Laravel Homestead常見問題解答 (FAQs)
什麼是Laravel Homestead,為什麼我應該使用它?
Laravel Homestead是一個預打包的Vagrant box,它提供了一個絕佳的開發環境,無需在本地機器上安裝PHP、Web服務器及任何其他服務器軟件。它非常有益,因為它在多個操作系統上提供了始終如一的開發環境。這意味著所有團隊成員都可以使用相同的環境,無論他們使用的是Mac、Windows還是Linux。
如何安裝Laravel Homestead?
要安裝Laravel Homestead,你首先需要安裝VirtualBox 6.x、VMWare、Parallels或Hyper-V作為提供程序。然後,安裝Vagrant。安裝完成後,你可以使用命令“vagrant box add laravel/homestead”將Laravel Homestead box添加到你的Vagrant安裝中。最後,你可以通過將存儲庫克隆到你的主機來安裝Homestead。
Laravel Homestead的系統要求是什麼?
Laravel Homestead需要Vagrant和一個虛擬機管理程序,如VirtualBox、VMWare或Parallels。它還需要至少1GB的RAM,但如果可能,建議分配2GB或更多。主機應具有64位處理器和足夠的磁盤空間來存儲你的項目文件和數據庫。
如何配置Laravel Homestead?
Laravel Homestead通過Homestead.yaml文件進行配置。此文件允許你將項目目錄映射到Homestead環境,配置共享文件夾並設置Nginx站點。你還可以在此文件中指定PHP版本、數據庫類型和其他設置。
如何更新Laravel Homestead?
要更新Laravel Homestead,可以使用“vagrant box update”命令。這會將Vagrant box更新到最新版本。但是,請記住在更新之前備份你的Homestead.yaml文件和其他任何重要數據,因為更新過程可能會覆蓋這些文件。
我可以將Laravel Homestead與其他PHP框架一起使用嗎?
是的,Laravel Homestead不僅限於Laravel項目。你可以將其與任何可以在PHP 7.4或PHP 8.0服務器上運行的PHP項目一起使用。這包括Symfony、CakePHP、Yii等框架。
如何排除Laravel Homestead中的問題?
Laravel Homestead提供了多種故障排除工具。你可以使用帶有“–debug”標誌的“vagrant up”命令來獲取詳細日誌。你還可以SSH進入Homestead box並檢查Nginx、PHP和MySQL日誌中的任何錯誤。
如何連接到Laravel Homestead中的數據庫?
Laravel Homestead預裝了MySQL、Postgres、SQLite和Memcached。你可以使用Homestead文檔中提供的默認憑據連接到這些數據庫。你還可以使用Sequel Pro或MySQL Workbench等工具連接到這些數據庫。
我可以在Laravel Homestead中運行多個項目嗎?
是的,Laravel Homestead支持運行多個項目。你可以在Homestead.yaml文件中映射多個項目目錄,並為每個項目配置單獨的Nginx站點。每個項目都有其自己的URL,並且可以獨立訪問。
如何卸載Laravel Homestead?
要卸載Laravel Homestead,可以使用“vagrant destroy”命令。這會將Homestead box及其所有數據從你的機器中刪除。但是,請記住在運行此命令之前備份任何重要數據,因為它會刪除你所有的項目文件和數據庫。
以上是搬到Laravel Homestead的6個理由的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Laravel使用其直觀的閃存方法簡化了處理臨時會話數據。這非常適合在您的應用程序中顯示簡短的消息,警報或通知。 默認情況下,數據僅針對後續請求: $請求 -

PHP客戶端URL(curl)擴展是開發人員的強大工具,可以與遠程服務器和REST API無縫交互。通過利用Libcurl(備受尊敬的多協議文件傳輸庫),PHP curl促進了有效的執行

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显著减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

您是否想為客戶最緊迫的問題提供實時的即時解決方案? 實時聊天使您可以與客戶進行實時對話,並立即解決他們的問題。它允許您為您的自定義提供更快的服務

Laravel的服務容器和服務提供商是其架構的基礎。 本文探討了服務容器,詳細信息服務提供商創建,註冊,並通過示例演示了實際用法。 我們將從OVE開始

文章討論了PHP 5.3中介紹的PHP中的晚期靜態結合(LSB),允許靜態方法的運行時間分辨率調用以更靈活的繼承。 LSB的實用應用和潛在的觸摸

PHP日誌記錄對於監視和調試Web應用程序以及捕獲關鍵事件,錯誤和運行時行為至關重要。它為系統性能提供了寶貴的見解,有助於識別問題並支持更快的故障排除


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

WebStorm Mac版
好用的JavaScript開發工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能