GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Php Fpm fonctionne, mais ignore la version de Sethandler ?

Notre serveur est Ubuntu 18.04.5 LTS (GNU/Linux 4.15.0-135-generic x86_64).

Nous avons suivi les instructions de https://tecadmin.net/install-multiple-php-version-apache-ubuntu/ il y a quelque temps et avons fait fonctionner PHP 5.6 et 7.2 lorsque 7.2 était nouveau, et avons mis à jour et ajouté 7.3 et 7.4 avec aucun problème jusqu'à ce matin. Hier ça marchait bien mais aujourd'hui non. Nous avons emballé la mise à jour tôt hier, mais elle n'a pas nécessité de redémarrage et ne pense pas qu'elle ait redémarré toute seule du jour au lendemain en tant que uptime dit que nous sommes proches de 15 jours.

Alors aujourd'hui, nous avons recommencé à répéter le processus et nous l'avons fait, en redémarrant apache2 après chaque étape :

Essayé :a2enmod actions fcgid alias proxy_fcgi et j'ai obtenu :ERREUR :Le module fcgid n'existe pas !

apt install apache2 libapache2-mod-fcgid et cela a fonctionné et ajouté le package.

Est-ce que a2enmod actions fcgid alias proxy_fcgi et il a dit que tout était déjà activé .

Fichier de configuration vérifié dans /etc/apache2/sites-enabled :

<FilesMatch .php$>
    SetHandler "proxy:unix:/var/run/php/php5.6-fpm.sock|fcgi://localhost"
</FilesMatch>

J'ai essayé phpinfo() page et a obtenu PHP 7.4.15 au lieu de 5.6.40 attendu. Nous avons fait la même chose avec un 7.3 et avons obtenu le même 7.4 sur phpinfo() en utilisant également SetHandler de php7.3.

Puis essayé statut systemctl php5.6-fpm et php7.4-fpm et tous deux actifs (en cours d'exécution)

Mon /etc/apache2/conf/php5.6-fpm.conf est ici pour commencer, et celui pour php7.4-fpm.conf est le même sauf pour mod_php5/7 et la version SetHandler :

# Redirect to local php-fpm if mod_php is not available
<IfModule !mod_php5.c>
<IfModule proxy_fcgi_module>
    # Enable http authorization headers
    <IfModule setenvif_module>
    SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1
    </IfModule>

    <FilesMatch ".+.ph(ar|p|tml)$">
        <If "-f %{REQUEST_FILENAME}">
            SetHandler "proxy:unix:/run/php/php5.6-fpm.sock|fcgi://localhost"
        </If>
    </FilesMatch>
    <FilesMatch ".+.phps$">
        # Deny access to raw php sources by default
        # To re-enable it's recommended to enable access to the files
        # only in specific virtual host or directory
        Require all denied
    </FilesMatch>
    # Deny access to files without filename (e.g. '.php')
    <FilesMatch "^.ph(ar|p|ps|tml)$">
        Require all denied
    </FilesMatch>
</IfModule>
</IfModule>

Y a-t-il une erreur ici ou ailleurs que je devrais regarder ?

FWIW, nous avons un autre serveur avec une configuration similaire et il a le même problème, mais nous n'avons besoin que de l'application héritée 5.6 sur ce serveur pour le moment, nous avons donc simplement désactivé 7.4 en supprimant le fichier de pointeur dans /etc/apache2/conf- enabled/php7.4-fpm.conf et en redémarrant apache2. Cependant, ce serveur nécessite plusieurs versions.

En relation:Comment choisir la version par défaut de Gcc et G++ dans Ubuntu ?

Réponse acceptée :

Modifier :

<FilesMatch .php$>
    SetHandler "proxy:unix:/var/run/php/php5.6-fpm.sock|fcgi://localhost"
</FilesMatch>

pour :

<FilesMatch .php$>
   <If "-f %{REQUEST_FILENAME}">
    SetHandler "proxy:unix:/var/run/php/php5.6-fpm.sock|fcgi://localhost"
   </If>
</FilesMatch>

Ubuntu
  1. Mettre à niveau la version PHP vers 5.5 dans CentOS 6

  2. Mettre à jour la version PHP de 5.3 à 5.4 dans Centos6

  3. Comment changer de version de PHP

  4. Comment changer la version de PHP

  5. Comment désinstaller Java d'Ubuntu

Comment voir la sortie d'un script Php ?

Comment modifier globalement les directives PHP à partir de WHM dans EasyApache 4 ?

Comment changer la version PHP de cPanel ?

Comment changer la version PHP de votre site Web depuis SolidCP ?

Sélectionnez la version PHP dans cPanel

Changer la version de PHP