絖綛 N@i.jp  昨日:00019535
 今日:00009110
 総計:00082825
keywords
管理者専用
  Post   Add link   Control Panel 































新しいトピック
最新:10/01 12:07


新しいコメント
最新:07/28 16:47






管理人へMAIL

プライバシーポリシー

PHP7.3でもzip拡張モジュールを有効にしてみた

ウチのBlogでは使ってない筈なんだけど、何となく・・・


 PHP 7.3.2ビルド(configure)の際、以前の PHP 5.6 で有効にしていた機能は、できる限り有効にしたいと考えた。まぁ、使っていない機能を詰め込んでもメモリを無駄食いするだけなのだが、BlogのPHPソースの中身の事は何も知らないので、万一使っていた機能を削ってしまって動作異常で悩むのも嫌だ。
 と言うわけで、PHP 5.6 で指定していた configure のオプションを PHP 7.3.2 にも同じように指定したのだが、PHP 7.3系では --enable-zip オプション指定時に使用される libzipが PHPにバンドルされなくなったので、事前に自力で libzipをインストールしておく必要がある事が分かった。

 PHP: Zip - Manualを読むと、Windowsで良く使われているアーカイブ形式(.zip)を読み書きするための拡張モジュールらしい。99.9% 使っていないとは思うが、これも勉強と思い、とりあえず libzipのインストールができるか挑戦してみた。

1) libzipのダウンロード
libzipホームページ:<https://libzip.org>
 現時点での最新版は libzip-1.5.1 だが、libzip-1.5系は何故か SSLライブラリをリンクしようとする。そして、何故か分からんのだが、ウチの環境では OpenSSL、LibreSSL のどちらを使用させてもリンクでundefが出てコケる。単なる圧縮、伸張ライブラリが何故SSLを使うのか分からん(暗号化かなぁ?)。
 リリースノートを見ると、libzip-1.5系より前で一番新しいのは libzip-1.4.0 のようなので、<https://libzip.org/download/libzip-1.4.0.tar.xz>を使用することにした(*1)

$ xzcat libzip-1.4.0.tar.xz | tar xf -
$ cd libzip-1.4.0

2) ビルド方法("build.sh"スクリプト作成)
 lizip は cmake を使ったモダンなビルド方法になっていた。なので、事前に cmake もインストールしておく必要がある。ウチの自宅サーバ(Mac mini)には少し古い cmake をインストールしてあったが、正直使った記憶がない。cmake を使うのは今回が初めてかもしれない。ビルドスクリプトはこんな感じ。

#!/usr/local/bin/bash -x

export MACOSX_DEPLOYMENT_TARGET=10.4
export GCC="/usr/local"
export PATH="${GCC}/bin:$PATH"
export DYLD_LIBRARY_PATH="${GCC}/lib:${DYLD_LIBRARY_PATH}"
export CC="${GCC}/bin/gcc"
export CXX="${GCC}/bin/g++"

mkdir build
cd build
cmake ..
make
make test

3) ビルドしてインストール

$ chmod +x build.sh
$ ./build.sh
$ cd build
$ sudo make install

4) PHPの configure に指定

 これで libzip は用意できたので、PHP-7.3.2 の configure に以下の指定を追加してビルドすれば良いはずだ。

./configure --enable-zip --with-libzip=/usr/local

備考(*1)
 PHPは libzip-0.11.2(2013/12/19リリース)以降を推奨だそうで随分と古いものでも大丈夫っぽい。しかし、古い libzip には幾つかセキュリティバグが発見されているので、できるだけ新しいものを使った方が良いだろう。


< 過去の記事 [ 2月の Blog リスト ] 新しい記事 >

2019 calendar
2月
12
3456789
10111213141516
17181920212223
2425262728


掲示板
最新:08/15 17:19


GsBlog was developed by GUSTAV, Copyright(C) 2003, Web Application Factory All Rights Reserved.