Apple 於 2021 年 10 月 25 日發布了 2021 年最新的 macOS 12 Monterey。今年又到了,如果您從 macOS 11 Big Sur 或更舊版本升級,您可能需要重新配置 macOS。
或者,如果您有一台裝有 macOS 12 Monterey 的全新 Mac,以下配置步驟應該可以幫助您在 macOS 平台上設置本地 Web 服務器。
在 macOS 12 Monterey 上,系統內置了 Apache。但是,當您查看 Apache 內置的 httpd.conf 時,您會注意到有一行說:
#PHP was deprecated in macOS 11 and removed from macOS 12
從 macOS 12 Monterey 開始,由於沒有內置 PHP,如果您想設置 MAMP(macOS、Apache、MySQL、PHP)堆棧,我建議使用 Apache 的 Homebrew 版本以及 PHP。
禁用 macOS 內置 Apache
由於我們不會使用 macOS 12 內置版本的 Apache,如果您的內置 Apache 正在運行,請發出以下命令來停止 Apache 服務。
打開終端Terminal
並輸入:
sudo apachectl stop
安裝Homebrew
您需要做的第一件事是將 Homebrew 安裝到您的 macOS 12 Monterey 系統(如果您還沒有安裝 Homebrew)。
檢查您是否安裝了 Homebrew 或知道安裝的 Homebrew 版本
打開Terminal
並輸入brew -v
Homebrew 3.3.0
Homebrew/homebrew-core(git 修訂版 359f9f16171;最后一次提交 2021-10-25)
這意味着您已經安裝了 Homebrew。如果您沒有看到以上內容,請按照以下步驟在您的系統中安裝 Homebrew。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
打開Terminal
並粘貼上面的命令。
注意:如果您沒有安裝 Xcode 的命令行工具,Homebrew 安裝程序將首先下載並安裝 Xcode 的命令行工具,然后它將繼續完成 Homebrew 到您的系統的安裝。
導出環境路徑
當您嘗試發出 brew 命令時,您可能會收到以下錯誤。
zsh: command not found: brew
如果出現上述錯誤,則必須通過發出以下命令來導出路徑。
export PATH="/opt/homebrew/bin:$PATH"
打開Terminal
並鍵入以下命令,然后按 Enter。
echo 'export PATH="/opt/homebrew/bin:$PATH"' >> $HOME/.zshrc
然后鍵入以下命令並按 Enter。
關閉Terminal
並重新打開一個新Terminal
窗口。
通過 Homebrew 安裝 Apache
安裝 Homebrew 並正確設置導出后,下一步是使用 Homebrew 安裝 Apache。
打開 Terminal
輸入 brew install httpd
配置 Homebrew 版本的 Apache(httpd.conf 文件)
打開 Terminal
輸入 cd /opt/homebrew/etc/httpd/
鍵入 sudo cp httpd.conf httpd.conf.bak
並按 Enter(如果您想保留原始配置文件的副本,則此步驟是可選的。)
輸入 sudo nano httpd.conf,進行編輯
啟用模塊和配置
您需要啟用(取消注釋該行)並修改/更新httpd.conf
文件中的配置。
要啟用模塊,首先,您需要找到要啟用的模塊。
用於調control + w
出搜索功能,查找以下模塊並確保取消注釋。(刪除#
每行前面的。)
LoadModule authn_core_module lib/httpd/modules/mod_authn_core.so LoadModule authz_host_module lib/httpd/modules/mod_authz_host.so LoadModule userdir_module lib/httpd/modules/mod_userdir.so LoadModule include_module lib/httpd/modules/mod_include.so LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so Include /opt/homebrew/etc/httpd/extra/httpd-userdir.conf
修改 DocumentRoot
使用control + w
並搜索DocumentRoot
. 注釋掉(放在#
下面每一行的前面。
DocumentRoot "/Users/mymac/work/" <Directory "/Users/mymac/work/"> # # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.4/mod/core.html#options # for more information. # Options Indexes FollowSymLinks Multiviews MultiviewsMatch Any # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # AllowOverride FileInfo AuthConfig Limit # AllowOverride All # # Controls who can get stuff from this server. # Require all granted </Directory>ed
修改監聽端口
默認情況下,它將偵聽 port 8080
。如果要監聽端口80
,修改Listen 8080
為Listen 80
.
使用Control + w
並搜索Listen 8080
然后替換為Listen 80
在您的用戶名下創建站點文件夾
由於我們將 DocumentRoot 定義為/Users/mymac/work/
。我們需要Sites
在用戶“ developer
”下創建這個“ ”文件夾。
打開Finder
並導航到用戶的文件夾。
創建新文件夾並將其命名為“ work
”
通過 Homebrew 安裝 PHP
打開 Terminal
輸入 brew install PHP
等待安裝完成。
修改 httpd.conf 以在 Apache 上啟用 PHP
打開終端
輸入 cd /opt/homebrew/etc/httpd/
輸入 sudo nano httpd.conf 編輯
添加以下幾行。
LoadModule php7_module /usr/local/Cellar/php@7.1/7.1.33_4/lib/httpd/modules/libphp7.so
# 注意這里要根據你具體的php路徑,如果是7.x 中間php7_module,如果是8.x,則php_module,后面也是libphp.so <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>
使用Control + w
並搜索DirectoryIndex
,然后添加index.php
創建 phpinfo.php 文件
phpinfo.php 文件將用於檢查 PHP 是否正常工作。
打開 Terminal
輸入 cd ~/work
類型 sudo nano phpinfo.php
打開 nano 應用程序后,添加以下行。
<?php phpinfo(); ?>
然后按control + o
保存然后control + x
退出nano應用程序。
啟動Apache服務器
完成Apache和PHP的配置后,讓我們啟動Apache服務器。
打開 Terminal
輸入 brew services restart httpd
要檢查 Apache 服務是否正在運行,請鍵入 brew services list
你應該看到類似的東西:
httpd 啟動開發人員 /Users/developer/Library/LaunchAgents/homebrew.mxcl.httpd.plist
// 注:如果php顯示none,則表示php沒開啟,開啟方法:brew services restart php@7.1 根據自己的版本號調整,關閉stop、重啟restart
如果您看到“已啟動”狀態,則表示 Apache 服務器已啟動並正在運行。