PHP-ZIP Installation

There have been many problems about the installation of the php-zip module. Since Mid of 2006 the php-zip module does not require the zziplib anymore - it uses its own implementation (which is a clean approach in a double sense - there are no source code comments). So, the following might possibly be only relevant for older installations.

Chris Branch has been kind enough to jot down the points of a successful php-zip installation sending it to me in May 2006. I am quoting his text verbatim - again, I do not know whether it works or not as I am not using any PHP for real work.

Software Packages
  • Apache 2.4.21 (Linux)
  • PHP 4.3.9
  • ZZIPLIB 0.10.82
  • Special requirement: static linking
Setting up ZZIPLIB
  • Extract files from zziplib-0.10.82.tar.bz2 to a new folder.
  • ./configure --enable-static
  • make
  • make install
Rebuilding PHP to include ZIP support
  • Modify PHP build file and add "--with-zip" [no dir needed because default /usr/local on my machine]
  • make
  • make install
Modifying the Apache Installation
  • Change to Apache source code directory
  • Change to "src" subdirectory and edit existing Makefile. [***]
    Add: EXTRA_LIBS=/usr/local/lib/libzzip.a
  • Change back to parent folder (cd ..)
  • make
  • /usr/local/etc/httpd/bin/apachectl stop
  • make install
  • /usr/local/etc/httpd/bin/apachectl start

[***] Note: That step is the critical step that's not obvious. Apparently, when you build PHP as a static library and include the "--with-zip" option, it creates a static library for PHP with an external dependency on zziplib.a. However, the Apache configure script and resulting Makefile doesn't take this into account, so Apache won't link unless you hand-edit the Apache Makefile. (Maybe there's a better place to make this change so that you don't have to re-fix Apache's Makefile each time you run Apache's ./configure. However, I didn't spend the time to investigate that). 2009-08-23