73
70

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PHPの拡張モジュールGDが動くまでの試行錯誤 [8万View達成]

Last updated at Posted at 2015-05-08

PHPの拡張モジュールGDが動くまでの試行錯誤

Linux系OSへPHP拡張モジュールのGD(画像変換モジュール)をインストールするだけで結構はまったので試行錯誤をメモ。
PHPの拡張モジュールを入れる際の確認ポイントの参考にしてみるのもいいかも。

GDのインストール確認

phpinfo() の ConfigureCommand 項目をみると

--without-gd

になっている。
GD欄も存在しないので入っていないらしい。

phpinfo.php
<? phpinfo(); ?>

以下のコマンドでも確認できます。

php -m | grep gd

GDをインストールしてみる

yum install php-gd

失敗。
失敗する原因として、PHPのバージョンに合っていない、他の関連モジュールの影響で入れられないといった原因が考えられます。

インストールできるGDが他にないか確認

yum list | grep gd

php54-php-gd.x86_64があった。
x86_64, amd64 は64ビット i386, i686, x86 は32ビット

remiリポジトリからインストール。
「yum」のデフォルトリポジトリのパッケージが古く、最新版のパッケージをインストールしたい場合には、RPMコマンドを使って外部リポジトリを追加します。「remi」はよく使われる外部リポジトリのひとつです。

yum install php54-php-gd.x86_64 --enablerepo=remi

成功。

GDのインストール確認

/etc/php.ini に以下を追記して、Apacheを再起動。

extension=gd.so

うまく動かない。

入れなおしてみたり

yum remove php54-php-gd.x86_64
yum install php54-php-gd.x86_64

効果なし。
yum remove を行う場合は、他のモジュールが使用している関連モジュールを消さないように気をつけます。

/etc/php.d/gd.ini を作ってみてもうまく動かない。

拡張モジュールの確認

ls /usr/lib64/php/modules/gd.so

拡張モジュールがなかった。ありがち。

拡張モジュールを探す旅にでる

色々苦戦している人を発見する。
http://xiaoxia.exblog.jp/6226189

rpmパッケージの問題?

rpm -qa | grep gd
php54-php-gd-5.4.39-1.el6.remi.x86_64
gd-2.0.35-11.el6.i686
gd-2.0.35-11.el6.x86_64
gd-progs-2.0.35-11.el6.x86_64
gd-last-2.1.1-1.el6.remi.x86_64

うーむ、パッケージは問題なさそう。。

gd.so がどこにあるか探す

find /usr/ -name gd.so

/usr/lib64/libgd.so.3.0.0 があったので、ショートカットリンク作成

ln -s /usr/lib64/libgd.so.3.0.0 gd.so

php -m | grep gd
PHP Warning: PHP Startup: Invalid library (maybe not a PHP library) 'gd.so' in Unknown on line 0

PHPのライブラリじゃないよって怒られて、上手くいかない。

インストールした場所を調べる。

rpm -ql php54-php-gd.x86_64
/opt/remi/php54/root/usr/lib64/php/modules/gd.so

いた。なんでそんなところに。。
仕方がないのでショートカットリンク作成

ln -s /opt/remi/php54/root/usr/lib64/php/modules/gd.so /usr/lib64/php/modules/gd.so

Apacheを再起動したら動きました。

まとめ

  1. phpinfo() の ConfigureCommand 項目は割とあてにならない
  2. 動かないときは拡張モジュールを確認する
  3. ショートカットリンクでも動く

GDなどの拡張モジュールがインストールできなくて困っている人の助けになれば幸いです。

73
70
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
73
70

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?