我最近将我的 nextcloud 机器从 Ubuntu 16.04 升级到 Ubuntu 18.04。之后,当我尝试访问 nextcloud 时,我收到“内部服务器错误”。我在 Apache 日志中没有找到任何内容,因此我搜索了cat /var/log/syslog | grep PHP
有关 PHP 错误的任何相关信息。我发现:
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/apcu.so' - /usr/lib/php/20151012/apcu.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/zip.so' - /usr/lib/php/20151012/zip.so: cannot open shared object file: No such file or directory in Unknown on line 0
我检查了该软件包php-zip
,发现它是为 php7.2 安装的,这是 Ubuntu 所指的 php 版本(用 检查php -v
)。
我找到了不使用库的原因。我想分享解决方案,以便其他人遇到这种情况时可以更轻松地解决问题。
答案1
我创建了一个 info.php:
<?php
phpinfo();
?>
发现 Apache 使用的是 php7.0 而不是 php7.2。修复方法很简单:
sudo a2enmod php7.2
sudo a2dismod php7.0
sudo service apache2 restart
此后,nextcloud 工作正常。我发现 dist 升级无法确保 apache 使用最新版本的 php,这很奇怪。希望这能帮助遇到麻烦的人 :)