この記事を試してみたくて、適当な端末で環境を作ってみることにしました。
基本的にはこの手順でCentOS8をインストールしました。
ただしマシンのせいなのかインストールタイプを選ぶ画面が出ず、デスクトップ画面付きのPCとしての構成でインストールされた模様(インストール完了後、デスクトップUIが表示されたため)。
ちなみにPHPは7.4.4になりました。
このマシンで、10.のMySQL以外を設定した状態まで持って行きました。
1. ホスト名変更
# nmtui
ホスト名: pulldullfull.example.com
PDFでそれっぽいホスト名を付けようと思ったら何故かこんな名前を思い付いてしまいました……(WordPressプラグインの「PubSubHubbub」のようなネーミングを最初に思い付いたため)。
2. 仮想サイト作成
仮想サイトの名前はホスト名から連想で仮にkull
にしようかと思ったのですが、思っていたクルはkur
だったのでここではそのままkur
と仮定します。
# cd /var/www/
# mkdir kur
# mkdir kur/web
- アドレス: 全てのアドレス
- ポート: 80
- ドキュメントのルート: /var/www/kur/web
- サーバ名:
kur.example.com
- 仮想サーバの追加: 選択したファイル:
/etc/httpd/conf.d/kur.conf
- ディレクティブのコピー元: どこにもない
ディレクティブを以下のように編集。
#Options None ##コメントアウト
## 以下を追加
AllowOverride All
Options FollowSymLinks
手元のWindowsマシンでhosts
ファイル編集。
XXX.XXX.XXX.XXX kur.example.com #PDF→jpg変換サーバ
これでサイトにアクセスできることを確認。
3. FTPユーザ作成
kur
なのでkigal
にします。
# useradd kigal
# passwd kigal
ユーザー kigal のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。
ユーザ追加。
# vi /etc/vsftpd/user_list
## 末尾に追加したユーザを追記
kigal
# mkdir /etc/vsftpd/user_conf
# vi /etc/vsftpd/user_conf/kigal
## 以下の1行を記述
local_root=/var/www/kur/
権限設定。
# chown apache:kigal -R kur/web/
# chmod 775 kur/web/
FTPアクセス、遡れないこと、web
下にアップロードできることを確認。
4. ImageMagick, GhostScript導入 (※ImageMagickは入れ直す)
ここからが今回の本題です。
# dnf list available | grep ImageMagick
ImageMagick.x86_64 1:6.9.11.1-1.el8.remi remi
ImageMagick-c++.x86_64 1:6.9.11.1-1.el8.remi remi
ImageMagick-c++-devel.x86_64 1:6.9.11.1-1.el8.remi remi
ImageMagick-devel.x86_64 1:6.9.11.1-1.el8.remi remi
ImageMagick-djvu.x86_64 1:6.9.11.1-1.el8.remi remi
ImageMagick-doc.x86_64 1:6.9.11.1-1.el8.remi remi
ImageMagick-heic.x86_64 1:6.9.11.1-1.el8.remi remi
ImageMagick-libs.x86_64 1:6.9.11.1-1.el8.remi remi
ImageMagick-perl.x86_64 1:6.9.11.1-1.el8.remi remi
ImageMagick7.x86_64 7.0.10.1-1.el8.remi remi
ImageMagick7-c++.x86_64 7.0.10.1-1.el8.remi remi-safe
ImageMagick7-c++-devel.x86_64 7.0.10.1-1.el8.remi remi
ImageMagick7-devel.x86_64 7.0.10.1-1.el8.remi remi
ImageMagick7-djvu.x86_64 7.0.10.1-1.el8.remi remi-safe
ImageMagick7-doc.x86_64 7.0.10.1-1.el8.remi remi
ImageMagick7-heic.x86_64 7.0.10.1-1.el8.remi remi-safe
ImageMagick7-libs.x86_64 7.0.10.1-1.el8.remi remi-safe
ImageMagick7-perl.x86_64 7.0.10.1-1.el8.remi remi
# dnf install -y ImageMagick7.x86_64
メタデータの期限切れの最終確認: 0:01:37 時間前の YYYY年mm月dd日 hh時ii分ss秒 に実施しました。
依存関係が解決しました。
=============================================================================================================================================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
=============================================================================================================================================================================================================================================
インストール:
ImageMagick7 x86_64 7.0.10.1-1.el8.remi remi 95 k
依存関係のインストール:
LibRaw x86_64 0.19.1-1.el8 AppStream 316 k
OpenEXR-libs x86_64 2.2.0-11.el8 AppStream 675 k
fftw-libs-double x86_64 3.3.5-11.el8 AppStream 992 k
graphviz x86_64 2.40.1-39.el8 AppStream 1.7 M
ilmbase x86_64 2.2.0-11.el8 AppStream 115 k
libXaw x86_64 1.0.13-10.el8 AppStream 194 k
libwmf-lite x86_64 0.2.9-8.el8_0 AppStream 77 k
xorg-x11-fonts-ISO8859-1-100dpi noarch 7.5-19.el8 AppStream 1.1 M
libraqm x86_64 0.7.0-4.el8 epel 19 k
ImageMagick7-libs x86_64 7.0.10.1-1.el8.remi remi-safe 2.4 M
liblqr-1 x86_64 0.4.2-11.el8.remi remi-safe 51 k
トランザクションの概要
=============================================================================================================================================================================================================================================
インストール 12 パッケージ
## 略
完了しました!
OK。
# convert -v
Version: ImageMagick 7.0.10-1 Q16 x86_64 2020-03-17 https://imagemagick.org
Copyright: c 1999-2020 ImageMagick Studio LLC
## 略
入っていますね。
# dnf list available | grep GhostScript
# dnf install ghostscript
メタデータの期限切れの最終確認: 0:03:40 時間前の YYYY年mm月dd日 hh時ii分ss秒 に実施しました。
パッケージ ghostscript-9.25-5.el8_1.1.x86_64 は既にインストールされています。
依存関係が解決しました。
行うべきことはありません。
完了しました!
#
なん……だと……。
# gs -v
GPL Ghostscript 9.25 (2018-09-13)
Copyright (C) 2018 Artifex Software, Inc. All rights reserved.
入っていますね……いつの間にやら。ということでインストール完了。
5. imagickインストール (ここから沼)
# dnf install php-pear
CentOS-8 - AppStream 3.8 kB/s | 4.3 kB 00:01
CentOS-8 - Base 6.8 kB/s | 3.8 kB 00:00
CentOS-8 - Extras 3.0 kB/s | 1.5 kB 00:00
Extra Packages for Enterprise Linux Modular 8 - x86_64 7.9 kB/s | 7.3 kB 00:00
Extra Packages for Enterprise Linux 8 - x86_64 7.7 kB/s | 4.4 kB 00:00
Remi's Modular repository for Enterprise Linux 8 - x86_64 1.4 kB/s | 3.5 kB 00:02
Safe Remi's RPM repository for Enterprise Linux 8 - x86_64 2.8 kB/s | 3.0 kB 00:01
Safe Remi's RPM repository for Enterprise Linux 8 - x86_64 12 kB/s | 1.4 MB 01:55
Remi's RPM repository for Enterprise Linux 8 - x86_64 493 B/s | 3.0 kB 00:06
Remi's RPM repository for Enterprise Linux 8 - x86_64 669 kB/s | 2.8 MB 00:04
パッケージ php-pear-1:1.10.10-4.el8.remi.noarch は既にインストールされています。
依存関係が解決しました。
行うべきことはありません。
完了しました!
OKです。ということでpecl
使用でimagick
をインストールしてみます。
# pecl install imagick
Notice: Trying to access array offset on value of type bool in PEAR/REST.php on line 181
Notice: Trying to access array offset on value of type bool in PEAR/REST.php on line 181
Notice: Trying to access array offset on value of type bool in PEAR/REST.php on line 181
Notice: Trying to access array offset on value of type bool in PEAR/REST.php on line 181
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
Can't find PHP headers in /usr/include/php
The php-devel package is required for use of this command.
ERROR: `phpize' failed
なんですって……。
を参考にして対処。php-devel
をインストールします。
# dnf install php-devel
メタデータの期限切れの最終確認: 0:03:05 時間前の YYYY年mm月dd日 hh時ii分ss秒 に実施しました。
エラー:
問題: cannot install the best candidate for the job
- nothing provides libedit-devel(x86-64) needed by php-devel-7.4.4-1.el8.remi.x86_64
(インストール不可のパッケージをスキップするには、'--skip-broken' を追加してみてください または、'--nobest' を追加して、最適候補のパッケージのみを使用しないでください)
なん……だと……。
エラーメッセージで検索したらこのスレッドが出てきたので対処。dnf config-manager --set-enabled PowerTools
を叩くだけで良いらしいです。
# dnf config-manager --set-enabled PowerTools
# dnf install php-devel
CentOS-8 - AppStream 2.7 kB/s | 4.3 kB 00:01
CentOS-8 - Base
## 略
完了しました!
……本当にこれだけでできてしまいました。
改めてimagick
を入れます。
# 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] :
Warning: Use of undefined constant name - assumed 'name' (this will throw an Error in a future version of PHP) in PEAR/Builder.php on line 405
building in /var/tmp/pear-build-rootFPfQe9/imagick-3.4.4
running: /var/tmp/imagick/configure --with-php-config=/usr/bin/php-config --with-imagick
checking for grep that handles long lines and -e... /usr/bin/grep
## 略
checking if debug is enabled... no
checking if zts is enabled... no
checking for gawk... gawk
checking whether to enable the imagick extension... yes, shared
checking for pkg-config... /usr/bin/pkg-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.
ERROR: `/var/tmp/imagick/configure --with-php-config=/usr/bin/php-config --with-imagick' failed
また怒られました……。
に拠るとImageMagick
とImageMagick-devel
は別物らしいです。……なんですって。
# dnf remove ImageMagick7.x86_64
モジュラーの依存に関する問題:
## 略
完了しました!
OK。
# convert -v
-bash: /usr/bin/convert: そのようなファイルやディレクトリはありません
消えました。
# dnf install ImageMagick-devel
メタデータの期限切れの最終確認: 0:10:45 時間前の YYYY年mm月dd日 hh時ii分ss秒 に実施しました。
依存関係が解決しました。
## 略
完了しました!
# convert -v
Version: ImageMagick 6.9.11-1 Q16 x86_64 2020-03-17 https://imagemagick.org
Copyright: c 1999-2020 ImageMagick Studio LLC
## 略
バージョンが落ちた気がしますが、これで良いのでしょうか……。再再度挑戦。
# 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] : imagick
Warning: Use of undefined constant name - assumed 'name' (this will throw an Error in a future version of PHP) in PEAR/Builder.php on line 407
building in /var/tmp/pear-build-root1CKavl/imagick-3.4.4
running: /var/tmp/imagick/configure --with-php-config=/usr/bin/php-config --with-imagick=imagick
checking for grep that handles long lines and -e... /usr/bin/grep
## 略
checking ImageMagick MagickWand API configuration program... checking Testing imagick/bin/MagickWand-config... Doesn't exist
checking Testing imagick/bin/Wand-config... Doesn't exist
checking Testing /usr/local/bin/MagickWand-config... Doesn't exist
checking Testing /usr/local/bin/Wand-config... Doesn't exist
checking Testing /usr/bin/MagickWand-config... It exists
found in /usr/bin/MagickWand-config
checking if ImageMagick version is at least 6.2.4... found version 6.9.11 Q16
checking for MagickWand.h or magick-wand.h header... user location /usr/include/ImageMagick-6/wand/MagickWand.h
checking PHP version is at least 5.3.2... yes. found 7.4.4
libs
-lMagickWand-6.Q16 -lMagickCore-6.Q16
checking for MagickGetVersion... yes
## 略
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
configure: patching config.h.in
configure: creating ./config.status
config.status: creating config.h
config.status: executing libtool commands
running: make
sh: make: コマンドが見つかりません
ERROR: `make' failed
まさかのmake
がないですって……。
# dnf -y install gcc make
メタデータの期限切れの最終確認: 7:40:24 時間前の YYYY年mm月dd日 hh時ii分ss秒 に 実施しました。
パッケージ gcc-8.3.1-4.5.el8.x86_64 は既にインストールされています。
依存関係が解決しました。
================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
================================================================================
インストール:
make x86_64 1:4.2.1-9.el8 BaseOS 498 k
トランザクションの概要
================================================================================
インストール 1 パッケージ
ダウンロードサイズの合計: 498 k
インストール済みのサイズ: 1.4 M
パッケージのダウンロード:
make-4.2.1-9.el8.x86_64.rpm 1.6 MB/s | 498 kB 00:00
--------------------------------------------------------------------------------
合計 363 kB/s | 498 kB 00:01
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
準備 : 1/1
インストール中 : make-1:4.2.1-9.el8.x86_64 1/1
scriptletの実行中: make-1:4.2.1-9.el8.x86_64 1/1
検証 : make-1:4.2.1-9.el8.x86_64 1/1
インストール済み:
make-1:4.2.1-9.el8.x86_64
完了しました!
OK。再再再度、挑戦。
# 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] : imagick
Warning: Use of undefined constant name - assumed 'name' (this will throw an Error in a future version of PHP) in PEAR/Builder.php on line 407
building in /var/tmp/pear-build-rootEJJkZl/imagick-3.4.4
running: /var/tmp/imagick/configure --with-php-config=/usr/bin/php-config --with-imagick=imagick
checking for grep that handles long lines and -e... /usr/bin/grep
## 略
checking if ImageMagick version is at least 6.2.4... found version 6.9.11 Q16
checking for MagickWand.h or magick-wand.h header... user location /usr/include/ImageMagick-6/wand/MagickWand.h
checking PHP version is at least 5.3.2... yes. found 7.4.4
libs
-lMagickWand-6.Q16 -lMagickCore-6.Q16
checking for MagickGetVersion... yes
## 略
configure: creating ./config.status
config.status: creating config.h
config.status: executing libtool commands
running: make
/bin/sh /var/tmp/pear-build-rootEJJkZl/imagick-3.4.4/libtool --mode=compile cc -I/usr/include/ImageMagick-6 -fopenmp -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -I. -I/var/tmp/imagick -DPHP_ATOM_INC -I/var/tmp/pear-build-rootEJJkZl/imagick-3.4.4/include -I/var/tmp/pear-build-rootEJJkZl/imagick-3.4.4/main -I/var/tmp/imagick -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/usr/include/ImageMagick-6 -DHAVE_CONFIG_H -g -O2 -c /var/tmp/imagick/imagick_file.c -o imagick_file.lo
libtool: compile: cc -I/usr/include/ImageMagick-6 -fopenmp -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -I. -I/var/tmp/imagick -DPHP_ATOM_INC -I/var/tmp/pear-build-rootEJJkZl/imagick-3.4.4/include -I/var/tmp/pear-build-rootEJJkZl/imagick-3.4.4/main -I/var/tmp/imagick -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/usr/include/ImageMagick-6 -DHAVE_CONFIG_H -g -O2 -c /var/tmp/imagick/imagick_file.c -fPIC -DPIC -o .libs/imagick_file.o
/bin/sh /var/tmp/pear-build-rootEJJkZl/imagick-3.4.4/libtool --mode=compile cc -I/usr/include/ImageMagick-6 -fopenmp -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -I. -I/var/tmp/imagick -DPHP_ATOM_INC -I/var/tmp/pear-build-rootEJJkZl/imagick-3.4.4/include -I/var/tmp/pear-build-rootEJJkZl/imagick-3.4.4/main -I/var/tmp/imagick -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/usr/include/ImageMagick-6 -DHAVE_CONFIG_H -g -O2 -c /var/tmp/imagick/imagick_class.c -o imagick_class.lo
libtool: compile: cc -I/usr/include/ImageMagick-6 -fopenmp -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -I. -I/var/tmp/imagick -DPHP_ATOM_INC -I/var/tmp/pear-build-rootEJJkZl/imagick-3.4.4/include -I/var/tmp/pear-build-rootEJJkZl/imagick-3.4.4/main -I/var/tmp/imagick -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/usr/include/ImageMagick-6 -DHAVE_CONFIG_H -g -O2 -c /var/tmp/imagick/imagick_class.c -fPIC -DPIC -o .libs/imagick_class.o
/var/tmp/imagick/imagick_class.c: 関数 ‘zim_imagick_getimagematte’ 内:
/var/tmp/imagick/imagick_class.c:299:2: 警告: ‘MagickGetImageMatte’ is deprecated [-Wdeprecated-declarations]
matte = MagickGetImageMatte(intern->magick_wand);
^~~~~
In file included from /usr/include/ImageMagick-6/wand/MagickWand.h:83,
from /var/tmp/imagick/php_imagick_defs.h:29,
from /var/tmp/imagick/imagick_class.c:22:
/usr/include/ImageMagick-6/wand/deprecate.h:85:3: 備考: ここで宣言されています
MagickGetImageMatte(MagickWand *) magick_attribute((deprecated)),
^~~~~~~~~~~~~~~~~~~
/var/tmp/imagick/imagick_class.c: 関数 ‘zim_imagick_paintfloodfillimage’ 内:
/var/tmp/imagick/imagick_class.c:1284:3: 警告: ‘MagickPaintFloodfillImage’ is deprecated [-Wdeprecated-declarations]
status = MagickPaintFloodfillImage(intern->magick_wand, channel, fill_wand, fuzz, NULL, x, y);
^~~~~~
## 略。「備考: ここで宣言されています」の警告が大量に出力
/bin/sh /var/tmp/pear-build-rootEJJkZl/imagick-3.4.4/libtool --mode=compile cc -I/usr/include/ImageMagick-6 -fopenmp -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -I. -I/var/tmp/imagick -DPHP_ATOM_INC -I/var/tmp/pear-build-rootEJJkZl/imagick-3.4.4/include -I/var/tmp/pear-build-rootEJJkZl/imagick-3.4.4/main -I/var/tmp/imagick -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/usr/include/ImageMagick-6 -DHAVE_CONFIG_H -g -O2 -c /var/tmp/imagick/imagickdraw_class.c -o imagickdraw_class.lo
## 略
/bin/sh /var/tmp/pear-build-rootEJJkZl/imagick-3.4.4/libtool --mode=install cp ./imagick.la /var/tmp/pear-build-rootEJJkZl/imagick-3.4.4/modules
libtool: install: cp ./.libs/imagick.so /var/tmp/pear-build-rootEJJkZl/imagick-3.4.4/modules/imagick.so
libtool: install: cp ./.libs/imagick.lai /var/tmp/pear-build-rootEJJkZl/imagick-3.4.4/modules/imagick.la
libtool: finish: PATH="/usr/share/Modules/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/sbin" ldconfig -n /var/tmp/pear-build-rootEJJkZl/imagick-3.4.4/modules
----------------------------------------------------------------------
Libraries have been installed in:
/var/tmp/pear-build-rootEJJkZl/imagick-3.4.4/modules
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.
----------------------------------------------------------------------
Build complete.
Don't forget to run 'make test'.
running: make INSTALL_ROOT="/var/tmp/pear-build-rootEJJkZl/install-imagick-3.4.4" install
Installing shared extensions: /var/tmp/pear-build-rootEJJkZl/install-imagick-3.4.4/usr/lib64/php/modules/
Installing header files: /var/tmp/pear-build-rootEJJkZl/install-imagick-3.4.4/usr/include/php/
running: find "/var/tmp/pear-build-rootEJJkZl/install-imagick-3.4.4" | xargs ls -dils
395478 4 drwxr-xr-x 3 root root 4096 mm月 dd hh:ii /var/tmp/pear-build-rootEJJkZl/install-imagick-3.4.4
395515 4 drwxr-xr-x 4 root root 4096 mm月 dd hh:ii /var/tmp/pear-build-rootEJJkZl/install-imagick-3.4.4/usr
395519 4 drwxr-xr-x 3 root root 4096 mm月 dd hh:ii /var/tmp/pear-build-rootEJJkZl/install-imagick-3.4.4/usr/include
395520 4 drwxr-xr-x 3 root root 4096 mm月 dd hh:ii /var/tmp/pear-build-rootEJJkZl/install-imagick-3.4.4/usr/include/php
395521 4 drwxr-xr-x 3 root root 4096 mm月 dd hh:ii /var/tmp/pear-build-rootEJJkZl/install-imagick-3.4.4/usr/include/php/ext
395522 4 drwxr-xr-x 2 root root 4096 mm月 dd hh:ii /var/tmp/pear-build-rootEJJkZl/install-imagick-3.4.4/usr/include/php/ext/imagick
395523 4 -rw-r--r-- 1 root root 1828 mm月 dd hh:ii /var/tmp/pear-build-rootEJJkZl/install-imagick-3.4.4/usr/include/php/ext/imagick/php_imagick_shared.h
395516 4 drwxr-xr-x 3 root root 4096 mm月 dd hh:ii /var/tmp/pear-build-rootEJJkZl/install-imagick-3.4.4/usr/lib64
395517 4 drwxr-xr-x 3 root root 4096 mm月 dd hh:ii /var/tmp/pear-build-rootEJJkZl/install-imagick-3.4.4/usr/lib64/php
395518 4 drwxr-xr-x 2 root root 4096 mm月 dd hh:ii /var/tmp/pear-build-rootEJJkZl/install-imagick-3.4.4/usr/lib64/php/modules
395514 1600 -rwxr-xr-x 1 root root 1637024 mm月 dd hh:ii /var/tmp/pear-build-rootEJJkZl/install-imagick-3.4.4/usr/lib64/php/modules/imagick.so
Build process completed successfully
Installing '/usr/lib64/php/modules/imagick.so'
Installing '/usr/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
途中で警告が大量に出ましたが、最後まで行ったようなのでひとまずOKとします。
# vi /etc/php.ini
;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
; If you wish to have an extension loaded automatically, use the following
; syntax:
;
; extension=modulename
;
; For example:
;
; extension=mysqli
;
; When the extension library to load is not located in the default extension
; directory, You may specify an absolute path to the library file:
;
; extension=/path/to/extension/mysqli.so
;
; Note : The syntax used in previous PHP versions ('extension=<ext>.so' and
; 'extension='php_<ext>.dll') is supported for legacy reasons and may be
; deprecated in a future PHP major version. So, when it is possible, please
; move to the new ('extension=<ext>) syntax.
extension=imagick.so ;追記
読み込みを追記。
# systemctl restart httpd
Apacheを再起動。が、……phpinfo
にimagick
が出ず。
# php -m | grep imagick
imagick
# php -i | grep imagick
imagick
imagick module => enabled
imagick module version => 3.4.4
imagick classes => Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator, ImagickKernel
imagick.locale_fix => 0 => 0
imagick.progress_monitor => 0 => 0
imagick.skip_version_check => 0 => 0
こちらは出ますね……。
# less /var/log/php-fpm/www-error.log
PHP Fatal error: Uncaught Error: Class 'Imagick' not found in /PATH/TO/PHP/ON/WEBROOT/index.php:10
Stack trace:
#0 {main}
やはりないと怒られている模様……。
この記事に拠るとサーバ自体の再起動で直った、とのことなので
# reboot
で再起動。
起動してからphpinfo
の情報を見ると……
読み込まれている!
<?php
$imagick = new Imagick();
$data = file_get_contents(__DIR__ . '/pdf/wagahaihanekodearu.pdf');
$imagick->readImageBlob($data);
$imagick->setImageFormat('jpg');
$imagick->writeimage(__DIR__ . '/images/wagahaihanekodearu.jpg');
雑に上述のコードを書いてindex.php
とし、以下のようなディレクトリ構成にします。
/
├ images/
├ pdf/
│ └ wagahaihanekodearu.pdf
└ index.php
それから、権限設定。
# chmod 777 /var/www/kur/web/images
仮なので雑です。これでhttp://kur.example.com/
にブラウザでアクセス。するとimages
ディレクトリにjpgファイルが生成されました。
ダウンロードして開いてみます。
確かに変換された画像が生成されました!
勝ったッ!imagick完!
……長かった……。
参考
- CentOS8 をインストールして遊んでみる – Ewig Leere(Lab2)
- 簡単便利!PHPでPDFをテキスト&画像ファイルに変換する方法 ? console dot log
- imagickを使ってpdfを画像に変換する | OpenMemo
- imagickを使うためにImageMagickの最新版をインストールする話 – Qiita
- CentOS 8 php 7.3 php-devel installation dependency missing (Page 1) ? User support ? Remi’s RPM repository – Forum
- ImageMagickのインストール – one’s world
- Install Imagick extension for PHP on Linux CentOS 7 – The Dummy Programmer
- Install ImageMagick on CentOS 8 ← RootLinks Co., Ltd.
make
コマンド: make時に「/bin/sh: cc: コマンドが見つかりません」と怒られた時の対処法 – すじこネット