Support

Akeeba Backup for Joomla!

#34671 9.0.1 still Fof message error

Posted in ‘Akeeba Backup for Joomla! 4 & 5’
This is a public ticket

Everybody will be able to see its contents. Do not include usernames, passwords or any other sensitive information.

Environment Information

Joomla! version
n/a
PHP version
n/a
Akeeba Backup version
n/a

Latest post by on Friday, 07 May 2021 20:17 CDT

joomleb

Hi guys, 

on the 8.0.1 Akeeba Backup release notes you wrote about a "...Update could fail on sites with old plugins we have removed years ago still installed..." and "...This release addresses this issue..."

A - Well, while updating Admin Tools Pro to 6.0.1 I have no any issue, updating to Akeeba Backup 8.0.1 I still have back the issue you mentioned.Is it right ?

B - Installing the Akeeba Backup 8.0.1 over the previous 7.5.3 does not return any issue. Do I have to install it instead to update ?

C - About the old plugins you mentioned, Do we have to manually uninstall them? Which ones are they ? Or, Are they uninstalled automatically ?

nicholas
Akeeba Staff
Manager

A & B. There is something I am missing here. If you are not updating FROM Akeeba Backup 7.5.3, which version are you updating from? Updating from 7.5.3 to 8.0.1 is definitely well tested and works on the vast majority of sites, server and Joomla issues outside our control notwithstanding. If you have a problem updating from a different version of Akeeba Backup please tell me which one.

C. Delete the following folders (not all folders may exist on your server):

  • plugins/system/akeebaactionlog
  • plugins/system/akeebaupdatecheck
  • plugins/system/aklazy
  • plugins/system/srp

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

joomleb

Hi Nicholas, 

A-B - Yes, I'm trying to update from 7.5.3 Professional to 8.0.1 Professional - I attach the Errors report

C - PS - I have not yet looked for these folders and, in case they exist, I have not yet deleted them...

nicholas
Akeeba Staff
Manager

Hello,

Some people had a problem installing Akeeba Backup 8.0.0 or Admin Tools 6.0.0. We have released versions 8.0.1 and 6.0.1 which should address most of these problems, none of which was caused by the update in and of itself but were the result of:

  • old plugins we have stopped shipping with our software between 1 and 8 years ago still being installed
  • Joomla not installing / replacing all files during the update
  • PHP opcode caching (opcache) causing problems after the update

We have also unpublished Akeeba Backup 8.0.0 and Admin Tools 6.0.0 to prevent you trying to use the update without the workarounds.

However, no solution is absolutely perfect. With our software being used in hundreds of thousands of sites you may still run into a problem such as using an update method which still uses the x.0.0 version, the obsolete plugins' files not being removed due to any number of hosting and Joomla related issues, hitting the occasional Joomla bug which executes a partial update, your host not allowing PHP scripts to reset the opcache etc.

The combination of issues outside or control persisting despite anything we can reasonably do, the fact that these new versions are a big update compared to the previous versions and the fact that our software is essentially system software mean that any issue outside our control may result in what appears to be a broken site. This does not happen very frequently; we have updated dozens of sites without a problem already. However, with an impossibly large number of server environments, site development/migration/update histories and the weird Joomla issue that only happens sometimes you may have been hit by an issue during the update.

The following is a COMPREHENSIVE manual workaround to EVERY issue we have seen so far. Please follow it to the letter even if you think something is unnecessary.

Akeeba Backup

The problems typically manifest themselves as an error similar to the following:

  • Argument 1 passed to FOF30\Platform\Joomla\Platform::__construct() must be an instance of FOF30\Container\Container
  • Class FOF30\Container\Container not found

Here is how to solve this:

  1. Make a copy of the file administrator/components/com_akeeba/BackupEngine/serverkey.php
  2. Move the folder administrator/components/com_akeeba/backup
  3. Delete the following folders (not all folders may exist on your server):
    • administrator/components/com_akeeba
    • components/com_akeeba
    • plugins/actionlog/akeebabackup
    • plugins/console/akeebabackup
    • plugins/installer/akeebabackup
    • plugins/quickicon/akeebabackup
    • plugins/system/backuponupdate
    • plugins/system/akeebaactionlog
    • plugins/system/akeebaupdatecheck
    • plugins/system/aklazy
    • plugins/system/srp
  4. If you still cannot access your site's backend go to the Admin Tools section of this reply, follow its instructions and come back here.
  5. Download the latest version of Akeeba Backup from our site's Downloads page
  6. Go to Extensions, Manage, Install and install Akeeba Backup, twice in a row, without uninstalling it before or in between.
  7. Replace the file administrator/components/com_akeeba/BackupEngine/serverkey.php with the one you made a copy of in the first step.
  8. Replace the folder administrator/components/com_akeeba/backup with the one you moved in the second step.

