我安装了 Ubuntu Server 20.04,除其他外,它还运行了一个裸机 Nextcloud 实例,使用 Apache 作为 Web 服务器。我安装了多个 PHP 版本,但到目前为止,Apache 使用的是 PHP 7.4。由于 Nextcloud 已弃用它,我试图迁移到 PHP 8.1(新的推荐版本,仍然不支持 PHP 8.2)。我尝试遵循许多指南来了解如何执行此操作,所有这些指南基本上都归结为安装 PHP 8.1 和所需的模块,使用a2dismod php7.4
禁用旧 PHP 版本,使用 启用新版本a2enmod php8.1
,然后使用 重新启动 Apachesystemctl restart apache2
。这是我遵循的最后一个:关联。但尽管如此,Apache 仍在使用 PHP 7.4。如果我尝试卸载 PHP 7.4,我的 Nextcloud 安装就会中断(我收到 503 错误)。我尝试了略微的变化,但总是失败,最终恢复了我在尝试之前创建的 lvm 快照。但我仍然没有恢复上次尝试的快照,在这里我执行了链接指南中的所有步骤,并且我没有卸载 PHP 7.4,所以我的 Nextcloud 仍在运行,但使用的是错误的版本。我可以检查什么或尝试修复此问题?感谢您的帮助,
鸟苷酸
答案1
最终,问题出在我有两个不同的网站(不是 Nextcloud 本身)在其目录内的 .conf 文件中sites-enabled
指定 PHP7.4-fpm 作为其处理程序,如下所示:
SetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost/"
禁用这些解决了问题。因此,如果一个网站指定了 PHP-fpm 版本而其他网站没有指定,Apache2 似乎会感到困惑,最终会将该版本强制应用于所有网站。我暂时将它们禁用,因为我没有使用它们,但我会在某处记下一条注释,以防我想再次使用它们时,记得更新它们的配置或 Nextcloud 的配置。