PHP 7.0 загружается вместо PHP 7.2 на сервер ubuntu после обновления

Мне нужно установить PHP 7.2 на сервер LTS Ubuntu 16.04.6, на котором запущен PHP 7.0 с fpm.

Я установил php7.2, php7.2-fpm, включил модуль, отключил 7.0, установил альтернативы

/etc/alternatives/php -> /usr/bin/php7.2
/etc/alternatives/php-cgi -> /usr/bin/php-cgi7.2
/etc/alternatives/php-cgi-bin -> /usr/lib/cgi-bin/php7.2
/etc/alternatives/php-fpm.sock -> /run/php/php7.2-fpm.sock

Если я остановлю или удалю php7.0-fpm и использую php7.2-fpm, я получаю ошибку неверного шлюза 502. Если я перезапускаю php7.0-fpm, ошибка неверного шлюза 502 исчезает, но загружается PHP 7.0.33.

Версия Apache: Apache / 2.4.18 (Ubuntu)

Конфигурация

<IfModule !mod_php7.c>
<IfModule proxy_fcgi_module>
    <IfModule setenvif_module>
    SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1
    </IfModule>

    <FilesMatch ".+\.ph(ar|p|tml)$">
        SetHandler "proxy:unix:/run/php/php7.2-fpm.sock|fcgi://localhost"
    </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>

Что мне не хватает?


person SimoneB    schedule 26.01.2021    source источник
comment
Неправильная версия в конфиге vhosts?   -  person SubCore    schedule 26.01.2021
comment
Код @SubCore добавлен в сообщение :( все в порядке   -  person SimoneB    schedule 26.01.2021
comment
mod_php7 случайно на сервере? тогда они не загружают конфигурацию fpm.   -  person SubCore    schedule 26.01.2021
comment
Нет, mod_php7 работает правильно   -  person SimoneB    schedule 03.02.2021


Ответы (2)


Если ваш php_mod работает правильно, вы не загрузили модуль proxy_fcgi_module. Вы должны удалить <IfModule !mod_php7.c> вокруг <IfModule proxy_fcgi_module>, как в этой конфигурации.

<IfModule !mod_php7.c>
</IfModule>

<IfModule proxy_fcgi_module>
    <IfModule setenvif_module>
    SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1
    </IfModule>

    <FilesMatch ".+\.ph(ar|p|tml)$">
        SetHandler "proxy:unix:/run/php/php7.2-fpm.sock|fcgi://localhost"
    </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>
person SubCore    schedule 04.02.2021
comment
удалено, результата нет :( - person SimoneB; 22.04.2021

Хорошо, я обнаружил проблему.

На сервере настроен Cady, а в / etc / caddy / Caddyfile php fpm установлен на 7.0

Я решил создать символическую ссылку с php7.0 на 7.2 в / run / php, чтобы не пришлось связываться с Caddyfile.

person SimoneB    schedule 22.04.2021