LAMP, as the name
suggests is a typical model of software subsystems (historically Linux, Apache,
MySQL and PHP) bundled together to give a platform on the top of which web
service based and similar applications may be deployed.
Why
LAMP?
1. Components
are largely interchangeable. The software subsystems may vary, but since Linux,
Apache, MYSQL and PHP are free, this combination is considered to be most
common. Other common variants are:
·
LAPP - Linux, Apache, PostGreSQL,
Perl/Python/PHP
·
WAMP - Windows, Apache, MySQL,
Perl/Python/PHP
·
MAMP - Macintosh, Apache, MySQL,
Perl/Python/PHP
·
BAMP - BSD, Apache, MySQL,
Perl/Python/PHP
·
WIMP - Windows, IIS, MySQL,
Perl/Python/PHP
·
AMP - no operating system
We may justify why LAMP
stack, by listing all the benefit of the components used and beauty is the
interchangeability of the components, so choose the benefits you like.
2. Availability
of vast variety of free plugins make it even more lucrative; for example
netsniff-ng (free Linux network analyzer and networking toolkit), Snort (an
open source network-based intrusion detection system), RRDtool (round-robin
database tool), Nagios (offers monitoring and alerting services for servers,
switches, applications and services),collectd (a Unix daemon that collects, transfers
and stores performance data of computers and network equipment) and Cacti(web-based network monitoring and
graphing tool) etc.
3. Supports
multiple server farm solutions for high loads and better availability. This is
possible with additional components like load balancer.
4. Deployment
of applications is straight forward, in most scenarios, it may be copy and
paste content. For most of the Linux based system, this is available by
default.
5. Security
may not be an issue, being an open source and large user base, problems are
resolved faster than what you could expect from other paid products.
6. You
may use various free packages to configure LAMP and similar solutions. One such
famous package is XAMPP (cross platform, Apache, MYSQL/MariaDB, PHP, Perl) with
vast variety of add-ons available for XAMPP.
Drawbacks
of LAMP stack
Most of the time, when
we are counting drawbacks of LAMP, we are cursing one of the software component
being treated as one of the four layers or how they are integrated.
For example we may say,
Apache is not the highest performant today in market, or point some issues in
PHP or MYSQL and so on.
You have to be very
careful about choosing the right components, say the functionalities you need
in your application need PHP 7.0, but if solution you are going for doesn’t
support latest version at all, you may be in trouble (even though it may not be
considered as a drawback for you since you know this issue and you will plan
accordingly now).
Alternative
Technologies
LAMP is used to serve
web content and pretty much everything which is capable of this feature, is an
alternative in my opinion, be it the c# and .Net based webAPI’s or Java Servlet
API and so on. But when we talk about
alternative technologies, we are generally changing one of the components and
comparing them due to a variation in underlying components. For example LEMP
stack (Linux, Nginx, MariaDB/MySQL, PHP) is a variant where Nginx replaces
Apache. Few of the other variations are listed under “Why LAMP?” section above.
Mean
Stack is termed as collection JavaScript based
technologies used to develop web applications and I feel the strongest
competitor today. It consists Node.js (server side JavaScript execution
environment), Express (lightweight framework used to build web applications in
Node, MongoDB ( schemaless NoSQL database system, considered far more better
than MYSQL and similar) and AngularJS ( JavaScript framework developed by
Google).
§ MongoDB
is built for cloud and with lesser cost for better hardware today makes it more
appealing than MYSQL and related. (But who says DB layer in LAMP cannot be
MongoDB !!!)
§ Agreed,
Node.js simplify the application development.
Benefits of Mean stack
over LAMP stack are covered in lot more depth by Wayner (2015).
References
Brown, M. (2007,
August 24). Understanding LAMP and its effect on web development. Retrieved
from http://www.webopedia.com/DidYouKnow/Computer_Science/LAMP.asp
Howitt, J. M.
(2010, January 27). What are the advantages and disadvantages of running PHP on
Windows [Web log comment]. Retrieved from http://stackoverflow.com/questions/2145108/what-are-the-advantages-and-disadvantages-of-running-php-on-windows
Leith, E. (2011,
March 28). What are some disadvantages of LAMP stack? [Web log comment].
Retrieved from https://www.quora.com/What-are-some-disadvantages-of-LAMP-stack
LEMP [Computer
software]. (2016). Retrieved from https://lemp.io/
Telly, B. (2013,
March 08). Re-writing a large web application - alternatives to LAMP [Web log
comment]. Retrieved from http://programmers.stackexchange.com/questions/189771/re-writing-a-large-web-application-alternatives-to-lamp
Wayner, P. (2015,
June 22). LAMP diehards take note: The flexible simplicity of MongoDB,
ExpressJS, AngularJS, and Node.js is no joke. Retrieved from http://www.infoworld.com/article/2937159/application-development/mean-vs-lamp-your-next-programming-project.html
XAMPP [Computer
software]. (2015, December 31). Retrieved from https://www.apachefriends.org/add-ons.html