Introduction

I upgraded my Joomla 3.10.3 site to Joomla 4.0.4. It should be an easy upgrade but in reality, the upgrade was a little hassle. 

Joomla 3.10.3 will be end of support on August, 27th, 2023. See Joomla 3.10: End of Support Handling for more information. Now, there is no urgent need to upgrade but that will change when the end of support date comes closer.

In this blog, I will describe all the steps that I took to test the upgrade. I can tell you that the upgrade has been completed successfully on my life environment. This is the first article that I write on Joomla 4.0.4.

Preparation

I am running HyperV on my Windows 11 laptop. So, I created a Linux CentOS 8 server and I installed Apache, MySQL and PHP 7. A snapshot was made after each step. When the CentOS 8 server was running fine I made a backup from my Joomla 3.10.3 site with Akeeba. I restored the Akeeba backup on my CentOS 8 server, followed by a snapshot. My 'play environment' was born. 
The domain name is demo-omgeving.eu. As that domain is not registered it can only be accessed from my Windows 11 laptop as I changed the local hosts file. And very safe because it does not affect the life environment. And it is not crawled by search engines. 

Before upgrade steps on Joomla 3.10.3

During various tests I found out that I had some extensions installed that are not compatible with Joomla 4:

So, I moved away from Editor - Switcher to switch editor 2 as it is Joomla 4 compliant. To make the migration easier I installed this extension before the actual migration. The Comments extension was replaced by Akeeba Engage. The previous comments extension was no longer updated. And SeoBoss was also no longer maintained and the domain name refers to a Korean site. Not that promising. 

The T4 Plugin is Joomla 4 compliant, but not in my case. It screwed up the Joomla 4.0.4 site. 

Preparations on Joomla 3.10.3

All these steps are performed on the local development environment, running on HyperV with CentOS 8 and with the domain name www.demo-omgeving.eu.

Check the current state.

The most important thing: on the test environment check if the site is working fine. If there are any issues solve them first and make a new snapshot. 

Login as a superuser and check for updates.

After login click on [View Updates] to see all the available updates.

Install the latest updates.

Install all the applicable updates. 

Change the update channel to Joomla Next

If needed, go to System -> Global Configuration and click on Joomla! Update in the list. Change the Update Channel to Joomla Next. Click [Save and Close] when done.

Click Update Now if the Update Channel has already been set

Alternatively, click on [Update Now] if the update channel has already been set to Joomla Next.

Click on Live Update to see the blocking issues.

Click on [Live Update] to see the blocking issues. 

Update Server error.

You might get an Update Server error. That is a known issue and more information can be found in this GitHub article

The blocking items.

All the blocking items. But... be careful here. Not all the blocked items are actual blocking. For example, System - Slideshow CK is shown as blocking but in reality, it is not blocking and working fine on Joomla 4. The same for switch editor 2. But SeoBoss Renderer is really blocking. You only find out during excessive testing. 

Uninstall the very old Editor Switcher.

Uninstall the very old Editor - Switcher. As told earlier, this extension does not work on Joomla 4. And it has already been replaced by editor switcher 2. 

Uninstall SeoBoss.

Uninstall SeoBoss as it does not work on Joomla 4.

Export T4 Page Builder settings.

In the past, I used T4 Page Builder. As I am not using it anymore I will uninstall it. Before uninstalling export the current settings. So, if I want to I can use these settings with T4 Page Builder on Joomla 4 if I want to. 

Uninstall all T4 Page Builder items.

Uninstalling all T4 Page Builder items because I will not use this extension on Joomla 4.

Delete all the template styles you do not need anymore.

Deleting all the template styles that are not needed anymore. In this case just one. 

Use a FTP Manager to backup the t4_blank template.

In my case the T4 Framework caused my website to crash. The only option is to uninstall T4 Framework and install it again on Joomla 4. Therefore, I make a backup to the current settings. T4 Framework has no option to export or import settings. 

Check for issues on the vendors website.

Check for issues on the vendor's website. 

Version 205 is the latest version.

There is an update available that Joomla's update service has not detected yet. So downloading...

Switch Editor version 204 has already been installed.

Switch editor 2.0.4 has been installed, thus 2.0.5 is a newer version. 

Install the new Switch Editor version.

Installing the new Switch Editor version.

And visible in Manage Extensions.

And visible in Manage Extensions.

Install the update to Joomla 4.0.4.

And start the actual upgrade to Joomla 4.0.4. At the time of writing this blog the current version. And keep your fingers crossed. The update can take a couple of minutes.

If you receive a 504 Bad Gateway error in your browser then you can do the following:

  • Edit the file httpd.conf with the command sudo nano /etc/httpd/conf/httpd.conf
  • Under 'ServerName' add the following:
    Timeout 600
    Modify TimeOut in httpd.conf file.

Actions on Joomla 4

Now, Joomla 3.10.3 has been upgraded to Joomla 4.0.4, at the time of writing of this blog post the current version. 

And the new administrator interface.

And the new administrator interface.

But the homepage is not shown correctly.

The homepage is not shown correctly. 

Change to CAPTCHA.

Change the captcha to CAPTCHA - reCAPTCHA.

Enable Log Almost Everything.

Enable Log Almost Everything. Then you can see what item is causing issues. 

Save and close.

Click [Save & Close] to save the settings.

Set Cassiopeia as the default template.

Set Cassiopeia as the default template.

Uninstall T4 Template.

Uninstall the T4 Template. 

The homepage is shown perfectly with Cassiopeia.

Now, the page is shown with the default Cassiopeia template. 

Install T4 Blank and T4 System plugin.

Install T4 Blank and T4 System plugin.

Upload the local folder.

Upload the local folder to .\templates\t4_blank. Then all the settings are restored.

Set T4 Template Blank as the default.

Set T4 Template Blank as the default template. 

And the homepage is shown perfect with Joomla 4.

And the website is shown perfectly with Joomla 4. 

And another page is shown as well..

And another page is shown perfectly as well. 

everything.php

The file ./administrator/logs/everything.php

It is obvious that T4 is causing issues here. That is why I decided to uninstall and install T4 again.

Disable log almost everything.

Disable Log Almost Everything. Click [Save & Close].

Install the latest updates.

Click on [Updates are available] on the Home Dashboard.

Install the updates.

Install all the available updates. 

FPA.

If you have issues you can use the Forum Post Assistant from the Joomla Forum. It is very useful to find all kinds of issues. Also, if you want to post on the Joomla Forum it is appreciated if you add the output that the FPA generates. 

If you have any questions please do not hesitate to use the form below. Also, you can use the Joomla Forum to ask questions. Please keep in mind that I am not a real Joomla / Linux expert.