「広告」

WordPress ImageMagickライブラリとexifモジュール

「広告」
記事内に広告が含まれています。
「広告」

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 ホスティングチームでは、こうした推奨されていたり必須とされていたりするモジュールのリストをチームのハンドブック (新しいタブで開く)でメンテナンスしています。

↑ モジュール、インストール済みとなりました。

↑ ステータス、すべてパスをしました。

 

タイトルとURLをコピーしました