Ma version actuelle est 3.6.0. Lorsque j'essayais de passer directement à la version 3.6.2, le message d'erreur suivant s'affiche toujours:
Le téléchargement du package de mise à jour a échoué.
J'ai effectué plusieurs fois la mise à niveau sur le même site, mais je n'ai jamais rencontré ce problème. J'ai vérifié le fichier configuration.php et le dossier/tmp est défini sur 0755. De plus, j'ai consulté le journal des erreurs, il n'y a aucune information concernant cet échec.
Quelle pourrait en être la cause et où puis-je obtenir un message d'erreur plus détaillé que simplement "Le téléchargement a échoué"? J'héberge ce site sur mon propre serveur virtuel.
Vous pouvez télécharger le package de mise à niveau Joomla et le placer dans le dossier tmp via FTP.
Ensuite, exécutez à nouveau l'installation. Ça va marcher.
Fichier /administrator/components/com_joomlaupdate/models/default.php
Rechercher cette chaîne:
if (!$result || ($result->code != 200 && $result->code != 310))
Ajouter de nouveaux codes:
if (!$result || ($result->code != 200 && $result->code != 310 && $result->code != 303 && $result->code != 302))
C'est tout.
(La même solution pour la nouvelle version 3.6.5)
J'ai eu le même problème en essayant de mettre à jour Joomla de 3.6.2 à 3.6.3. Dans un premier temps, j'ai téléchargé le fichier zip et j'ai pu exécuter la mise à jour de cette façon. Donc, pour tous ceux qui recherchent un moyen simple: il suffit de télécharger le fichier zip de mise à jour et de le faire de cette façon.
Quoi qu'il en soit, sur la seconde instance 3.6.2, j'ai finalement fini par corriger le code pour suivre les redirections. La mise à jour vers 3.6.3 a réussi! Et bien sûr, cela a écrasé mon code corrigé. :-))
Ce que j’ai fait est en fait de corriger la fonction JHttpTransportStream.request () dans le fichier libraries/joomla/http/transport/stream.php
#BNN DEBUG BEGIN
// OLD CODE
// return $this->getResponse($headers, $content);
// NEW CODE
$response = $this->getResponse($headers, $content);
if($response->code==302 && $options['follow_location']==1) {
//received HTTP/302 Redirect, find "Location:" header
error_log('BNN DEBUG Location='.$response->headers['Location']);
return $this->request($method, new JUri($response->headers['Location']), $data, $headers, $timeout, $userAgent);
}
return $response;
#BNN DEBUG END
J'ai fait un peu de débogage et il semble que le fichier en cours de téléchargement - Joomla_3.6.2-Stable-Update_Package.Zip est derrière une redirection. Sur la ligne 315 de com_joomlaupdate/models/default.php, j'ai:
// Download the package
$result = $http->get($url);
où j'obtiens $ résultat-> code = 302 mais aucun fichier n'est téléchargé. Il doit y avoir une erreur de vérification ici, mais je ne sais pas assez sur Joomla pour dire quoi. Est-ce que quelqu'un sait comment avoir cette requête get pour ensuite suivre la redirection et télécharger le fichier car je pense que ce serait le correct correct.
Je ne peux actuellement pas ajouter de commentaire ici, alors je l'ai écrit à la place.