J'ai essayé à la fois la mise à niveau du gestionnaire de paquets et une mise à niveau manuelle pour passer à la dernière version de ownCloud (9). Les deux méthodes aboutissent au même résultat. la page http://localhost/owncloud
ne montre plus la page de connexion. Au lieu de cela, je reçois une page d'erreur 404 Not Found
. Il se plaint:
L'URL demandée /var/www/owncloud/index.php est introuvable sur ce serveur.
mais ce fichier existe toujours, comme montré ici:
$ ll /var/www/owncloud/index.php
-rw-r--r-- 1 www-data www-data 2026 March 8 08:54 /var/www/owncloud/index.php
Cela, je ne comprends pas, mais je dois avouer que je sais très peu de choses sur php.
Si je restaure tout mon système à partir d’une sauvegarde, ownCloud 8 fonctionne à nouveau correctement. J'ai essayé (à nouveau) une mise à niveau manuelle à partir de cet état et le résultat est identique.
Pour être complet, voici les étapes que j'ai utilisées dans ma mise à niveau manuelle:
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
Le error.log
d'Apache2 ne montre pas de problème. Ce pourrait être un problème de configuration mais je ne possède pas l'expertise nécessaire pour comprendre pourquoi les OC 8 et 9 se comporteraient différemment. owncloud.conf
est:
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>
D'après les commentaires de fkraiem, comment puis-je m'assurer/savoir que mon serveur ne recherche pas /var/www/var/www/owncloud/index.php
? EDIT: Après avoir effectué les opérations suivantes sur une machine virtuelle, le problème persiste, ce qui l’a probablement empêché:
cd /var/www
Sudo mkdir var
Sudo mkdir var/www
Sudo cp -avr owncloud var/www
/modifier
Est-ce un problème php, après tout? Comment puis-je commencer le dépannage en se basant sur les symptômes d'Apache indiquant qu'un fichier est introuvable, mais qu'il existe?
Il existe un outil de suivi pour ce problème à l’adresse https://github.com/owncloud/core/issues/2297 .
La solution de rechange pour le moment est l'édition du fichier /var/www/owncloud/.htaccess
et la mise en commentaire de la ligne.
RewriteRule .* index.php [PT,E=PATH_INFO:$1]
ainsi
# RewriteRule .* index.php [PT,E=PATH_INFO:$1]
Enregistrez et à partir de la ligne de commande, faites Sudo service Apache2 restart
.
J'apprécierais que chacun prenne le temps de m'expliquer ce que cette ligne est censée faire.