mod_wsgi + turbogears (แบบง่ายๆ ก่อน)

วิธีลงอ่านมาจาก http://code.google.com/p/modwsgi/wiki/IntegrationWithTurboGears. ที่เขียนนี้ผมยังไม่ได้ลองใช้ userdir เลย คิดว่าน่าจะซับซ้อนขึ้นมาก. จริงๆ แล้วแค่เปลี่ยน url จาก localhost ไปเป็น localhost/tg ก็เจ๊งแล้ว😛.

เริ่มจากแก้ไฟล์ /etc/apache2/mod_enabled/mod-wsgi.conf:

<IfModule mod_wsgi.c>
    WSGIScriptAlias / /home/veer/tg/tgapp/apache/tg.wsgi

    <Directory /home/veer/tg/tgapp/apache>
        Order deny,allow
        Allow from all
    </Directory>
</IfModule>

เสร็จแล้วก็สร้าง folder ชื่อ /home/vee/tg (mkdir /home/veer/tg) แล้วก็สร้าง python-eggs ใน /home/veer/tg ไว้เป็น cache แล้วผมก็เปลี่ยน permission ของ python-eggs เป็น 777 เลย เพราะว่า user id ของ folder กับ apache ต่างกัน … จริงๆน่าจะมีวิธีแก้ที่ดีกว่านี้ แต่ผมคิดว่าเอาง่ายให้ได้ก่อนดีกว่า

จากนั้นใน /home/veer/tg ก็เรียก tg-admin quickstart tgapp ตอบๆ อะไรไปหน่อยก็จะได้ folder ชื่อ /home/veer/tg/tgapp ขึ้นมา ในนั้นก็สร้าง /home/veer/tg/tgppp/apache/tg.wsgi ขึ้นมา ข้างในก็ลองมาตามตัวอย่างเลย แต่ก็แอบแก้ path กับชื่อ project นิดหน่อย

import sys
sys.path.append('/home/veer/tg/tgapp')
sys.stdout = sys.stderr

import os
os.environ['PYTHON_EGG_CACHE'] = '/home/veer/tg/python-eggs'

import atexit
import cherrypy
import cherrypy._cpwsgi
import turbogears

turbogears.update_config(configfile="dev.cfg", modulename="tgapp.config")
turbogears.config.update({'global': {'server.environment': 'production'}})
turbogears.config.update({'global': {'autoreload.on': False}})
turbogears.config.update({'global': {'server.log_to_screen': False}})

import tgapp.controllers

cherrypy.root = tgapp.controllers.Root()

if cherrypy.server.state == 0:
    atexit.register(cherrypy.server.stop)
    cherrypy.server.start(init_only=True, server_class=None)

application = cherrypy._cpwsgi.wsgiApp

เสร็จแล้วก็ restart apache ( sudo /etc/init.d/apache2 restart ) แล้วก็เปิดเว็บดูที่ localhost ก็ดูได้ตามรูป

แต่ว่าก็ยังเหลืออะไรที่ต้องแก้อีกมากมาย พื้นก็เปลี่ยน url จาก localhost ไปเป็น localhost/tgapp ผมก็ยังทำไม่ได้เลย😛

4 thoughts on “mod_wsgi + turbogears (แบบง่ายๆ ก่อน)

  1. […] ทำให้ Turbogears + mod_wsgi ใช้งานกับ non-root mounted app Filed under: Uncategorized — वीर @ 3:16 pm Tags: apache, deploy, mod_wsgi, non-root mounted app, python, turbogears, web framework, wsgi วิธีทำจริงๆ ก็อ่านจาก http://www.lucasmanual.com/mywiki/TurboGears#head-57ee578707aa057229eb1171a8e4aeb553bd6d3a มาเกือบหมด. แต่ว่าเขียนเสียหน่อยเพื่อความต่อเนื่องจากที่เขียนไว้เดิม. เริ่มจากแก้ /home/veer/tg/tgapp/apache/tg.wsgi: […]

  2. ลองดูแล้วพบว่า userdir ทำงานร่วมกับ fastcgi เวิร์คสุดครับ เสียแต่ช้าหน่อย

  3. fastcgi ใช้กับ userdir แล้วต่างจาก mod_wsgi อย่างไร? (ผมก็พึ่งเคยลองเล่นพวกนี้ครั้งแรกอะ ยังไม่ได้ลอง mod_python กับ fastcgi เลย)

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s