I had another snag in deploying a CodeIgniter application the other day.

GoDaddy doesn’t allow you to have access outside of the web root. This is kind of a problem for CodeIgniter, because you really should install the system files outside of the web root for security reasons.

[Update 10/11/2010: this is true of their basic account. Their deluxe hosting account has access outside the web root. See the updated post for CodeIgniter and GoDaddy Deluxe Hosting Account Issues]

The way I handled this, while still trying to have some sense of security is to install the system folder in the web root, then rename it to a very long, cryptic string, like aPt5HatJeaB0AmueXeu. As long as you have a blank index.html in every system folder, that should be fairly secure.  You’ll need to remember to change your index.php file, under the SYSTEM FOLDER NAME section to read something like this:

$system_folder = “../aPt5HatJeaB0AmueXeu”;

The other “gotcha” with GoDaddy is that you have to change your /application/config/config.php file under the URI PROTOCOL section to read this:

$config[‘uri_protocol’] = “QUERY_STRING”;

Or,

$config[‘uri_protocol’] = “REQUEST_URI”;

Just try both, one of them should work.