If you have Admin Tools continue reading below. Otherwise skip over the Admin Tools section and go to the FOF 3 & 4 sections.

Admin Tools

  1. Delete the following folders (not all folders may exist on your server):
    • administrator/components/com_admintools
    • components/com_admintools
    • plugins/actionlog/admintools
    • plugins/installer/admintools
    • plugins/system/admintools
    • plugins/system/atoolsjupdatecheck
    • plugins/system/atoolsupdatecheck
    • plugins/system/oneclickaction
  2. Download the latest version of Admin Tools from our site's Downloads page
  3. Go to Extensions, Manage, Install and install Admin Tools, twice in a row, without uninstalling it before or in between.

FOF 3 was uninstalled but it's still required

Our software released between mid-2015 and February 2021 inclusive was using version 3 of our FOF backend framework. Software released on and after March 2nd, 2021 is using version 4 of the framework.

Since FOF might be used by multiple extensions, either our own or third party, we check if any extension has been marked as dependent on FOF 3. If none is marked as such we uninstall FOF 3.

This might be a problem in the following cases:

  • You have used Discover & Install to install an extension depending on FOF 3.
  • You are using a third party extension which does not mark itself or its sub-extensions (plugins, modules etc) as dependent on FOF 3.

In these cases the dependency is not marked in any way and there is no way to know that a FOF 3 dependent extension is installed on your site. As a result FOF 3 might be removed when it's actually needed. You will very likely see an error message saying that a class is missing whose name starts with FOF30\.

In order to gain access back to your site do the following.

  • Download the latest version of FOF 3.x from our site's Downloads page. Please note that this is a THREE, not a FOUR.
  • Extract the ZIP file.
  • There is a folder named fof extracted from the archive. Rename it to fof30.
  • Upload the fof30 folder into your site's libraries folder so now you have a libraries/fof30 folder.
    Please note that there might be other folder with similar names in there such as fof, f0f, fof40. DO NOT REPLACE OR DELETE THESE OTHER FOLDERS. The folder fof is part of Joomla 3; if you remove it your site WILL break. The folder f0f is a very old version of our framework used by third party extensions; removing it will most likely break your site. The folder fof40 is FOF 4, used by versions of our software released after March 2nd, 2021; removing it WILL break your site.
  • Do NOT try to install the FOF 3.x ZIP file you downloaded in a previous step. This would cause the next time a FOF 4 extension is installed to remove the libraries/fof30 folder again and you'd need to repeat these instructions.

After doing that you may have to clear your server's PHP opcode cache (opcache) per the PHP opcache section in this reply.

FOF 4 was not installed fully or at all

Our software released between mid-2015 and February 2021 inclusive was using version 3 of our FOF backend framework. Software released on and after March 2nd, 2021 is using version 4 of the framework.

There is a long-standing Joomla issue which may prevent the new version of an extension, such as FOF, to be installed fully or at all. It happens rarely but with thousands of sites using our software it's an issue we see every time we publish a new release.

This will usually manifest itself with an error similar to:

  • Class 'FOF40\Container\Container' not found

  • Class 'FOF40\Dispatcher\Dispatcher' not found

There is a way to work around this.

  • Download the latest version of FOF 4.x from our site's Downloads page. Please note that this is a FOUR, not a THREE.
  • Extract the ZIP file.
  • There is a folder named fof extracted from the archive. Rename it to fof40.
  • Upload the fof40 folder into your site's libraries folder so now you have a libraries/fof40 folder. If there was already a folder by that name, overwrite it.
    Please note that there might be other folder with similar names in there such as fof, f0f, fof30. DO NOT REPLACE OR DELETE THESE OTHER FOLDERS. The folder fof is part of Joomla 3; if you remove it your site WILL break. The folder f0f is a very old version of our framework used by third party extensions; removing it will most likely break your site. The folder fof30 is FOF 3, used by versions of our software released before March 2nd, 2021 and third party extensions; removing it will most likely break your site.

After doing that you may have to clear your server's PHP opcode cache (opcache) per the PHP opcache section in this reply.

PHP opcache

Many servers use PHP's opcode cache to speed up the site. PHP is an interpreted language. The source code of every .php file needs to be read, parsed, converted into an intermediate binary representation called "opcode" and then executed. The read, parse and convert stages take a lot of time. The PHP opcode cache stores the opcode representation of files in memory to speed up your site.

However, when you are updating software on your site the opcode may not be cleared (we do try to clear it in the post-installation script of our software but whether this words depends on your server). If it's not cleared your site "sees" the old version of the file. When this happens right after an update the result is that the cached version of the file is out of sync with the rest of the site, similar to what would have happened if the extension failed to update correctly.

In this case you need to ask your host to reset the PHP opcode cache after updating our software.

FEF was not upgraded to version 2 fully or at all

Our software released between 2017 and February 2021 inclusive was using version 1 of our FEF frontend framework. Software released on and after March 2nd, 2021 is using version 2 of the framework.

There's an issue with Joomla which happens rarely and which results in Joomla not replacing all of the files when performing an update.

You can verify this is the case by opening the file media/fef/fef.php and checking if the line

public static function loadCSSFramework(bool $withReset = true, bool $dark = false)

is present in the file. If not, you've been hit by this Joomla issue and need to work around it manually.

  • Download the latest version of FEF from our site's Downloads page.
  • Extract the ZIP file.
  • Upload all extracted files and folders into your site's media/fef folder, overwriting existing files and folders by the same name.

After doing that you may have to clear your server's PHP opcode cache (opcache) per the PHP opcode section in this reply.

Out of date template overrides

This only applies if you have problems in the frontend of your site, you are using one of our extensions with a frontend part (e.g. Akeeba Ticket System, LoginGuard etc) and you have done template overrides to style it.

Please note that the new versions of our software may have changed the view template files you used to create your template overrides or changed their names. Please review your template overrides. This is especially important when you are upgrading to a new minor or major release of our software, i.e. the first or digit before the second or first dot in the version number respectively has changed compared to the previous version of our software you had installed on your site.

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

joomleb

Here the errors report list

nicholas
Akeeba Staff
Manager

If the administrator/components/com_akeeba/Container.php DOES have a line referencing FOF40, not FOF30, the problem is opcache, see the instructions in the previous reply under PHP opcache.

If the line references FOF30, not FOF40, the problem is that Joomla did not install the update. See the instructions in my previous reply under Akeeba Backup.

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

joomleb

Hi Nicholas, 
two days ago following your instructions I made some tests on a copy site, but not yet on my Live Sites. So:

1 - I noted there are some difference from your instructions here and the official advice you posted
Please, Do I have to follo these instructions or the official post ?

2 - I received a FOF update advice in Joomla, I attach an image
Please, Do I have to update them before OR after to follow your instructions ?

3 - Please, Is there a way to investigate if we have installed 3rd party extensions that still are using FOF 3 and, in case, to investigate Which ones are they ?

nicholas
Akeeba Staff
Manager

1. The official post. I was providing support while I was trying to figure out what is going on. There were five different problems which could happen to you. The official post addresses all of them using the simplest path of instructions.

2. One is unrelated to the other. You can install the FOF 3 update and follow the instructions. The order is not important.

3. This is something the extension developer should have disclosed. If they haven't you can check which components use FOF by looking for a fof.xml file in their administrator/components/com_SOMETHING folder. This, however, only tells you that the extension uses FOF 2, FOF 3 or FOF 4. It doesn't tell you which version. You'd have to check its SOMETHING.php file to see which version of FOF it is loading.

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

joomleb

Hi Nicholas, 
following your Akeeba Backup instructions there is two things I have not clear on points, Please:

7 - "Replace the file administrator/components/com_akeeba/BackupEngine/serverkey.php with the one you made a copy of in the first step."

After to have installed twice time Akeeba Backup with success, there in no any serverkey.php file, so I'm going just to "install" it again, but there is no any "replacement", Is it right or maybe something is not gone as expected ?  

8 - "Replace the folder administrator/components/com_akeeba/backup with the one you moved in the second step"

After to have installed twice time Akeeba Backup with success, into the "backup" folder there is one more index.php file compared with the "backup" folder I moved. So, if I simply replace the entire "backup" folder the index.php file will be missed. Is it right ?
Or I just have to overwrite all the files contained into the backup folder ? 

 

joomleb

Sorry, only point 7, point 8 is my mistake (don't consider it)

PS - there is no any plugins/console/akeebabackup folder to delete, but there is a plugins/console/akeebabackup.xml file, Do I have to delete it ?

nicholas
Akeeba Staff
Manager

After to have installed twice time Akeeba Backup with success, into the "backup" folder there is one more index.php file compared with the "backup" folder I moved. So, if I simply replace the entire "backup" folder the index.php file will be missed. Is it right ?

Yes and no :) The index.html, index.php, .htaccess and web.config files will be created in the output directory — any output directory you specify — as soon as you visit Akeeba Backup's Control Panel. In fact the index.php file doesn't ship with Akeeba Backup itself, it's created the first time you open Akeeba Backup (that's my way of making sure that your output folder is really writeable).

