Yes, it’s a very long title, but we couldn’t think of one that is more descriptive. Obviously, there’s a story to this, so relax, and let us tell you a bedtime story (it’s 11:31 PM here in Montreal).
A client called us around 9 PM (about 2 hours ago), and told us that all of a sudden, his Joomla website stopped working. It was displaying the following error:
Fatal error: Call to a member function get() on a non-object in plugins/system/remember/remember.php on line 94
So we asked him what he was doing when this problem happened. He told us that he clicked on the Update Now button on his Joomla 3.1.5 website. In other words, updating Joomla to the latest version simply crashed his website.
So, we started fixing his website, which was more or less like a cat and mouse game. Here’s what happened:
- We downloaded a fresh copy of Joomla 3.2.
-
We extracted the file remember.php which is located under the plugins/system folder and we uploaded it to the corresponding place on the Joomla website.
-
We checked the website and we had the exact same problem on the file joomla.php which is located under the plugins/user/joomla folder.
-
Again, we extracted the file joomla.php which is located under the plugins/user/joomla folder and we uploaded it to the corresponding place on the Joomla website.
-
We checked the website and at that time, it displayed a MySQL query which was not working. In other words, the database was officially corrupt and needed to be fixed.
-
We thought hey, maybe we can fix the database (Joomla has this wonderful “Fix Database” tool), so we logged in to Joomla’s backend, and we clicked on Extensions -> Extensions Manager -> Database, and to our horror, we saw another MySQL query error, claiming that the table #__content_types did not exist. The Fix button which should’ve been on the upper left corner was nowhere to be found. So, we had to address that missing table issue before moving forward.
-
So, we checked the file joomla.sql which is located under the installation/sql/mysql folder in Joomla’s 3.2 install file, and we were able to figure out the structure of the #__content_types in order to re-create it. So, we logged in to phpMyAdmin (from cPanel) and we ran the queries starting from line 392 (CREATE TABLE IF NOT EXISTS `#__content_types`…) until line 426 (in the joomla.php file). This re-created the #__content_types table and filled it with the right data.
-
After doing the above, we were able to see the Fix button, and so we clicked it, and that fixed the database. The website worked normally after that.
Now, the big question is, why did we have to all the above? Our client just had a very basic Joomla 3.1.5 website with no 3rd part extensions whatsoever and he just wanted to update to the latest Joomla version. There was nothing wrong with what he did, but there was definitely something wrong with Joomla. The sad part is that this whole thing cost him money he shouldn’t have paid in the first place, and the loss of potential clients for a few hours. Not good!
While we have warned against Joomla 3.x a year ago, we thought that maybe, just maybe, Joomla 3.x got better after a full year. Obviously, it didn’t, in fact, it got worse and it got more dangerous. We should probably wait for a few more months to see where Joomla 3.x will be before recommending it (or not) to our clients.
Meanwhile, do not hit that Update Now button in your Joomla’s backend unless you have your website and your database both backed up. But, if you already clicked that button and caused your Joomla website to stop working (and you don’t have a backup), then fear not, we’re here to help. Just contact us and we’ll restore your website back to working condition in no time and for a very affordable fee.
[…] recommend. Joomla administrators must wait at least a couple of weeks to perform the update, since some (official) Joomla updates can crash the website, even if that website doesn’t have a modified core! Additionally, even an official Joomla […]