Tag Archives: lamp

Creating your PHP Onboarding for Windows machines

There are many many ways to have a full LAMP stack on a Windows machine and use it for PHP development like WAMP, for example. This is ok if you are developing just for fun, but in corporate level an on-boarding environment is much preferred. Having a pre-defined server image with all that is necessary to almost replicate your production server on a developer machine helps on preventing errors and, most importantly, quickly have new developers up-to-speed with the corporation development environment.

Consider that you would need:

  • Apache
  • PHP
  • MySQL
  • Memcache
  • APC
  • some extra libs
  • GIT repository

Creating this under windows can be such a hassle and in cases like this bundled solutions does not work.

To create a full LAMP stack on your windows machine and have it 100% stand-alone I have used Vagrant. On the prior version of Vagrant (V1) you had to use Putty in order to ssh to the VM and that was a painful process, with the newer version (V2) you can use built in Vagrant SSH as long you install an SSH support library like the one from GIT. There is a trick on the GIT installation, you must choose the option with the Linux / Unix commands (it has a red warning message about overwriting windows libs).

Prior installing Vagrant you will need to install Virtual Box. It is a Oracle virtual box machine. Very useful if you are on OSX or Linux and need to run tests on Windows IE9 (sig). This part of the process is very well explained on the Vagrant documentation.

Now comes to Vagrant install. It is fairly easy. Install Vagrant, then open command line and run “vagrant init”. It will create a default vagrant file with most of the basic things defined. Here comes a trick. The default vagrant file tries to download the precise VM.  I have tried to contact Vagrant a couple times on Twitter and with no luck. There is an issue with the download of this box, the server resets the connection prior the download to be finished.

There is a way out of this: VagrantBox.es – Select the box that you best consider that matches your environment, add it on vagrant (vagrant box add) and finally update the vagrant file to use the new added box.

After this, everything is as simple as setting up the environment. Unless you have an specific need to add the GIT repository files under another folder you can set it all under the vagrant folder (same folder where the vagrant file is located).

I could use the GIT command line on windows to clone / commit my repositories, but using the GIT windows tool from GitHub is way too fun 😀

I know that most of PHP developers use either Linux or OSX for development. It is much easier to setup and use, but if you are stuck with Windows, you might as well benefit of this.

Just a note, off course the main environment mentioned here was LAMP, but this same process can be used for Ruby, Phyton and may other hipster languages available =D



I had a networking issue with the current box that I’m using. It seems that it is a common issue with some boxes as mentioned here – https://groups.google.com/forum/?fromgroups=#!topic/vagrant-up/Yeu6UF-GJO8

To fix run this: sudo /etc/init.d/networking restart

If you never installed a LAMP stack before, this article here will give you all the steps to install it correctly: http://www.howtoforge.com/installing-apache2-with-php5-and-mysql-support-on-ubuntu-12.04-lts-lamp

When MySQL connections max out can be a problem

This is an issue that you might face and sometimes an expert advice might help. Dealing with the MySQL maxout connections can go from simple to purely hell, so, after some digs I have found out a good article from Jeremy Zawodny that writes about some good hard experience that brought some good learning.

Sharing the knowledge.

Link: http://jeremy.zawodny.com/blog/archives/000173.html

A great LAMP shared server

For a while I have been using Hostmonster as my primary hosting provider for my PHP applications and so far it have exceeded my expectations.

The disadvantage so far is that it does not have any dedicated servers and sometimes that is the only option that you might need (since shared servers you still have to configure your session to avoid session attacks), but it have a great amount of advantages that make it worth:

  • Unlimited everything (including domains – addons)
  • PHP and MySQL up to date
  • Creates a PHP.INI file if you need to
  • Have a PEAR and PECL installer
  • Give you a $25 coupon to use on Google Adwords
  • Postgre Databases
  • A good client support
  • With a little upgrade you might get more features such as SSL certificates and dedicated IP (almost a dedicated server)

Since this blog is all about “share the good” and mostly about PHP, I’m leaving this post to help anyone that might need a reasonable cost per features LAMP server.

%d bloggers like this: