Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

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 idea

  • Development 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!

share|improve this question
add comment

4 Answers

up vote 5 down vote accepted

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:

    1. Use a firewall. With Ubuntu Server this is easy to do using ufw and is talked about in the guide.
    2. Don't run services you don't need. Specifically, I would stay away from things like phpmyadmin.
    3. Don't provide access or privileges that isn't needed to others.
    4. 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.

share|improve this answer
1  
Git under MS Windows while better supported than in previous times, still is not on par with Mercurial e.g. with TortoiseHG. –  fschmitt Oct 2 '10 at 21:09
add comment

I see no need for a web developer to use Windows for development. Though you will still want a Windows platform for testing. Which btw you don't include in you list of tools. You should have some sort of automated testing environment for multiple different platforms, but that can all be done in a VM.

I would not use an IDE like Spket but would learn one of the basic and ( generallly speaking ) highly programmable editors: emacs, vi, or eclipse.

I would also use Mercurial on the client side for all code.

share|improve this answer
add comment

Look at Samba and here - these should cater for a lot of your requirements. Apache (comes standard with ubuntu) for web-server needs. If you must have FTP I suggest sftp

As for backups - look at this

share|improve this answer
add comment

I find cygwin, very useful for talking to linux servers. You can use rsync, ssh, scp and all those tools for copying files back and forth. Also, you're going to start getting used to unix tools pretty soon anyway, so you'll probably want those tools on you work machine too.

Some people prefer to use putty, but I find cygwin+mintty+openssh to be a much nicer choice, as it works with the same concepts as the native linux tools (ssh-agent, for example).

Last note, and some people may disagree with me on this, if you're going to copy files between cygwin and linux I recommend you disable ACLs by editing /etc/fstab.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.