
Я обновил версию php на моем сервере Apache, работающем на Debian (buster), с 7.3 до 8.1. Из-за старой установки Nextcloud мне пришлось сделать даунгрейд до php7.4. Даунгрейд прошел хорошо, следуя инструкциям, таким какэтот, но сервер все еще сообщает, что он находится на предыдущей версии 8.1.13. Я разместил простой phpversion()
файл, чтобы проверить версию сервера, и установка Nextcloud жалуется на неправильную версию. Это проблема кэша или какой-то файл конфигурации, который нужно изменить вручную?
- CLI:
php -v
возвращаетPHP 7.4.33 (cli) (built: Nov 8 2022 11:35:02) ( NTS )
php -c /etc/php/apache2/php.ini -v
читаетPHP 7.4.33
update-alternatives --config php
показывает* 2 /usr/bin/php7.4 74 manual mode
- Добавлен модуль php7.4 через
sudo a2enmod php7.4
- Удалил все остальные модули php через
sudo a2dismod phpX.Y
/etc/apache2/mods-enabled/ looks like this:
access_compat.load autoindex.load mime.load reqtimeout.load alias.conf deflate.conf mpm_prefork.conf rewrite.load alias.load deflate.load mpm_prefork.load setenvif.conf auth_basic.load dir.conf negotiation.conf setenvif.load authn_core.load dir.load negotiation.load socache_shmcb.load authn_file.load env.load php7.4.conf ssl.conf authnz_external.load filter.load php7.4.load ssl.load authz_core.load headers.load proxy.conf status.conf authz_host.load http2.conf proxy_fcgi.load status.load authz_user.load http2.load proxy.load unique_id.load autoindex.conf mime.conf reqtimeout.conf
Вывод phpinfo может бытьнайдено здесь
решение1
Как бы мне ни не нравилось отвечать на свой собственный вопрос, я все же нашел выход из этой проблемы. Я побежал
apt purge '^php8.1.*'
,перезапустил сервер и получил более раннюю версию php, работающую. Все равно было бы интересно узнатьпочемусервер выбрал последнюю версию, а не ту, на которую он хотел указать через update-alternatives --config php
.
решение2
Мне также пришлось отключить файл конфигурации php8.1-fpm
sudo a2disconf php8.1-fpm
и затем перезагрузите apache2
sudo systemctl reload apache2