编程

使用 Homebrew 在 MacOS 上安装/升级 PHP 8.3

1663 2023-11-23 17:59:00

PHP 8.3 具有一些新特性,如类型化类常量、DateTime 扩展中的细粒度异常、新的 json_validate 函数、特性修改和改进以及弃用,是2023年 PHP 的主要更新。本文介绍了如何使用 Homebrew 在 macOS 上安装或升级到 PHP 8.3。

快速开始

在 macOS 终端中,使用 Homebrew 运行如下命令可以快速安装 PHP 8.3。必须先安装 Homebrew。

详细步骤,请跳到详细安装/更新向导。

# Add the PHP and PHP Extension taps
brew tap shivammathur/php
brew tap shivammathur/extensions

# Install PHP 8.3
brew install shivammathur/php/php@8.3

# Link PHP 8.3 CLI executable as `php`
brew link --overwrite --force shivammathur/php/php@8.3

# Test installation
php -v

在 macOS 上安装 PHP 8.3 的详细安装/升级向导

1. 前置要求

请确保安装了 Homebrew。这个向导队 macOS Monterey、Ventura 和 Sonoma 上进行了测试。

如本文其余部分所示,安装 PHP8.3 需要 Homebrew 以及由 Shivam Mathur 维护的两个 Homebrew taps

2. 列出并记录现有的 PHP 包

当升级现有的 PHP 版本时,以下命令列出所有 Brew 包,过滤它们中与 PHP 相关的单词,并将它们保存到 packages.txt 文件中。这个文件稍后可以派上用场,为 PHP8.3 安装同一组 PHP 包。

在新系统上安装 PHP 时,不需要执行此步骤。

brew list --full-name | grep -E "php|shivammathur/extensions" | tee packages.txt

3. 将新 Tap 添加到 Homebrew

brew tap shivammathur/php
brew tap shivammathur/extensions

4. 安装 PHP 8.3

brew install shivammathur/php/php@8.3
brew link --force --overwrite shivammathur/php/php@8.3

这安装了多个 PHP 核心扩展。如果不重新编译 PHP,就不可能自定义包含的扩展列表。

5. 额外的 PHP 扩展

shivammathur/extensions tap 包含几个准备安装的 PECL 扩展

# Install xdebug for PHP 8.3
brew install shivammathur/extensions/xdebug@8.3

请在此处查看可用扩展的完整列表。为了方便起见,下面列出了一些最流行的 PECL 扩展:

ExtensionName
Xdebugshivammathur/extensions/xdebug@8.3
APCushivammathur/extensions/apcu@8.3
IMAPshivammathur/extensions/imap@8.3
PCOVshivammathur/extensions/pcov@8.3
Redisshivammathur/extensions/redis@8.3
Swooleshivammathur/extensions/swoole@8.3
YAMLshivammathur/extensions/yaml@8.3

6. Web 服务器集成

如果 PHP 集成了 web 服务器,请重启/重载 web 服务器,以重载新的 PHP FPM 版本的更新。

  • Apache: brew services restart httpd
  • Nginx: brew services restart nginx
  • Caddy: caddy reload

7. 测试 PHP 8.3 安装

在终端中运行 php -v 应该会显示如下内容:

                                          调用 `php -v` 显示 PHP 版本号及创建日期

8. 迁移配置

这一步只适用于从老版本 PHP 中升级到 PHP 8.3

PHP 8.3 的配置文件位于/opt/homebrew/etc/php/8.目录。已存在的 PHP 安装应该也在/opt/homebrew/etc/php 目录。

不要将现有的 PHP INI 文件复制到 /opt/homebrew/etc/php/8.3。相反,比较两个相应的 PHP INI 文件,只有在必要时才更新 PHP 8.3 变体。

请参阅 PHP 8.3 中的新增和更改内容,以查看弃用的 INI 指令和在 PHP 8.3 中添加的新 INI 指令。当从 PHP 8.2 或者最新版本上升级时,它可能不会生效。建议手动复制 INI 指令。

参阅 PHP 8.3 中的新增和更改内容,以查看弃用的 INI 指令和在 PHP 8.3 中添加的新 INI 指令。

9. 删除老版本 PHP

这一步只适用于从老版本 PHP 中升级到 PHP 8.3

要删除旧版 PHP,请运行brew uninstall 加 PHP 包名及版本名。

使用 Brew 核心包安装 PHP

brew uninstall php@8.2

shivammathur/php tap 安装PHP

brew uninstall shivammathur/php/php@8.1