Have a Development Servers Cocktail on your PC? Your career is in danger!

This article is for FREE developers (as in Freedom). Developers who use PHP, Python, NodeJS, … to develop Web applications. If you are not, please read another page from the ones appear around this post.

Also, this article is for new developers or obsolete ones! If you find these words new, then this article maybe for you: virtual development environment, vagrant, puppet, laravel, composer, git.

Still using WampServer or EasyPHP to develop your PHP sites? I don’t encourage you to keep going on this approach. Even though it is simpler, quick, and painless, but soon you will start facing the limitations as new tools, libraries, versions, and team-oriented projects come.

PHP was originally (and it is still) developed to run on *nix systems. Porting it to windows was an urgent due to its spreading, however, nowadays everything has changed, and this equation is not an exception!

However, installing Linux and getting your hands dirty in preparing a good environment to develop is much painful than installing those out-of-the-box development servers stack, especially for those who are not familiar with Linux and its user interfaces. Ignoring the fact that many similar stacks exist for it also

Briefly, if you are not interested in installing a Linux OS for developing or you are not familiar with it yet, then why not trying VirtualBox? Again, you don’t want to waste your time in installing, reading and learning, configuration, erroring and re-installing, and doing all this headache again? Try to have a look at vagrant or docker.

You will have a small config file which you are going to make it alive with a small vagrant command. Vagrant will do all the headache of downloading and installing the packages listed in the config file, and configuring them for you! Usually, *nix, Apache/Nginx, PHP/Composer, MySQL/MongoDB/Postgre, NodeJS/NPM, Ruby/Gems,  and so many others will be up and ready for your development attack in minutes! Not only that, it is going to prepare a two-way binding between specific folders on your machine with the core ones on the (hidden) virtual machine, so what ever changes you are doing to your code will be there on that virtual server! You have to do minor things like adding a virtual host name to your hosts file if you are not in love with IP-based URLs (who is?)!

Again, if you get lost in the configuration you may check PuPHPet or even try a ready-made configuration file for you like Homestead! PuPHPet is a visual vagrant config-file creator, that will take you into a neat wizard and create your config file behind the scene! Once done, you will download your config file and kick it up!

 

Benefits

Not only to save your time setting up, configuring, updating/upgrading, migrating, and debugging. Preparing development environments is not an easy nor a quick thing to do! You may waste couple of hours downloading and installing to find that versions are incompatible! Those stuff really saves your time (as well life!).

Again, it is not just about time or effort! Such tools ships stable and solid collection of cleanly installed and configured tools in a standard and best-practice way, that makes a lot of development-related activities an easy thing! For example, deployment processes also became a complicated thing needs to be done and old-fashioned way of compressing, FTPing, and extracting is not working anymore! You have a series of post upload steps starting from migrating your database and not ending at downloading dependencies! Committing to an online repository and cloning it is making it a picnic! Testing sending emails and fetching them, creating and managing databases, and a lot of other stuff!

What to do?

Give it a try! Head to any website mentioned above website and read the installation and how to page, they will all lead to all the others!

Conclude

I know what you are going to say! What the hell is all these things for? and should I learn all of them just to develop simple PHP websites? The answer is actually in two parts:

If they are really simple websites, then no, you don’t need all of them. Just use WAMP/EasyPHP and you are fine! The second part: keep going this way and soon (if not already) you will be a part of the development history. Cheers.

Leave a Reply