目錄
關鍵要點
1. 它能工作
2. 它是Otwell認可的
3. 設置快速
4. 端口
5. 最佳實踐和共同點
6. 易於添加站點
缺少的功能
結論
Laravel Homestead常見問題解答 (FAQs)
什麼是Laravel Homestead,為什麼我應該使用它?
如何安裝Laravel Homestead?
Laravel Homestead的系統要求是什麼?
如何配置Laravel Homestead?
如何更新Laravel Homestead?
我可以將Laravel Homestead與其他PHP框架一起使用嗎?
如何排除Laravel Homestead中的問題?
如何連接到Laravel Homestead中的數據庫?
我可以在Laravel Homestead中運行多個項目嗎?
如何卸載Laravel Homestead?
首頁 後端開發 php教程 搬到Laravel Homestead的6個理由

搬到Laravel Homestead的6個理由

Feb 21, 2025 am 10:36 AM

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。

6 Reasons to Move to Laravel Homestead

還有一個我們不習慣的額外步驟——設置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之後,一切應該就緒:

6 Reasons to Move to Laravel Homestead

正如你所看到的,我的過程產生了一些錯誤,但最終仍然運行良好:

6 Reasons to Move to Laravel Homestead

4. 端口

Homestead默認打開某些重要端口,這使得從主機管理和維護虛擬機上的數據庫和其他已安裝軟件變得輕而易舉。例如,要使用安裝在主機(在我的情況下是Windows)上的MySQL Workbench連接到已安裝的MySQL數據庫,你只需將所需的憑據輸入到連接窗口中:

6 Reasons to Move to Laravel Homestead

默認的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中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡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教學
1657
14
CakePHP 教程
1415
52
Laravel 教程
1309
25
PHP教程
1257
29
C# 教程
1229
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傳輸。

您如何在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 08, 2025 am 12:03 AM

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

包括,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和Python:比較兩種流行的編程語言 PHP和Python:比較兩種流行的編程語言 Apr 14, 2025 am 12:13 AM

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

PHP:網絡開發的關鍵語言 PHP:網絡開發的關鍵語言 Apr 13, 2025 am 12:08 AM

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

什麼是HTTP請求方法(獲取,發布,放置,刪除等),何時應該使用? 什麼是HTTP請求方法(獲取,發布,放置,刪除等),何時應該使用? Apr 09, 2025 am 12:09 AM

HTTP請求方法包括GET、POST、PUT和DELETE,分別用於獲取、提交、更新和刪除資源。 1.GET方法用於獲取資源,適用於讀取操作。 2.POST方法用於提交數據,常用於創建新資源。 3.PUT方法用於更新資源,適用於完整更新。 4.DELETE方法用於刪除資源,適用於刪除操作。

See all articles