❗️ 若電腦已採用 Docker 容器化環境,可不用安裝 PHP 服務。 若沒有使用 Docker,而是本地安裝,請先安裝 Apache。
事先安裝
- imagick:
brew install imagemagick - redis:
brew install redis
安裝各版本的 PHP
請依需求安裝指定版本,以目前(2023-07-25)來說安裝 7.3 即可;初次安裝會有點久,請保持網路暢通並耐心等待 🤪。以下以 7.3 為範例,需要其他版本請自行更改版本數字。
以 7.3 版本為例
- 安裝,方法兩種擇一:
- 快速(一行):
brew install shivammathur/php/php@7.3 && echo "\n# PHP 7.3\nexport PATH=\"\$PATH:$(brew --prefix)/opt/php@7.3/bin\"\nexport PATH=\"\$PATH:$(brew --prefix)/opt/php@7.3/sbin\"" >> ~/.zshrc && source ~/.zshrc && echo "\n# PHP 7.3\nLoadModule php7_module $(brew --prefix)/opt/php@7.3/lib/httpd/modules/libphp7.so" >> $(brew --prefix)/etc/httpd/httpd.conf - 分步:
- 安裝:
brew install shivammathur/php/php@7.3 - CLI 新增指令:
echo "\n# PHP 7.3\nexport PATH=\"\$PATH:$(brew --prefix)/opt/php@7.3/bin\"\nexport PATH=\"\$PATH:$(brew --prefix)/opt/php@7.3/sbin\"" >> ~/.zshrc - 重新載入終端機設定:
source ~/.zshrc - Apache 加入 Module:
echo "\n# PHP 7.3\nLoadModule php7_module $(brew --prefix)/opt/php@7.3/lib/httpd/modules/libphp7.so" >> $(brew --prefix)/etc/httpd/httpd.conf
- 安裝:
- 快速(一行):
- 安裝 imagick
- 執行
pecl install imagick,中間出現 Please provide the prefix of Imagemagick installation [autodetect] 直接按 enter - 若失敗出現 configure: error: Please reinstall the pkg-config distribution,則執行
brew reinstall pkg-config後再執行pecl install imagick - 要檢查是否成功,檢查該版本的 php.ini
- 執行
- 安裝 redis
- 執行
pecl install redis,中間出現 enable igbinary serializer support? [no] :、enable lzf compression support? [no] : 與 enable zstd compression support? [no] :,都直接按 enter - 若失敗出現 configure: error: Please reinstall the pkg-config distribution,則執行
brew reinstall pkg-config後再執行pecl install redis - 要檢查是否成功,檢查該版本的 php.ini
- 執行
設定 Apache 讀取執行 PHP
用 Sublime Text 編輯 httpd.conf:subl $(brew --prefix)/etc/httpd/httpd.conf,修改 DirectoryIndex 內容:
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>然後在 後再加入以下內容:
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>CLI 指令切換版本
如果安裝了多種版本,要在指令下切換 PHP 版本,可參考以下步驟:
-
用 Sublime Text 編輯 .zshrc:
subl ~/.zshrc -
將不使用的版本隱藏,以下為使用 PHP 7.3 的範例樣式:
# PHP 5.6 # export PATH="$PATH:/opt/homebrew/opt/php@5.6/bin" # export PATH="$PATH:/opt/homebrew/opt/php@5.6/sbin" # PHP 7.0 # export PATH="$PATH:/opt/homebrew/opt/php@7.0/bin" # export PATH="$PATH:/opt/homebrew/opt/php@7.0/sbin" # PHP 7.1 # export PATH="$PATH:/opt/homebrew/opt/php@7.1/bin" # export PATH="$PATH:/opt/homebrew/opt/php@7.1/sbin" # PHP 7.2 # export PATH="$PATH:/opt/homebrew/opt/php@7.2/bin" # export PATH="$PATH:/opt/homebrew/opt/php@7.2/sbin" # PHP 7.3 export PATH="$PATH:/opt/homebrew/opt/php@7.3/bin" export PATH="$PATH:/opt/homebrew/opt/php@7.3/sbin" # PHP 7.4 # export PATH="$PATH:/opt/homebrew/opt/php@7.4/bin" # export PATH="$PATH:/opt/homebrew/opt/php@7.4/sbin" # PHP 8.0 # export PATH="$PATH:/opt/homebrew/opt/php@8.0/bin" # export PATH="$PATH:/opt/homebrew/opt/php@8.0/sbin" -
儲存後執行:
source ~/.zshrc
Apache 設定
如果安裝了多種版本,要讓 Apache 執行不同的 PHP 版本,可參考以下步驟:
-
用 Sublime Text 編輯 httpd.conf:
subl $(brew --prefix)/etc/httpd/httpd.conf -
將不使用的版本隱藏,以下為使用 PHP 7.3 的範例樣式:
# PHP 5.6 # LoadModule php5_module /opt/homebrew/opt/php@5.6/lib/httpd/modules/libphp5.so # PHP 7.0 # LoadModule php7_module /opt/homebrew/opt/php@7.0/lib/httpd/modules/libphp7.so # PHP 7.1 # LoadModule php7_module /opt/homebrew/opt/php@7.1/lib/httpd/modules/libphp7.so # PHP 7.2 # LoadModule php7_module /opt/homebrew/opt/php@7.2/lib/httpd/modules/libphp7.so # PHP 7.3 LoadModule php7_module /opt/homebrew/opt/php@7.3/lib/httpd/modules/libphp7.so # PHP 7.4 # LoadModule php7_module /opt/homebrew/opt/php@7.4/lib/httpd/modules/libphp7.so # PHP 8.0 # LoadModule php8_module /opt/homebrew/opt/php@8.0/lib/httpd/modules/libphp8.so -
儲存後重啟 Apache:
brew services restart httpd
安裝 Composer 套件管理
- 快速(一行):
cd /tmp && php -r "readfile('https://getcomposer.org/installer');" > composer-setup.php && php composer-setup.php && php -r "unlink('composer-setup.php');" && mv composer.phar ~/bin/composer && composer -v - 分步:
cd /tmpphp -r "readfile('https://getcomposer.org/installer');" > composer-setup.phpphp composer-setup.phpphp -r "unlink('composer-setup.php');"mv composer.phar ~/bin/composer- 檢查是否安裝成功,重新開啟終端機後執行:
composer -v
安裝 Deployer 部署器
- 快速(一行):
cd /tmp && curl -LO https://deployer.org/deployer.phar && mv deployer.phar ~/bin/dep && chmod +x ~/bin/dep && dep -v - 分步:
cd /tmpcurl -LO https://deployer.org/deployer.pharmv deployer.phar ~/bin/depchmod +x ~/bin/dep- 檢查是否安裝成功,重新開啟終端機後執行:
dep -v
重點整理
- .ini 檔案位置(以 PHP 7.3 為例):
$(brew --prefix)/etc/php/7.3/php.ini - CLI 切換版本:用 Sublime Text 編輯 .zshrc(
subl ~/.zshrc),把要執行的版本註解拿掉、其他版本註解掉,儲存後執行source ~/.zshrc - Apache 更換版本:用 Sublime Text 編輯 httpd.conf(
subl $(brew --prefix)/etc/httpd/httpd.conf),把要執行的版本註解拿掉、其他版本註解掉,儲存後重啟 Apache(brew services restart httpd)
相關參考
- macOS 13.0 Ventura Apache Setup: Multiple PHP Versions | Grav CMS - https://getgrav.org/blog/macos-ventura-apache-multiple-php-versions
- macOS 11.0 Big Sur Apache Setup: Multiple PHP Versions | Grav CMS - https://getgrav.org/blog/macos-bigsur-apache-multiple-php-versions
- Youtube 影音教學版 - https://www.youtube.com/watch?v=AV_6pXd-Crk