====== LAMP Rocks! ====== A few years ago I had to revamp our database (written in FoxBase), after frustration with Microsoft's FoxPRO (don't trust MS for supporting thier Applications) much research I chose (without knowing it) the LAMP stack, which consists of: * **L**inux OS * **A**pache Webserver * **M**ySQL database * **P**HP programming language Also along with those, you have to throw in a few more skills such as HTML web page markup, and now CSS for styling. But the efforts are worth it, all the tools are logical and though at times tough to absorb, make sense and provide opportunity for unimagined success. ===== The Stack ===== **Linux** itself has more use beyond serving web pages and being a server, it also is my primary work and home platform. So many good tools to help one out. But back to serving, Linux and other Unix and POSIX compliant OSs run most of the Internet servers, with Linux hosting the majority of the Web, due to its reliability and free/open-source software appeal. **Apache** is probably one of the most alien bits you will learn if you haven't done Internet services, but once you get that (and there are many guides on-line to help) it's practically worry free. **MySQL** - Wow, compared to the old FoxBase it is something else; I can write a couple K long query and it grinds through it in half a second, I'm regularly amazed at how wicked it can relate things together. And I have yet to try scalability (not a bit issue presently), but from what ive seen/read it is pretty painless to implement. Though in an [[blog:2010_06:06-27_a_point_on_using_postgresql|earlier blog post]] I mentioned the potential in PostgreSQL, which I see the eventual transition not too siginificant (mainly tightening up the loose MySQL Syntax to be more SQL standard, which PostgreSQL leans toward). **PHP** - Syntax is easy to read and follow, if you use high level languages like Pascal or xBase you will pick it up really quick. Implementation of a web app is a new experience as each time you do a new page you are technically starting from scratch so inter-page data management is a new skill to learn. Two things that make it exciting is loosely typed variable, you can use a numeric value as a sting and a number without conversion, if you need more strict typing there are provisions to ensure this. Second are the arrays, which can be referenced by numbers or text, and can contain any other variable type including arrays themselves. //(some will warn that these features can be dangerous in the wrong hands, you need to know security and add some failsafes, but there are many good guides on handling those things and the effort is worth the outcome.)// ===== Pulling It All Together ====== For Linux there are many distributions what will get you going with LAMP on a server or on your desktop for internal development, for the Mac and Windows there are a couple freat tools, [[http://www.wampserver.com/en/|WAMP]] and [[http://www.mamp.info/en/index.html|MAMP]] which in the Macs case makes setting up the M(ac)AMP stack way easier (but then you won't have the easy access to some excellent Linux tools) If you are looking to try web development then check out [[http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29|LAMP]], also go to your local bookstore and peruse the PHP and MySQL books, as those are the core of LAMP web development - you won't be disappointed. Of course I'll be writing more about it as I get going on this blog, so stay tuned. ~~LINKBACK~~ ~~DISCUSSION~~