|LAMP Development Environment|
Winows or Linux
| 9:09 am on Oct 28, 2007 (gmt 0)|
I am bidding for some contracts that need to be completed using LAMP and need to work out the costs of development and testing environment. I wiould appreciate your suggestions but more so actual experiences.
I am guessing that a lot of LAMP work is finally hosted on LAMP ISPs but many use Windows development environments (PHP/MySQL/IIS) , is this correct?
Or do you need to have the same setup on your local development machine to do it properly (Linux/Apache)?
If you develop on Windows, Do you test PHP/MySQL locally on Windows or do you generally upload first to test the work?
If you do upload to test , do you have hosted test and live versions of the same site?
Do you also have test and live instances of mySQL or just one instance with test and live databases?
If you test locally on Windows what software packages can you recommend for LAMP development on XP Pro / Vista?
| 11:47 am on Oct 28, 2007 (gmt 0)|
I'd say development and testing should be carried out on the same software as the production server, otherwise something nasty might just rear its head and bite you on the a*s.
LAMP software is free, so your only cost is hardware, it will run on happily on old hardware, do you have any old boxes laying around?
Alternatively you could set up a virtual machine, I don't know much about this, but you'll probably have to buy the virtualisation software?
| 5:11 pm on Oct 28, 2007 (gmt 0)|
If you are going to set up a test server, and the eventual target is going to be Linux, it makes no sense at all to use a Windows test server. And even less sense to use IIS when the eventual target is Apache. If you must run your test server on Windows, at least go WAMP.
I think you are wrong that this is commonly done - except in the case of small sites created by individuals. In most cases, they are already Windows-dependent, and would have to go to the additional expense of an additional computer to run Linux.
If you have a dedicated test server, set it up as close to your target environment as possible. Identical, if you can. Same OS, same OS version, same hardware.
Additional productivity gains can be had by using a Linux desktop as well. I know it's a tough sell, and can be difficult in an office setting, because the office most likely already has a Windows computer at each desk, along with Windows email, word processing, scheduling, etc. etc. etc.
So, going Linux desktop requires an additional computer (and probably monitor) for each developer. It becomes easier the more the office has switched over to web-based services, and perhaps in some cases the Windows machine can be dispensed-with.
For a one-person project, you can combine the desktop and test server. You may still require a second machine, if you are entrenched in Windows tools. But do yourself a favor, and learn the Linux equivalents. There's a learning curve, but you will be happier - especially about how much easier it is to interact with your server(s).
A Linux desktop does require similar firepower to a Windows desktop. In particular, if you want, say, Beryl eye-candy, it will require a similar kind of video card as Vista. (I use a low-end, and now slightly obsolete Nvidia 6800). But in most cases, an old machine will do for a test server - particularly if you will be hosting on a shared machine or VPS.
| 12:01 pm on Oct 29, 2007 (gmt 0)|
Agreed with the above points. Either get a seperate desktop machine for the developer that lets them develop right on that machine (i.e. duplicate the linux server but maybe also add some desktop gui stuff like KDE). Alternatively, hang a cheap linux server off of your network and let them develop on their local windows machines; then upload to the test server for testing.
| 5:34 pm on Nov 21, 2007 (gmt 0)|
nope should always dev test and deploy on as close to identical hardware as possible. In Bt we had 3 indentical SUN machines identical down to the same modles of disk's
Just use an old pc as a linux server to develop on
| 11:12 am on Nov 22, 2007 (gmt 0)|
IMO, the best approach depends on why you want to develop on Windows.
For example: if the developers are mostly going to be developing for Linux, the best thing is probably to do it at a Linux desktop.
On the other hand, if they are mostly developing for Windows and only doing some Linux work, I would suggest having a Linux server they can develop on,and installing an X server on their Windows PCs. A lot of developers at my last job did this.
Incidentally, it is an X server you want on the client PCs, that is how X-Windows terminology works: it is logically correct, the server is what shares the resources with the client, in this case the desktops are sharing their graphics and input devices so they are the servers as far as X is concerned.