|
PHPでzipの解凍をしたい。
マニュアルを読むとZIP関数なるものがあるが、別途インストールが必要(PHP 5.2.0以降なら標準なのかな?)。
PHPをコンパイルすればいけそうですが、さすがに面倒。
PECL経由でインストールしました。
そのメモです。
まずは、必要なパッケージをyumにてインストールしておきます。
# yum install php-devel
# yum install zlib-devel
# yum install php-pecl-memcache
PECLというのは、C言語で書かれたPHPで利用できる拡張ライブラリらしいですね。
上記の yum install で使える様になってます。
ここで、
# pecl install zip
とすると、一気に処理してくれて『zip.so』というモジュールファイルを作成してくれます。
後は、コレを『php.ini』で指定(『extension=zip.so』と追記)し、apache を再起動。
phpinfo();とか書いてブラウザで見れば、zip が enabled になってるはずです。
…が、自分の場合、ココではまりました。
何度apacheを再起動しても、有効になってくれません。
apache の error_logで、zip.so が読めないエラーが出てました。
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/zip.so' - /usr/lib/php/modules/zip.so: cannot open shared object file: Permission denied in Unknown on line 0
SELinuxですかね。
# ls -Z で見ると、
-rwxr-xr-x root root user_u:object_r:tmp_t zip.so
他のに合わせれば大丈夫そう…。
# chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t zip.so
-rwxr-xr-x root root system_u:object_r:textrel_shlib_t zip.so
apache 再起動。
無事、zipが有効になり、PHPにてZIP関数が使える様になりました。
※ 『php』に繋がる関連物を 視覚的に探しだせるサイトを作ってみました(よろしければクリックしてみてくださいね)。
リンク元:
(1) : http://www.google.com/search?hl=ja&num=50&q=usr%2Flib%2Fphp+so&lr=lang_ja&aq=f&oq=
(1) : http://www.google.com/search?hl=ja&rls=com.microsoft:ja&q=php+zip+%E8%A7%A3%E5%87%8D&start=10&sa=N
ページ閲覧者数:6人
[ php ] 一覧へ
|