Working with *ancient* versions of concrete5


When you try to install an older version of concrete5, it can end up with a ton of errors on newer versions of PHP. Because of strict error checking. It can't be fixed in php.ini, you have to fix it in the core.


Earlier this week, there was a question about one of the first sites that I created, Babes in Bikeland. It was a long, long time ago. It was just some database corruption, but what really shocked me was that the site was 5.3.3b3. So, yeah, super sketchy.

I've tried running a lot of older versions of c5 locally for testing marketplace items, but I have a pretty recent version of php and I wouldn't be able to run or install the system. It would give an error like this:

Strict standards: Non-static method Cache::get() should not be called statically in ...

I tried changing my settings in php.ini, but nothing seemed to work and I gave up. When I mentioned that I needed to figure it out how to fix it to try and upgrade this site, someone in the IRC said that I should disable it where it's set. I thought it was set on a system-wide level, but it turns out that it's actually set by concrete5 itself.

The file that you need to look for is /concrete/startup/debug_logging.php. The contents of it look a bit like this, though it may be a bit different from version to version:

This has changed a lot in newer versions.

Just changing the contents of the older file to match the new one, and now you can get things rolling!