Although php cURL extension was missing from my system, Joomla did not notify me on that.
The result was that when I was trying to update my joomla, I am getting just "Message: Download of update package failed."
Just try to install a fresh Joomla.
curl is not reported that is missing:
Also this not reported even in the error log (apache and joomla)
I have turned on the maximum logging.
It seems that error messages is suppressed somewehere in the code?
Joomla 3.6.2
Distributor ID: Ubuntu
Description: Ubuntu 16.04.1 LTS
Release: 16.04
Codename: xenial
PHP 7.0.8-1+deb.sury.org~xenial+1 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.8-1+deb.sury.org~xenial+1, Copyright (c) 1999-2016, by Zend Technologies
You are right.. the file downloads correctly, problem is in the return code.
I debugged my issue and the actual problem is in administrator/components/com_joomlaupdate/models/default.php function downloadPackage
// Download the package
$result = $http->get($url);
if (!$result || ($result->code != 200 && $result->code != 310))
{
return false;
}
in my case $http->get($url); returns $result->code=302 which then returns FALSE, so Joomla "thinks" the update failed, which is not the case.
IIRC there's already an open issue on that (or it's been patched, hard to remember anymore with 400+ open items).
Status | New | ⇒ | Closed |
Closed_Date | 0000-00-00 00:00:00 | ⇒ | 2016-09-26 10:24:21 |
Closed_By | ⇒ | mijalis |
curl itself isn't a requirement to use Joomla or any of the internal HTTP connectors; one of curl, socket (the
fsockopen
function), or stream connections are used if available.You've got a mix of items here it seems. The installer should probably add a check if any external connectors are available for use. As for your "failed to download" issue, it is most likely not related to curl missing (if your server was able to fetch the update data then it has a connector).