Sunday, August 12, 2012

Setting mod_wsgi dan CherryPy Dengan Apache

Apa itu mod_wsgi ? menurut para pengembangnya, mod_wsgi adalah sebuah modul sederhana yang diimplemetasikan sebagai modul Apache web server yang berfungsi untuk menangani aplikasi web berbasis Python yang mendukung antarmuka Python WSGI.

Apa itu CherryPy ? CherryPy adalah HTTP framework Python yang berorientasi object, dengan CherryPy kita dapat membuat berbagai aplikasi web berbasis Python bahkan dengan CherryPy kita juga dapat mengembangkan web framework berbasis Python. Salah satu contoh web framework Python populer yang dikembangkan menggunakan CherryPy adalah TurboGears.
  
Installasi  CherryPy

Unduh CherryPy (versi terbaru saat tulisan ini dibuat adalah versi 3.2.2) di http://download.cherrypy.org/cherrypy/3.2.2/, kemudian ekstrak dan masuklah ke folder tempat kita mengekstrak CherryPy tersebut kemudian berikan perintah berikut untuk menginstall CherryPy yang sudah kita unduh. 

# python setup.py install 

Installasi mod_wsgi

Disini saya menggunakan web server Apache berbasis Slackware 13.37. Untuk dapat menggunakan mod_wsgi kita harus terlebih dahulu menginstall modul ini yang source-nya bisa diunduh di http://code.google.com/p/modwsgi/.

Setelah mod_wsgi diunduh, ekstrak dan lakukan instalasi dengan baris perintah sebagai berikut : 

# ./configure --with-apxs=/usr/sbin/apxs \  
        --with-python=/usr/sbin/python 
# make install

Atau kita bisa menggunakan script SlackBuild yang bisa diunduh di http://slackbuilds.org/repository/13.37/network/mod_wsgi/ dengan menggunakan mod_wsgi versi 3.1 yang bisa diunduh di http://modwsgi.googlecode.com/files/mod_wsgi-3.1.tar.gz.

Setelah modul terinstall tambahkan baris konfigurasi dan direktif ScriptAlias seperti berikut ini pada file konfigurasi Apache web server (httpd.conf) : 

LoadModule wsgi_module lib/httpd/modules/mod_wsgi.so 

WSGIScriptAlias /myapp /var/www/htdocs/wsgi-scripts/myapp.py

<Directory /var/www/htdocs/wsgi-scripts> 
Order allow,deny 
Allow from all  
</Directory>

Atau silahkan baca http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide untuk cara penginstallasian selengkapnya.

Buatlah folder tempat kita menampung aplikasi Python yang akan kita buat berdasarkan konfigurasi direktif Apache diatas :

# mkdir /var/www/htdocs/wsgi-scripts

Untuk menguji apakah konfigurasi mod_wsgi yang kita berikan sudah benar dengan membuat aplikasi sederhana dan berikan nama file sesuai dengan konfigurasi yang kita berikan diatas myapp.py (contoh detail http://tools.cherrypy.org/wiki/ModWSGI) seperti berikut : 

import sys sys.stdout = sys.stderr 
import atexit import threading import cherrypy 

cherrypy.config.update({'environment': 'embedded'}) 
if cherrypy.__version__.startswith('3.0') and cherrypy.engine.state == 0: 
       cherrypy.engine.start(blocking=False) 
       atexit.register(cherrypy.engine.stop) 

class Root(object): 
       def index(self): 
              return 'Hello World!' 
       index.exposed = True  

application = cherrypy.Application(Root(), script_name=None, config=None)

Kemudian restart Apache web server : 

# /etc/rc.d/rc.httpd restart

Silahkan buka web browser, kemudian ketik url http://localhost/myapp/ di address bar web browser kita, tidak ada masalah dengan konfigurasi yang kita berikan silahkan cek hasilnya.

No comments: