Php zip présent mais pas pris en charge

Tags: #<Tag:0x00007f63f1acee08>

bonjour

sur mon cms (backdrop, fork de drupal) j’ai le message suivant

Sorry, it seems that the PHP .zip extension is not loaded on your server.
You will not be able to download any projects using Project Installer until this is fixed.
Please contact your website administrator. 

pourtant php-zip est bien installé

$ php -m
[PHP Modules]
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
Phar
posix
readline
Reflection
session
shmop
SimpleXML
sockets
sodium
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xml
xmlreader
xmlwriter
xsl
Zend OPcache
zip
zlib

[Zend Modules]
Zend OPcache

j’ai fait un

ls -l /etc/php/7.3/apache2/conf.d/20-zip.ini
lrwxrwxrwx 1 root root 35 Aug 13 12:29 /etc/php/7.3/apache2/conf.d/20-zip.ini -> /etc/php/7.3/mods-available/zip.ini

et voici ce qui est activé

$ ls /etc/apache2/mods-enabled/
access_compat.load  auth_basic.load  authz_core.load  autoindex.conf  deflate.load  env.load     mime.load         negotiation.conf  php7.3.load      proxy.load       rewrite.load   status.conf
alias.conf          authn_core.load  authz_host.load  autoindex.load  dir.conf      filter.load  mpm_prefork.conf  negotiation.load  proxy.conf       reqtimeout.conf  setenvif.conf  status.load
alias.load          authn_file.load  authz_user.load  deflate.conf    dir.load      mime.conf    mpm_prefork.load  php7.3.conf       proxy_fcgi.load  reqtimeout.load  setenvif.load

Bonjour tuxrouge,

J’avais confondu un module pour apache2 et un module pour PHP.
Voilà un élément de discussion à adapter qui peut aider :

il est bien dans mods-available

$ ls -l /etc/php/7.3/mods-available/
total 136
-rw-r--r-- 1 root root 74 Apr 13 21:05 calendar.ini
-rw-r--r-- 1 root root 71 Apr 13 21:05 ctype.ini
-rw-r--r-- 1 root root 68 Apr 13 21:05 curl.ini
-rw-r--r-- 1 root root 66 Apr 13 21:05 dom.ini
-rw-r--r-- 1 root root 70 Apr 13 21:05 exif.ini
-rw-r--r-- 1 root root 74 Apr 13 21:05 fileinfo.ini
-rw-r--r-- 1 root root 69 Apr 13 21:05 ftp.ini
-rw-r--r-- 1 root root 64 Apr 13 21:05 gd.ini
-rw-r--r-- 1 root root 73 Apr 13 21:05 gettext.ini
-rw-r--r-- 1 root root 71 Apr 13 21:05 iconv.ini
-rw-r--r-- 1 root root 68 Apr 13 21:05 imap.ini
-rw-r--r-- 1 root root 68 Apr 13 21:05 json.ini
-rw-r--r-- 1 root root 76 Apr 13 21:05 mbstring.ini
-rw-r--r-- 1 root root 71 Apr 13 21:05 mysqli.ini
-rw-r--r-- 1 root root 72 Apr 13 21:05 mysqlnd.ini
-rw-r--r-- 1 root root 79 Apr 13 21:05 opcache.ini
-rw-r--r-- 1 root root 69 Apr 13 21:05 pdo.ini
-rw-r--r-- 1 root root 74 Apr 13 21:05 pdo_mysql.ini
-rw-r--r-- 1 root root 70 Apr 13 21:05 phar.ini
-rw-r--r-- 1 root root 71 Apr 13 21:05 posix.ini
-rw-r--r-- 1 root root 76 Apr 13 21:05 readline.ini
-rw-r--r-- 1 root root 71 Apr 13 21:05 shmop.ini
-rw-r--r-- 1 root root 72 Apr 13 21:05 simplexml.ini
-rw-r--r-- 1 root root 73 Apr 13 21:05 sockets.ini
-rw-r--r-- 1 root root 73 Apr 13 21:05 sysvmsg.ini
-rw-r--r-- 1 root root 73 Apr 13 21:05 sysvsem.ini
-rw-r--r-- 1 root root 73 Apr 13 21:05 sysvshm.ini
-rw-r--r-- 1 root root 75 Apr 13 21:05 tokenizer.ini
-rw-r--r-- 1 root root 67 Apr 13 21:05 wddx.ini
-rw-r--r-- 1 root root 66 Apr 13 21:05 xml.ini
-rw-r--r-- 1 root root 72 Apr 13 21:05 xmlreader.ini
-rw-r--r-- 1 root root 72 Apr 13 21:05 xmlwriter.ini
-rw-r--r-- 1 root root 66 Apr 13 21:05 xsl.ini
-rw-r--r-- 1 root root 66 Apr 13 21:05 zip.ini

j’ai donc fait

sudo phpenmod zip
sudo systemctl restart apache2

mais sans succès j’ai toujours le même message d’erreur

Je crois qu’il faut aussi relancer PHP.
Je ne sais pas dans quel ordre vis à vis du service apache2
Je crois qu’il faut relancer PHP en premier.

Ou alors il te faut une réponse plus expérimentée.
En tout cas, le phpenmod zip est nécessaire ; soit dans un fichier de configuration
ou en ligne de commande.

Bonjour,

Retour de :
ls -l /etc/php/7.3/apache2/conf.d/

j’ai tenté de recharger php

~$ sudo /etc/init.d/php7.3-fpm restart
[ ok ] Restarting php7.3-fpm (via systemctl): php7.3-fpm.service.

sans plus de succès

~$ ls -l /etc/php/7.3/apache2/conf.d/
total 0
lrwxrwxrwx 1 root root 39 Aug 12 17:15 10-mysqlnd.ini -> /etc/php/7.3/mods-avail                                                                                                 able/mysqlnd.ini
lrwxrwxrwx 1 root root 39 Aug 12 17:15 10-opcache.ini -> /etc/php/7.3/mods-avail                                                                                                 able/opcache.ini
lrwxrwxrwx 1 root root 35 Aug 12 17:15 10-pdo.ini -> /etc/php/7.3/mods-available                                                                                                 /pdo.ini
lrwxrwxrwx 1 root root 35 Aug 12 17:15 15-xml.ini -> /etc/php/7.3/mods-available                                                                                                 /xml.ini
lrwxrwxrwx 1 root root 40 Aug 12 17:14 20-calendar.ini -> /etc/php/7.3/mods-avai                                                                                                 lable/calendar.ini
lrwxrwxrwx 1 root root 37 Aug 12 17:14 20-ctype.ini -> /etc/php/7.3/mods-availab                                                                                                 le/ctype.ini
lrwxrwxrwx 1 root root 36 Aug 12 17:15 20-curl.ini -> /etc/php/7.3/mods-availabl                                                                                                 e/curl.ini
lrwxrwxrwx 1 root root 35 Aug 12 17:15 20-dom.ini -> /etc/php/7.3/mods-available                                                                                                 /dom.ini
lrwxrwxrwx 1 root root 36 Aug 12 17:14 20-exif.ini -> /etc/php/7.3/mods-availabl                                                                                                 e/exif.ini
lrwxrwxrwx 1 root root 40 Aug 12 17:14 20-fileinfo.ini -> /etc/php/7.3/mods-avai                                                                                                 lable/fileinfo.ini
lrwxrwxrwx 1 root root 35 Aug 12 17:15 20-ftp.ini -> /etc/php/7.3/mods-available                                                                                                 /ftp.ini
lrwxrwxrwx 1 root root 34 Aug 12 17:15 20-gd.ini -> /etc/php/7.3/mods-available/                                                                                                 gd.ini
lrwxrwxrwx 1 root root 39 Aug 12 17:15 20-gettext.ini -> /etc/php/7.3/mods-avail                                                                                                 able/gettext.ini
lrwxrwxrwx 1 root root 37 Aug 12 17:15 20-iconv.ini -> /etc/php/7.3/mods-availab                                                                                                 le/iconv.ini
lrwxrwxrwx 1 root root 36 Aug 12 17:15 20-imap.ini -> /etc/php/7.3/mods-availabl                                                                                                 e/imap.ini
lrwxrwxrwx 1 root root 36 Aug 12 17:15 20-json.ini -> /etc/php/7.3/mods-availabl                                                                                                 e/json.ini
lrwxrwxrwx 1 root root 40 Aug 12 17:15 20-mbstring.ini -> /etc/php/7.3/mods-avai                                                                                                 lable/mbstring.ini
lrwxrwxrwx 1 root root 38 Aug 12 17:15 20-mysqli.ini -> /etc/php/7.3/mods-availa                                                                                                 ble/mysqli.ini
lrwxrwxrwx 1 root root 41 Aug 12 17:15 20-pdo_mysql.ini -> /etc/php/7.3/mods-ava                                                                                                 ilable/pdo_mysql.ini
lrwxrwxrwx 1 root root 36 Aug 12 17:15 20-phar.ini -> /etc/php/7.3/mods-availabl                                                                                                 e/phar.ini
lrwxrwxrwx 1 root root 37 Aug 12 17:15 20-posix.ini -> /etc/php/7.3/mods-availab                                                                                                 le/posix.ini
lrwxrwxrwx 1 root root 40 Aug 12 17:15 20-readline.ini -> /etc/php/7.3/mods-avai                                                                                                 lable/readline.ini
lrwxrwxrwx 1 root root 37 Aug 12 17:15 20-shmop.ini -> /etc/php/7.3/mods-availab                                                                                                 le/shmop.ini
lrwxrwxrwx 1 root root 41 Aug 12 17:15 20-simplexml.ini -> /etc/php/7.3/mods-ava                                                                                                 ilable/simplexml.ini
lrwxrwxrwx 1 root root 39 Aug 12 17:15 20-sockets.ini -> /etc/php/7.3/mods-avail                                                                                                 able/sockets.ini
lrwxrwxrwx 1 root root 39 Aug 12 17:15 20-sysvmsg.ini -> /etc/php/7.3/mods-avail                                                                                                 able/sysvmsg.ini
lrwxrwxrwx 1 root root 39 Aug 12 17:15 20-sysvsem.ini -> /etc/php/7.3/mods-avail                                                                                                 able/sysvsem.ini
lrwxrwxrwx 1 root root 39 Aug 12 17:15 20-sysvshm.ini -> /etc/php/7.3/mods-avail                                                                                                 able/sysvshm.ini
lrwxrwxrwx 1 root root 41 Aug 12 17:15 20-tokenizer.ini -> /etc/php/7.3/mods-ava                                                                                                 ilable/tokenizer.ini
lrwxrwxrwx 1 root root 36 Aug 12 17:15 20-wddx.ini -> /etc/php/7.3/mods-availabl                                                                                                 e/wddx.ini
lrwxrwxrwx 1 root root 41 Aug 12 17:15 20-xmlreader.ini -> /etc/php/7.3/mods-ava                                                                                                 ilable/xmlreader.ini
lrwxrwxrwx 1 root root 41 Aug 12 17:15 20-xmlwriter.ini -> /etc/php/7.3/mods-ava                                                                                                 ilable/xmlwriter.ini
lrwxrwxrwx 1 root root 35 Aug 12 17:15 20-xsl.ini -> /etc/php/7.3/mods-available                                                                                                 /xsl.ini
lrwxrwxrwx 1 root root 35 Aug 12 18:11 20-zip.ini -> /etc/php/7.3/mods-available                                                                                                 /zip.ini

je vais sûrement dire un bêtise mais si ça ne vient pas de php ni de apache est-ce que ça ne pourrait pas venir d’un autre composant ou d’un truc plus basique que j’aurai laissé passer ?

(pour info, le cms est dans /var/www/html si ça peut aider)

Tu utilises php-fpm ou le module php d’apache ?
Vu les retours de ton premier message tu n’utilises pas php-fpm… et le module zip est bien activé.

comment puis-je m’assurer qu’il s’agit du module php d’apache.
de mémoire après avoir eu le message j’ai installé php-zip mais ça n’a rien changé

Si c’est toi qui administre le serveur tu le sais forcément…
Sinon il faut regarder la configuration de ton hôte virtuel.

oui c’est moi qui administre mais n’ayant que peu de compétence dans le domaine je ne fais que suivre des tuto
et du coup je ne pense pas avoir créé d’hôte virtuel parce que je n’ai que le cms sur le serveur, directement dans /var/www/html

Je suppose donc que tu utilises l’hôte virtuel par défaut /etc/apache2/sites-available/000-default.conf et aussi que tu utilises libapache2-mod-php et non php-fpm (qui est plus complexe à configurer).
Si c’est bien le cas je ne vois pas d’où vient le problème car le module php-zip est bien installé et activé. Ou alors tu utilises une vielle version de Drupal non compatible avec PHP 7.3.

Tu peux quand même donner le retour (en root) de :
apache2ctl -t
apache2ctl-t -D DUMP_VHOSTS

Si tu n’utilises pas php-fpm, tu peut le virer :
apt autoremove --purge php-fpm php-fpm7.3

# /usr/sbin/apache2ctl -t
Syntax OK
# /usr/sbin/apache2ctl -t -D DUMP_VHOSTS
VirtualHost configuration:
*:80                   sd-101288.dedibox.fr (/etc/apache2/sites-enabled/000-default.conf:1)

je suis allé faire un tour du côté de /var/log/apache2/error.log après avoir rechargé apache et j’ai ça

[Tue Aug 13 14:24:14.592324 2019] [mpm_prefork:notice] [pid 15053] AH00169: caught SIGTERM, shutting down
[Tue Aug 13 14:24:14.838158 2019] [mpm_prefork:notice] [pid 16136] AH00163: Apache/2.4.38 (Debian) configured -- resuming normal operations
[Tue Aug 13 14:24:14.838295 2019] [core:notice] [pid 16136] AH00094: Command line: '/usr/sbin/apache2'

et dans /var/log/debug je vois

Aug 13 11:41:39 sd-101288 libapache2-mod-php7.3: php_invoke exif: already enabled for PHP 7.3 apache2 sapi
Aug 13 11:41:39 sd-101288 libapache2-mod-php7.3: php_invoke gd: already enabled for PHP 7.3 apache2 sapi
Aug 13 11:41:39 sd-101288 libapache2-mod-php7.3: php_invoke pdo_mysql: already enabled for PHP 7.3 apache2 sapi
Aug 13 11:41:39 sd-101288 libapache2-mod-php7.3: php_invoke ctype: already enabled for PHP 7.3 apache2 sapi
Aug 13 12:07:21 sd-101288 php7.3-xml: php_invoke dom: already enabled for PHP 7.3 apache2 sapi
Aug 13 12:07:21 sd-101288 php7.3-xml: php_invoke dom: already enabled for PHP 7.3 cli sapi
Aug 13 12:07:22 sd-101288 php7.3-xml: php_invoke simplexml: already enabled for PHP 7.3 apache2 sapi
Aug 13 12:07:22 sd-101288 php7.3-xml: php_invoke simplexml: already enabled for PHP 7.3 cli sapi
Aug 13 12:07:23 sd-101288 php7.3-xml: php_invoke wddx: already enabled for PHP 7.3 apache2 sapi
Aug 13 12:07:23 sd-101288 php7.3-xml: php_invoke wddx: already enabled for PHP 7.3 cli sapi
Aug 13 12:07:24 sd-101288 php7.3-xml: php_invoke xml: already enabled for PHP 7.3 apache2 sapi
Aug 13 12:07:24 sd-101288 php7.3-xml: php_invoke xml: already enabled for PHP 7.3 cli sapi
Aug 13 12:07:25 sd-101288 php7.3-xml: php_invoke xmlreader: already enabled for PHP 7.3 apache2 sapi
Aug 13 12:07:26 sd-101288 php7.3-xml: php_invoke xmlreader: already enabled for PHP 7.3 cli sapi
Aug 13 12:07:27 sd-101288 php7.3-xml: php_invoke xmlwriter: already enabled for PHP 7.3 apache2 sapi
Aug 13 12:07:27 sd-101288 php7.3-xml: php_invoke xmlwriter: already enabled for PHP 7.3 cli sapi
Aug 13 12:07:28 sd-101288 php7.3-xml: php_invoke xsl: already enabled for PHP 7.3 apache2 sapi
Aug 13 12:07:28 sd-101288 php7.3-xml: php_invoke xsl: already enabled for PHP 7.3 cli sapi
Aug 13 12:29:56 sd-101288 php7.3-zip: php_invoke zip: already enabled for PHP 7.3 apache2 sapi
Aug 13 12:29:56 sd-101288 php7.3-zip: php_invoke zip: already enabled for PHP 7.3 cli sapi

Tu as touché aux fichiers php.ini ? (/etc/php/7.3/cli/php.ini et /etc/php/7.3/apache2/php.ini)
Ceci dit les messages dans debug ne sont pas bloquants.

On peut voir le contenu de /etc/apache2/sites-enabled/000-default.conf , si tu l’as modifié ?

Tu utilises bien la dernière version de Drupal ?

non, pas touché aux php.ini
j’utilise pas drupal mais backdrop qui est un fork de drupal

et pas touché non plus à 000-default.conf

