Introduction
The LAMP stack is the archetype of a web server. Most software engineers and even just web coders, first learn LAMP as the means for web development in the early stages. What's more, is that most of these same people continue on from the learning stages, to become experts at the LAMP stack and make careers out of knowing it. The LAMP stack is comprised of 4 components that harmoniously allow the developer to create any web software, only limited by imagination. The four components, Linux, Apache, MySQL and PHP, not surprisingly, all share common attributes that make them all such crucial components to a web developer's environment. However what is surprising, is why these components are so so crucial to the infamous stack. The LAMP stack though, is not immune; it has enemy's, vulnerabilities, shortcomings and the occasional distaste that have made other web server stack options grow in popularity in recent years.
Business Model
All the components of the LAMP stack have a unique and now popularized model for the production and growth of the software, and that is that each component is free. After taking a moment to distinguish between freeware, shareware and open source, one can see that the open source model is what has lead of the rise of LAMP. The open source business model works very well with software for many reasons. One being that users can actually support and suggest problems and defects in the product, giving the companies that support the open source the ability to find bugs and apply patches without needing to sacrifice any man hours except the ones that actually put together the patch. In turn the companies now then focus their time on releases and new features which are then redirected to the public. Take the Apache software foundation for instance and their immense success under the open source philosophy. With over 75 major projects and subprojects, like Hadoop, Tomcat and CloudStack, Apache has been churning out projects since 1999 and their release of the Apache HTTP server. Oracle has been very successful with their freeware model up until September 2014 [1] until they decided to release their source code for MySQL server. What the release means for the web development world is the continued free-ness and now open -source-ness of MySQL, deepening the metaphorical roots that MySQL has in the LAMP stack.
Big Corporation Backing
In addition to the LAMP components being open source, they are each backed by larger corporations and companies that help to contribute to their success. The Linux kernel, created by Linus Torvalds in 1989, is now the world's most popular open source operating system kernel. That success began with Linux’s open source vision which then led to the increase in Linux’s popularity. Currently, the Linux kernel is backed by companies such as Google, HP and Red Hat [2]. PHP enjoys the same big name support as the Linux kernel, dues to it being backed by Zend. After creating the first homegrown version of PHP in 1995 the founders have taken the scripting language to new heights after founding Zend Technologies in 1999. Now, Zend is a major provider of other web technologies like PHP frameworks and mobile servers, entertaining customers like Disney and Best buy. With these huge customers and their large licensing revenue, Zend can continue to update and fund R&R for PHP for years to come.
Community Support
Another reason for the LAMP stack’s success is the large amount of community support. Websites like stackoverflow, and the other stack exchange websites make it easy for people to ask questions and get help. There are numerous tutorial websites teaching on the various aspects of LAMP [3] as well as many public online videos. There are also lots of softwares that packages the LAMP components for use . For Windows, freewares like Xampp and WAMP package up each LAMP component for and include a LAMP control panel for ease of use. For linux with only a single command in the shell [4], a web administrator can have LAMP up and running in a short amount of time. Complimenting LAMP ease of installation, are operating systems built around being a web server operating system such as Ubuntu. An endeavouring area of software development resides in creating tools to support LAMP components. Each component comes with great support from the development community in order to make these tools for LAMP components. With things like MVC frameworks for PHP and GUI tools like workbench for MySQL, the management of LAMP is becoming less of a technical task as time goes on.
Weaknesses
Using the LAMP stack has it downsides and limitations in despite of its widespread distribution and popularity. Because of the high use of each of the components, news of bugs and vulnerabilities travel fast. This fast spreading news allows malicious perpetrators to then find out the causes of the bugs in order to create attack kits and methods in order to attack the outdated systems before the bugs can be patched. Even more security vulnerabilities come up with the use of GUI management tools for MySQL and Apache. Tools like phpmyadmin and webmin allow ease of use for novice and intermediate users, but also create remote access vulnerabilities in the event of a bug. Another downfall of PHP is that is has no built in security; it is a language similar to C where it allows a lot of freedom, but it comes at a price. Security in PHP can only come in the form of good programming or PHP frameworks. One another downfall to mention about LAMP is its problem with scaling up. MySQL has good scaling out capabilities with the use of MySQL Cluster, but because of its relational nature sharding can be very difficult making it challenging to extend a website's features as in Facebook’s case [7]. Additionally MySQL’s ACID feature cause lots of overhead for small, multi-user transactions and increasing traffic will only cause server processing to increase linearly. Apache has the downfall of not dealing with streaming as well as it’s competitor Nginx [5]; therefore it’s strengths lie in stateless transactional serving.
Conclusion
With apache serving up over 64% of all the website currently on the internet [5], and PHP developer jobs making up 25% of all software engineer jobs posted on Linkedin [6], the LAMP stack will have long term presence in the web software industry. With awesome attributes, like free and open source, cross platform compatibility and community support the LAMP stack can a part of any successful web software project. Even though LAMP has weaknesses like scaling any vulnerabilities, just like any other software stack has, LAMP continues to be supported, used and extended by novice up to expert developers alike. As the world continues to move toward cloud based software, the LAMP stack, as old as it is, has a bright future in the web development industry.
References
[1] https://github.com/mysql/mysql-server
[2] https://www.kernel.org/
[3] http://www.w3schools.com/
[4] sudo apt-get install apache2 mysql-server php5 php5-mysql
[5] http://venturebeat.com/2012/06/18/nginx-the-web-server-tech-youve-never-heard-of-that
-powers-netflix-facebook-wordpress-and-more/
[6] https://www.linkedin.com
[7] https://m.facebook.com/notes/facebook-engineering/mysql-and-database-engineering-mark-callaghan/10150599729938920