Installing PHP Zip Extension

PhpCentosZipPearPhp Extension

Php Problem Overview


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

Php Solutions


Solution 1 - Php

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 2 - Php

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 3 - Php

for PHP 7.3 / Ubuntu

sudo apt install php7.3-zip

for PHP 7.4

sudo apt install php7.4-zip

Solution 4 - Php

Simply use sudo yum install php-zip

Solution 5 - Php

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.

Solution 6 - Php

For php 7.3 on ubuntu 16.04

sudo apt-get install php7.3-zip

Solution 7 - Php

The best way to install the Zip extension in php7.2 on CentOS would be as below:

  1. Find the available extention by searching with yum command

    yum search zip

  2. This will list all the zip packages. We need to look for the php7.2 zip package enter image description here

  1. Then if your php version is 7.2 then run the command

    yum install ea-php72-php-zip

This will definetly resolve your issue.

Cheers !!

Solution 8 - Php

On Amazon Linux 2 and PHP 7.4 I finally got PHP-ZIP to install and I hope it helps someone else - by the following (note the yum install command has extra common modules also included you may not need them all):

sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

sudo yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm

sudo yum -y install yum-utils

sudo yum-config-manager --enable remi-php74

sudo yum update

sudo yum install php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json

sudo pecl install zip

php --modules

sudo systemctl restart httpd

Solution 9 - Php

If you use php5.6 then execute this:

sudo apt-get install php5.6-zip

Solution 10 - Php

The PHP5 version do not support in Ubuntu 18.04+ versions, so you have to do that configure manually from the source files. If you are using php-5.3.29,

# cd /usr/local/src/php-5.3.29
# ./configure --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=MySQL_LOCATION/mysql --prefix=/usr/local/apache/php --with-config-file-path=/usr/local/apache/php --disable-cgi --with-zlib --with-gettext --with-gdbm --with-curl --enable-zip --with-xml --with-json --enable-shmop
# make
# make install

Restart the Apache server and check phpinfo function on the browser <?php echo phpinfo(); ?>

Note: Please change the MySQL_Location: --with-mysql=MySQL_LOCATION/mysql

Solution 11 - Php

I tried changing the repository list with:

http://security.ubuntu.com/ubuntu bionic-security main universe http://archive.ubuntu.com/ubuntu bionic main restricted universe

But none of them seem to work, but I finally found a repository that works running the following command

add-apt-repository ppa:ondrej/php

And then updating and installing normally the package using apt-get

As you can see it's installed at last.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionUbunfuView Question on Stackoverflow
Solution 1 - PhpAjeet ShahView Answer on Stackoverflow
Solution 2 - PhpcweiskeView Answer on Stackoverflow
Solution 3 - PhpM_R_KView Answer on Stackoverflow
Solution 4 - Phppriojeet priyomView Answer on Stackoverflow
Solution 5 - PhpRafael Corrêa GomesView Answer on Stackoverflow
Solution 6 - Phpkosala manojeewaView Answer on Stackoverflow
Solution 7 - PhpH ArifView Answer on Stackoverflow
Solution 8 - PhpDr. Aaron DishnoView Answer on Stackoverflow
Solution 9 - PhpD.DimitriogloView Answer on Stackoverflow
Solution 10 - PhpLakshmikandanView Answer on Stackoverflow
Solution 11 - PhpVikas JangraView Answer on Stackoverflow