What Is the Lamp Stack?
The “LAMP stack” is an abbreviated term the main software that power a web-server. The abbreviate part is LAMP – which stands for Linux, Apache, MySQL, and PHP. These are the most common set of open-source software used to create a server for websites and web apps.
How Is GridPane’s Stack Different?
On our servers the stack is setup pretty must the same with only a few subtle differences for performance. We’re still running Linux and PHP the same as ever, but our web-server and database are a little unique.
For a web server instead of Apache, we use Nginx which powers around 23% of the internet (and counting). We chose this for a range of performance, security and feature related reasons. For our Database software instead of the (now Oracle owned) main version of MySQL, we deploy Percona MySQL. Unlike MariaDB, Percona MySQL supports native JSON columns like MySQL. Yet unlike MySQL, Percona MySQL is able to be more memory efficient with row data (and other cases).
So with all that said, at GridPane what we have is more accurately called a LEMP stack. Don’t ask us why we didn’t choose it, but when you swap Apache for Nginx the “A” becomes an “E”. I kid though, in seriousness, it’s because you should pronounce “Nginx” as “Engine X”.
Other Differences to Expect
At the end of the day, the biggest differences users will have is the differences between Nginx and Apache. And of course the performance benefits our platform can provide. The main changes to look out for moving from Apache to Nginx are:
- No Support for `.htaccess` files on Nginx.
- Different config file syntax and formats.
- Nginx primarily associates rules based on URIs not files.
- Apache associates with a hybrid of mostly files with URIs support. This core design choice allows support for per directory `.htaccess` files.
- Apache can handle dynamic content native to its service, Nginx needs to proxy to PHP-FPM.
None of these differences are necessarily a pro or a con – they’re just different. Each are great web-servers and have their own areas where they shine – but they both hold their own pretty tied up.
Ultimately we picked Nginx because we’re able to configure it more easily with our stack and get better results in a greater set of use-case. Putting it simply – with Nginx we’ve created a platform with great performance that covers a lot of use cases.