web-dev-qa-db-ja.com

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

Apache2のerror.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を探していないことをどのように確認/知ることができますか? EDIT:仮想マシンで次の操作を行った後、問題が解決しないため、おそらくこれは除外されます。

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

/編集

結局のところ、これはPHPの問題ですか?ファイルは見つからないが存在するというApacheの症状に基づいてトラブルシューティングを開始するにはどうすればよいですか?

1
Tfb9

https://github.com/owncloud/core/issues/2297 にこの問題のトラッカーがあります。

当面の回避策は、ファイル/var/www/owncloud/.htaccessを編集し、行をコメントアウトすることです。

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

そのようです

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

保存し、コマンドラインからSudo service Apache2 restartを実行します。

その行が何を意味するのかを私に説明してくれた人に感謝します。

4
Tfb9