I was looking for the answer to this today and I wrote a tutorial on how to do this based on all the stuff I found on the net:
With the economy class Linux hosting its a bit tricky. For starters you don't have root access to the site packages so you cannot install for example MySQL-Python. 1. Godaddy has virtualenv installed, so first, create a virtual environment venv: (I use $HOME/lib/ for all the installed stuff below) cd ~/ mkdir lib cd lib virtualenv --no-site-packages venv The python package folder is $HOME/lib/venv/lib/python2.7/site-packages 2. Install the latest Django through pip pip install Django 3. Create a new project django-admin.py startproject mysite 4. Change the database configuration in mysite/setting.py file. When setting the path for the database file, please use the absolute path: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': '/var/chroot/home/content/11/10420811/lib/venv/mysite/mydatabase.db', 'USER': '', 'PASSWORD': '', 'HOST': '', 'PORT': '', } } While in here there are a few other things to consider changing: - ADMINS = can be updated with your info - TIME_ZONE = 'America/Toronto' - LANGUAGE_CODE = 'en-ca' - STATIC_ROOT = '/var/chroot/home/content/11/10420811/lib/venv/mysite/static/' - Uncommenting admin in INSTALLED_APPS : 'django.contrib.admin', This will save you some setup later! 5. Set the Locale information in $HOME/.bash_profile file, otherwise you cannot set the superuser when you sync the database. You can edit the file with vim: export LANG=en_US.UTF-8 export LC_ALL=en_US.UTF-8 6. Now run the script using the script command: source ~/.bash_profile 7. If everything is setup properly, you should be able to sync the database: python2.7 manage.py syncdb You should see the admin tables get created and it will ask you to create a new user. 8. Now we setup the dispatch functionality so we can access the webpage without running server through Django using flup. So download and untar flup: cd ~/lib/venv/lib/python2.7/site-packages wget http://pypi.python.org/packages/source/f/flup/flup-1.0.2.tar.gz#md5=24dad7edc5ada31dddd49456ee8d5254 tar -xvzf flup-1.0.2.tar.gz mv flup-1.0.2/flup/ . 9. In $HOME/html folder, create dispatch.py and add the following lines of code: #!/usr/local/bin/python2.7 import sys, os sys.path += ['/your/home/path/lib/venv/lib/python2.7/site-packages'] sys.path += ['/your/home/path/lib/mysite/'] os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings' from flup.server.fcgi import WSGIServer from django.core.handlers.wsgi import WSGIHandler WSGIServer(WSGIHandler()).run() Also do a chmod +x dispatch.py to make the python script executable! 10. In $HOME/html/.htaccess file, add the following codes: AddHandler fcgid-script .fcgi Options +FollowSymLinks RewriteEngine On RewriteBase / # everything else sent to django RewriteRule ^(dispatch\.py/.*)$ - [L] RewriteRule ^(.*)$ dispatch.py/$1 [L] Another good thing to note is that you can ReWrite URLS if you have current applications isntalled, ie.e dokuwiki. #Add this above "everything else sent to django" #Below other folders with static content and PHP , etc.. #hosted at yourdomain/dokuwiki RewriteRule ^(dokuwiki/.*)$ - [L] #You can also create your "django" project at a different location rather than your domain root by changing the 2nd RewriteRule , i.e.: # everything else sent to django RewriteRule ^(dispatch\.py/.*)$ - [L] RewriteRule ^(djangoproj/.*)$ dispatch.py/$1 [L] #Make sure to create the djangoproj folder inside your html dir, cd html; mkdir djangproj #This becomes a bit annoying because your urlpatterns in url.py will now always have to include 'djangoproj' at the beginning. 11. Update your urls.py file to look like so: from django.conf.urls import patterns, include, url from django.conf import settings # Uncomment the next two lines to enable the admin: from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', (r'^static/(.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT}), url(r'^admin/', include(admin.site.urls)), ) This will ensure you can access the admin application, as well as the static root where all your img js and css are. Also note to copy the admin img/js/css from /django/contrib/admin/static. Mine was in ~/lib/venv/lib/python2.7/site-packages/django/contrib/admin/ I used cp -r to copy it over to my application static dir /var/chroot/home/content/11/10420811/lib/venv/mysite/static/ cp -r ~/lib/venv/lib/python2.7/site-packages/django/contrib/admin/ ~/lib/venv/mysite/static/ 12. That is it, you should have access to your site now! Access to http://your.website.com/adminshould work! -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at http://groups.google.com/group/django-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.