====== Accelerator Django Install Guide ====== This tutorial is built off of [[http://textusers.com/wiki/AcceleratorDjango|The Django Setup Guide]] from the [[http://textusers.com/wiki/AcceleratorDjango|textuser wiki]]. **Alternative Instructions: ** Check the step-by-step [[http://www.b-list.org/weblog/2007/sep/04/django-accelerated/|Django, Accelerated]] tutorial from [[http://www.b-list.org/]] for building a Django setup, using pkgsrc. ==== Upgrade packages ==== If you haven't already, upgrade the currently installed packages: yes | sudo pkg-get upgrade ==== Install mod_python and MySQLdb (Python bindings) ==== I needed to first point my pkg-get to a different server as noted in this [[http://discuss.joyent.com/viewtopic.php?id=15972|forum post]]. I'll included those instructions here as well. first edit /opt/csw/etc/pkg-get.conf. For all the file edits in this tutorial you can use the nano command: sudo nano /opt/csw/etc/pkg-get.conf you need to change: url=http://uma.textdrive.com/blastwave/unstable in opt/csw/etc/pkg-get.conf to: url=http://ibiblio.org/pub/packages/solaris/csw/unstable then save the file and get the packages you need (you may need to run the update command again): sudo pkg-get -i ap2_modpython sudo pkg-get -i pymysql ==== Install Django ==== These instructions are for the current SVN (trunk) copy of Django. cd ~ svn co http://code.djangoproject.com/svn/django/trunk/ django_src sudo ln -s `pwd`/django_src/django /opt/csw/lib/python2.3/site-packages/django sudo ln -s `pwd`/django_src/django/bin/django-admin.py /opt/csw/bin/django-admin.py add these lines to ~/.bashrc alias python='/opt/csw/bin/python2.3' export PYTHONPATH=.:/opt/csw/lib/python2.3/site-packages/ when you are done run: rehash ==== Setup Web user and group ==== sudo groupadd web sudo useradd -g web -s /usr/bin/bash web sudo passwd web choose a password for the web user. ==== add media folder ==== I put my media in my /home/admin/ directory so I could easly access it over SFTP as the admin user. Here is how to do that: first create a symlink between a media directory (create this in your /home/admin/ folder) and pythons site-packages: sudo ln -s /home/admin/project_media /opt/csw/lib/python2.3/site-packages/project you might also want to have the django admin media into this directory, I did this with another symlink: sudo ln -s /opt/csw/lib/python2.3/site-packages/django/contrib/admin/media /home/admin/project_media/django ==== Setup Apache ==== In /opt/csw/apache2/etc/includes/dso.conf add: LoadModule python_module libexec/mod_python.so Add a Virtual Host file to /opt/csw/apache2/etc/virtualhosts/ (mine was in the format "project.com.conf") ServerName project.com DocumentRoot /home/admin/project_media/ ErrorLog /var/log/project.com-error.log CustomLog /var/log/project.com-access.log common allow from all Options -Indexes SetHandler python-program PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE project.settings PythonDebug Off SetHandler None Alias /media /home/admin/project_media ==== Install Your Django Application ==== Put your Django application in the /opt/csw/lib/python2.3/site-packages/ directory. if you setup your media the way I described above edit your project's settings.py file like this: MEDIA_ROOT = '/home/admin/project_media/' ADMIN_MEDIA_PREFIX = 'http://project.com/media/django/' MEDIA_URL = 'http://project.com/media' ==== Restart Apache ==== sudo apachectl restart