1 分鐘閱讀

以下是針對「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 準備

  1. 檢查現有安裝狀態

首先,檢查系統是否已安裝 httpd (Apache)、mariadbphp

brew list --versions httpd mariadb php
  1. 確認 Apache (httpd) 和 PHP-FPM 服務 確認 Apache 已安裝且運行,並準備啟動 PHP-FPM:

檢查服務狀態

brew services list

確保 Apache 服務已啟動

brew services start httpd

Part 2: MariaDB 安裝與資料庫設定

  1. 處理 MySQL 衝突 (若存在) 如果系統先前安裝過 MySQL,您會收到衝突錯誤。需要先將其解除連結並移除殘留檔案。
  • 解除連結 MySQL
    brew unlink mysql
    
  • 徹底移除 MySQL (若確定不再使用)
    brew uninstall mysql
    
  1. 安裝 MariaDB
    brew install mariadb
    
  2. 啟動服務與 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
    
    1. 資料庫安全配置與 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 架構。

  1. 啟動 PHP-FPM 服務
    brew services start php
    
  2. 配置 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
  1. 設定虛擬主機 (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>

  1. 重啟 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
  1. 最終驗證 將 Joomla 安裝檔案解壓縮並放入您設定的 DocumentRoot (例如 /Users/peter/Sites/joomla)。

在瀏覽器中訪問:http://joomla.local。

您現在可以開始 Joomla 的安裝,並使用您設定的 MariaDB 資訊了!

更新時間: