Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/01/2021, à 09:04

abecidofugy

Utiliser PHP-FPM et non FastCGI pour php

Salut,

J’ai ça comme message dans une installation fraîche de Drupal 9.x :

Votre serveur ne peut pas afficher la progression des transferts de fichiers. Cela nécessite que PHP soit exécuté avec mod_php ou PHP-FPM et non FastCGI.

J’ai ça dans mon panel et comme config :
1611821658.png

1611822002.png

Que dois-je modifier dans mes fichiers de conf pour utiliser PHP-FPM ?

Merci !

//EDIT : mon virtualhost :

<VirtualHost 128.128.128.128:8443>

    ServerName domaine.fr

    ServerAdmin info@domaine.fr
    DocumentRoot /home/monuser/web/domaine.fr/public_html
    ScriptAlias /cgi-bin/ /home/monuser/web/domaine.fr/cgi-bin/
    Alias /vstats/ /home/monuser/web/domaine.fr/stats/
    Alias /error/ /home/monuser/web/domaine.fr/document_errors/
    #SuexecUserGroup monuser monuser
    CustomLog /var/log/apache2/domains/domaine.fr.bytes bytes
    CustomLog /var/log/apache2/domains/domaine.fr.log combined
    ErrorLog /var/log/apache2/domains/domaine.fr.error.log
    <Directory /home/monuser/web/domaine.fr/stats>
        AllowOverride All
    </Directory>
    <Directory /home/monuser/web/domaine.fr/public_html>
        AllowOverride All
        SSLRequireSSL
        Options +Includes -Indexes +ExecCGI
        </Directory>
    SSLEngine on
    SSLVerifyClient none
    SSLCertificateFile /home/monuser/conf/web/domaine.fr/ssl/domaine.fr.crt
    SSLCertificateKeyFile /home/monuser/conf/web/domaine.fr/ssl/domaine.fr.key
    SSLCertificateChainFile /home/monuser/conf/web/domaine.fr/ssl/domaine.fr.ca

    <FilesMatch \.php$>
        SetHandler "proxy:unix:/run/php/php7.4-fpm-domaine.fr.sock|fcgi://localhost"
    </FilesMatch>
    SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0

    IncludeOptional /home/monuser/conf/web/domaine.fr/apache2.ssl.conf_*

</VirtualHost>
dpkg -l *-fpm* | grep ii
ii  php7.3-fpm     7.3.26-1+ubuntu20.04.1+deb.sury.org+1 amd64        server-side, HTML-embedded scripting language (FPM-CGI binary)
ii  php7.4-fpm     7.4.14-1+ubuntu20.04.1+deb.sury.org+1 amd64        server-side, HTML-embedded scripting language (FPM-CGI binary)

Dernière modification par abecidofugy (Le 28/01/2021, à 15:45)

Hors ligne

#2 Le 28/01/2021, à 23:09

bobe

Re : Utiliser PHP-FPM et non FastCGI pour php

C'est déjà le cas si je me fie à la ligne "Server API" du phpinfo. Je ne sais pas pourquoi drupal donne ce message.

Hors ligne

#3 Le 28/01/2021, à 23:29

krodelabestiole

Re : Utiliser PHP-FPM et non FastCGI pour php

abecidofugy a écrit :

Cela nécessite que PHP soit exécuté avec mod_php ou PHP-FPM et non FastCGI.

ouais je pige pas non plus... FPM = FastCGI Process Manager, soit l'implémentation de PHP en FastCGI...
cette phrase n'a donc pas de sens. (peut-être une mauvaise traduction ?)
et ton phpinfo montre que tu es bien en FPM...

je poserais la question sur un forum drupal spécialisé...

Hors ligne

#4 Le 28/01/2021, à 23:43

bobe

Re : Utiliser PHP-FPM et non FastCGI pour php

https://git.drupalcode.org/project/drup … nstall#L80

C'est parce qu'il y a "mod_fastcgi" ou "mod_fcgi" dans la variable "SERVER_SOFTWARE" renseignée par Apache. Après, je sais pas pourquoi ils font ça.

Hors ligne

#5 Le 29/01/2021, à 09:59

bruno

Re : Utiliser PHP-FPM et non FastCGI pour php

Effectivement ton serveur Apache est configuré pour une utilisation de PHP-FPM avec le module fcgid (fcgid_module ou mod_fcgid). Passons sur la configuration alambiquée et sans doute peu sécurisé de l'hôte virtuel (les « panels » c'est souvent la panade).

@bobe nous donne l'explication du message d'erreur. Et je trouve ce bout de code des plus étranges…
La variable SERVER_SOFTWARE ne contient d'information sur les modules que si Apache est configuré avec :

ServerTokens Full

ce qui ne devrait jamais être la cas sur un serveur en production.
Donc sur un serveur bien configuré cette variable ne contient que : "Apache" et la vérification du script d'installation est inutile et doit passer.
Sur un serveur qui  donne toutes les informations, la vérification du script échoue car mod_fcgid est présent dans la chaîne SERVER_SOFTWARE, super !

Pour résumer, dans ton cas je te conseille de vérifier ta configuration d'Apache pour avoir ces directives (généralement dans /etc/apache2/mods-available/security.conf)

ServerTokens Prod
ServerSignature Off
TraceEnable Off

Après avoir relancé Apache la vérification de l'installateur Drupal devrait passer.

Dernière modification par bruno (Le 29/01/2021, à 09:59)

#6 Le 29/01/2021, à 12:48

abecidofugy

Re : Utiliser PHP-FPM et non FastCGI pour php

@bruno : non non, j’ai pu l’installer sans souci. Le message d’erreur n’était que présent que dans le tableau de bord.

Je viens d’appliquer par contre les directives d’Apache que tu me suggérais, et ça ne change rien. Après avoir relancé Apache2 bien sûr.

Hors ligne

#7 Le 29/01/2021, à 13:28

abecidofugy

Re : Utiliser PHP-FPM et non FastCGI pour php

(merci à tous, au fait)

Je vais faire un rapport de bug à Drupal.org

Hors ligne

#8 Le 29/01/2021, à 13:51

bruno

Re : Utiliser PHP-FPM et non FastCGI pour php

J'ai cru que cela bloquait l'installation. Si c'est juste un avertissement (erroné a à mon sens) ce n'est pas très grave. Mais je ne comprends pas l'objectif de ce bout de code dans Drupal.

Vérifie bien, avec curl par exemple, que ton serveur n'envoie pas trop d'infos.
Exemple avec les directives sus-mentionnés :

curl -I https://example.com
HTTP/2 200 
date: Fri, 29 Jan 2021 12:49:48 GMT
server: Apache
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
…

Sans ces directives, le serveur révèle bien plus d'informations :

curl -I https://example.com
HTTP/2 200 
date: Fri, 29 Jan 2021 12:50:21 GMT
server: Apache/2.4.46 (Debian) mod_fcgid/2.3.9 OpenSSL/1.1.1d mod_wsgi/4.6.5 Python/2.7
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
…