第1部分:macOS 10.15 Catalina Web開發環境
在macOS上開發Web應用程序真是令人高興。有許多設置開發環境的選項,包括廣受歡迎的MAMP Pro,它在Apache,PHP和MySQL之上提供了一個不錯的UI 。但是,有時MAMP Pro的速度變慢或版本過舊,或者由於配置模板和非標准構建的限制性系統而表現不佳。
在這樣的時代,人們經常尋找一種替代方法,幸運的是有一種替代方法,並且設置起來相對簡單。
在此博客文章中,我們將引導您完成設置和配置Apache 2.4和多個PHP版本的過程。在這個兩篇文章系列的第二篇博客文章中,我們將介紹MySQL,Apache虛擬主機,APC緩存和Xdebug安裝。
[ 2019年10月8日更新]已更新以反映macOS 10.15 Catalina的發布[2019年1月10日
更新]已更新以從外部小桶添加回PHP 5.6和PHP 7.0
[2018年12月12日更新]已更新以反映最新版本的PHP 7.3,以及從Brew中刪除的PHP 7.0。
如果您過去一直Homebrew/php
輕按本指南,並希望升級到新Homebrew/core
方法,則應該首先按照我們的新升級Homebrew清理當前安裝。
本指南適用於經驗豐富的Web開發人員。如果您是新手開發人員,則使用MAMP或MAMP Pro會更好。
XCode命令行工具
如果尚未安裝XCode,則最好先安裝命令行工具,因為這些將由自制軟件使用:
自制安裝
此過程在很大程度上依賴於名為Homebrew的macOS軟件包管理器。使用該brew
命令可以輕松地向Mac添加強大的功能,但是首先我們必須安裝它。這是一個簡單的過程,但是您需要啟動Terminal(/Applications/Utilities/Terminal
)應用程序,然后輸入:
只需按照終端提示操作,然后在需要的地方輸入密碼即可。這可能需要幾分鍾,但是完成后,一種快速的方法來確保已brew
正確安裝,只需鍵入:
您可能還應該運行以下命令,以確保所有配置均正確:
它會指導您是否需要更正任何內容。
Catalina必需的庫
在Catalina上全新安裝時,在遇到以下所有步驟時,我遇到了一些缺少的庫。為了使事情變得容易,請立即運行以下命令:
Apache安裝
最新的macOS 10.15 Catalina預先安裝了Apache 2.4,但是,將此版本與Homebrew一起使用不再是一項簡單的任務,因為Apple已在此發行版中刪除了一些必需的腳本。但是,解決方案是通過Homebrew安裝Apache 2.4,然后將其配置為在標准端口(80/443)上運行。
如果您已經在運行內置的Apache,則需要先將其關閉,並刪除所有自動加載腳本。只需按順序運行所有這些命令,實際上並沒有什么害處-即使是全新安裝:
現在,我們需要安裝Brew提供的新版本:
如果沒有選項,則無需從源代碼構建httpd,因此可以快速安裝。完成后,您應該會看到以下消息:
現在我們只需要配置一些東西,以便新的Apache服務器自動啟動
現在,您已經安裝了Homebrew的Apache,並將其配置為使用特權帳戶自動啟動。它應該已經在運行,因此您可以嘗試通過將其指向來在瀏覽器中訪問服務器http://localhost:8080
,您應該會看到一個簡單的標頭,上面寫着“有效!”。。
故障排除技巧
如果收到消息,表明瀏覽器無法連接到服務器,請首先檢查以確保服務器已啟動。
如果Apache已啟動並正在運行,則應該看到一些httpd進程。
嘗試使用以下命令重新啟動Apache:
您可以在重新啟動期間在新的“終端”選項卡/窗口中查看Apache錯誤日志,以查看是否有任何無效或引起問題的內容:
Apache是通過apachectl
命令控制的,因此可以使用一些有用的命令:
這-k
將立即強制重啟,而不是在apache准備好並准備好時禮貌地要求重啟
Visual Studio程式碼
在過去的指南中,我總是提供使用TextEdit
預安裝的默認應用程序來編輯文件的說明。但是,這並不是我用的自己,因為它是一個糟糕的編輯器,在測試我的Catalina指南時,我一直遇到編碼,查找行號等問題。更好的解決方案是簡單地安裝一個更好的編輯器。因此,請安裝功能強大且功能強大的100%免費Visual Studio Code。它可在Mac,Windows和Linux上使用,但現在我們只關心mac版本。
轉到Visual Studio Code網站,然后單擊“ Mac下載”
下載后,將應用程序拖到您喜歡的“應用程序”位置。接下來,您要安裝命令行工具,因此請按照官方的逐步說明進行操作,以便可以code
從終端使用命令。
Apache配置
現在我們有了一個可以正常使用的Web服務器,我們要做的就是進行一些配置更改,以便它可以更好地用作本地開發服務器。
在最新版本的Brew中,您必須手動將監聽端口從默認值設置8080
為80
,因此我們將需要編輯Apache的配置文件。
如果按照上面的說明進行操作,則應該可以使用Visual Studio Code通過code
Terminal命令編輯文件。但是,如果你想使用默認的 文本編輯應用程序進行編輯,您可以使用open -e
命令后面的文件路徑。
找到那行說
並將其更改為80
:
接下來,我們將其配置為使用來更改Apache 的文檔根目錄。這是Apache用來提供文件的文件夾。默認情況下,文檔根目錄配置為/usr/local/var/www
。由於這是一台開發機器,因此假設我們要更改文檔根目錄以指向我們自己的主目錄中的文件夾。
搜索術語DocumentRoot
,您應該看到以下行:
更改它以指向您的用戶目錄,其中your_user
是用戶帳戶的名稱:
您還需要<Directory>
在DocumentRoot行下方更改標記引用。這也應該更改為指向您的新文檔根目錄:
我們刪除了目錄路徑周圍的可選引號,因為TextEdit可能會嘗試將其轉換為智能引號,並在您嘗試重新啟動Apache時導致語法錯誤。即使您在引號周圍進行編輯並將其保留在原處,保存文檔也可能導致其轉換並導致錯誤。
在同<Directory>
一塊中,您將找到一個AllowOverride
設置,應按以下步驟進行更改:
另外,我們現在應該啟用默認情況下已注釋掉的mod_rewrite。mod_rewrite.so
通過刪除前導來搜索和取消注釋該行#
:
用戶和組
現在,我們將Apache配置指向Sites
了主目錄中的文件夾。但是,仍然存在一個問題。默認情況下,apache以user daemon
和group的身份運行daemon
。嘗試訪問主目錄中的文件時,這將導致權限問題。在httpd.conf
文件的大約三分之一處,有兩個設置可以設置User
和Group
Apache將在其下運行。更改以下內容以將您的用戶帳戶(your_user
用您的真實用戶名替換)與一組staff
:
服務器名稱
Apache喜歡在配置中使用服務器名稱,但是默認情況下此服務器處於禁用狀態,因此請搜索:
並替換為:
網站文件夾
現在,您需要Sites
在主目錄的根目錄中創建一個文件夾。您可以在終端或Finder中執行此操作。在這個新Sites
文件夾中創建一個簡單的文件夾,index.html
並在其中放置一些虛擬內容,例如:<h1>My User Web Root</h1>
。
重新啟動apache以確保您的配置更改已生效:
如果在重新啟動Apache時收到錯誤消息,請嘗試刪除我們之前設置的DocumentRoot和Directory名稱周圍的引號。
將您的瀏覽器指向http://localhost
應該顯示新消息。如果您有工作,我們可以繼續!
PHP安裝
如果您已經通過Brew安裝了PHP,則需要先使用我們的“ 升級自制程序”指南清理設置,然后再繼續進行本節。
直到2018年3月,所有與PHP相關的Brew都由Homebrew/php
tab 處理,但已棄用,因此現在我們使用Homebrew/core
軟件包中提供的功能。這應該得到更好的維護,但是不那么完整。
這兩個PHP 5.6和PHP 7.0已被棄用,從啤酒刪除,因為他們是在支持,雖然它不建議在生產,有正當理由在開發環境中測試這些不受支持的版本。
請記住,Brew官方僅支持PHP 7.1至7.3,因此,如果您要安裝PHP 5.6或PHP 7.0,則需要添加以下代碼:
我們將通過安裝各種版本的PHP並根據需要使用簡單的腳本在它們之間進行切換來繼續。隨意排除您不想安裝的任何版本。
第一個將花費一些時間,因為它必須安裝大量的brew依賴項。后續的PHP版本將安裝得更快。
unlink
在安裝PHP版本之間,您不再需要每個版本,因為默認情況下它們未鏈接
另外,您可能需要根據需要調整PHP的配置設置。常見的更改是內存設置或date.timezone
配置。php.ini
每個版本的PHP 的文件位於以下目錄中:
現在讓我們切換回第一個PHP版本:
此時,我強烈建議您關閉所有終端選項卡和窗口。這將意味着打開一個新的終端以繼續下一步。強烈建議這樣做,因為現有終端可能會出現一些非常奇怪的路徑問題(相信我,我已經看到了!)。
快速測試我們的版本是否正確:
Apache PHP安裝-第1部分
您已經成功安裝了PHP版本,但是我們需要告訴Apache使用它們。您將再次需要編輯/usr/local/etc/httpd/httpd.conf
文件滾動到LoadModule
條目的底部。
如果您正確地遵循了本指南,則最后一個條目應該是您的mod_rewrite
模塊:
在此下方添加以下libphp
模塊:
我們一次只能有一個模塊處理PHP,因此,到目前為止,php@5.6
在其他所有注釋都被注釋掉的同時,我們 不對條目進行注釋。這將告訴Apache使用PHP 5.6處理PHP請求。(我們將在以后添加切換PHP版本的功能)。
另外,您必須顯式設置PHP的目錄索引,因此搜索此塊:
並替換為:
保存文件並停止Apache,然后再次啟動,現在我們已經安裝了PHP:
驗證PHP安裝
測試PHP是否已按預期安裝和運行的最佳方法是利用phpinfo()。這不是您想留在生產機器上的東西,但在開發環境中卻無價之寶。
只需使用此單線info.php
在您Sites/
先前創建的文件夾中創建一個名為的文件。
將瀏覽器指向http://localhost/info.php
,您應該會看到一個閃亮的PHP信息頁面:
如果您看到類似的phpinfo結果,那么恭喜!現在,您已經成功運行了Apache和PHP。您可以通過注釋LoadModule ... php@5.6 ...
條目並取消注釋其他版本的注釋來測試其他PHP版本。然后,只需重新啟動apache並重新加載同一頁面即可。
PHP切換器腳本
我們將Apache硬編碼為使用PHP 5.6,但我們確實希望能夠在版本之間進行切換。幸運的是,一些勤奮的人已經為我們完成了艱苦的工作,並編寫了一個非常方便的PHP切換器小腳本。
我們將sphp
腳本安裝到brew的標准中/usr/local/bin
:
檢查你的路徑
在安裝過程中,Homebrew應該已將其首選/usr/local/bin
和添加/usr/local/sbin
到您的路徑中。通過鍵入以下內容進行快速測試:
如果看不到,則可能需要手動將其添加到路徑中。根據您的外殼使用的,您可能需要加入這一行~/.profile
,~/.bash_profile
或~/.zshrc
。我們將假定您使用的是默認的bash shell,因此請將此行添加到.profile
用戶目錄根目錄下的文件中(如果不存在,請創建該文件):
測試PHP切換
完成這些步驟之后,您應該能夠通過使用以下命令切換sphp
PHP版本:PHP版本:
您可能必須輸入管理員密碼,它應該給您一些反饋:
通過再次將瀏覽器指向,測試Apache是否正在運行PHP 7.1 http://localhost/info.php
。運氣好的話,您應該會看到以下內容:
更新PHP和其他Brew軟件包
Brew使更新PHP和您安裝的其他軟件包非常容易。第一步是更新 Brew,以獲取可用更新的列表:
這將吐出可用更新列表以及所有已刪除的公式。要升級軟件包,只需鍵入:
您將需要切換到每個已安裝的PHP版本,然后再次運行update以獲取每個PHP版本的更新,並確保您正在運行所需的PHP版本。
激活特定/最新的PHP版本
由於我們的PHP連接設置的方式,PHP的只有一個版本是掛在一個時間,只有當前活躍的 PHP版本將更新到最新版本。您可以通過鍵入以下內容查看當前的活動版本:
您可以通過鍵入以下命令查看PHP軟件包的特定版本:
好的,到此結束了這3部分系列的第1部分。現在,您已經具有功能齊全的Apache 2.4安裝,並且可以通過快速簡便的方法在PHP 5.6、7.0、7.1、7.2和7.3之間進行切換。查閱第2部分,了解如何使用MySQL,虛擬主機,APC緩存,YAML和Xdebug設置環境。還可以參考第3部分,了解如何為Apache虛擬主機設置SSL。