WordPress更新で「Abort class-pclzip.php: Missing zlib extensions」エラー
WordPressを4.2.2に自動更新しようとしたら、途中で「Abort class-pclzip.php: Missing zlib extensions」と出て停止してしまった。過去の更新時には問題なかったのだが、今回からzlibが関わるようになったのか?(phpを更新したが、その後初のWordPressの自動更新だったかも?)
php.iniに「extension=zlib.so」と追加すればいいとの記述もあった:
- [WP覚書]3.0自動アップグレード中に『Missing zlib extensions』エラー – ponnao-clip
- WordPressで自動アップグレードできないときの対処方法(Abort class-pclzip.php : Missing zlib extensions) – MiuxMiu
- wordplessのインストールとインポートプラグインの追加 – aswww log
- PHPのオプション – FreeBSD
のだが、追記後にApacheを再起動しても効果なく、さらに見ているとphpのサイトに「–with-zlib」コンパイルオプションが必要との情報が:
- PHP: インストール手順 – Manual
- PHPにおけるZlibサポートは、デフォルトでは利用できません。 Zlibサポートを有効にするには、PHPのコンパイル時にconfigureの オプションに–with-zlib[=DIR] を 指定してコンパイルする必要があります。
- Windows 版の PHP には この拡張モジュールのサポートが組み込まれています。これらの関数を使用 するために拡張モジュールを追加でロードする必要はありません。
phpinfo();でコンパイルオプションにzlibが含まれていないことを確認した上で再コンパイルし、Apacheを再起動すると、WordPressの自動更新が動作するようになった。
[追記]
さらに、画像編集用に「–with-gd」のオプションも必要だった。(画像トリミングができないといろいろ調べていたら、WordPress側でもPHP側でもなくてFirefoxアドオンの「Grab and Drag」が有効になっていて、トリミング用のドラッグができなくなっていたせいだった)。JPEGサポートも有効にしようとしたら、gdのオプションに追加して、「–with-jpeg-dir」も付けていないといけなかった。
$ ./configure --with-mysql --enable-mbstring --with-apxs --with-mcrypt --enable-intl --with-zlib --with-jpeg-dir --with-gd ; make clean ; make ... $ ./sapi/cli/php -r 'print_r(gd_info());' Array ( [GD Version] => bundled (2.1.0 compatible) [FreeType Support] => [T1Lib Support] => [GIF Read Support] => 1 [GIF Create Support] => 1 [JPEG Support] => 1 [PNG Support] => 1 [WBMP Support] => 1 [XPM Support] => [XBM Support] => 1 [JIS-mapped Japanese Font Support] => )
- Compiling PHP with GD and libjpeg support – Stack Overflow
- PHPでgdを有効にしてるのにjpg supportが有効にならない : Nacky – Snowland.net
で、gdオプションがない間にアップロードした画像は他のサイズが用意されず、フルサイズのみになるのかな…?後からの再生成機能はない?