卸载 PHP 正在使用的 Imagick 版本
Uninstall Imagick Version that PHP is using
我通过 apt-get install
安装了 Imagick。然而,它安装的版本是旧的 (6.9.7),并且没有内置我需要的所有委托。
所以我想我使用 apt-get remove --purge imagemagick
卸载了它并从源代码重新安装了它。
目前 identify -version
给我刚安装的正确版本 (6.9.12) 但是 php -r "print_r(Imagick::getVersion());"
仍然显示 v 6.9.7。
facepalm
.-'---`-.
,' `.
| \
| \
\ _ \
,\ _ ,'-,/-)\
( * \ \,' ,' ,'-)
`._,) -',-')
\/ ''/
) / /
/ ,'-'
我的问题是
- 为什么?
- 如何删除旧版本?
- 如何更新 php 的路径以使用较新版本?
ImageMagick 分为几个包,php-imagick
扩展包和前置 imagemagick
包都使用 libmagick*
包提供的库。
如果您已经安装了 ImageMagick 的编译版本,最简单的方法是删除 imagick
的打包版本,然后编译 imagick
扩展,配置它使用您新编译的 ImageMagick 版本。
根据说明 here,您可以执行以下操作:
sudo apt-get purge -y php-imagick
git clone https://github.com/Imagick/imagick.git
pushd imagick
phpize
./configure --with-imagick=${IMAGEMAGICK_PREFIX_DIR}
make
sudo cp modules/imagick.so ${PHP_EXTENSION_DIR}
echo extension=imagick.so | sudo tee ${PHP_CONFIGURATION_FILE_PATH}/conf.d/30-imagick.ini
其中:
IMAGEMAGICK_PREFIX_DIR
是您安装 ImageMagick 的前缀(这样 MagickWand-config
可以在 ${IMAGEMAGICK_PREFIX_DIR}/bin/MagickWand-config
处找到)。
PHP_EXTENSION_DIR
是 PHP 查找其扩展的目录,可以通过 php -i | grep extension_dir
找到。这看起来像 /usr/lib/php/20190902
.
PHP_CONFIGURATION_FILE_PATH
是特定 SAPI 配置的基本目录,可以通过 php -i | grep 'Configuration File (php.ini) Path'
(对于 cli
SAPI)或 Configuration File (php.ini) Path
下列出的值找到在通过网络服务器的 phpinfo()
输出中。这看起来像 /etc/php/7.4/${SAPI}
,其中 SAPI 是 cli
,或 apache2
,等等
我通过 apt-get install
安装了 Imagick。然而,它安装的版本是旧的 (6.9.7),并且没有内置我需要的所有委托。
所以我想我使用 apt-get remove --purge imagemagick
卸载了它并从源代码重新安装了它。
目前 identify -version
给我刚安装的正确版本 (6.9.12) 但是 php -r "print_r(Imagick::getVersion());"
仍然显示 v 6.9.7。
facepalm
.-'---`-.
,' `.
| \
| \
\ _ \
,\ _ ,'-,/-)\
( * \ \,' ,' ,'-)
`._,) -',-')
\/ ''/
) / /
/ ,'-'
我的问题是
- 为什么?
- 如何删除旧版本?
- 如何更新 php 的路径以使用较新版本?
ImageMagick 分为几个包,php-imagick
扩展包和前置 imagemagick
包都使用 libmagick*
包提供的库。
如果您已经安装了 ImageMagick 的编译版本,最简单的方法是删除 imagick
的打包版本,然后编译 imagick
扩展,配置它使用您新编译的 ImageMagick 版本。
根据说明 here,您可以执行以下操作:
sudo apt-get purge -y php-imagick
git clone https://github.com/Imagick/imagick.git
pushd imagick
phpize
./configure --with-imagick=${IMAGEMAGICK_PREFIX_DIR}
make
sudo cp modules/imagick.so ${PHP_EXTENSION_DIR}
echo extension=imagick.so | sudo tee ${PHP_CONFIGURATION_FILE_PATH}/conf.d/30-imagick.ini
其中:
IMAGEMAGICK_PREFIX_DIR
是您安装 ImageMagick 的前缀(这样MagickWand-config
可以在${IMAGEMAGICK_PREFIX_DIR}/bin/MagickWand-config
处找到)。PHP_EXTENSION_DIR
是 PHP 查找其扩展的目录,可以通过php -i | grep extension_dir
找到。这看起来像/usr/lib/php/20190902
.PHP_CONFIGURATION_FILE_PATH
是特定 SAPI 配置的基本目录,可以通过php -i | grep 'Configuration File (php.ini) Path'
(对于cli
SAPI)或Configuration File (php.ini) Path
下列出的值找到在通过网络服务器的phpinfo()
输出中。这看起来像/etc/php/7.4/${SAPI}
,其中 SAPI 是cli
,或apache2
,等等