I tried to update Joomla on the test server and I got a message that the database structure needs to be updated, I tried to do that but something went wrong and I can no longer log in as administrator.
In the logs I have:
[Tue Apr 15 21:01:19.503518 2025] [proxy_fcgi:error] [pid 1603:tid 1671] [client <...>] AH01071: Got error 'PHP message: PHP Warning: require(/var/www/htdocs/libraries/vendor/composer/../guzzlehttp/promises/src/functions_include.php): Failed to open stream: No such file or directory in /var/www/htdocs/libraries/vendor/composer/autoload_real.php on line 41; PHP message: PHP Fatal error: Uncaught Error: Failed opening required '/var/www/htdocs/libraries/vendor/composer/../guzzlehttp/promises/src/functions_include.php' (include_path='.:/php/includes:/usr/local/lib/php') in /var/www/htdocs/libraries/vendor/composer/autoload_real.php:41\nStack trace:\n#0 /var/www/htdocs/libraries/vendor/composer/autoload_real.php(45): {closure}()\n#1 /var/www/htdocs/libraries/vendor/autoload.php(25): ComposerAutoloaderInite74751bc61b9f174f3b78ceeb7fa466b::getLoader()\n#2 /var/www/htdocs/libraries/bootstrap.php(42): require('...')\n#3 /var/www/htdocs/administrator/includes/framework.php(16): require_once('...')\n#4 /var/www/htdocs/administrator/includes/app.php(29): require_once('...')\n#5 /var/www/htdocs/administrator/index.php(32): require_once('...')\n#6 {main}\n thrown in /var/www/htdocs/libraries/vendor/composer/autoload_real.php on line 41'
Labels |
Added:
No Code Attached Yet
|
I thought I did something wrong, I didn't follow the necessary steps for the upgrade in a hurry!
So this means I'm stopping the update on the production server!
I couldn't upload the update file Joomla_5.3.0-Stable-Update_Package.zip, I got stuck on fulfilling the prerequisites for the update!
I didn't give importance to updating the database structure because I've done it a few times before without problems, but as soon as I tried to update the structure I lost the connection in the browser.
Now I get:
This page isn't working
<...> is currently unable to handle this request.
HTTP ERROR 500
The part of the site outside of Joomla works OK.
Did you update Joomla or did this happen when you tried to fix the database structure?
When tried to fix the database structure, I specified this above.
I didn't notice any other issues when I checked the prerequisites for the update.
There are no modified folders/files in /var/www/htdocs that belong to the Joomla installation.
So you are still on 5.2.6. Can you please compare your installation with a clean copy of 5.2.6 from joomla.org or github? The database fix task does not delete any files, so this is very likely another issue. Which PHP version are you using?
PHP 8.3.20 + PostgreSQL 17.4
I have 5.2.6 on the production server and here I have in the folder /var/www/htdocs/libraries/vendor/guzzlehttp/promises/src/ two extra files functions.php and the missing file from the error message, namely functions_include.php
You are not on 5.2.6 anymore, but on 5.3.0 already. Please delete the file /administrator/cache/autoload_psr4.php to see if that fixes the issue. The file is automatically recreated by Joomla.
I get the same error message above and /administrator/cache/autoload_psr4.php is not created.
Should I copy the two files functions.php and functions_include.php?
Can you please describe again, what you did? Step by step? Because somehow you ended up with at least a vendor folder which has only been partially updated to 5.3.0.
You are not on 5.2.6 anymore, but on 5.3.0 already. Please delete the file /administrator/cache/autoload_psr4.php to see if that fixes the issue. The file is automatically recreated by Joomla.
In /administrator/logs/joomla_update.php it does not appear that 5.3.0 was installed but 5.2.6 was successfully installed.
Update to version 5.2.6 is complete.
File Joomla_5.3.0-Stable-Update_Package.zip downloaded.
Starting installation of new version.
Test logging
Uploading update file
File [ROOT][TMP]/juRgRWWi downloaded.
Starting installation of new version.
I tried to update from the administrator console and received an error message similar to the one here before the Troubleshooting section (with different content). I cancelled and tried updating the database structure because I already had an error checking the prerequisites and here everything died.
I'm not alone @viocassel confirmed here
The 2 files /libraries/vendor/guzzlehttp/promises/src/functions.php
and /libraries/vendor/guzzlehttp/promises/src/functions_include.php
are deleted on update because they have become obsolete with the update of the composer dependency "guzzlehttp/promises" from version 1.5.3 to version 2.0.4 between Joomla 5.2 and 5.3.
Does it help if you copy these 2 files from your other 5.2.5 site?
I haven't tried to copy them without someone who knows what they're talking about asking me to!
I can try!
Tested on PHP 8.3 with PostgreSQL 16 using Upload & Update of the previously downloaded update package with the Joomla Update Component in backend. Due to your log I assume you did it the same way. No issue here. Unfortunately I don't have PostgreSQL 17 available for testing.
The 2 files
/libraries/vendor/guzzlehttp/promises/src/functions.php
and/libraries/vendor/guzzlehttp/promises/src/functions_include.php
are deleted on update because they have become obsolete with the update of the composer dependency "guzzlehttp/promises" from version 1.5.3 to version 2.0.4 between Joomla 5.2 and 5.3.Does it help if you copy these 2 files from your other 5.2.5 site?
I copied the two files, the site doesn't work but now I have access to the login interface as an administrator from lynx without JavaScript but not from the browser until tomorrow morning.
Tested on PHP 8.3 with PostgreSQL 16 using Upload & Update of the previously downloaded update package with the Joomla Update Component in backend. Due to your log I assume you did it the same way. No issue here. Unfortunately I don't have PostgreSQL 17 available for testing.
I'll see what I can do tomorrow from the admin console in the browser and get back to you.
It may be because of PostgreSQL 17 but I don't have anything in the log.
I've been using 5.2.6 with PostgreSQL 17.4 since release without any problems!
After copying the 2 files, I have access to the administrator console BUT the site cannot be accessed!
Site message:
Sorry, there was a problem we could not recover from.
The server returned a "500 - Whoops, looks like something went wrong."
Information from the administration console:
The installed version for Joomla is 5.2.6 but,
Database Version: 5.3.0-2025-03-14
Manifest Version: 5.2.6
I don't have any errors in the admin console and I'm still being offered to update to version 5.3.0!
Information from the administration console:
The installed version for Joomla is 5.2.6 but,
Database Version: 5.3.0-2025-03-14
Manifest Version: 5.2.6
@teoberi So how have you managed to have the Joomla version = 5.2.6, which is determined by the file libraries/src/Version.php
, and the Manifest Version = 5.2.6, which is determined by the file administrator/manifests/files/joomla.xml
, but a database schema version of 5.3.0-2025-03-14
, which can only be the case if the update SQL scripts from a Joomla 5.3.0 were present and the site was updated to 5.3.0 or someone has used the "Update Structure" button in the database schema check when these files were present?
From a normal, failed update this cannot happen. The updater unpacks the update package first, so the PHP and XML and so on files are those of a 5.3.0, then the database updates run, and then the obsolete files from 5.2.6 are removed. So having old files but new database can not happen when an update breaks.
There must have been done something in addition.
Anyway, what happens if you run the update to 5.3.0? Does it succeed?
I received the same message as yesterday!
The "files" folder does not exist!
I click "Cancel" and I still have access to the administrator console.
And in log:
[Wed Apr 16 12:53:07.927309 2025] [proxy_fcgi:error] [pid 1620:tid 1650] [client <...>:58154] AH01071: Got error 'PHP message: PHP Warning: mkdir(): Permission denied in /var/www/htdocs/administrator/components/com_joomlaupdate/extract.php on line 1140', referer: https://192.168.1.4/administrator/index.php?option=com_joomlaupdate&task=update.install&42e255e2c83dd2ebd8a10a8e315954b0=1
Yes, the files folder doesn't exist and I don't know why it can't be created!
I created the "files" folder and gave it the appropriate permissions and the installation was successful immediately!
The problem with the folder creation needs to be investigated!
Now Manifest Version = 5.3.0 has also been corrected and I don't have any error warnings!
Seems like your Joomla root folder is write-protected for the web user.
This has been the case until now with the same permissions and all updates so far have been carried out successfully.
What ownership and permissions do you have for the Joomla root folder?
The root folder has to be as writable for the webserver user as all subfolders. So 755 would be good. You just got lucky that Joomla hasn't added a new file/folder to the root folder of the installation in a long time.
Anyway, even if you may be able to fix that site so it seems to work somehow, there still might be something broken or incomplete, so if you have a backup from before the update I would recommend to restore that first, using an empty database and an empty (except of your custom files like e.g. .htaccess
) folder (which has the right permissions of course).
The root folder has to be as writable for the webserver user as all subfolders. So 755 would be good. You just got lucky that Joomla hasn't added a new file/folder to the root folder of the installation in a long time.
I will study this and get back to you!
I unzip Joomla into a folder in htdocs (Apache root folder) called tryjoomla, install it, then move the contents of the folder to htdocs and correct the variables in configuration.php
Until now I had root:root as the owner for htdocs but in 5.3.0 it is necessary to create a "files" folder in the Joomla root.
I did this manually but I don't know if it is an OK solution in the long term so I'm thinking of changing apache:apache for htdocs.
I found somewhere on the Joomla forum that I could only change it when there are updates.
I secured what I still had in the Apache root in such a way that only Joomla files and folders have the recommended owner, i.e. apache:apache
Many Joomla installation tutorials recommend the same thing, namely:
chown -R apache:apache /var/www/htdocs/
or
chown -R www-data:www-data /var/www/htdocs/
depending on the Apache username.
I too am having difficulties with the 5.3.0 update -- it has crashed the website. I copied the two files in the GuzzleHTTP folder and was able to get into Admin, but when I try to view the website I get:
Class "Joomla\CMS\Component\Router\Rules\PreprocessRules" not found
An error has occurred while processing your request.
I also see this in the Database structure:
I am getting warnings about updating to 5.3.0 and the public site is still down, how can I resolve this?
You should retry the update to 5.3.0 and the "Manifest version" issue will be resolved.
Post print-screens with Pre-Update Check for Joomla 5.3.0 to see if there are any issues blocking the update.
Check the owner and permissions for the Joomla root folder.
Status | New | ⇒ | Closed |
Closed_Date | 0000-00-00 00:00:00 | ⇒ | 2025-04-17 10:12:20 |
Closed_By | ⇒ | teoberi |
I also updated the production server, the only change was:
chown apache:apache htdocs
because for the rest of the folders and files I had set the owner during installation.
#45328 (comment)
This time there was no problem!
Problem solved, thanks @Hackwar and @richard67!
I've already had to restore the site once because of the update; I'm not willing to try it again right away. I will not be retrying the update until the weekend when the live newspaper website that was crashed by the update has fewer people depending on it.
Confirm