一、问题背景
在 WordPress 配置界面的工具中的站点健康检查出现“缺少一个或多个推荐的模组”,以及“可选的模组exif未被安装或已被禁用”和“可选的模组imagick未被安装或已被禁用”。
二、Exif和Imagick是什么
由于我没有学过PHP,不太了解这两个模组有什么具体的功能。感兴趣的可以详细去了解一下。
Exif
https://blog.csdn.net/gitblog_00991/article/details/143556269
Imagick
https://blog.csdn.net/gitblog_00047/article/details/139057418
三、安装配置
3.1 exif
由于我的PHP是通过源码安装的,所以我在我的源码包中找到了exif的文件夹,就省去了源码下载的过程。
将模组文件夹exif/拷贝到PHP的ext目录【extend】,我的目录是
/usr/local/php/include/php/ext
# 找不到的话,可以用find命令搜索一下
find / -name "ext"
进入到exif目录,源码安装三部曲
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
其中/usr/local/php/bin/php-config
需要根据自己的环境修改,同理找不到的可以搜索一下。
三部曲执行完成后会在exif目录下的modules目录中生成exif.so文件,将它拷贝到ext目录下。
3.2 imagick
由于我的PHP源码包中没有找到imagick的包,只能从网上拉取。
wget https://pecl.php.net/get/imagick-3.7.0.tgz
源码包解压
tar -zxvf imagick-3.7.0.tgz
同样进入到imagick目录
cd imagick-3.7.0
源码安装三部曲,此时会发现./configure --with-php-config=/usr/local/php/bin/php-config
会报错:
checking ImageMagick MagickWand API configuration program...
checking Testing /usr/local/bin/MagickWand-config... Doesn't exist
checking Testing /usr/bin/MagickWand-config... Doesn't exist
checking Testing /usr/sbin/bin/MagickWand-config... Doesn't exist
checking Testing /opt/bin/MagickWand-config... Doesn't exist
checking Testing /opt/local/bin/MagickWand-config... Doesn't exist
configure: error: not found. Please provide a path to MagickWand-config or Wand-config program.
原因是PHP的模组依附于ImageMagick而生效,而服务器中并没有安装ImageMagick。故而,需要进行安装。可惜的是我的服务器使用源安装yum install -y ImageMagick-devel
并没有找到包,所以还是用源码安装的方式。
wget https://imagemagick.org/archive/ImageMagick.tar.gz
解压源码包
tar -zxvf ImageMagick.tar.gz
再次进入目录
cd ImageMagick-7.1.1-41/
源码安装三部曲
./configure
make
make install
ImageMagick安装完毕后,再回过头来,重新安装imagick,便可成功。
安装成功后同样会在imagick-3.7.0目录下的modules中生成imagick.so文件,将它拷贝到ext目录下。
3.3 配置PHP
编辑php.ini
文件,我的路径是/usr/local/php/etc/php.ini
,同理找不到的可以搜索一下。
extension_dir = "/usr/local/php/include/php/ext/"
extension=exif.so
extension=imagick.so
保存后退出文件。
重启Web服务器
nginx -s reload
验证模组是否安装成功
[root@dameng etc]# /usr/local/php/bin/php -m
[PHP Modules]
bcmath
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
imagick
...
...
此时,回到WordPress配置界面查看站点健康依旧提示两模组未安装,需要重启PHP服务
[root@dameng ~]# service php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm done
至此,再次查看站点健康便没有问题了。
问题解决。