蘋果環境

PHP

本機 PHP 環境

❗️ 若電腦已採用 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 編輯 .zshrcsubl ~/.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.confsubl $(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 /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

安裝 Deployer 部署器

  • 快速(一行):cd /tmp && curl -LO https://deployer.org/deployer.phar && mv deployer.phar ~/bin/dep && chmod +x ~/bin/dep && dep -v
  • 分步:
    • cd /tmp
    • curl -LO https://deployer.org/deployer.phar
    • mv deployer.phar ~/bin/dep
    • chmod +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

相關參考