はじめに
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のコンパイル時に静的に指定していない場合であれば、今回の拡張モジュールのやり方で大丈夫と思います。
でも、まだ「画像を切り抜く際にエラーが発生しました。」が出るんだけどなぁ。。
このエラーの解決方法が未だによくわかりません。。
引き続き、調べます。
コメント