2025-03-10

使用 homebrew 安裝 apache2 和 php 環境

使用 homebrew 安裝 apache2 和 php 環境

XAMPP 的 mac 版本現在都比較老舊,而且在 macOS 15 有無法啟動 apache 的問題。 為了教學需求,在此記錄 mac 的 php 環境的建立方式。假設 homebrew 的環境已經安裝完成。 如果要使用 ubuntu vm 可以參考上一篇 https://qops.blogspot.com/2025/03/orbstack-ubuntu-224-php-56-apache2.html 的作法。

安裝 apache2

# 先查看是否已安裝 brew info apache2 # 前幾行若出現 Not installed 表示沒有安裝,後面也有設定的說明
# 安裝 brew install apache2 # 安裝後,注意預先的設定 # -- DocumentRoot is /opt/homebrew/var/www # -- 主設定檔位置 /opt/homebrew/etc/httpd/httpd.conf # -- ssl 設定檔位置 /opt/homebrew/etc/httpd/extra/httpd-ssl.conf # -- 預設的 ports 為 8080 和 8443 # 啟動服務 brew services start httpd # 在瀏覽器上查看 http://localhost:8080 # 重新啟動服務 brew services restart httpd # 停止服務 brew services stop httpd

安裝 php

這裡是以 php 8.3 的版本為例說明,當然你可以自行決定要安裝的版本。

# 先查看要安裝的版本資訊 brew info php@8.3 # 安裝 brew install php@8.3
# 在 apache 的設定檔,放入下式 LoadModule php_module /opt/homebrew/opt/php@8.3/lib/httpd/modules/libphp.so <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch> # 設定索引檔 DirectoryIndex index.php index.html

PHP 的設定檔位於 /opt/homebrew/etc/php/8.3/ 裡面。

# 若要使用 php 指令,可以將下兩行放入用戶設定檔 (.zshrc) 裡 export PATH="/opt/homebrew/opt/php@8.3/bin:$PATH" export PATH="/opt/homebrew/opt/php@8.3/sbin:$PATH"

在根目錄 /opt/homebrew/var/www 寫一支 phpinfo() 檔測試看看。

mysql 8.0

# 先查看要安裝的版本資訊 brew info mysql@8.0 # 安裝 brew install mysql@8.0 # 啟動服務 brew services start mysql@8.0

2025-03-03

OrbStack 安裝 Ubuntu 22.4, php 5.6 及 apache2

OrbStack 安裝 Ubuntu 22.4, php 5.6 及 apache2

某個專案還在老舊的 php 5.6 環境,macOS 15 Sequoia 目前已無法正常執行 XAMPP。在不小心升級 macOS 後,測試 php 5.6 程式是讓人困擾的問題。

原本想要使用 OrbStack 的 docker containers 功能,然而 container 需要不少設定,反而是一種麻煩的做法。後來還是以 VM 的方式來處理。OrbStack 的安裝就不贅述。

安裝 ubuntu vm

# *** 安裝 ubuntu vm *** # orb create --help # orb create [flags] DISTRO[:VERSION] [MACHINE_NAME] orb create ubuntu:jammy # 預設的 machine name 為 ubuntu
# *** 從 mac ssh 連線 vm *** # ssh [用戶名]@[虛擬主機名]@orb ssh root@ubuntu@orb
# *** 使用 vm 的 domain *** # ping [虛擬主機名].orb.local ping ubuntu.orb.local # mac host 的 ip 可以直接使用區域網路 ip

在 vm 中可以透過 /mnt/mac 路徑找到 mac 的對應檔案。

安裝 php 5.6

以 ssh 登入 vm 後,依下列步驟安裝 php 5.6

# *** 1. 更新系統 repo 資料 apt update # *** 2. 安裝 software-properties-common 以管理 PPA (Personal Package Archives) apt install software-properties-common # *** 3. php 5.6 已經不是官方維護的版本,需依賴 PPA add-apt-repository ppa:ondrej/php # *** 4. 再更新系統 repo 資料一次 apt update # *** 5. 安裝 php 5.6 apt install php5.6 # *** 6. 安裝 php 常用套件 apt install php5.6-mysql php5.6-curl php5.6-json php5.6-cgi php5.6-xml php5.6-mbstring php5.6-gd # *** 7. 確認 php 版本 php -v # *** 8. 啟用 apache2 模組 # 在安裝 apache2 之後才可以執行 # a2dismod php8.3 # 若有需要先關閉新模組 a2enmod php5.6

安裝 apache2

apt install apache2
# 啟用 rewrite module a2enmod rewrite
# /etc/apache2/mods-enabled 裡啟用的模組參考 access_compat.load -> ../mods-available/access_compat.load alias.conf -> ../mods-available/alias.conf alias.load -> ../mods-available/alias.load auth_basic.load -> ../mods-available/auth_basic.load authn_core.load -> ../mods-available/authn_core.load authn_file.load -> ../mods-available/authn_file.load authz_core.load -> ../mods-available/authz_core.load authz_host.load -> ../mods-available/authz_host.load authz_user.load -> ../mods-available/authz_user.load autoindex.conf -> ../mods-available/autoindex.conf autoindex.load -> ../mods-available/autoindex.load cache.load -> ../mods-available/cache.load cache_disk.conf -> ../mods-available/cache_disk.conf cache_disk.load -> ../mods-available/cache_disk.load deflate.conf -> ../mods-available/deflate.conf deflate.load -> ../mods-available/deflate.load dir.conf -> ../mods-available/dir.conf dir.load -> ../mods-available/dir.load env.load -> ../mods-available/env.load expires.load -> ../mods-available/expires.load file_cache.load -> ../mods-available/file_cache.load filter.load -> ../mods-available/filter.load headers.load -> ../mods-available/headers.load mime.conf -> ../mods-available/mime.conf mime.load -> ../mods-available/mime.load mpm_prefork.conf -> ../mods-available/mpm_prefork.conf mpm_prefork.load -> ../mods-available/mpm_prefork.load negotiation.conf -> ../mods-available/negotiation.conf negotiation.load -> ../mods-available/negotiation.load php5.6.conf -> ../mods-available/php5.6.conf php5.6.load -> ../mods-available/php5.6.load reqtimeout.conf -> ../mods-available/reqtimeout.conf reqtimeout.load -> ../mods-available/reqtimeout.load rewrite.load -> ../mods-available/rewrite.load setenvif.conf -> ../mods-available/setenvif.conf setenvif.load -> ../mods-available/setenvif.load socache_shmcb.load -> ../mods-available/socache_shmcb.load ssl.conf -> ../mods-available/ssl.conf ssl.load -> ../mods-available/ssl.load status.conf -> ../mods-available/status.conf status.load -> ../mods-available/status.load

安裝 Mariadb 10

# *** 1. 更新套件資訊 apt update # *** 2. 查看可以安裝的子版本 apt-cache policy mariadb-server # *** 3. 安裝 apt install mariadb-server
# 以 mysql client 使用 root 登入 mysql -uroot # 變更 root 密碼 ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密碼'; # 建立管理用戶給 phpmyadmin 使用 CREATE USER 'pmauser'@'localhost' IDENTIFIED BY 'pmauser'; GRANT ALL PRIVILEGES ON *.* TO 'pmauser'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES; # 查看使用者 SELECT User, Host FROM mysql.user;

FB 留言