Here were some of the requirements and technical challenges I had and my solution to them with Gator.
Primary Account
I wanted to run a single Drupal installation so I did not have to maintain modules on every domain. I also wanted to migrate over to Drupal 6 or Drupal 7 at some point. I chose one of Gator’s reseller hosting plans with enough bandwidth and diskspace for my needs. I set up the main account as a throw away account. This is my primary user that I use to log into Gator’s control panels. I put up a simple one page web site there. This account cannot be changed once it is created (without paying $5). If you are following along at home my advice would be to set this main account up as a sub-domain and not as a domain. That is if your domain is domain.com then do not set up your Gator site domain as domain.com. Instead set it up as some other host in that domain. For example sleepy.domain.com. You can then still use domain.com as a parked domain later. I have always done this. I name the machine this way. This also require that you set up your own DNS accordingly. I am not using Gator for DNS hosting which is not Gator’s preferred method but it is mine.
Sub Accounts
Now I was able to set up a sub account for my Drupal 5 installation. I considered this like another host so I gave it a name. Let’s call this one dopey. I set up my DNS for dopey.domain.com to point at the ISP address given to me by Gator. You can make it easy on yourself and point *.domain.com at the same IP address. I installed Drupal and it working. Each sub account has its own username and password that only has access to that account. You use that username and password for the CPANEL, MySQL, and for FTP. The master account has access to all sub accounts. I created another sub account for Drupal 6.
MySQL
I opted to create a separate MySQL database for each web site. A single Drupal web site can have a hundred tables or more. On my old server I ended up with thousands of tables in one Database. This makes the admin tools for MySQL very unhappy. This new approach also makes it easier to drop one site or restore one site. Gator is on MySQL 5 which was an upgrade that I has looming.
PHP
In order to get my fir Drupal install working, I had to turn off register_globals and enable clean URLs. In both cases Gator support was able to help me out. The answer to the register_globals was to create a PHP.INI file with the appropriate commands. For the mod_rewrite, I just had to create an .htaccess file with the appropriate commands. Gator is on PHP 5 which is another upgrade that I had been putting off.
Cron
Drupal depends on a regularly run cron script for its own maintenance. On my old server I just ran a cron script that ran through a list of domains and processed the cron page for each one. The cron script I wrote uses curl. By default curl is not enabled. A quick ticket to Gator got that enabled on a per account basis. Now I can run my cron script.
Domain Parking
Since I am sharing an IP address with who knows how many other customers, I have to register all of my domains with the server. I do this with a service called Domain Parking. Until registered I see a generic parking page that tells me that the DNS is right but my parking is not. Once I park domain.com, it appears that all sub-domains also work.
DNS
Gator wants you to use their DNS. If you use their DNS then any changes you make in the CPANEL automatically change the appropriate DNS entry. I like my DNS hosting company and did not want to change. A quick ticket with Gator Support and they registered my DNS servers as trusted servers. This was necessary before I could park my domains Naturally I am on my own as far as making sure everything is pointed in the right direction.
Domain Forwarding
I am using domain forwarding much more than ever before. If a customer has domain.com and domain.org, I make them choose one as the real domain and forward the other at the real one. This make Google Search happy too because google does not like to see the same content on multiple URLs. I am also using domain forwarding to forward directly to a particular URL if that is appropriate. So domain2.com can forward right to domain.com/number2. This makes for a very pleasant user experience.
MX
Gator expects you to use their email servers. I choose not to. I have no complaints about them. I am happy with my current mail situation and do not want to change. I plan to use Gators mail server in a limited capacity. I am already using Gator’s mail server for sending mail. I have read elsewhere that Gator limits sending email to 200 messages per hour. I have not confirmed that. If true, that might be a problem in the future but for now it is not a problem. Because of this assumption, you have to go into the CPANEL for MX records and change the MX record to match your real configuration or you will not get any mail from your server. The mail server checks its MX record first before going out to get the real MX record. This will have to be maintained any time the real MX record changes.
Webalizer
I have been using Webalizer for years. I liked that it was enabled by default. I was able to use the reports right away. Since the report is for the entire account, I cannot pick out an individual Drupal site’s traffic. I will be able to use Drupal Logs or Google Analytics in order to get site-specify report that I can share with my customers. Right out of the box I found my site being crawled heavily by some Russian site. I was able to immediately block that IP right in the CPANEL instead of having to go to each individual Drupal site.
Backup
I am having to figure out new ways for backups. In the past I would rely on a second hard drive in the same server. Every night I script ran to backup the database and every web site’s files. I kept files for each month and the previous day. If there was every a problem, I could just restore the files. Now I have to back everything up over the web. I am still trying to come up with a way to schedule it to be automated. I think I will end up setting up a server in my house that mirrors everything on the server. More on that once I figure it out.
So in summary the migration has been relatively easy. I have to commend Gator support. They were very responsive via online chat, phone and email. The online Ticket system is by far the best mechanism to request a configuration change. The online chat is the best method for getting a quick question answered but those reps generally do not have access to change your site.
Douglas-
Thanks for taking the time to share all of this info. I am also transferring several domains to my new HostGator reseller account and this answered some of my questions.
I wish i would have seen your write up before I moved to Host Gator. I didn’t realise that the first domain used to setup the account was the primary account and could not be removed. I could change it but it would require a bit of work to do. Hey thanks for the great writeup. Bay Area Lawyer
hi douglas, thanks for the writeup 🙂
may i suggest you look into “xcloner” for your backup needs.
It was originally a Joomla component, but is now standalone:
joomlaplug.com
one licence enables you to use it on several servers.
i remember i had to set the script timeout (which you can set to in php.ini on HG) to a higher number..
Im running scheduled ftp scripts on a remote computer to pick up the compressed backup produced by xcloner (containing files and sql data) from the HG webserver via ftp every now and then..
well, thats how I do it, anyway 🙂
cherrio from London, UK
stian
Gator has updated to Apache 2. Form my sites the update went smoothly.
I can honestly say that they are excellent indeed. I needed to move my accounts from my old web host and they helped me a lot.
Im still not tracking on the primary account for the reseller account. I have the baby croc account, which has the primary domain and all other domains fall under it. Some people say that wont affect seo some say it does. I talked to hostgator about the reseller account and I was told that the only way for each of my domains to be the main domain was to create a sperate account for each domain under the reseller package. What I get off of this page is that i will have the same problem with a reseller account. Am I understanding correctly?
Thanks for any help ahead of time.
My conversation was relevant to Drupal hosting. With Drupal Hosting, the host header record is used to serve up the right domain content. If you are not on Drupal then this is not what you need.