Clayton's Tech Bits

Home

Contact

Resumé / C.V.

Links

Search this site:
Custom Search

Categories:

/ (224)
  Admin/ (86)
    Apache/ (7)
      HTTPS-SSL/ (4)
    Cherokee/ (1)
    LAN/ (4)
    LVM/ (3)
    Monitoring/ (2)
      munin/ (2)
    OpenVPN/ (1)
    SSH-Proxy/ (3)
    SSH-SSL/ (6)
    backups/ (16)
      SpiderOak/ (1)
      backuppc/ (5)
      dirvish/ (1)
      misc/ (6)
      rdiff-backup/ (1)
      rsync/ (1)
      unison/ (1)
    commandLine/ (11)
    crontab/ (1)
    databases/ (8)
      MSSQL/ (2)
      MySQL/ (5)
      PostgreSQL/ (1)
    dynamicDNS/ (2)
    email/ (9)
      Dovecot/ (1)
      deliverability/ (1)
      misc/ (1)
      postfix/ (6)
    iptables/ (2)
    virtualization/ (8)
      VMware/ (1)
      virtualBox/ (7)
  Coding/ (11)
    bash/ (1)
    gdb/ (1)
    git/ (2)
    php/ (4)
    python/ (3)
      Django/ (1)
  Education/ (1)
  Hosting/ (23)
    Amazon/ (14)
      EBS/ (3)
      EC2/ (11)
    Godaddy/ (2)
    NearlyFreeSpeech/ (3)
    Rackspace/ (1)
    vpslink/ (3)
  Linux/ (20)
    Awesome/ (3)
    CPUfreq/ (1)
    Chinese/ (1)
    Debian/ (5)
      WPA/ (1)
    audio/ (1)
    encryption/ (2)
    fonts/ (1)
    misc/ (4)
    router-bridge/ (2)
  SW/ (39)
    browser/ (2)
      Chrome/ (1)
      Firefox/ (1)
    business/ (25)
      Drupal/ (8)
      KnowledgeTree/ (6)
      Redmine/ (2)
      SugarCRM/ (6)
      WebERP/ (2)
      eGroupware/ (1)
    email/ (1)
    fileSharing/ (1)
      mldonkey/ (1)
    graphics/ (2)
    research/ (2)
    website/ (6)
      blog/ (6)
        blosxom/ (3)
        rss2email/ (1)
        webgen/ (1)
  Security/ (12)
    IMchat/ (1)
    circumvention/ (2)
    e-mail/ (4)
    greatFirewall/ (1)
    hacking/ (1)
    password/ (1)
    privacy/ (1)
    skype/ (1)
  Services/ (1)
    fileSharing/ (1)
  TechWriting/ (1)
  xHW/ (13)
    Lenovo/ (1)
    Motorola_A1200/ (2)
    Thinkpad_600e/ (1)
    Thinkpad_a21m/ (3)
    Thinkpad_i1300/ (1)
    Thinkpad_x24/ (1)
    USB_audio/ (1)
    scanner/ (1)
    wirelessCards/ (2)
  xLife/ (17)
    China/ (9)
      Beijing/ (5)
        OpenSource/ (3)
    Expatriation/ (1)
    Vietnam/ (7)

Archives:

  • 2012/03
  • 2012/01
  • 2011/12
  • 2011/11
  • 2011/10
  • 2011/09
  • 2011/08
  • 2011/07
  • 2011/06
  • 2011/05
  • 2011/04
  • 2011/02
  • 2010/12
  • 2010/11
  • 2010/10
  • 2010/09
  • 2010/08
  • 2010/07
  • 2010/06
  • 2010/05
  • 2010/04
  • 2010/03
  • 2010/02
  • 2010/01
  • 2009/12
  • 2009/11
  • 2009/10
  • 2009/09
  • 2009/08
  • 2009/07
  • 2009/06
  • 2009/05
  • 2009/04
  • 2009/03
  • 2009/02
  • 2009/01
  • 2008/12
  • 2008/11
  • 2008/10
  • 2008/09
  • Subscribe XML RSS Feed

    Sat, 02 Oct 2010


    /Admin/Apache: Django on Apache Using mod_wsgi on CentOS 5

    These [1][2] would indicate mod_wsgi is the best way to server Django sites using Apache.

    mod_wsgi does not seem to exist in the CentOS 5 repositories. Using this[3] as my guide, I installed from source as follows:

    cd /usr/lib/python2.4/config
    ln -s ../../../lib64/libpython2.4.so .
    cd
    wget http://modwsgi.googlecode.com/files/mod_wsgi-3.3.tar.gz
    tar -xf mod_wsgi-3.3.tar.gz
    cd mod_wsgi-3.3
    yum install httpd-devel
    ./configure --with-python=/usr/bin/python2.4
    make
    make install
    

    That all seemed to go well, and now I see this file: /usr/lib64/httpd/modules/mod_wsgi.so

    Turn this module on in Apache, by adding the following lines to /etc/httpd/conf/httpd.conf:

    LoadModule wsgi_module /usr/lib64/httpd/modules/mod_wsgi.so
    AddHandler wsgi-script .wsgi

    After "/etc/init.d/httpd restart" apache is still working. A very good sign.....

    It is worth noting that the reference[3] I am using for this also installed Python2.5 from source at the start of the whole process. CentOS 5 only has Python2.4. The reference did not justify why this was done, lets just cross our fingers and hope it will not be necessary.

    Now lets see if we can get Apache to server up my helloWorld Django site. This[4] seems to be the most authoritative document I can find on the subject.

    cd /var/www/html/django/chinawanderer
    mkdir apache
    Create file /var/www/html/django/chinawanderer/apache/django.wsgi which contains the following:
    import os, sys
    sys.path.append('/var/www/html/django')
    sys.path.append('/var/www/html/django/chinawanderer')
    os.environ['DJANGO_SETTINGS_MODULE'] = 'chinawanderer.settings'
    import django.core.handlers.wsgi
    application = django.core.handlers.wsgi.WSGIHandler()
    
    Add this to /etc/httpd/conf/httpd.conf:
    WSGIScriptAlias / /var/www/html/django/chinawanderer/apache/django.wsgi <Directory /var/www/html/django/chinawanderer/apache/> Order deny,allow Allow from all </Directory>
    And it works. Django in action: http://domain.com/django/chinawanderer/

    [1] http://docs.djangoproject.com/en/dev/howto/deployment/
    [2] http://docs.djangoproject.com/en/dev/howto/deployment/modwsgi/
    [3] http://taoyh163.blog.163.com/blog/static/19580356200971104043225/
    [4] https://code.google.com/p/modwsgi/wiki/IntegrationWithDjango

    posted at: 08:46 | path: /Admin/Apache | permanent link to this entry