Installing PHP Zip Extension

300,178

Solution 1

You may have several php.ini files, one for CLI and one for apache. Run php --ini to see where the CLI ini location is.

Solution 2

This is how I installed it on my machine (ubuntu):

php 7:

sudo apt-get install php7.0-zip

php 5:

sudo apt-get install php5-zip

Edit:
Make sure to restart your server afterwards.

sudo /etc/init.d/apache2 restart or sudo service nginx restart

PS: If you are using centOS, please check above cweiske's answer
But if you are using a Debian derivated OS, this solution should help you installing php zip extension.

Solution 3

for PHP 7.3 / Ubuntu

sudo apt install php7.3-zip

for PHP 7.4

sudo apt install php7.4-zip

Solution 4

Simply use sudo yum install php-zip

Solution 5

1 Step - Install a required extension

sudo apt-get install libz-dev libzip-dev -y

2 Step - Install the PHP extension

pecl install zlib zip

3 Step - Restart your Apache

sudo /etc/init.d/apache2 restart

Enable PHP ZIP Extension

If does not work you can check if the zip.ini is called in your phpinfo, to check if the zip.so was included.

Share:
300,178
Ubunfu
Author by

Ubunfu

I currently work on a small development team in the Metro-Detroit area. I graduated with the Kettering University class of 2016, receiving a Bachelor's degree in Computer Science with a System and Data Security concentration.

Updated on July 08, 2022

Comments

  • Ubunfu
    Ubunfu almost 2 years

    I'm attempting to install the PHP Zip extension.

    My server does not have external internet access, so I downloaded it myself from PECL: http://pecl.php.net/package/zip. I chose 1.10.2, the latest "stable" release, and transferred it to my server.

    I ran:

    pear install zip-1.10.2.tgz
    

    and added

    extension=zip.so
    

    to php.ini as instructed. I can see that zip.so was created and placed in the right extension_dir folder as well. I restarted apache and then checked to see if it was loaded by running:

    php -m
    

    Despite all of this, "zip" is still not in that list.

    Am I missing a step or doing something wrong? I thought this should be really simple, and I'm starting to feel pretty dumb, haha.

    Other probably important stuff:

    CentOS Apache 2.2.3 PHP 5.2.16