はじめに

WordPressの管理画面で画像を切り抜こうとしたら以下のエラーが出たのでメモ。。

画像を切り抜く際にエラーが発生しました。

あ~画像関係のモジュール、たぶんgdあたりがインストールされていないのかなと思い
/usr/local/lib/php/extensions/no-debug-zts-20160303/ の配下を確認してみるとやっぱりモジュールがありません。。

ということで、gdのモジュールを作成しインストールしたいと思います。

1.ソースのディレクトリに移動します。

# pwd
/usr/local/src/php-7.1.20/ext/gd
#

2.phpizeコマンドを投入し、configureファイルを作成します。

# phpize

3.configureを実行し、Makefileを作成します。

# ./configure --with-gd

4.makeします。

# make

5.make install します。

# make install
Installing shared extensions: /usr/local/lib/php/extensions/no-debug-zts-20160303/
Installing header files: /usr/local/include/php/
#

6.モジュールが作られたことを確認します。

# ls /usr/local/lib/php/extensions/no-debug-zts-20160303/ | grep gd.so
gd.so
#

おしっ!問題なくモジュールが作られました。

7.php.iniに以下を追記します。

extension=gd.so

8.php.iniを修正したので、apacheを再起動します。
※httpd.confは触っていませんが、apacheを再起動する際は念のため構文チェックをしましょう。

<構文チェック>

# /usr/local/apache2/bin/apachectl -t
Syntax OK
#

<apache再起動>

# /usr/local/apache2/bin/apachectl restart

あれっ!まだエラーが続いているんですが。。
なんで??

# php -m |grep gd を実行すると以下のエラーが出ていました。

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

調べまくっているとどうやらapacheのコンパイル時に静的に指定したもの(–with-gd)に対して、php.ini内で拡張モジュールとして指定したせいでエラーが出たようです。

ですので、php.ini内のextension=gd.soをコメントアウトして、apache再起動したらエラーは無くなりました。

;;extension=gd.so に修正。

apacheを再起動。

# /usr/local/apache2/bin/apachectl restart

再度、モジュールの確認。

# php -m | grep gd
gd
#

OK!

apacheのコンパイル時に静的に指定していない場合であれば、今回の拡張モジュールのやり方で大丈夫と思います。

でも、まだ「画像を切り抜く際にエラーが発生しました。」が出るんだけどなぁ。。

このエラーの解決方法が未だによくわかりません。。

引き続き、調べます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です