Drupal Hosting Guide

Welcome to ThetaJoin hosting! This userguide will assist you in using our high performance Drupal servers as quickly as possible. Even though this guide was written for clients using ThetaJoin hosting servers, this guide can also be used for anyone using Drupal on their own servers.
We appreciate feedback on this userguide. Comments, or suggestions can be emailed to userguide@thetajoin.com

Accessing Your New ThetaJoin Server

There are serveral ways to access your ThetaJoin server. The security of your ThetaJoin server is very important to us, which demands that all remote access to you server is via Secure Sockets Layer SSL. When you sign up for ThetaJoin Hosting, we'll provide you with several URLs with username, and password to access your server.  

SSL Username & Password 

The first time you connect to your new ThetaJoin server using a URL similar to https://www.example.com, you'll be prompted for a username and password before you can gain access to Webmin, phpMyAdmin, AWStats, or any Drupal administrative pages (only if the Drupal Secure Pages module has been installed, which we HIGHLY recommend). Webmin, phpMyAdmin, and Drupal administrative pages require an additional username & password to login. AWStats doesn't require a seperate username & password. You can have your web browser remember this username & password, plus you can change both. ThetaJoin will provide instructions on how to change your SSL password.

Webmin 

Webmin is a web-based interface for system administration of your ThetaJoin server, very similar to CPanelTM but requires far less resources. If you've used any of the control panel style interfaces, you'll feel right at home. We've gone even further in configuring Webmin, it's only configured to display what you're allowed to do on your server, nothing more. Detailed instructions can be found on the ThetaJoin Hosting Webmin page. The standard URL for Webmin access is: https://www.example.com:10000, where www.example.com would be replaced with your real website server hostname. 

phpMyAdmin 

phpMyAdmin is a free software tool written in PHP intended to handle the administration of MySQL using your web browser. phpMyAdmin is used to create the Drupal database, manage webserver virtual hosts, and Drupal's user account to access MySQL. Detailed instructions can be found on the ThetaJoin Hosting phpMyAdmin page. The URL to access phpMyAdmin will be similar to: https://www.example.com/phpmyadmin , where www.example.com will be replaced with your real website server hostname. 

AWStats 

AWStats is a free powerful and featureful tool that generates advanced web statistics graphically. All ThetaJoin servers use AWStats to analyze the webserver's logfile. The URL to access AWStats will be similar to https://www.example.com/awstats/cgi-bin/awstats.pl, where www.example.com will be replaced with your real website server hostname. 

Command Line Access 

We are working to provide command line access to ThetaJoin servers using: 

We'll announce when we've reached that milestone.

 

DNS Configuration for ThetaJoin Servers

The Domain Name System, or DNS, is used to map server hostnames to IP addresses. ThetaJoin can provide and manage this service as part of hosting your Drupal website on our servers. 

When you registered your internet domain name, there was a place to enter the DNS or nameservers that store the IP address for your ThetaJoin servers. There are too many domain registrars to provide exact instructions on how to enter this information. 

ThetaJoin has two ways to manage your DNS for your servers:

  1. DNS with Enterprise Email Services
  2. DNS without Enterprise Email Services 

DNS with Enterprise Email Services 

If you have Enterprise Email Services with your hosting plan, it's required that ThetaJoin manage your DNS for you so you can have all the power of Enterprise Email and ThetaJoin Hosting. Enter the following two nameservers into your registrars domain configuration: 

  1. ns1.messagingengine.com
  2. ns2.messagingengine.com 

DNS without Enterprise Email Services 

If you don't require Enterprise Email Services, ThetaJoin can still manage your DNS for you. Enter the following two nameservers into your registrars domain configuration:

  1. dns1.stabletransit.com
  2. dns2.stabletransit.com 

Changes to the DNS system can take anywhere from a few minutes, or up to 24 hours. Changes need to propagate across the entire internet. 

Note: You can still manage your own DNS if you'd like. ThetaJoin will provide you with the  public IP address of your server.

Using Webmin

NOTE: You have full access to the directory that stores all the files related to your Drupal website. DO NOT MAKE ANY CHANGES UNLESS YOU HAVE TESTED & VERIFIED BACKUPS OF YOUR DRUPAL WEBSITE.

Webmin provides web browser access to your ThetaJoin server. You can manage all aspects of the Drupal file system using this interface.  

