因此,在最近的 Arch 系统升级之后,我的 NextCloud 服务器似乎不再工作,目前给我"This version of Nextcloud is not compatible with > PHP 7.4. You are currently running 8.0.1."
php -v
现在给了我PHP 8.0.1
但是我确实也/usr/bin/php7
安装了(PHP 7.4.14)。
我基本上只使用 PHPnextcloud
(当前版本 v20.0.6-1),通过 Apache +php-fpm
所以我想知道什么是正确的“拱门方式”或解决方法,选择继续使用php7
?(至少目前如此)
有什么方法可以让我例如降级php
和php-fm
包或者别的什么吗?(最好不要破坏其他东西)。或者我或许只是应该等待新版本与当前版本nextcloud
兼容?php
答案1
终于让 NextCloud 重新工作了。我想在这里发布一些关于如何操作的说明,以供我自己将来参考,并作为其他可能面临同样问题的人的提示。
我很抱歉没有把答案写得更详细、更简洁。但我写得太乱了,我甚至不确定我是否漏掉了其中的一点或多点。
已安装的 Arch 软件包:
php7 php7-apache php7-apcu php7-fpm php7-gd php7-igbinary php7-imagick php7-imap php7-intl php7-memcache php7-memcached php7-pgsql php7-redis php7-sqlite php7-xsl
(这些可能取决于所需/安装的 Nextcloud 应用程序,请参阅Nextcloud 先决条件了解更多详情。
检查(并编辑)/etc/php7/php.ini对于所需的 PHP 扩展:
添加任何缺失的 php 扩展/模块。
$ php7 -m # confirm that the needed modules are enabled
[PHP Modules]
bcmath
bz2
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gd
gmp
hash
iconv
igbinary
imagick
imap
intl
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
Phar
posix
readline
redis
Reflection
session
SimpleXML
SPL
standard
tokenizer
xml
xmlreader
xmlwriter
Zend OPcache
zip
zlib
[Zend Modules]
Zend OPcache
启用并启动php-fpm7:
$ sudo systemctl enable php-fpm7.service && sudo systemctl start php-fpm7.service
php-fpm.service
(注意:由于 nextcloud 是我唯一使用的东西,所以我也禁用了它,尽管这可能是不必要的)
将其添加到运行 nextcloud 的 Apache 虚拟主机:
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php-fpm7/php-fpm.sock|fcgi://localhost/"
</FilesMatch>
使固定nextcloud systemd cronjobs:
只需更改php
为php7
即可/etc/systemd/system/nextcloudcron.service
。
ExecStart=/usr/bin/php7 -f /srv/http/nextcloud/cron.php
重新启动必要的服务,或者重新启动服务器。
那应该可以做到..我想..