我将运行在 Debian (buster) 上的 Apache 服务器上的 php 版本从 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