ImageMagicとワードプレスを結びつけます。
ワードプレスで、推奨モジュールの警告
↑ 1つ以上の推奨モジュールが存在しません
PHP モジュールはサイトの稼働に必要なほとんどのタスクをサーバー上で実行します。変更はサーバー管理者が実施する必要があります。 WordPress ホスティングチームでは、こうした推奨されていたり必須とされていたりするモジュールのリストをチームのハンドブック (新しいタブで開く)でメンテナンスしています。 警告 オプションのモジュール exif がインストールされていないか、無効化されています。 警告 オプションのモジュール imagick がインストールされていないか、無効化されています。
↑ という警告が出ています。
ImageMagick インストール
ImageMagickの最新版をダウンロードして、ソースからインストールをしてきます
# wget https://download.imagemagick.org/ImageMagick/download/ImageMagick.tar.gz # tar xzvf ImageMagick.tar.gz # cd ImageMagick-7.0.11-10/ # ./configure --with-modules ------------------------------------------------------------- checking for libzip >= 1.0.0... no ------------------------------------------------------------- checking for zlib >= 1.0.0... yes ------------------------------------------------------------- checking for libzstd >= 1.0.0... no ------------------------------------------------------------- checking for libltdl... checking ltdl.h usability... no checking ltdl.h presence... no checking for ltdl.h... no checking for lt_dlinit in -lltdl... no checking if libltdl package is complete... no configure: error: in `/root/ImageMagick-7.0.11-10': configure: error: libltdl is required for modules and OpenCL builds See `config.log' for more details
↑ OpenCLのライブラリ関係のエラーになりました。
# yum install libtool-ltdl-devel
↑ ライブラリをインストールします。
# ./configure --with-modules (略) configure: ============================================================================== ImageMagick 7.0.11-10 is configured as follows. Please verify that this configuration matches your expectations. Host system type: x86_64-pc-linux-gnu Build system type: x86_64-pc-linux-gnu (略)
↑ configureが通りました。
# make (略) CXX Magick++/lib/libMagick___7_Q16HDRI_la-Thread.lo CXX Magick++/lib/libMagick___7_Q16HDRI_la-TypeMetric.lo CXXLD Magick++/lib/libMagick++-7.Q16HDRI.la cp -f MagickCore/ImageMagick.pc MagickCore/ImageMagick-7.Q16HDRI.pc cp -f MagickCore/MagickCore.pc MagickCore/MagickCore-7.Q16HDRI.pc cp -f MagickWand/MagickWand.pc MagickWand/MagickWand-7.Q16HDRI.pc cp -f Magick++/lib/Magick++.pc Magick++/lib/Magick++-7.Q16HDRI.pc make[1]: Leaving directory `/root/ImageMagick-7.0.11-10'
# make install (略) ---------------------------------------------------------------------- Libraries have been installed in: /usr/local/lib/ImageMagick-7.0.11/modules-Q16HDRI/filters If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the '-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the 'LD_RUN_PATH' environment variable during linking - use the '-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to '/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- /usr/bin/mkdir -p '/usr/local/include/ImageMagick-7/Magick++' /usr/bin/install -c -m 644 Magick++/lib/Magick++/Blob.h Magick++/lib/Magick++/CoderInfo.h Magick++/lib/Magick++/Color.h Magick++/lib/Magick++/Drawable.h Magick++/lib/Magick++/Exception.h Magick++/lib/Magick++/Functions.h Magick++/lib/Magick++/Geometry.h Magick++/lib/Magick++/Image.h Magick++/lib/Magick++/Include.h Magick++/lib/Magick++/Montage.h Magick++/lib/Magick++/Pixels.h Magick++/lib/Magick++/ResourceLimits.h Magick++/lib/Magick++/SecurityPolicy.h Magick++/lib/Magick++/Statistic.h Magick++/lib/Magick++/STL.h Magick++/lib/Magick++/TypeMetric.h '/usr/local/include/ImageMagick-7/Magick++' /usr/bin/mkdir -p '/usr/local/include/ImageMagick-7' /usr/bin/install -c -m 644 Magick++/lib/Magick++.h '/usr/local/include/ImageMagick-7' /usr/bin/mkdir -p '/usr/local/share/man/man1' /usr/bin/install -c -m 644 MagickCore/MagickCore-config.1 MagickWand/MagickWand-config.1 Magick++/bin/Magick++-config.1 utilities/ImageMagick.1 utilities/animate.1 utilities/compare.1 utilities/composite.1 utilities/conjure.1 utilities/convert.1 utilities/display.1 utilities/identify.1 utilities/import.1 utilities/magick.1 utilities/magick-script.1 utilities/mogrify.1 utilities/montage.1 utilities/stream.1 '/usr/local/share/man/man1' /usr/bin/mkdir -p '/usr/local/lib/pkgconfig' /usr/bin/install -c -m 644 MagickCore/ImageMagick.pc MagickCore/ImageMagick-7.Q16HDRI.pc MagickCore/MagickCore.pc MagickCore/MagickCore-7.Q16HDRI.pc MagickWand/MagickWand.pc MagickWand/MagickWand-7.Q16HDRI.pc Magick++/lib/Magick++.pc Magick++/lib/Magick++-7.Q16HDRI.pc '/usr/local/lib/pkgconfig' make[2]: Leaving directory `/root/ImageMagick-7.0.11-10' make[1]: Leaving directory `/root/ImageMagick-7.0.11-10'
↑ ImageMagick、インストールができました。
# pecl install imagick WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update downloading imagick-3.4.4.tgz ... Starting to download imagick-3.4.4.tgz (253,434 bytes) .....................................................done: 253,434 bytes 19 source files, building running: phpize Configuring for: PHP Api Version: 20190902 Zend Module Api No: 20190902 Zend Extension Api No: 320190902 Please provide the prefix of ImageMagick installation [autodetect] : ↑ここは、リターン (略) Build process completed successfully Installing '/usr/local/lib/php/extensions/no-debug-zts-20190902/imagick.so' Installing '/usr/local/include/php/ext/imagick/php_imagick_shared.h' install ok: channel://pecl.php.net/imagick-3.4.4 configuration option "php_ini" is not set to php.ini location You should add "extension=imagick.so" to php.ini
↑ phpとImagick を結びつける、imagick module をインストールします。
# vi /usr/local/lib/php.ini extension=imagick.so
↑ 「imagick.so」を追加
# systemctl restart php-fpm # systemctl status php-fpm ● php-fpm.service - LSB: starts php-fpm Loaded: loaded (/etc/rc.d/init.d/php-fpm; bad; vendor preset: disabled) Active: active (running) since Mon 2021-XX-XX XX:XX:XX JST; 4s ago Docs: man:systemd-sysv-generator(8) Process: 27851 ExecStart=/etc/rc.d/init.d/php-fpm start (code=exited, status=0/SUCCESS) CGroup: /system.slice/php-fpm.service ├─27853 php-fpm: master process (/usr/local/etc/php-fpm.conf) ├─27854 php-fpm: pool www └─27855 php-fpm: pool www xxxx systemd[1]: Starting LSB: starts php-fpm... xxxx php-fpm[27851]: Starting php-fpm done xxxx systemd[1]: Started LSB: starts php-fpm.
↑ 「php-fpm」を再起動します。サーバーによっては、apacheを再起動します。
↑ phpinfoでみると、Imagickが有効になっています。
exif の有効化
phpソースインストール時にオプションを加えます。
php-7.4.18で試しました。
# export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/" # ./configure --with-apxs2=/usr/local/apache2/bin/apxs -with-mysqli --with-pdo-mysql --enable-mbstring --enable-pcntl --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --enable-ftp --enable-gd --with-jpeg --with-webp --with-xpm --with-zlib --with-zip --with-snmp --enable-sockets --with-freetype --enable-cgi --with-curl --enable-intl --with-gettext --with-openssl --enable-bcmath --enable-exif
↑ 「–enable-exif」をつけて、phpを再構成します。
# make # make isntall # systemctl restart php-fpm # systemctl status php-fpm
ワードプレス、ステータス、すべてパス
必須および推奨モジュールがインストール済みです PHP モジュールはサイトの稼働に必要なほとんどのタスクをサーバー上で実行します。変更はサーバー管理者が実施する必要があります。 WordPress ホスティングチームでは、こうした推奨されていたり必須とされていたりするモジュールのリストをチームのハンドブック (新しいタブで開く)でメンテナンスしています。
↑ モジュール、インストール済みとなりました。
↑ ステータス、すべてパスをしました。