I am trying to install ziparchive and domdocument on nginx web server that has the latest WordPress. In order to run Avada theme, I need these two on the local CentOS 7 test
try yum search zip |grep -i php
and install with package name came back
like - sudo yum install ea-php73-php-zip.x86_64
try yum search zip |grep -i php
and install with package name came back
I was able to resolve this issue via the following:
yum install yum-utils
wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum install remi-release-7.rpm
yum-config-manager --enable remi-php72
yum install php72-php-pecl-zip
echo "extension=/opt/remi/php72/root/usr/lib64/php/modules/zip.so" >> /etc/php.d/zip.ini
The issue was due to using the remi repo which doesn't place the module in one of the default locations PHP expects. Setting the absolute path to zip.so in the extension variable under /etc/php.d/zip.ini fixes the issue.
You can find the location of zip.so on your system via the following if the above path doesn't work:
updatedb
locate zip.so
php-json.x86_64 7.2.3-2.el7.remi @remi-php72
php72-php-json.x86_64 7.2.3-2.el7.remi @remi-safe
Looks like your installation is a mess, you have installed half of the php- packages (base packages) and half of the php72-php- (SCL packages)
Read the FAQ about Difference between php-* and php##-php-* packages ?
php-fpm.x86_64 7.2.3-2.el7.remi @remi-php72
As you are using FPM as base package from remi-php72, you need zip extension from the same repository (which is probably not enabled, chech with yum repolist
)
Drop the unneeded packages
yum remove php72\*
As explained by the wizard, enable the repository permanently to ensure all extensions will be pulled from it
yum-config-manager --enable remi-php72
yum install php-pecl-zip
echo "extension=zip.so" >> /etc/php.d/zip.in
Never do this, each package provides its configuration file to enable the provided extension.
You can try: yum install php-pecl-zip.x86_64
Try installing that and enabling it by running: echo "extension=zip.so" >> /etc/php.d/zip.ini
This method works for me:
First type: yum search zip |grep -i php
then it will appear you all modules related to ZIP extensions with various of PHP version like so:
ea-php54-php-zip.x86_64 : A module for PHP applications that need to handle .zip
ea-php55-php-zip.x86_64 : A module for PHP applications that need to handle .zip
ea-php56-php-zip.x86_64 : A module for PHP applications that need to handle .zip
ea-php70-php-zip.x86_64 : A module for PHP applications that need to handle .zip
ea-php71-php-zip.x86_64 : A module for PHP applications that need to handle .zip
ea-php72-php-zip.x86_64 : A module for PHP applications that need to handle .zip
ea-php73-php-zip.x86_64 : A module for PHP applications that need to handle .zip
select whatever version you working with by: yum install ea-php72-php-zip.x86_64
finally, restart the Apache through service httpd restart