I'm a long time Window user. Recently, I learned JavaScript/PHP/mySql and considered that Ubuntu Server will be the choice. I'll still work on Windows XP/7, though. Here's my ideaDevelopment Machine (XP/7): Where I do all the programming. The IDEs will be Spket (JavaScript) and Aptana (PHP). Along with other software like PhotoShop, Office...Server (Ubuntu Lucid): This is where I store my data, run my HTTP, email, FTP server... It will be a VPS.So simply put, I'll be working with Windows as a client (IDE, Client Email Software, FTP...) and Ubuntu as a server to manage my data (Mercurial, Apache, mySql...)I'm new, I wonder if there is already someone doing this and working with this mix of client/server. What are the possible downsides of this method? Is working over FTP with a VPS a good idea or not?I'm a solo-developer, I was thinking in the last few days of the best approach to work with the cloud. I do web development. Please reply with anything related and helpful, I would appreciate a lot developers that will write lengthy post about their working environment. I have exactly no specific idea in mind, just looking to make better.Thank you!
Setting up a development environment in Ubuntu
ubuntu;windows
Certainly many people have used Ubuntu Server with Windows clients. The Ubuntu Server Guide covers pretty much all of what you want to do.Here are a few comments on your proposed setup:Ditch FTP. Use SSH instead. Personally, I would also add that you should set up key-based authentication and disable password auth. See this page for some help.I don't see any sort of backup solution mentioned.  Be sure to have regular backups.Consider Git.  I would consider using Git rather than Mercurial, but that is a personal preference.Think about security from the start--especially if it is going to be facing the web. Again see (1). You don't need to be a security expert, but you should at least consider the following: Use a firewall.  With Ubuntu Server this is easy to do using ufw and is talked about in the guide. Don't run services you don't need. Specifically, I would stay away from things like phpmyadmin.Don't provide access or privileges that isn't needed to others.Think about auditing and logging. A more general comment that I don't want to push too hard is that you might consider just moving your development process over to linux as well.  In my experience, the tools available for linux make working with a remote server much smoother.