macOS Homebrew MAMP 環境設置:Apache + PHP-FPM + MariaDB
以下是針對「macOS Homebrew MAMP 環境設置:Apache + PHP-FPM + MariaDB (Joomla 適用)」的完整心得筆記。
💻 macOS Homebrew MAMP 環境設置:Apache + PHP-FPM + MariaDB (Joomla 適用)
本文記錄了在 macOS 上使用 Homebrew 安裝並配置 Apache、PHP-FPM 和 MariaDB 環境的完整過程,特別著重於解決安裝 MariaDB 時遇到的常見錯誤與權限問題,以及串接高效能的 PHP-FPM。
🎯 必備軟體
- macOS (已安裝 Homebrew)
- 終端機 (Terminal)
Part 1: 環境檢查與 Apache/PHP 準備
- 檢查現有安裝狀態
首先,檢查系統是否已安裝 httpd (Apache)、mariadb 和 php:
brew list --versions httpd mariadb php
- 確認 Apache (httpd) 和 PHP-FPM 服務 確認 Apache 已安裝且運行,並準備啟動 PHP-FPM:
檢查服務狀態
brew services list
確保 Apache 服務已啟動
brew services start httpd
Part 2: MariaDB 安裝與資料庫設定
- 處理 MySQL 衝突 (若存在) 如果系統先前安裝過 MySQL,您會收到衝突錯誤。需要先將其解除連結並移除殘留檔案。
- 解除連結 MySQL
brew unlink mysql - 徹底移除 MySQL (若確定不再使用)
brew uninstall mysql
- 安裝 MariaDB
brew install mariadb - 啟動服務與 Socket 連結修正 (關鍵步驟) MariaDB 啟動失敗或 ERROR 2002 是常見問題,需要建立 Socket 檔案的符號連結來解決。
- 啟動 MariaDB 服務
brew services start mariadb - 建立 Socket 符號連結 (解決 ERROR 2002)
- Homebrew 將 Socket 放在其 /var 目錄,需連結到 /tmp
sudo ln -sf $(brew --prefix mariadb)/var/mysql/mysql.sock /tmp/mysql.sock- 資料庫安全配置與 Root 密碼設定 由於新版 MariaDB 預設使用 unix_socket 驗證,設定密碼需要繞過 mariadb-secure-installation 的限制。
- 以 sudo 身份登入資料庫 (利用 unix_socket 驗證)
sudo mariadb在 MariaDB [(none)]> 提示符下,設定您的 Root 密碼:
– 請將 <您的新密碼> 替換成您想設定的密碼您的新密碼>
ALTER USER 'root'@'localhost' IDENTIFIED BY '<您的新密碼>';
FLUSH PRIVILEGES;
exit
測試連線:
mariadb -u root -p
- 輸入您剛才設定的新密碼
Part 3: 配置 Apache 伺服器 (使用 PHP-FPM)
我們將採用高效能的 PHP-FPM 架構。
- 啟動 PHP-FPM 服務
brew services start php - 配置 Apache 主設定檔 (httpd.conf)
開啟 Apache 設定檔:
nano $(brew --prefix httpd)/etc/httpd/httpd.conf
A. 啟用必要的模組 (Uncomment/新增) 確保以下模組已啟用:
LoadModule proxy_module lib/httpd/modules/mod_proxy.so
LoadModule proxy_fcgi_module lib/httpd/modules/mod_proxy_fcgi.so
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
B. 變更使用者/群組 (避免權限問題) 將 Apache 的運行用戶改為您的系統用戶,避免 Joomla 在安裝或更新時遇到權限錯誤:
User peter # 替換為你的用戶名,例如:User peter
Group staff # 這是 macOS 預設用戶組
C. 設定 PHP-FPM 處理規則 在檔案末尾或其他適當位置,新增 FPM 代理規則:
# 確保 DirectoryIndex 包含 index.php
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
# 將所有 .php 檔案請求代理到 PHP-FPM 服務 (預設 Port 9000)
<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
D. 啟用 Virtual Host 配置 找到並取消註釋 (移除 #) 這一行:
Include /opt/homebrew/etc/httpd/extra/httpd-vhosts.conf
- 設定虛擬主機 (httpd-vhosts.conf) 為您的 Joomla 專案設定一個專屬的網域 (例如 joomla.local)。
nano $(brew --prefix httpd)/etc/httpd/extra/httpd-vhosts.conf
新增 Virtual Host 配置: (請替換為您的網站路徑)
<VirtualHost *:80>
DocumentRoot "/Users/peter/Sites/joomla"
ServerName joomla.local
<Directory "/Users/peter/Sites/joomla">
# 啟用 .htaccess 檔案處理 (Joomla 需求)
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
- 重啟 Apache 服務 ```bash
brew services restart httpd
## Part 4: 網域解析與最終驗證
1. 編輯 hosts 檔案
讓您的電腦知道 joomla.local 應該指向本機。
```bash
sudo nano /etc/hosts
新增以下內容:
# Homebrew Virtual Hosts
127.0.0.1 joomla.local
- 最終驗證 將 Joomla 安裝檔案解壓縮並放入您設定的 DocumentRoot (例如 /Users/peter/Sites/joomla)。
在瀏覽器中訪問:http://joomla.local。
您現在可以開始 Joomla 的安裝,並使用您設定的 MariaDB 資訊了!