So, your a developer, you have been working with all sorts of frameworks. Magento, WordPress and you even remember the days of OSCommerce? – Welcome to my world.
I’m an experienced PHP Developer, I have been developing websites and bespoke systems for over 10 years. I have seen and worked on some very challenging systems, integrated with some terribly put together ones and managed to create middleware which has the ability to fuse such diverse systems together. However, Since my recent years of development I have never worked with a system quite like Magento.
Oh, don’t get me wrong. Its incredible, its truly an amazing and powerful ecommerce platform. But I’m sure, when the team of initial developers first got together and they come up with this great idea to produce the worlds most powerful and diverse ecommerce platform. They all decided to drop acid tabs and agreed in a secret blood pact they would create a system so frustrating to work with that developers would cursing Magento like a powerful wizards who’s name we should not speak of.
Then, to add some fun after it has established itself the people who finally took control would destroy the online community which has stood by and founded the support for this powerful ecommerce platform. They would remove all historic blog posts from existence and turn the process of learning into a game of chance.
I digress. Only 2 days ago I was given the simple task to place a Magento store into Maintenance mode. Indefinitely. I decision which I do not take kindly too, but that’s someone else’s choice. Something which should have taken just moment, install a wonderful extension which will allow admins the ability to log in whilst users of the front end simply see a maintenance page. I quoted, 30 minutes. Install, Test, flush cache and configure holding page, simple right…
Working with Magento is like finding out your toast has just burnt. Your pissed off, your excitement for that fresh crisp toast has just dropped from 100% to 10% but you cant just throw it away. You butter it up, with far too much butter and enjoy the charred taste. Because at the end of the day, you need to eat and you dont give up, and in the end you realised you actually enjoyed the burnt toast.
Well no.. Not that simple. ERROR 500 – Internal Server Error! Oh now we do love that feeling when a production website which has serious high volumes of traffic enters a server error state. And why you ask was this not tested on a development environment, unfortunately the opportunity was not there to configure a local running copy.
So not only has the extension destroyed a live environment, which albeit is a decommissioned website, the extension is producing no logs and PHP-FPM, NGINX etc was also not producing any logs.
So when I finally managed to pick the problem apart and even try another extension I realise that the magento store has only gone and got Compilation enabled. The one thing which I should have checked first. For those of you that dont know what Magento Compiler does:
The Magento Compilation is a feature that allows you to compile all Magento installation files in order to create a single include path. This feature is designed to improve the performance of your online store and is supposed to give between 25% and 50% increase in your page load speed. (quote from Site Ground)
So after headbutting the wall just a couple of times and wondering why of all days today was such a bad one, I regenerated Magento Compiler via CLI, flushed the cache and boom, Magento started working again.
For those of you having a similar problem, always remember. Before you install an extension, disable Magento Compiler!