This is a full tutorial for installing the SilverStripe CMS on GoDaddy shared Linux hosting. This may also help anybody who is having Rewrite issues using the standard installer.
Background
For some reason or another, every now and then I am forced to use GoDaddy for a project. To be fair, I did recommend GoDaddy once or twice before I came across DreamHost, which in my opinion is a kick-ass hosting provider. GoDaddy is cheap, and their traffic allowances (however dubious) are generous. Their tools however, are terrible, and their web interface is clunky as hell.
Today was a GoDaddy day. I am working on a site for a charity based in Africa, and because they have already purchased their hosting, I thought it best that I bend over backwards to make it work for them. I built the site on my dev server using the SilverStripe open source CMS. I like SilverStripe. I don’t really know why, but I do. It gives me more headaches than any piece of software I’ve ever used (though each release gets less buggy), but I agree that their slogan “CMS the way it was supposed to be” reflects their product’s feature set. Plus, they are from Wellington, so they get my instant support.
Anyway I hunted around all day trying to figure out various problems with installing SilverStripe on GoDaddy. There is some good info on the SilverStripe forums, but if you follow these instructions in this order, there shouldn’t be any reason to troubleshoot. This howto assumes some knowledge of hosting and CMS applications.
Procedure
1. Download and Upload
First things first, download the PHP based installer. At the time of writing, SS is at version 2.2.1, and comes packaged as a gzipped tarball (.tar.gz). Other compression methods may not work with later parts of this tutorial.
Next, you will need to use an FTP client to upload the tar.gz installer file to your GoDaddy hosting space. Of course you are able to decompress the file locally and upload the collection of files, but the FTP transfer will take a lot longer that way. I will assume that the FTP transfer is fairly straight forward, and help can be found at help.godaddy.com. FileZilla is a great free cross-platform FTP client. I recommend uploading the file to the directory in which you want to install SS, but this will require some fiddling later anyway, so it’s no big deal.

2. Decompress
It would be great if GoDaddy offered ssh on their shared Linux hosting (as excellently executed by Dreamhost), but they don’t. So we are going to use the built in decompression utility:
- Log in to GoDaddy.com
- Navigate to ‘Hosting & Servers’ > ‘My Hosting Account’ in the menu bar
- Click ‘Open’ in the Control Panel column next to the account where you wish to install SS
- Click the ‘Content’ tab
- Click on the ‘File Manager’ icon

- Once the File Manager has loaded, navigate using the left hand column to the directory where you uploaded the SS installer
- Check the box next to the SS installer file and click Unarchive. Choose the directory to unarchive to (this will probably not need to be changed), and click OK.

Now use the File Manager to move the contents of the extracted silverstripe-v2.2.1 folder up one level to the root install directory. This is super easy. Browse to within the silverstripe-v2.2.1 folder and click the big tick above the file check boxes on the left, click move, click the name of your root install directory from the directory list on the left hand side, and click OK. Much faster than using your FTP client. Alternatively, you can tell GoDaddy to use the silverstripe-v.2.2.1 folder as the root directory for your domain; this can be configured through the hosting control center under ‘Settings’ > ‘Domain Management’.
At this point, if you open your web browser and browse to your GoDaddy hosted domain, you should see the SilverStripe CMS Installation page!

3. Configure .htaccess (part one)
Now you might notice that the SS installer has pointed out a problem:
You need PHP version or later, only 4.3.11 is installed.
GoDaddy supports PHP 5, but it needs to be configured as the default handler for files of extension ‘.php’. Use a text editor to either create and upload or edit the existing ‘.htaccess’ file in the root directory of your new SS installation. The file should look like this when you are done:
AddHandler x-httpd-php5 .php
AddHandler x-httpd-php .php4
Once the file is uploaded, refresh the SilverStripe CMS Installation Page.
OK (PHP version 5.1.4)
NOTE: GoDaddy is notoriously ass-pain inflicting in the way in which it treats .htaccess files. Word on the internet is that new .htaccess files take effect immediately, but edits to existing files can take up to an hour to be parsed by the hosting system. In any case, if you are working with .htaccess files in GoDaddy and things don’t work as expected, go and read a book and come back in an hour or so.
4. Set up the Database
Creating databaii on GoDaddy is relatively typical. Head back to the hosting control center, and click the ‘Databases’ tab. Click the MySQL button. Click on ‘Create Database’.
Creating the database
- Enter a fit description for your database. This is for your reference only.
- Pick a database name and username (these will always be the same). This has to be unique, so save yourself some time by not first trying ‘silverstripe’ or ‘blog’. Pick something unique and relevant.
- Choose a secure password
- CHANGE THE MYSQL VERSION TO 5.0. THIS IS ESSENTIAL FOR SILVERSTRIPE!
- Click OK

The database should now show as ‘Pending Setup’ in the MySQL database list. Click refresh every few minutes until the database status changes to ‘Setup’. Click the pencil(?) icon associated with the DB you have just created. This will show the details of your database in a new window.

Save these details.
5. Install Silverstripe
Now, head back to the SilverStripe CMS Installation page. Under the ‘SilverStripe Administration Account’ heading, fill in all the relevant fields using your own personal information . Under the database configuration heading, use the details you saved at the end of step 4. The settings expected by the SS installer translate to the following settings provided by GoDaddy:
MySQL server: Host Name
MySQL username: User Name
MySQL password: you need to remember this one…
MySQL database: Database Name
You also need to select a template to use. I wont go in to too much detail here, but if you select the Black Candy template you are pretty safe no matter what your intentions for SS are. More info is available on the SilverStripe help pages.
Click Install SilverStripe
You should get a message like this:
Installing SilverStripe…I am now running through the installation steps (this should take about 30 seconds)
If you receive a fatal error, refresh this page to continue the installation
# Creating 'mysite/_config.php'...
# Creating '.htaccess' file...
# Building database schema...
Followed swiftly by this message:
mod_rewrite doesn’t appear to be working. Make sure:
* mod_rewrite is enabled in your httpd.conf
* AllowOverride is enabled for the current path.
Please check these options, then refresh this page.If you believe that your configuration is correct, click here to proceed anyway.
For some reason, no matter how I edit .htaccess, no matter what permissions I give the file, and no matter which version of SS I use, I get this message. But only on GoDaddy!
6. Fixing the rewrite issue (configure .htaccess part two)
Click the link that says ‘click here to proceed anyway’.
And… tada:
Not Found
The requested URL /collar/sapphire/main.php was not found on this server.Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Open up the .htaccess file once more. It will most probably look something like this:
AddHandler x-httpd-php5 .php
AddHandler x-httpd-php .php4
### SILVERSTRIPE START ###
### SILVERSTRIPE END ###
OR like this:
AddHandler x-httpd-php5 .php
AddHandler x-httpd-php .php
### SILVERSTRIPE START ###
RewriteEngine On
RewriteCond %{REQUEST_URI} !(\.gif)|(\.jpg)|(\.png)|(\.css)|(\.js)|(\.php)$
RewriteCond %{REQUEST_URI} ^(.*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* sapphire/main.php?url=%1&%{QUERY_STRING} [L]
### SILVERSTRIPE END ###
It seems to alternate between those two (I think this depends on whether you tried a refresh or not at the point of the initial rewrite error), and either way it won’t work. Edit the file to look like this (note the extra slash before ‘sapphire’ if your .htaccess looked like the second example above). Also please forgive the text wrapping on these examples:
Update: here is a link to an htaccess file from one of my working GoDaddy/SS installs. Do a File > Save As, rename it to .htaccess, upload it, and it should work. This avoids issues with copying and pasting from the browser.
AddHandler x-httpd-php5 .php
AddHandler x-httpd-php .php4
### SILVERSTRIPE START ###
RewriteEngine OnRewriteCond %{REQUEST_URI} !(\.gif)|(\.jpg)|(\.png)|(\.css)|(\.js)|(\.php)$
RewriteCond %{REQUEST_URI} ^(.*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* /sapphire/main.php?url=%1&%{QUERY_STRING} [L] ### SILVERSTRIPE END ###
Re-upload .htaccess, refresh the page and, and… It works!

Finishing up
Click the ‘Click here to delete the installation files’ link, and you are all done. Head on over to http://yourdomain.com/admin and sign in using the administrator details you chose during the setup.
Enjoy SilverStripe on GoDaddy.
Leave your two cents:
Commenting is closed for this article.
good work! thanks a buuunch.
· krislin · Jan 6, 23:44
no worries! my pleasure.
· evan · Jan 6, 23:46
Yes! Superb write up!
· Cassandra's Two Cents · Jan 29, 18:31
Thank god this was pissing me off. I owe you soo much man!
· Dustin · Feb 7, 12:44
Ok I’m running a few websites on Godaddy Shared Hosting. I have confirmed that there is a problem on some of their shared hosting where SS gives a 500 “Internal Server Error” error if you refresh any page. To fix, simple comment out line 320 as follows
// header(“Last-Modified: “ . self::gmt_date(self::$modification_date));
in the file /sapphire/core/HTTP.PHP
Works for me on three sites…
++LarcenIII
· ++LarcenIII · Feb 12, 17:52