Log in

CentOS でサーバー構築 - PHP と ImageMagick

目次へ戻る

PHP をインストールします。
PHP の本体そのものは単に yum install php するだけですが、他にも使いそうなものを入れておきます。

# yum -y install php
# yum -y install php-mbstring
# yum -y install php-xml
# yum -y install php-mysql
# yum -y install php-gd

ImageMagick のインストール

ImageMagick というのは画像ファイルの変換や加工を行うことが出来るツールです。これ自体は CUI のツールですが、いろいろな言語から呼び出すライブラリとしても使えます。(ということらしいです。私もよくわかってません)
PHP から ImageMagick を使いたいという事情があったのでここで入れておきます。(もちろん、必要ない場合は入れる必要なし)

# yum -y install libjpeg-devel libpng-devel
# yum -y install ImageMagick ImageMagick-devel

ImageMagick 自体はこれだけで入ります。ただこれだけだと PHP からは使えないようなので、ImageMagick と PHP とを橋渡しする imagick を入れてやります。
(そういや、自分の控えをコピー&ペーストして記事を書いているので yum を複数回に分けて実行していますが、ずらずらと並べて 1回の yum でインストールしても意味は同じなんだと思います)

pecl のインストール

imagick は yum では無く pecl で入れるそうです。この時点ではまだ pecl が使えるようになっていないので、yum で以下のものを入れてやります。

# yum -y install php-pear
# yum -y install php-devel
# yum -y install httpd-devel

正直、この辺まったくわかってません。完全に見よう見まねです。

imagick のインストール

これで pecl が使えるようになったので imagick を入れてやります。

# pecl install imagick

いろいろ表示されますが、その中に WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update というメッセージがありました。言われたとおりに

# pecl channel-update pecl.php.net

と実行。また、「cc も無いし gcc も無い」というようなエラーメッセージも出ていたので

# yum -y install gcc-c++

として gcc を入れました。
再び

# pecl install imagick

としてやるとようやくビルドに成功し、無事インストールできたようです。
最後に /etc/php.ini に "extension=imagick.so" を追加して imagick を有効化してやります。これは /etc/php.d/imagick.ini ファイルを作ってそっちに "extension=imagick.so" と書いてやるという方法もあるそうです。

最後に apache を再起動してやります。

service httpd restart

PHP にちゃんと認識されているかは php -i として imagick module が enabled になっているか確認すればいいようです。php -i だとたくさん書かれるので

php -i | grep imagick

なんてするといいようです。もちろん、<?php phpinfo(); ?> なんて中身の php ファイルを作ってブラウザーで表示してみても確認できます。

timezone

この状態でしばらく PHP を使っていたら httpd の error_log に「timezone の設定が無いぞ」みたいな警告?がたくさん出ていました。そこで /etc/php.ini の date.timezone を

date.timezone = Asia/Tokyo

としてやりました。とりあえず、警告も消えてうまくいっているようです。

目次へ戻る