After becoming somewhat estranged open source, and spending some years developing web applications in ASP.NET, I’m going to start doing quite a lot of PHP / MySQL development.
I’ve quite painlessly installed WampServer to get a development environment up and running on my Windows machine, but the platform I’ll be targeting will most likely be Linux. Am I likely to run into problems due to developing on Windows while targeting Linux? Is it advisable to invest in getting a Linux environment setup in which to develop my LAMP applications?
If you can, I’d invest in some kind of Linux, or at least *nix, development environment. For simple applications and websites, your setup is fine, but you will eventually run into subtle differences when you deploy.
Here are some things off the top of my head you’ll want to watch out for if you stick with your Windows environment.
File paths. A lot of PHP functions take file paths as arguments. Do not use the Windows backslash (\) separator. Even though you’re on Windows, PHP will let you use a forward slash separator. Ideally abstract this away with your own file path class.
Apache Modules, PECL Extensions. Apache Windows and Apache Unix often come with a different set of Apache Modules installed by default. Also, the same version of a module may run differently on a different platform. If your application relies on any Apache module, make sure it’s available for both platforms. The same goes for PHP custom extensions (PECL).
Process Forking. Using exec, `, etc. in a web application is a bad idea to begin with, but if you’re using these functions they’re going to behave differently between Windows and *nix
File writing, locking, etc. works different
Email is handled differently on both platforms
The PHP group’s code word for Windows is "some platforms". You can research more on your own if you’d like
In general, the closer your development environment matches your production environment, the fewer environment/deployment related issues you’ll have.