Okay, my servers (5 separate sites now) have long lived at virtual hosting facilities. Now, however, it has become apparent that they have become large enough (and cost-wise, expensive enough) to warrant the investment in my own rackmount server to be hosted at a large datacenter. It makes sense all the way around - and probably will for many on this board in the near future. Some of the advantages I have now are 1) users all in one place for great cross-marketing, 2) databases all in one place for greater coverage and also ease of maintenence, 3) complete control of my servers, 4) ability to use email-marketing more effectively, 5) a ridiculously good connection, 6) if I want, I can host some of my clients sites now [which are very-low bandwidth] to recoup some of my costs, and 7) did I mention complete control?! ;)
But now comes the task of getting the server ready. I bought a nice 1U rackmount for the occasion (and will upgrade if/when necessary). I installed FreeBSD (love it for its stability, *nix environment, and good network performance, as well as the Ports collection!) and have set up most of my needed services.
What I intend to do with this post is a) ask a few questions that I have, and b) share some of what I have already learned about making this switch smoothly. My server is still sitting next to me at home, but will be taken away within the next couple of days. Obviously I will be performing finishing touches once it is at the facility, but I'd like to set up the basics beforehand. So here goes nothing:
Things I've Done So Far (with some useful links):
- Formatted using latest stable FreeBSD. Very stable, very nice.
- Installed Apache 2 [httpd.apache.org]. The installation instructions here [httpd.apache.org] are very good. Since I'm hosting multiple domains, I'll need to set up some VirtualHosts. This is very good for examples [httpd.apache.org].
- Installed PHP4.3.4. Getting PHP4 to work nicely with Apache 2 is a little tricky, so watch out! But this document [php.net] does a good job of helping you.
- Installed sshd. There should be no need to even explain this. If you dont have access to the console, but need access to the machine, this is the only way to go!
- Installed qmail and courier-imap. I used the ports for qmail, but more information can be found here [qmail.org]. courier-imap is a good way to use IMAP, and I also received that from the ports collection. I found this site [freebsd.qmailrocks.org] to be a pretty good guide. You can use their tarball to install a very nice complement of programs if you'd like, too. The instructions are pretty clean and simple, which is also very nice!
- Installed squirrelmail [squirrelmail.org]. SquirrelMail is such a great web-based email program, and the fact that it's sooo simple to set up, especially using the nice little Perl script, makes it the perfect choice in my book.
- Installed MySQL [mysql.com]. Databases are a big part of my site, and probably of yours, too. This is a great choice! I installed this close to first so that I could configure the rest to use it! It turned out to be easier for me to install from the tarball than from the ports this time. This is a great little tutorial [freebsddiary.org]! (BTW, [freebsddiary.org...] has a bunch of nice articles for FreeBSD! Be sure to check them out.)
Things Left To Do:
- Back up all my current sites and their respective databases and transfer them over to my new server. This might be a bit more difficult since I'll be changing the structure of the databases while I'm at it for more scalability.
- Do the things below (maybe?)?
- GO LIVE!
Things I Need Help With (please help!):
- Can anyone help explain qmail's virtual domains? If I have five domains and 1 IP and I want addresses for users on each domain, how do I do this?!? From what I've searched, there are NO clear answers.
- Do I need to run a DNS server or a zone server (for things like MX records), or is just setting my DNS through my registrars enough?
I think I covered a lot of it. Obviously everyone has their own needs, but these basically cover mine. Can anyone add anything to the mix, or help me with my questions?
Thanks a bunch, and I hope I helped someone!
Ian