Login to Webmin at https://www.example.com:10000, you may be prompted for the SSL username & password. The Webmin login screen will appear.

Webmin Opening Screen

 

Once logged into Webmin, click on the green down arrows to expand menus.

Logged In

 

 

Use the Changing Languages & Themes menu option to change the look and language of Webmin. 

 Webmin Language & Themes

 

Webmin Actions logs what changes have been done to the server through the Webmin interface. Actions can be searched by Webmin users, modules, by dates, modified a specific file. Actions can include changes to a file too. 

Webmin Actions Log

 

Drupal backups can be made through the Filesystem Backup menu. Detailed instructions are in the Drupal Backups page of the ThetaJoin Hosting Guide. Even though ThetaJoin handles full server weekly, daily & custom file and MySQL backups, client managed backups are very important and are part of the full disaster recovery plan.

Drupal Backups

 

Webmin can be used to schedule Cron jobs that Drupal requires for proper operation. Detailed instructions can be found in the Cron Configuration page of the ThetaJoin Hosting Guide.

Drupal Cron Jobs

 

Webmin provides access to all installed server documentation.

Searching System Documentation

 

Having the ability to view system logs can help pinpoint problems with your Drupal website.

Viewing System Logs

 

Webmin provides access to the MySQL Database Server. ThetaJoin provides phpMyAdmin as well, and it's our preferred interface to MySQL running on your server. phpMyAdmin is described in detail in the Using phpMyAdmin page of the ThetaJoin Hosting Guide. You may be prompted for the MySQL root user password. This has been provided, enter it in the password field.

 MySQL Logged In

 

Webmin provides a full featured File Manager interface into your webserver directory. File system access is locked into /var/www. You'll have the ability to upload, download, delete, rename, copy, cut, and paste files. The File Manager supports the extraction for compressed files. Compressing files before copying to your ThetaJoin server lessens transfer time, then extraction can happen on the server. The Webmin File Manage requires JavaTM to be installed on your computer in order to function.

Webmin File Manager

 

Using phpMyAdmin

NOTE: You have root access to the MySQL database that stores all the data related to your Drupal website. DO NOT MAKE ANY CHANGES UNLESS YOU HAVE TESTED & VERIFIED BACKUPS OF YOUR DRUPAL WEBSITE.

This chapter of the ThetaJoin Hosting Guide is not meant to be detailed instructions on how to administer your Drupal database system. ThetaJoin can highly recommend the book - MySQL Administrator's Bible by Sheeri K. Cabral & Keith Murphy.

ThetaJoin servers are configured to provide MySQL database administration through your web browser using the industry standard phpMyAdmin interface. The URL to access phpMyAdmin is similar to https://www.example.com/phpmyadmin. When prompted, enter the TLS (SSL) username & password, then the Welcome to phpMyAdmin screen will appear.

Logon Screen

 

Once logged in to phpMyAdmin, the opening screen provides full access to the MySQL database running on your ThetaJoin server. ThetaJoin allows full root access to your MySQL server because your ThetaJoin server is just that - yours. It's important to note that's imperative before you make any changes to your MySQL database, you have a full backup that has been tested, and verified to restore error free. The Drupal Backups page of the ThetaJoin Hosting Guide details how to create a MySQL backup, and restore the database too. 

Across the top of the page are many tabs for the different administrative tools to MySQL. The Database Tab shows all databases in your MySQL server.

Databases Tab

 

Regular SQL statements can be run using the SQL Tab.

SQL Command Tab

 

MySQL performance and configuration can be viewed using the Status and Variables Tabs.

Status Tab

 

 Variables Tab

 

phpMyAdmin displays the different character sets using the Charsets tab.

Charsets Tab

 

MySQL can use a number of different Storage Engines. View them with the Engines Tab.

Engines Tab 

 MySQL's extensive database security is administered through the Privileges Tab.

Privileges Tab

 

Each MySQL connection is a seperate process internally. This can be used to see what user connected to the MySQL database is doing, it's status, etc. Use the Processes Tab to view this information.

Processes Tab

The ability to Export and Import MySQL databases is one way you can backup your Drupal site. Backups are covered in the Drupal Backups page of the ThetaJoin Hosting Guide.

Export Tab

Import Tab

Drupal is all about the underlying database. Viewing the structure of each Drupal database table can be done by clicking on the database name that's shown in the left hand menu.

Database Structure Tab

 

Installing Drupal