<VirtualHost *:80>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        #ServerName www.example.com

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual host. For example the
        # following line enables the CGI configuration for this host only
        # after it has been globally disabled with "a2disconf".
        #Include conf-available/serve-cgi-bin.conf
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

comme tout semble bon je commence à me demander si le problème ne viendrai pas du message d’erreur qui en fait ne serait pas le bon.
je m’explique. la traduction de l’interface n’est pas complète. Peut être qu’une erreur dans le .po renvoi ce message pour un autre. Ce qui m’embête dans mon hypothèse c’est que le message est en anglais et que je suppose qu’il n’a pas été modifié.

Du coup existe t’il un moyen pour m’assurer que l’extension zip de php est bien prise en charge (un fichier test ou un utilitaire) ?

si ça aide

# php --ini
Configuration File (php.ini) Path: /etc/php/7.3/cli
Loaded Configuration File:         /etc/php/7.3/cli/php.ini
Scan for additional .ini files in: /etc/php/7.3/cli/conf.d
Additional .ini files parsed:      /etc/php/7.3/cli/conf.d/10-mysqlnd.ini,
/etc/php/7.3/cli/conf.d/10-opcache.ini,
/etc/php/7.3/cli/conf.d/10-pdo.ini,
/etc/php/7.3/cli/conf.d/15-xml.ini,
/etc/php/7.3/cli/conf.d/20-calendar.ini,
/etc/php/7.3/cli/conf.d/20-ctype.ini,
/etc/php/7.3/cli/conf.d/20-curl.ini,
/etc/php/7.3/cli/conf.d/20-dom.ini,
/etc/php/7.3/cli/conf.d/20-exif.ini,
/etc/php/7.3/cli/conf.d/20-fileinfo.ini,
/etc/php/7.3/cli/conf.d/20-ftp.ini,
/etc/php/7.3/cli/conf.d/20-gd.ini,
/etc/php/7.3/cli/conf.d/20-gettext.ini,
/etc/php/7.3/cli/conf.d/20-iconv.ini,
/etc/php/7.3/cli/conf.d/20-json.ini,
/etc/php/7.3/cli/conf.d/20-mbstring.ini,
/etc/php/7.3/cli/conf.d/20-mysqli.ini,
/etc/php/7.3/cli/conf.d/20-pdo_mysql.ini,
/etc/php/7.3/cli/conf.d/20-phar.ini,
/etc/php/7.3/cli/conf.d/20-posix.ini,
/etc/php/7.3/cli/conf.d/20-readline.ini,
/etc/php/7.3/cli/conf.d/20-shmop.ini,
/etc/php/7.3/cli/conf.d/20-simplexml.ini,
/etc/php/7.3/cli/conf.d/20-sockets.ini,
/etc/php/7.3/cli/conf.d/20-sysvmsg.ini,
/etc/php/7.3/cli/conf.d/20-sysvsem.ini,
/etc/php/7.3/cli/conf.d/20-sysvshm.ini,
/etc/php/7.3/cli/conf.d/20-tokenizer.ini,
/etc/php/7.3/cli/conf.d/20-wddx.ini,
/etc/php/7.3/cli/conf.d/20-xmlreader.ini,
/etc/php/7.3/cli/conf.d/20-xmlwriter.ini,
/etc/php/7.3/cli/conf.d/20-xsl.ini,
/etc/php/7.3/cli/conf.d/20-zip.ini

Je pense donc que c’est un bug de backdrop. Comme je l’ai dit ta configuration est bonne et le module php zip est bien activé.

À tout hasard installe aussi php bz2 :
apt install php-bz2

ça n’a rien changé

mais je viens de faire un tour dans les raport de backdrop et effectivement zip ne semble pas pris en charge

Extensions PHP Activées : date, dom, filter, gd, hash, json, pcre, pdo, session, SimpleXML, SPL, xml

donc ça confirmerai un bug de backdrop

Tu peux t’en assurer avec un tout petit script php avec la fonction phpinfo()
https://www.php.net/manual/fr/function.phpinfo.php

apparemment zip est bien là

## zip

|Zip|enabled|
| --- | --- |
|Zip version|1.15.4|
|Libzip headers version|1.5.1|
|Libzip library version|1.5.1|

si tu veux jeter un coup d’oeil (je désactiverai un peu plus tard)
http://aroeven-occitanie.fr/phpinfo.php

Je dirais que oui aussi.