So, We are here talking about installing development environments here. What are development environments? Development environments are set of tools and programming languages which helps a developer to develop products and applications of their choice. LAMP is one such environment which consists of Linux, Apache, MySql & PHP.
Installing development environment is one of the most important task which a developer has to do . This is often one of the most time consuming task. Because of the complexity associated with the setup of development environment, most developers prefer an alternate and easier route, Which generally means installing a complete package like XAMP, WAMP etc.
This alternate route is never recommended but we as a developer think that we have no other choices whatsoever. However this is not the truth. I will share what is the recommended and best way to handle this situation.
Is there any problem in using packages like LAMP ?
There is no problem, as such, in using ready made packages like LAMP, WAMP, XAMPP. You can use it, but with ready-made packages i see following problems
- You get very little knowledge about installing real environments and the problems which generally comes at the time of installing them
- Since everything is configured, You get very little exposure of doing and managing the configurations yourself.
- If multiple versions of dev environment is needed then it becomes a bit tricky to create multiple environment in such ready made packages like LAMP, WAMP etc. Even if you somehow manage to create multiple environments, the learning which you get in creating multiple environments of no use in real world.
- Ready-made packages puts you in your comfort zone. They take care of most of the configurations which you will never be aware about. Your code might work in these packaged environment but when you deploy it, it might now work because of this reason
So whats the solution?
The first and foremost advise which i give people is to try to install everything on our own. This provides users an opportunity to know how things work and how to configure each services as per individuals requirements. This will be time consuming but believe me it would be worth it.
However, there is one important problem which comes with this approach. If you want multiple dev environments with different configurations, this approach seems to be a bottleneck.
So what’s the best solution?
The best solution which i think for this problem is using Docker. Docker is a set of platform as a service products that uses OS-level virtualization to deliver software in packages called containers. Using docker you can create as many dev environments as you like. Using docker for creating a LAMP environment is very easy. We will explain that with example in our next post, so stay tuned.