PS - there is no any plugins/console/akeebabackup folder to delete, but there is a plugins/console/akeebabackup.xml file, Do I have to delete it ?

Yes, please.

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

joomleb

Hi Nicholas, 
really many thanks.

I tested it updating to last FEF, FOF30, FOF40 before to process with the twice Akeeba Backup / Admin Tools installations.

As far as I read on your FEF/FOF article, Akeeba Backup and Admin Tools should always bring with them last FEF/FOF versions, but when I installed Akeeba Backup and Admin Tools I had back a promiscuous Warning Message alert that maybe deserves your attention (I suppose it is an unwanted behaviour), I attach here the two screen images...

nicholas
Akeeba Staff
Manager

Let me correct you. Akeeba Backup and Admin Tools always include in the ZIP file the latest versions of FOF and FEF at the time the Akeeba Backup and Admin Tools packages were released. We do not retroactively modify the packages of published versions whenever we publish a new version of FOF or FEF.

To wit, we did publish a new version of FOF after Akeeba Backup 8.0.3 and Admin Tools 6.0.4 were released to work around an issue with the Joomla extensions updater. Therefore it is perfectly normal for the older FOF version in the package to display "You have a newer version of FOF installed". This is indeed what happens.

Ideally, this warning message shouldn't be there. However, it's up to Joomla's subpar, buggy, problematic and unfit for purpose extensions installer. We cannot suppress it unless we bypass Joomla's extensions installer which is, however, expressly forbidden by the Terms of Service of the Joomla Extensions Directory. So, if we want our software to be listed by Joomla in its directory we have to confuse our clients and users even though we know how to work around this issue. The Joomla project won't address any issues with the Joomla extensions installer/updater either.

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

joomleb

Hi Nicholas, 

"...at the time the Akeeba Backup and Admin Tools packages were released..." = You are right, so logic !

About the FOF / FEF future, we read your article

Why not share the the Known 3d party extensions that still are using the libraries/f0f (f zero f) and libraries/fof30 ?

We'd like to do some tests (before to update to Joomla 4) by removing the libraries/f0f (f zero f) one, and as user we could ask developers to apply the changes on next months...

nicholas
Akeeba Staff
Manager
 Why not share the the Known 3d party extensions that still are using the libraries/f0f (f zero f) and libraries/fof30 ?

Nobody asks us for permission to use FOF in their software. As a result we do not have a list of extensions. 

If we had a list of extensions we'd be able to write code which detects if they are present. In case they were not present we could reliably remove the old versions of FOF. The reason we cannot reliably remove old versions of FOF is exactly because we do not know which third party extensions may be using it.

This will be a moot point very soon. FOF 1 and 2 do not work with Joomla 4. FOF 3 will be possibly broken by the time Joomla 4 stable is out if the changes over the Joomla 4 beta period are any indication.

Moreover, Joomla 4 introduced many of the features we had included in FOF between 6 and 10 years ago, allowing us to write Joomla 4 extensions without suffering too much. FOF was necessary in Joomla 1.5, 1.6/1.7/2.5 and 3.x but not as much in Joomla 4.0. There are still a few things missing.

About that, 6 to 10 years ago we still had to support PHP 5.3 and earlier which didn't have support for Traits. This meant that the only way to add features to Joomla's MVC was to extend from its base classes or completely rewrite them. Now that we no longer support these ancient versions of PHP we can add the missing features with Traits instead of having to create massive, monolithic classes. I'm already 98% done converting Akeeba Backup to a pure Joomla 4 MVC and I can tell you that I had to write a minimal amount of code using Traits.

So I can tell you with near certainty that we are moving towards no longer using FOF in new major versions of our software which will only be Joomla 4 compatible. The major assumption here is that Joomla 4 WILL be released in 2021. If not, well, I don't see any future for Joomla if Joomla 4 is not released by the end of 2021. It's already 5 years overdue and I say that as the person who started the Joomla 4 Working Group in June 2015 before it got quickly derailed for political reasons, wasting another 3 years before it got restarted where I had left it when it was about to get derailed.

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

System Task
system
This ticket has been automatically closed. All tickets which have been inactive for a long time are automatically closed. If you believe that this ticket was closed in error, please contact us.

Support Information

Working hours: We are open Monday to Friday, 9am to 7pm Cyprus timezone (EET / EEST). Support is provided by the same developers writing the software, all of which live in Europe. You can still file tickets outside of our working hours, but we cannot respond to them until we're back at the office.

Support policy: We would like to kindly inform you that when using our support you have already agreed to the Support Policy which is part of our Terms of Service. Thank you for your understanding and for helping us help you!