Tags:
Forums: 

WinXP+apache + mod_wsgi + web.py
เล่าสู่กันฟังครับ อย่าเพิ่งมองว่าเป็นหัวข้อซ้ำนะครับ แค่อยากเขียนให้คนอื่นๆ ได้อ่าน

การติดตั้ง WinXP+apache + mod_wsgi + web.py

1. OS = windowxp
2. python version python-2.5.2.msi ติดตั้งไว้ที่ C:\Python25
3. download web.py-0.23.tar และแตกไปที่ D:\python\python_software\webpy\webpy คือผมเก็บไว้ตรงนี้นะครับ
เสร็จแล้ว Run คำสั่งข้างล่างนี้ C:\Python25\python.exe D:\python\python_software\webpy\webpy\setup.py install
4. download apache_2.2.9-win32-x86-no_ssl-r2.msi ติดตั้งไปที่ C:\Apache2.2
5. download http://adal.chiriliuc.com/mod_wsgi/revision_878_2.0/mod_wsgi_py25_apache22/mod_wsgi.so copy
ไฟล์ดังกล่าวไปเก็บไว้ที่ C:\Apache2.2\modules
6. เริ่มทำการ config Apache
ดูที่นี่ http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines
จากเนื้อหาจะมีอยู่ สอง แบบ

แบบที่ 1

ใช้ Alias Directive ของ mod_alias ซึ่งเป็น module มาตรฐานของ Apache ซะเอง

Alias /myapp/ "D:/python/python_test/web/wp001/"

Options ExecCGI
SetHandler wsgi-script
Order allow,deny
Allow from all

แบบที่ 2

เป็นการใช้ WSGIScriptAlias Directive ของ mod_wsgi ซะเอง

WSGIScriptAlias /myapp/ "D:/python/python_test/web/wp001/"

Order allow,deny
Allow from all

ผมทำการเปิด C:\Apache2.2\conf\httpd.conf
แล้วทำการเพิ่มบรรทัดข้างล่างนี้เข้าไปต่อท้าย (ผมเลือกการ config แบบที่ 1)

LoadModule wsgi_module modules/mod_wsgi.so
Alias /myapp/ "D:/python/python_test/web/wp001/"

Options ExecCGI
SetHandler wsgi-script
Order allow,deny
Allow from all

เสร็จแล้ว Restart Apache
7. ทำการสร้างไฟล์ชื่อ test001.py ขึ้นมา และเก็บไว้ D:/python/python_test/web/wp001/ ส่วนโค้ดทดสอบตามข้างล่างเลยครับ
ผมใช้ IDLE ของ python ในการสร้างไฟล์

-- coding: utf-8 -- <== บอกให้รู้ว่าเป็นแบบ UTF8

page = """

Guestbook

%s

"""

def index():
result = "

ที่รัก

\n

ตาดำๆ

\n"
return page%result

def application(environ, start_response):
status = '200 OK'
output = index()

response_headers = [('Content-type', 'text/plain'),('Content-Length', str(len(output)))]
start_response(status, response_headers)

return [output]

โค้ดข้างบนนี้เป็นการเขียนแบบ mod_wsgi ธรรมดานะครับยังไม่ได้ติดต่อ web.py นะครับ
8. เขียน code ข้างล่างนี้เพื่อทดสอบ webpy เสร็จแล้ว บันทึกไว้ที่ d:/python/python_test/web/wp001/test002.py

file: d:/python/python_test/web/wp001/test002.py

--coding: tis620 -- <== บอกให้รู้ว่าเป็นแบบ tis620

import web

urls = (
'/(.*)', 'hello'
)

class hello:
def GET(self, name):
i = web.input(times=1)
if not name: name = 'world'
for c in xrange(int(i.times)): print 'Hello,', name+'!'
print "\nที่รัก"

application = web.wsgifunc(web.webpyfunc(urls, globals()))

9.เปิด IE หรือ Firefox ใส่ http://localhost:8080/myapp/test002.py/ (อย่าลืมใส่ / ข้างหลังนะครับถ้าไม่ใส่มันจะไม่รัน)
แล้วกด Enter ก็จะปรากฏ

Hello, world!

ที่รัก

เรียบร้อยครับ ซึ่งเราสามารถเอาไปประยุกต์กับ web framwork ตัวอื่นๆ ได้ด้วยครับ

Get latest news from Blognone
By: bow_der_kleine
WriterAndroidUbuntu
on 1 September 2008 - 21:16 #63259
bow_der_kleine's picture

น่าจะเปลี่ยนเป็นบล็อกขึ้นหน้าแรกนะครับ editor คนอื่นว่าไงครับ

BioLawCom.De