404 未找到 - 升级到 ownCloud 9 后无法访问登录页面

404 未找到 - 升级到 ownCloud 9 后无法访问登录页面

我尝试过包管理器升级和手动升级以迁移到最新的 ownCloud 版本 (9)。两种方法都得到相同的结果;页面http://localhost/owncloud不再显示登录页面。相反,我得到了一个404 Not Found错误页面。它抱怨:

该服务器上未找到请求的 URL /var/www/owncloud/index.php。

但该文件仍然存在,如下所示:

$ ll /var/www/owncloud/index.php
-rw-r--r-- 1 www-data www-data 2026 March  8 08:54 /var/www/owncloud/index.php

对此,我不明白,但我承认我对 php 了解甚少。

如果我从备份中恢复整个系统,ownCloud 8 又可以正常工作了。我尝试从此状态(再次)进行手动升级,结果是一样的。

为了完整起见,下面是我在手动升级中使用的步骤:

sudo -u www-data php /var/www/owncloud/occ maintenance:mode --on

tar xjf owncloud-9.0.0.tar.bz2

sudo service apache2 stop

sudo mv /var/www/owncloud /var/www/owncloud-old

sudo cp -avr owncloud /var/www

sudo cp backups/config.php /var/www/owncloud/config/config.php

sudo service apache2 start

sudo chown -R www-data:www-data /var/www/owncloud

sudo -u www-data /var/www/owncloud/occ upgrade

sudo -u www-data php /var/www/owncloud/occ maintenance:mode --off

apache2error.log没有显示问题。这可能是配置问题,但我不具备专业知识来理解为什么 OC 8 和 OC 9 的行为会有所不同。 owncloud.conf是:

Alias /owncloud "/var/www/owncloud/"

<Directory "/var/www/owncloud">
    Options +FollowSymLinks
    AllowOverride All

    <IfModule mod_dav.c>
      Dav off
    </IfModule>

    SetEnv HOME /var/www/owncloud
    SetEnv HTTP_HOME /var/www/owncloud


</Directory>

<Directory "/var/www/owncloud/data/">
  # just in case if .htaccess gets disabled
  Require all denied
</Directory>

根据 fkraiem 的评论,我如何确定/知道我的服务器没有寻找/var/www/var/www/owncloud/index.php编辑:在虚拟机中执行以下操作后,问题仍然存在,这可能排除了这种情况:

cd /var/www
sudo mkdir var
sudo mkdir var/www
sudo cp -avr owncloud var/www

/编辑

这到底是 php 的问题吗?根据 apache 的症状“找不到文件但文件存在”我该如何开始排除故障?

答案1

这个问题有一个跟踪器,网址为https://github.com/owncloud/core/issues/22970

目前的解决方法是编辑文件/var/www/owncloud/.htaccess并注释掉该行

RewriteRule .* index.php [PT,E=PATH_INFO:$1]

就像这样

# RewriteRule .* index.php [PT,E=PATH_INFO:$1]

保存并从命令行执行sudo service apache2 restart

如果有人能花时间向我解释此行代码的作用,我将非常感激。

相关内容