2

I'm a Stack Overflow user but I've never used SF before.

I've upgraded to newer machines this week and would like to get everything all interconnected nicely but I'm a little unsure how to go about it. I'm so dumb about it that I'm not even sure what question to ask, so how about I just explain what I've got and what I want to do with it and someone could point me in the right direction.

What I have: -A Windows 7 Desktop PC -2 MacBooks (one running Snow Leopard, the other Leopard) -A Windows XP Destop PC that I intend to convert to a Linux system -A run-of-the-mill Linksys Wireless Router

What I'd like to do: -I'll work backwards from the list above. I'd like to set the XP box up to run Linux as mentioned (I don't know what flavor - again, suggestions welcome). I'm a web developer for a living and would like to be able to set up a staging server on that box to host the sites that are currently in development for client review. A LAMP stack, Git, and FTP are required there and should be able to be accessed from inside or outside of the local network. I'd also like to be able to get directory access to that whole server from inside the network on wired and wireless machines.

The 2 Mac laptops need to be able to share files and one printer with everything else.

The W7 desktop again needs to share files from everywhere, and should also have command line access to the Linux box. The printer would be hooked to this machine. This is my primary "work" computer.

So, to summarize - for work, I'd like to be able to share my dev environment, hosted on the Linux box, with the rest of the network and outside clients. I'd like to be able to share everything else within the network. All computers are different.

Any way to do all this without wanting to blow my brains out?

Thanks greatly, M

  • What does "directory access" mean? I think you're talking about accessing its filesystem, but I want to be sure. – Evan Anderson Nov 08 '09 at 01:38
  • I personally wouldn't give outside clients access to my development server, for any reason. I would set up a seperate machine for their needs, whether it was to upload files or preview websites. Scripts/cron jobs could copy files back & forth between this & the dev server. This could even be done with a VM running on the dev server, but in general, no direct access to the dev server. – Joe Internet Nov 08 '09 at 03:06
  • Also, if you're making money from all of this, I would consider a beefier router option, whether commercial, open source, or upgraded firmware for your Linksys router. – Joe Internet Nov 08 '09 at 03:09
  • RE Evan: Yes - you are correct - I would like everything to be able to access the whole file system. Thanks for asking. –  Nov 08 '09 at 04:49

2 Answers2

2

Sounds like a lot of fun.

CentOS or Ubuntu will do what you want. Both can satisfy your application software requirements. I'm a CentOS guy myself, but then I'm also a "don't install X Windows" kind of guy, too. If you're looking for a nice GUI for administration you'd probably like Ubuntu.

I'd do my file sharing for accessing the server's filesytem with Samba. Samba serves the SMB protocol (native filesharing protocol for Windows) and Mac OS has an SMB client built-in. There are some nice HOWTO documents out there on setting up Samba (example, Basic Samba Setup in Ubuntu 9.10 Karmic Koala ). The Mac OS machines have NFS clients built in, so you could use the NFS protocol in lieu of Samba, but while Windows 7 can be an NFS client it really "wants" to use SMB out-of-the-box.

You'll have command-line access to the Linux machine through SSH. I'd use PuTTY on Windows, but there are many SSH clients out there. Mac OS has OpenSSH built-in, I believe.

You can "share" the printer from the Windows 7 machine with the Mac machines either using SMB, or by installing the "Print Services for Unix", which will allow the Windows 7 machine to "export" the printer as an LPR port. You'll "share" the printer on the Windows 7 machine and the LPR queue name will be the same as the "share name". I've never "connected" to printers on a Windows machine from any version of Mac OS. I'd guess that LPR would be the cleanest way to go.

Using the DHCP server on the LinkSys router is fine, but I'd give the Linux box a static IP address. If the Windows 7 box is going to be "sharing" printers I'd probably give it a static IP address, too.

To get access to your environment from outside you're going to want to port-forward the appropriate ports on your router to the LAN IP addresses and ports of the right machines. If you want SSH access from the outside, then forward port 22, etc. I can't tell you about exposing Git, because I don't know what ports / protocols it uses, but there are very likely guides out there on the 'net about how to do it.

You might want to get a Dynamic DNS account if you don't have a static IP address at home. I use Dyndns.org, but there are several out there. You'd run a piece of software on one of your computers to update their records of your IP address periodically. If you're looking for easy configuration I'd get their Windows-based "official" updater client and run it on the Windows 7 box. If the Windows 7 box will only be turned on periodically you can get one that runs under Linux, too, but I doubt the setup will be as "friendly" as the Windows client.

I'll see how other people answer you and edit as necessary if other good points come up. I don't know where you are in terms of familiarity with all the OS's involved. Be prepared for some learning curve, but everything you want to do is pretty much "mainstream" type usage now.

You should think about some kind of backup mechanism for your documents / code. There are a slew of offerings out there, both locally-hosted and online. I'm assuming that you'd "dump" your various applications (database server, Git repository, etc) to files and backup these files, but it's really so wide-open as to how you might do this that I'm not even going to try and speak to it. My main point would be not to neglect backup as a last-minute thing. It's your livelihood, so spend a little bit of time / money and get something that provides off-site and offline backup storage. (Even some large flash drives or a couple of external hard disk drives that you rotate to a trusted off-site location periodically is better than nothing.) Having had a friend go thru a house fire and have a lot of his personal computer equipment burn up (as well as having Customers go thru fires and thefts) I've really gained an appreciation for good backup.

Evan Anderson
  • 141,881
  • 20
  • 196
  • 331
0

They should all be able to share out of the box using Windows File Sharing (Samba on linux and Mac). All 3 operating systems have a nice easy sharing control panel if you know how to find it.

For the dev environment I would prefer to setup a FTP site to access those files personally.

djangofan
  • 4,182
  • 10
  • 46
  • 59