Mac Server Apache2(httpd) Mac 內建就有 Apache2 ,因此不用使用 brew 再裝一次 可以先用檢查所有設定檔的位置 sudo apachectl -V Server version: Apache/2.4.58 (Unix) Server built: Apr 13 2024 11:53:17 Server's Module Magic Number: 20120211:129 Server loaded: APR 1.5.2, APR-UTIL 1.5.4, PCRE 8.44 2020-02-12 Compiled using: APR 1.5.2, APR-UTIL 1.5.4, PCRE 8.44 2020-02-12 Architecture: 64-bit Server MPM: prefork threaded: no forked: yes (variable process count) Server compiled with.... -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) -D APR_USE_FLOCK_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D DYNAMIC_MODULE_LIMIT=256 -D HTTPD_ROOT="/usr" -D SUEXEC_BIN="/usr/bin/suexec" -D DEFAULT_PIDLOG="/private/var/run/httpd.pid" -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_ERRORLOG="logs/error_log" -D AP_TYPES_CONFIG_FILE="/private/etc/apache2/mime.types" -D SERVER_CONFIG_FILE="/private/etc/apache2/httpd.conf" 接著要編輯 /private/etc/apache2/httpd.conf 由於我是要用 proxy 及 ssl 相關的module,至少要打開下列這幾個 LoadModule rewrite_module libexec/apache2/mod_rewrite.so LoadModule ssl_module libexec/apache2/mod_ssl.so LoadModule proxy_module libexec/apache2/mod_proxy.so LoadModule proxy_http_module libexec/apache2/mod_proxy_http.so 啟用 vhosts sudo vi /private/etc/apache2/extra/httpd-vhosts.conf 原本預設值可刪掉  VirtualHost ,不然會跑失敗 由於我用docker架了一個WordPress使用8080 port,因此就這樣寫 ServerName mac.mysite.com ProxyPreserveHost On ProxyPass / http://127.0.0.1:8080/ ProxyPassReverse / http://127.0.0.1:8080/ ErrorLog "/opt/homebrew/var/log/mac.mysite.com-error_log" CustomLog "/opt/homebrew/var/log/mac.mysite.com-access_log" common 接著再使用 certbot 裝 ssl brew install certbot brew install python@3.11 pip install certbot-apache sudo certbot --apache -d mac.mysite.com 成功的話就會看到 httpd-vhosts.conf 支援 ssl了 ServerName mac.mysite.com ProxyPreserveHost On ProxyPass / http://127.0.0.1:8080/ ProxyPassReverse / http://127.0.0.1:8080/ ErrorLog "/opt/homebrew/var/log/mac.mysite.com-error_log" CustomLog "/opt/homebrew/var/log/mac.mysite.com-access_log" common RewriteEngine on RewriteCond %{SERVER_NAME} =mac.mysite.com RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] 使用 https ://mac.mysite.com 即可進入網站 Docker 在建置時可以使用設定 port 再搭配 proxy 及設定 dns ,即可架設多個站玩多種服務 檢查設定檔 sudo apachectl configtest 重新啟動 sudo apachectl restart 我在設定時由於用brew裝了nginx及apache,導致80 port有問題 sudo lsof -i :80 檢查 80 port 有什麼佔住再陸續刪掉