php-gd のインストールではまったこと
本番にはあるけどステージング環境に GD モジュールがない!という状況に陥ったので、インストールすることにしました。
(ステージング環境がちゃんと動き出したのが最近で、全部の機能が動くことを確認出来ていなくて、今日まで気付かなかった…。)
php-gd のインストール
yum を使う
色々回り道したけど、結局は yum を使って一発インストール。(迷走した記録は後述します。)
一応インストールする gd ライブラリを確認してから実行しました。
$ yum list | grep gd $ yum install php-gd.i386
迷走した記録(読まなくて OK)
結局作業自体は上記の手順で良かったのですが、それにいたるまでいろいろ迷走しました。
また同じようなことではまらないように、書いておきます。
imagecreatetruecolor() がない
最初は、下記のようなエラーログが出力されていました。調べてみると GD モジュールがない疑惑が生じました。
Fatal error: Call to undefined function imagecreatetruecolor()
GD モジュールの確認
GD モジュールは、PHP 5.2.0 以上の場合標準でインストールされているとのことです。
じゃあ PHP のバージョンが低いの?と思って調べてみると、5.1.6 でした…。
$ php -v PHP 5.1.6 (cli) (built: Nov 29 2010 16:47:37)
念のため GD モジュールが存在するのか確認したけど、やっぱりない。
やっぱり別にインストールする必要がありました。
今まで確認する時って、画面に phpinfo(); とかで表示してたけど、コマンドで確認する方法を覚えました。
- i オプション:phpinfo の実行結果をコマンドライン形式で表示する。
- m オプション:読み込まれているモジュールの一覧を表示する。
# 実行はこんな感じで $ php -i | grep gd $ php -m | grep gd
GD モジュールのインストール
GDライブラリのインストール を参考にしてインストールすることにしました。
ファイルを wget で取得したところまでは良かったのですが、make 時にエラーが起こりました。
$ cd /usr/local/src $ wget http://www.libgd.org/releases/gd-2.0.35.tar.gz $ cd gd-2.0.35 $ ./configure $ make cd . && /bin/sh /usr/local/src/gd-2.0.35/config/missing --run aclocal-1.9 -I config aclocal:configure.ac:64: warning: macro `AM_ICONV' not found in library cd . && /bin/sh /usr/local/src/gd-2.0.35/config/missing --run automake-1.9 --foreign Makefile.am:18: Libtool library used but `LIBTOOL' is undefined Makefile.am:18: Makefile.am:18: The usual way to define `LIBTOOL' is to add `AC_PROG_LIBTOOL' Makefile.am:18: to `configure.ac' and run `aclocal' and `autoconf' again. make: *** [Makefile.in] Error 1
エラーの原因?
よくわからないんですが、libgdのmakeでエラー を見ると同じような状態になっている人がいました。
libiconv を入れれば動くのかな…?と思いつつ、もう嫌になってきました。
周りの人に助けを求めたら、「yum でインストールできるんじゃない?」といわれてショックをうけつつ、上記の方法でインストールしたのでした。