Setting mod_wsgi dan CherryPy Dengan Apache
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 dihttp://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 dihttp://slackbuilds.org/repository/13.37/network/mod_wsgi/ dengan menggunakan mod_wsgi versi 3.1 yang bisa diunduh dihttp://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 bacahttp://code.google.com/p/modwsgi/wiki/QuickConfigurationGuideuntuk 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.