※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

PHPのインストール(zlib利用)

zlibを利用してPHP上でgzipの圧縮解凍を行うことができます。
こちらの内容を一部下記に置き換えることで利用可能となります。

configure実行

下記コマンドでconfigureを実行します。
./configure \
--with-apxs=/usr/sbin/apxs \
--with-zlib \
--without-mysql \
--with-mbstring \
--with-pgsql \
--enable-mbstring \
--enable-mbstr-enc-trans \
--enable-safe-mode \
--enable-debug \
--enable-magic-quotes \
--enable-track-vars \
--enable-inline-optimization
$ cd php-4.4.7
$ ./configure \
--with-apxs=/usr/sbin/apxs \
--with-zlib \
--without-mysql \
--with-mbstring \
--with-pgsql \
--enable-mbstring \
--enable-mbstr-enc-trans \
--enable-safe-mode \
--enable-debug \
--enable-magic-quotes \
--enable-track-vars \
--enable-inline-optimization

下記のような表示が行われれば成功です。
Thank you for using PHP.


DLL作成

gcc \
-shared \
-o libphp4.dll \
-Wl,--out-implib=libphp4.dll.a \
-Wl,--export-all-symbols \
-Wl,--whole-archive libphp4.a /bin/libhttpd.dll \
-Wl,--no-whole-archive \
-lcrypt \
-lresolv \
-lpq \
-lz
$ cd libs
$  gcc \
-shared \
-o libphp4.dll \
-Wl,--out-implib=libphp4.dll.a \
-Wl,--export-all-symbols \
-Wl,--whole-archive libphp4.a /bin/libhttpd.dll \
-Wl,--no-whole-archive \
-lcrypt \
-lresolv \
-lpq \
-lz

lsコマンドでlibphp4.dllが存在するか確認します。
ls libphp4.dll
$ ls libphp4.dll
libphp4.dll*


PHPの動作確認

PHPの単体動作確認

サンプルスクリプト実行

サンプルスクリプトを実行して結果が表示できるか確認します。
まず下記のような内容のzlib.phpというファイルを用意します。
<?php
$filename = "zlibtest.gz";
$s = "Only a test, test, test, test, test, test, test, test!\n";

$zp = gzopen($filename, "w9");
gzwrite($zp, $s);
gzclose($zp);

$zp = gzopen($filename, "r");
gzpassthru($zp);
gzclose($zp);
?>

下記コマンドで実行確認します。
php zlib.php
下記のように結果が表示できればOKです。
$ touch zlibtest.gz
$ php zlib.php
Only a test, test, test, test, test, test, test, test!

また上記で作成されたzlibtest.gzをgunzipコマンドで解凍して中身を見てみるのも良いでしょう。
gunzip zlibtest.gz
$ gunzip zlibtest.gz
$ more zlibtest 
Only a test, test, test, test, test, test, test, test!


下記のように表示された場合はきちんとzlib.phpを実行する前にtouchを実行したか確認してください。
Warning: gzopen(): Unable to access zlibtest.gz
in /var/www/htdocs/zlib.php on line 5





以下コメント
  • 2007/04/21 PHP4.4.6向けの内容に修正 -- uhaku (2007-04-21 19:29:09)
  • 2007/05/06 PHP4.4.7向けの内容に修正 -- uhaku (2007-05-06 21:30:55)