如何在 macOS 12 Monterey 上設定 MAMP本地伺服器
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
修改監聽埠
預設情況下,它將偵聽 port8080
。如果要監聽埠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/[email protected]/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 [email protected] 根據自己的版本號調整,關閉stop、重啟restart
如果您看到“已啟動”狀態,則表示 Apache 伺服器已啟動並正在執行。