我正在尝试在 Oracle Linux 8 上安装以下库,但没有成功。在 Debian 11 上安装 php8.1-fpm 后,我运行以下命令,它成功了。
安装 php8.1-mysql php8.1-gd php8.1-mbstring php8.1-xml php8.1-zip php8.1-curl php8.1-imagick php8.1-soap
在 Oracle Linux 上,我尝试了以下方法,但没有成功。安装的 PHP FPM 版本是 7.2.24
sudo yum install php-mysql
sudo yum install php7.2-mysql
sudo yum install php7.2.24-mysql
所有这些命令都失败了Error: Unable to find a match:
如何安装这些库?
答案1
更改 PHP 版本
首先,补充一点:PHP 7.2 已过时,您至少应使用 PHP 7.4,但最好使用 8.0。如果您不想升级,请跳过此部分。
您可以使用以下命令更改(即将)安装的 PHP 版本(您可以使用 查询可用的版本dnf module list php
):
dnf module enable php:8.0
然而,这仅在没有安装任何包的情况下才有效,因此如果您安装了任何 PHP 包(在这种情况下上述命令将会出现错误),您应该发出以下命令:
dnf module reset php
dnf install @php:8.0
dnf distro-sync
安装 PHP 包
使用php-mysqlnd
代替php-mysql
,并php-pecl-zip
使用 代替php-zip
。cURL 扩展位于 中php-common
,因此您无需为此安装任何额外的软件包。除 ImageMagick 扩展外,其余的应该存在。为了完整起见,以下是您应该安装的内容:
dnf install php php-common php-mysqlnd php-pecl-zip php-gd \
php-mbstring php-xml php-soap
安装 ImageMagick 扩展有点棘手。以下是您应该做的事情。
安装该oracle-epel-release-el8
包。它包含您需要的 ImageMagick 包。
dnf install oracle-epel-release-el8
安装 ImageMagick 和必要的开发包:
dnf install ImageMagick ImageMagick-devel php-devel php-pear make
然后使用pecl
安装imagick
扩展:
pecl install imagick
只需接受默认的 (“autodetect”) 作为前缀。完成后,将扩展添加到 PHP 配置中:
echo "extension=imagick.so" > /etc/php.d/99-imagick.ini
就完成了。 的输出php -m
现在应该包含imagick
。 您需要重新启动 Web 服务器,以便它能够获取更改后的 PHP 库。
请注意,在此之后,升级 PHP 将需要禁用imagick
扩展,并在升级后重新编译并重新启用它。不过,这很可能只会在更改主要版本时才会成为问题。