Monday, September 28, 2009

LAMP Development Server

So as many of you know I have been working toward a bunch of stuff that includes software development using a Linux (Ubuntu actually), Apache, MySQL and PhP (LAMP server). To go even further with this, my software development includes using a RESTful approach to interoperability and a deep commitment to Test Driven Development (TDD). Getting to this point has included much research and many decisions along the way. I pretty much feel my 25 years in software development, in particular, 12 years as a solutions architect has gotten me to all these decisions. I really don't want to simplify my rationale, and that is a whole other conversation that makes a lot of sense also within the context of opensource, OER, online education, agility, etc... Soooooo.... this is what I have done in the last couple of days to upgrade my old DELL Inspiron 6000.
  1. re-install of Ubuntu 9.04 to the production release (I've been running beta for while, I wanted some cleanliness and certainty to the release). - the big deal here was getting a plain old CD-R to burn the iso file onto. The more expensive CD-RW kept hanging on the install, I read a forum post about this. Simple is better when burning an iso it seems.

  2. Once Ubuntu 9.04 was up and running (which was real easy after the CD-RW issue was resolved) I ensured the update manager had done its work in getting the new install up to date.

  3. Then I proceeded to use the Synaptic Package Manager to bring in all the additional software I required, the list included;

  4. i) Apache
    ii) MySQL
    iii) PhP
    iv) phpMyAdmin - its a great tool to assist with database admin and development
    v) cURL - well, I'm going to be doing some REST development, so I need some help.

  5. Once all the software was installed I had a few configuration issues to deal with, these included;

  6. i) setting the permissions on the /var/www directory so I could add and alter files and folders. You may want to do this in a different way, for me i wanted to work under the /var/www directory.
    ii) this also meant I had to add my Ubuntu user id to the the admin and sudo groups and also edit the sudoers file to not prompt me all the time for a password.
    iii) I also stumbled upon an idiosyncrasy with the default collation with mysql it defaults to swedish, so add the collation-server = utf8_general_ci config parameter to the my.cnf helps here.

  7. I then downloaded the tar.gz for simpletest and installed into the www folder. I used the tar.gz instead of what was available through the synaptic package manager cause the synaptic version was missing a couple of files, in particular the critical autorun.php. I also allowed the Ubuntu Archive Manager to prompt me for the folder to extract the files.
So, in the end that was a days work with all the reading and research, banging my head, testing and getting it all running. In the end I did it twice yesterday, once on my Dell Mini 9 running Ubuntu 9.04 netbook remix in beta while I was trying to figure out why the initial inspiron install was hanging. Don't mind that though, gave me a chance to play (sandbox the install and configuration) in preparation for getting it done right once the inspiron was ready.