These instructions are for installing a brand new Drupal website. Most of these steps are applicable for installing Drupal from a development server to your ThetaJoin server.

There are several steps to installing Drupal on your new ThetaJoin server. Essentially, you'll use phpMyAdmin to create the Drupal database, and Drupal user that accesses that database. You'll use the Webmin Filemanager to upload the Drupal source tarball into the webserver directory. Once those steps have been completed, we'll go through the steps to finish the installation, leaving you with a working Drupal website.

Creating the Drupal Database

Login to phpMyAdmin as the root MySQL user, then click on the Databases tab. Enter the name of your Drupal database in the Create new database field, then click the Create button.

Create Database

 Results of Create new Database:

Create Database Results

 

Creating the Drupal User

Your new Drupal database requires a dedicated Drupal user to access it. DO NOT USE THE MySQL root USER AS YOUR DRUPAL DATABASE USER. The MySQL root user has too many privileges making it a security risk to your Drupal website. We'll use drupaluser as the Drupal username that will have these privileges to access the newly created drupal database. This drupaluser requires the following privileges on the drupal database: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER privileges.

To add the drupaluser, click on the Privileges Tab, then Add a new user under the User overview section. Enter the following information:

User name: drupaluser

Host: select Local from dropdown list.

Password: DrupalPassw0rd (That's a zero)

In the Global privileges area, Data section, check: SELECT, INSERT, UPDATE, DELETE. In the Structure section, check: CREATE, ALTER, INDEX, DROP. Click the Go button at the bottom of the page. Your phpMyAdmin Privileges screen should look like:

Drupal User Privileges

Verify the drupaluser has been created by clicking on the Privileges Tab. You should see the drupaluser created - it's highlighted in green. Record the drupaluser name, and password, we'll need it later during the Database configuration phase of installation.

drupaluser Privileges

 

Upload Drupal Source

Using the Webmin Filemanager, click the Upload button, and the upload file screen will appear. Upload the latest Drupal tarball from http://drupal.org/ using the Uncompress Zip or TAR file set to Yes.

Upload Drupal

When the Webmin Filemanager is finished uploading and untarring Drupal source, the Filemanager should look like the resulting image. ThetaJoin webservers are expecting the first Drupal site to be in the drupal directory.

Upload Completed

Using a web browser, go to your newly uploaded Drupal website. You should see the following screen to continue the Drupal installation process. To continue, click on the Install Drupal (in English).

Install Drupal Through Browser

 

Meeting Drupal Requirements

A requirements problem page will be displayed. The directions in the red box need to be followed using the Webmin Filemanager.

Requirements Problem

 

Switch tabs to the Webmin Filemanager, copy & paste the ./sites/default/default.settings.php file to ./sites/default/settings.php. First, highlight default.settings.php file, then click the copy button on the toolbar. Click Past on the toolbar again, then enter settings.php in the dialog box. Click the OK button to copy the default.settings.php file to settings.php.

Copy Settings

 

Your ThetaJoin server is already configured to edit the settings.php file as mentioned in Step 2. Click on the Try again link on your Drupal website page. The Database configuration page will display. Enter the Database name (drupal), Database username (drupaluser), and the Database password (DrupalPassw0rd). See the next image. Once everything is correct, click the Save and continue button.

 Drupal Database Config

 

Configure Site

After the database configuration, you'll be brought to the Configure site page. You'll configure Drupal to display your site name, site email address, administrator account information, and other site related information. Take the time to read all the directions on this page, they should be self explanatory. It's recommended to choose another administrator username and password that's different than the MySQL drupaluser and password. The server settings section should configure itself automatically. Be sure to click the Save and continue button.

Config Site

 Config Site

 Config Site

 Drupal Installed

 Congratulations! Drupal has been installed!!

Site Finished

 Welcome Screen

 

Drupal is now installed and ready for customization. Even though this is the ThetaJoin Hosting Guide, these directions can be used to install Drupal on just about any Linux platform.

Cron Configuration

Cron is a time-based scheduler used to run programs automatically on UNIX, Linux and Mac servers. ThetaJoin runs Ubuntu Server LTS, which is a distribution of Linux. Cron calls the wget program to run the cron.php script that's installed along with your Drupal site. This script is used to run automated tasks within Drupal, such as checking for Drupal updates, updating RSS feeds, clearing out logs, possibly sending out emails, etc.

Security

There's one important security aspect in accessing the cron.php script on your ThetaJoin server. For security purposes, ThetaJoin webservers are configured to deny access to the cron.php script from the public internet. As an example, if you try to run cron.php from http://www.thetajoin.com/cron.php, you'll receive a 403 Forbidden error. Having cron.php publically accessible can cause all kinds of havoc to your Drupal website such as excessive database activity, logfiles getting emptied, RSS feeds constantly updating causing you to get blocked from their sources, and even overloading the webserver on your ThetaJoin server. To mitigate this security problem, cron.php can only be called from the localhost. All ThetaJoin servers come preconfigured to run wget every 15 mins, which should be sufficient for most sites.

Configuration

Cron is used to create a "cron job" to call the wget program which accesses the URL http://localhost/cron.php. To access Cron on your ThetaJoin server, login to Webmin, then navigate to the System->Scheduled Cron Jobs page, click on the wget line.

Drupal Hosting Cron Conig

Click on the wget line produces the configuration page for that cron job. Starting from the top, this cron job is executed as the root user, this cron job is active, and the command that cron will run is:

/usr/bin/wget -q -t 1 -O /dev/null http://localhost/cron.php

The wget command has a few commandline arguments:

Under the When to execute area is where this cron job time is set to execute. ThetaJoin servers are configured to run the wget cron job every 15 mins.

Drupal Hosting Cron Configuration

Cron is highly configurable, and is covered in greater detail in the Ubuntu Cron Howto.

Backup & Restore Drupal

ThetaJoin provides full server daily & weekly backups, and can provide MySQL, and filesystem backups too. Backups are not 100% infallible, and it's very important to have a site disaster recovery process that has been tested, and verified to work. Multiple tested, and verified backups are the only sure way to know if your site disaster recovery plan is solid. Don't find out in the middle of a disaster that your backups are corrupt. Remember, backups happen leisurely, but recovery happens in a crisis.

 

WE HIGHLY ENCOURAGE ALL CLIENTS MAINTAIN A SET OF BACKUPS ON THEIR OWN.

 

Backing Up the Drupal MySQL Database

Logon to the phpMyAdmin MySQL using a link similar to https://www.example.com/phpmyadmin. Click on the Export tab on the phpMyAdmin main menu. Select all databases except information_schema in the Export area of phpMyAdmin. You want all MySQL databases backed up. In the Options->Database export options, check add DROP DATABASE. In the Options->Structure area, check Add DROP TABLE / VIEW / PROCEDURE / FUNCTION, Add CREATE PROCEDURE / FUNCTION.

Export Drupal MySQL Database

Scroll to the bottom of the Export page, select the Save as file, and gzipped in compression. ThetaJoin servers are configured to support up to 256MB file uploads. By choosing gzipped, your database can be around 2GB in size, depending upon how well your export file compresses. Once configuration is complete, click the Go button.

Drupal MySQL Export

After clicking the Go button, you'll be presented with a download screen from your web browser. Save the file to your desktop.

Download Drupal MySQL Database

 

Restoring the Drupal MySQL Database 

Restoring your Drupal MySQL database into your ThetaJoin server is a simple process. Click on the Import tab in phpMyAdmin, the choose your file that contains your backed up Drupal MySQL databases. Once selected, click the Go button to restore your database.

Import Drupal MySQL Database

The results of restoring your Drupal MySQL database should look like the image below.

Drupal Database Import Results

 

Backing Up Drupal Site Files

Our goal is to create a tar.gz file with all of your Drupal files. This file could be very large depending upon how big your Drupal site is.

Creating Backup Archive with Webmin

Webmin makes it easy to create your Drupal site tar.gz or tgz file. Logon to Webmin, then navigate to the File Manager through Others->File Manager. Select the directory that contains your Drupal site files, then the click the Save button. You'll be presented with a Download Directory dialog box. Click on the TAR.GZ button. Your web browser will prompt you to download the newly created tgz file. Save this tgz file to your desktop.

Drupal Archive Webmin Creation

You now have a backup of your Drupal site. Store all these files in a safe place.

Moving Drupal from Another Server

All ThetaJoin development servers are configured exactly like your production Drupal server, so going "live" is a straightforward process. There are two major steps to moving to your live ThetaJoin server - move the Drupal MySQL database, and copy the drupal directory containing all your site files using the Webmin filemanager. These directions can also be used if you have your own in-house development server, or can be used to move your existing Drupal website from your current generic hosting company to your new high performance ThetaJoin server. It's easiest if you have the same version of phpMyAdmin installed on your development server. It's very important that all developers are not using the ThetaJoin development server.

Moving the Drupal MySQL Database 

Exporting the Drupal MySQL Database

Logon to the phpMyAdmin MySQL using a link similar to https://www.example.com/phpmyadmin. Click on the Export tab on the phpMyAdmin main menu. Highlight the name of your drupal database in the Export area of phpMyAdmin. In the Options->Database export options, check add DROP DATABASE. In the Options->Structure area, check Add DROP TABLE / VIEW / PROCEDURE / FUNCTION, Add CREATE PROCEDURE / FUNCTION.

Export Drupal MySQL Database

Scroll to the bottom of the Export page, select the Save as file, and gzipped in compression. ThetaJoin servers are configured to support up to 256MB file uploads. By choosing gzipped, your database can be around 2GB in size, depending upon how well your export file compresses. Once configuration is complete, click the Go button.

Drupal MySQL Export

After clicking the Go button, you'll be presented with a download screen from your web browser. Save the file to your desktop.

Download Drupal MySQL Database

Importing the Drupal MySQL Database 

Importing your Drupal MySQL database into your ThetaJoin server is a simple process. Click on the Import tab in phpMyAdmin, the choose your file that contains your exported Drupal MySQL database from your development server. Once selected, click the Go button to import your database.

Import Drupal MySQL Database

 

The results of importing your Drupal MySQL database should look like the image below.

Drupal Database Import Results

This concludes moving your Drupal MySQL database from your ThetaJoin development server to your "live" ThetaJoin server.

 

Moving Drupal Files

Our goal is to create a tar.gz file with all of your Drupal files. There can be many ways to accomplish this task by using the commandline, or an archiving program. We'll cover both approaches in these instructions.

Commandline

ThetaJoin development servers are not configured for commandline access - yet. It's on our todo list. If you have commandline access on your own development system, the following command can be run in terminal:

# tar cvzf MyDrupalSite.tar.gz /var/www

Provided your Drupal development site is in /var/www in your development server. Change /var/www if your Drupal development site is located in another directory. This command creates the file MyDrupalSite.tar.gz that contains all the files, and directories in /var/www directory. The /var/www directory is the configured directory that all ThetaJoin servers use for your Drupal site. You'll upload this file using Webmin.

Archiving Program

There are many graphical archiving programs available to make the tar.gz file. We'll demo using the Create Archive built into Ubuntu.

Using the Gnome Filemanager, double click on the var directory, then right click on the www directory, choose Create archive.

Create Drupal Archive

 

Creating Archive with Webmin

ThetaJoin development servers are configured identically to your "live" production server. Webmin makes it easy to create your Drupal site tar.gz or tgz file. Logon to Webmin, then navigate to the File Manager through Others->File Manager. Select the directory that contains your Drupal site files, then click the Save button. You'll be presented with a Download Directory dialog box. Click on the TAR.GZ button. Your web browser will prompt you to download the newly created tgz file. Save this tgz file to your desktop.

Drupal Archive Webmin Creation

 

Transfer Drupal Using Webmin

Webmin is used to upload the tar.gz or tgz file containing all your Drupal site files. With a new ThetaJoin server, your /var/www directory will be empty. Upload your tar.gz or tgz file by clicking on the Upload button on the Webmin Filemanager menu. Choose the file to upload, leave the Upload directory as /, then set Uncompress ZIP or TAR file to Yes, or Yes, then delete. Once the Upload File dialogbox has been filled out, click Upload.

Webmin Upload Drupal Site

Once the upload is completed, you may have to click the Refresh button. Your new Drupal website has been uploaded, and untarred/gunzipped into the /var/www directory.

Webmin Upload Drupal Site Complete

Multiple Drupal Sites on Single ThetaJoin Server

ThetaJoin servers support having multiple Drupal websites on the same server. There are several limiting factors in how many Drupal sites a given server can support. Factors include the combined size of all Drupal MySQL databases, how many page views per second all of the sites experience, and disk space for Drupal site files.

Drupal provides the ability to host several Drupal sites using the same Drupal codebase, or you can have your ThetaJoin hosted Drupal sites use separate Drupal codebases. There are pros & cons to each approach so this chapter will discuss both.

There are several steps to host multiple Drupal sites on the same ThetaJoin server. Namely, create a separate MySQL Drupal database for each site, create a separate Drupal directory in Webmin, configure the webserver for virtual domains using phpMyAdmin & Webmin.

Virtual domains is a way to configure a single webserver to support multiple websites under different domain names. For example, www.thetajoin.com and blog.thetajoin.com websites can be served by a single ThetaJoin server. 

NOTE: It's important when creating virtual domains that the first site document root is always /var/www/drupal. If you change this directory to another name, you'll generate an HTTP 500 server error which locks you out of ALL Drupal sites hosted on your server.

Shared Drupal Codebase - New Site

A shared Drupal codebase environment is slightly easier to configure than the independant Drupal codebase. The steps involved is to install the first Drupal site to your ThetaJoin server, copy & configure site specific Drupal configuration files in /var/www/, then install the new site. You will be required to have DNS configured for your domains. Coordinate with ThetaJoin to have your sites's domain names, and IP addresses configured in DNS.

Install First Drupal Site  

The Installing Drupal chapter of the ThetaJoin Hosting Guide has the directions for installing your first Drupal site. In this example, we'll use site1.thetajoin.com as our first site, or default Drupal site. Site1 should look like:

Hosting Multiple Drupal Sites - Site1

Once site1 is working, create a new directory /drupal/sites/site2.thetajoin.com using Webmin.

Multiple Drupal Sites Create Site2

Using Webmin, copy all files from /drupal/sites/default/* to /drupal/sites/site2.thetajoin.com.

Multiple Drupal Site Hosting Copy Config Files

Using phpMyAdmin, create a new database, we'll call it site2.

Multiple Drupal Site Hosting Create Site2 Database

Next, edit /drupal/sites/site2.thetajoin.com/settings.php file by highlighting settings.php, and clicking the Edit button on the Webmin menu. Scroll to the line that starts with $db_url, and change:

$db_url = 'mysqli://drupaluser:DrupalPassw0rd@localhost/drupal

to

$db_url = 'mysqli://drupaluser:DrupalPassw0rd@localhost/site2

Click on the Save & Close button on the Webmin editor screen.

Multiple Drupal Hosting Editing settings.php File

 

In order to install Drupal for site2, using Webmin, copy /drupal/install.php to /drupal/sites/site2.thetajoin.com/install.php

Multiple Drupal Sites Copy Install File

 

Point your web browser to site2.thetajoin.com, you should see all kinds of errors on the screen. Don't panic, this is because Drupal isn't installed.

Multiple Drupal Sites - Site2 Errors 

Now, point your web browser to site2.thetajoin.com/install.php, and follow the installation instructions just like a single site installation. Your second Drupal site is ready!

Multiple Drupal Site Hosting Completed

 

Independant Drupal Codebase - New Site

 

NOTE: It's important when creating virtual domains that the first site document root is always /var/www/drupal. If you change this directory to another name, you'll generate an HTTP 500 server error which locks you out of ALL Drupal sites hosted on your server.

Independant Drupal codebases is another way to host multiple Drupal websites on your ThetaJoin server. This approach keeps all Drupal related files in separate directories. This is great if you're hosting multiple Drupal sites for different clients, and you can't mix modules, themes, or other customizations between client sites.

Virtual hosting is handled by the webserver, and not by Drupal. This requires some additional configuration steps. The general outline is to upload Drupal into a separate directory, configure the webserver to know about this new Drupal directory, and create the new Drupal MySQL database for this site. The rest of the Drupal installation is just like installing any Drupal website. You can read those directions in the Installing Drupal chapter of the ThetaJoin Hosting Guide.

Your first Drupal website on your ThetaJoin server should already be installed, so we'll just go over adding site2 to an already existing Drupal website. The site1.thetajoin.com website is all located in the drupal directory. The second site will be stored in site2.thetajoin.com directory. Once the Drupal tarball has been uploaded and untarred, rename the drupal-6.xx directory to site2.thetajoin.com. You can use Installing Drupal chapter to install site2 as well. Webmin should look like this:

Multiple Drupal Hosting Separate Codebase

Next, we need to tell the webserver that there's another copy of Drupal in the site2.thetajoin.com directory, and create another Drupal MySQL database for site2. Login to phpMyAdmin on your ThetaJoin server, create the virtual host by selecting the VirtualHosts database from the left menu, then click on the insert button Insert Button in the Drupal table row. When the insert page displays - In the domainname row, value column, enter site2.thetajoin.com. In the drupaldocumentroot row, value column add /var/www.site2.thetajoin.com. Click the Go button. Be sure to replace site2.thetajoin.com with your real Drupal site domain name! Your virtual host setting should look something like this:

Multiple Drupal Sites Create Virtual Hosts

After clicking the Go button:

Multiple Drupal Hosting Create Virtual Hosts Results

The webserver on your ThetaJoin server is now aware of the site2.thetajoin.com Drupal site. With ThetaJoin servers, there's no need to restart the webserver, any virtual hosts created are automatically configured. This means already installed Drupal websites will not see any downtime. (If you keep your first Drupal site in the /var/www/drupal directory!)

Point your web browser to your second Drupal site, you should be brought to the installation page for site2! The rest of the installation is just like installing any other Drupal site. You can follow the rest of the Drupal installation instructions in the Install Drupal chapter of the ThetaJoin Hosting Guide.

 

Moving Multiple Existing Drupal Sites into Single ThetaJoin Server 

With the high performance of ThetaJoin servers, it's possible to move multiple existing Drupal sites from existing multiple generic hosting company servers. The best way to move your already existing Drupal websites is by using the directions in the Independant Drupal Codebase instructions combined with the instructions from the Moving Drupal from Another Server chapter in the Drupal Hosting Guide. The general steps are:

  1. Backup up the Drupal MySQL database from your existing generic hosting server.
  2. Restore the Drupal MySQL database into your new ThetaJoin server. If more than one site is already installed on your ThetaJoin server, verify that the newly moved Drupal MySQL database name doesn't conflict. If you need to change the name of the Drupal database, you'll need to change the $db_url line in site/www.example.com/settings.php as described above in the Shared Drupal Codebase section.
  3. Create tar.gz or tgz file of your existing Drupal site files in your generic hosting server web directory.
  4. Upload and untar/unzip you existing Drupal site files into your new ThetaJoin server.
  5. Rename this directory to your Drupal site's domain name: www.example.com
  6. Create a Virtual Host in your new ThetaJoin server as described above in the Independant Codebase section. As an example, the domainname value would be www.example.com, drupaldocumentroot would be /var/www/www.example.com.
  7. Notify ThetaJoin via email that you'd like your DNS configured for your this newly moved website. Since ThetaJoin will be handling DNS for your website, and email, please follow the directions in the DNS Configuration for ThetaJoin Servers.

Site Performance Monitoring

ThetaJoin monitors the performance of all your ThetaJoin servers. We use Cacti, the industry standard performance monitoring software. Cacti monitors the Ubuntu server operating system, MySQL database server, and lighttpd webserver 24/7/365. As a ThetaJoin hosting client, you'll have access to all the performance data for your Drupal site.

Accessing Cacti

As a ThetaJoin client, you'll have access to our Cacti server. It can be found at https://metrics.thetajoin.com/cacti. You'll have a Cacti username and password. This Cacti server is not running on your ThetaJoin hosting server, but is separate. Cacti is configured to poll your ThetaJoin server every 5 mins for performance data. This polling occurs over a private network so Cacti doesn't impact your ThetaJoin server public internet connection. We don't even charge you for accessing this private network.

Cacti

ThetaJoin Cacti login page, enter your ThetaJoin provided Cacti username & password.

Drupal Hosting Cacti Performance Login Screen

After logging in to Cacti, you'll be presented with your Cacti graph tree that contains all of your ThetaJoin servers.

Drupal Hosting Cacti Performance Graphs

Drupal Hosting Cacti Performance Graphs

Drupal Hosting Cacti Performance Graphs

Cacti monitors the following:

 

All Performance Metrics

Cacti can also be configured to monitor other performance aspects of your ThetaJoin server. Here's the entire list of what can be monitored:

Ubuntu Server

Ubuntu server uses Net::SNMP that Cacti queries for SNMP performance data. The list of SNMP Object Idendtifiers that can be polled.

MySQL Database

ThetaJoin installed the MySQL Cacti templates by Baron Schwartz to monitor the MySQL Database. Cacti can monitor:

Lighttpd Webserver

Custom Monitoring

ThetaJoin can provide custom performance monitoring of your Drupal server. Just email custommonitoring@thetajoin.com

Accessing Enterprise Email

ThetaJoin has partnered with a Tier 1 Email hosting company - FastMail.fm to provide enterprise level email service to our clients. ThetaJoin is a Drupal company, not an email company - we only want the best for our clients. With ThetaJoin hosting, you have your choice of managing email for your entire domain yourself, or letting us do it for you. We also use our Nagios monitoring system to monitor your FastMail.fm email server for proper operation. Email is just as essential as Drupal - it represents your company on the internet. Go with the best.

To access your email account your URL will be similar to  http://mail.yourdomain.com. Enter your email address as the username, password too. If you're checking your email on a public terminal, click on the Public terminal (no cache) button. You can choose regular or Long term logins too Be sure to click the Secure Login button.

Drupal Hosting Enterprise Email Services

Once logged in, you'll find a familiar webmail interface. The help button is in the upper right hand corner.

Drupal Hosting Enterprise Email Inbox

IMAP Access

ThetaJoin enterprise Email services support Internet Message Access Protocol or IMAP. You can access your Email account using popular email clients such as Thunderbird, Evolution, Outlook, or iPhone. Assistance with configuring your email client can be found under Help->Remote Email Access.

WAP Access

Wireless Access Protocol, or WAP, is used by mobile devices to access web services wirelessly. Since there are a multitude of mobile devices available, this is user supported access.

Extensive Self Support

The FastMail.fm offers extensive support through the Help menu, and their wiki pages. Start out with the Quick Tours section to get started

Accessing Instant Messaging

ThetaJoin's Enterprise Email partnership with Fastmail.fm includes private Instant Messaging, or chat services using Jabber. FastMail's Chat Services support can be found on their ChatService wiki page.

Benchmarking Your Site

Website benchmarking is a very challenging task to get correct, with useful results. This chapter will discuss a simple way to benchmark your Drupal website. The method discussed here is just one way to benchmark, but whatever process you use to benchmark your Drupal website, be consistant. Don't try to compare performance numbers between different benchmarking programs or processes.

Some developers will benchmark their site only on the unauthenticated home page. This approach really isn't all that indicative of overall site performance. Our approach to benchmarking is to use awstats to see what are the top 4 or 5 URLs accessed on your server. If you don't know which URLs could be popular, we suggest picking the 4 or 5 most complex, or largest URLs in your Drupal site. Keep in mind that many more smaller URLs called more frequently can perform differently than 4 or 5 URLs called less frequently.

The directions below are for an unauthenticated Drupal user, which is fine for a brochure type Drupal site. ThetaJoin will update this chapter to include benchmarking authenticated users too.

 

http_load

http_load is ThetaJoin's favorite benchmarking program. There are others out there, but we find http_load to very simple to use, with the exact features needed to benchmark your Drupal site. Other benchmarking suites can be very complex to set up.

From the http_load homepage:

http_load runs multiple http fetches in parallel, to test the throughput of a web server. However unlike most such test clients, it runs in a single process, so it doesn't bog down the client machine. It can be configured to do https fetches as well. 

You give it a file containing a list of URLs that may be fetched, a flag specifying how to start connections (either by rate or by number of simulated users), and a flag specifying when to quit (either after a given number of fetches or a given elapsed time). There are also optional flags for checksums, throttling, random jitter, and progress reports. 

Sample run: 

% ./http_load -rate 5 -seconds 10 urls
49 fetches, 2 max parallel, 289884 bytes, in 10.0148 seconds
5916 mean bytes/connection
4.89274 fetches/sec, 28945.5 bytes/sec
msecs/connect: 28.8932 mean, 44.243 max, 24.488 min
msecs/first-response: 63.5362 mean, 81.624 max, 57.803 min
HTTP response codes:
  code 200 -- 49

See the manual entry for more details.
 

The main goal of a proper benchmark is to run your tests as close as possible to real usage of your Drupal website. It's too easy to benchmark in ways that don't match your site's actual usage.

 

Detailed Performance Data

Pages per second is just one number in a complex measurement. To see how well your website is performing internally, run http_load over all of your Drupal site's URLs. You can use ThetaJoin performance monitoring to see how well the webserver, MySQL database, and Ubuntu server are performing.

 

Warning

When benchmarking your ThetaJoin server from a single IP address, you need to know that above a certain threshold, your ThetaJoin server will think it's under Denial of Service (DOS) attack. This causes the server to "throttle back" its performance. To get a more accurate http_load benchmark, launch http_load from multiple workstations that have different IP addresses.