Skip to content

ติดตั้ง Django กับ Apache โดยใช้ mod_wsgi

สวัสดีครับทุกท่าน ก่อนที่เราจะไปเริ่มเขียน Django กันต่อ ผมขอแนะนำวิธีการนำ Django ไปใช้งานกับ Apache โดยให้ผู้อ่านทำการติดตั้ง Python กับ Apache ก่อนนะครับ ขั้นตอนนี้ผมไม่ขอพูดถึงครับ

Windows

1.ให้โหลด http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi โดยเลือกไฟล์ตามนี้ครับ
ถ้าคอมเป็น 32 บิต เลือก mod_wsgi-3.5.apXX.win32-py*.*.zip
ถ้าคอมเป็น 64 บิต เลือก mod_wsgi‑3.5.apXX.win‑amd64‑py*.*.zip
*.* คือเวชั่นของ Python เช่น 3.4

XX  คือเวชั่นของ Apache ครับ เช่น Apache 2.4 จะเป็น 24 ครับ

2.ให้แตกไฟล์ออกมา ภายในจะมีไฟล์ mod_wsgi.so ให้เอาไฟล์นั้นคัดลอกไปวางที่โฟลเดอร์ apache modules เช่น C:/Program Files/Apache Software Foundation/Apache2.4/modules ครับ
3.เข้าไปตั้งค่าไฟล์ http.conf โดยไฟล์จะอยู่ที่ Apache2.4/conf ครับ ให้เพิ่มโค้ดนี้ลงไปเพื่อโหลด  mod_wsgi เข้ามาครับ
LoadModule wsgi_module modules/mod_wsgi.so
4.ตอนนี้ คุณต้องเชื่อมโยงกับโครงการของ Django
5.ให้โฟลเดอร์ apache ในโฟลเดอร์หน้า project ของ django และสร้างไฟล์ django.wsgi และ apache_mydjango.conf ไว้ในโฟลเดอร์apache (ห้ามเปลี่ยนชื่อไฟล์ django.wsgi)
6.ให้ไปเพิ่มโค้ดด้านล่างที่ไฟล์ http.conf
Include "c:/projects/mysite/apache_django_wsgi.conf"
7.ไปแก้ไขโค้ดที่ไฟล์ django.wsgi

import os, sys</blockquote>
sys.path.append('c:/projects/mysite')
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

แก้ไขโค้ดที่ไฟล์ apache_djang_wsgi.conf

Alias /images/ "c:/projects/mysite/templates/images/"
<Directory "d:/projects/mysite/images>
Order allow,deny
Allow from all
</Directory>

WSGIScriptAlias / "c:/projects/mysite/apache/django.wsgi"

<Directory "c:/projects/mysite/apache">
Allow from all
</Directory>

<VirtualHost *:80>
DocumentRoot d:/projects/mysite
ServerName 127.0.0.1

</VirtualHost>

8.จะได้ลักษณะแบบนี้
mysite/
mysite/
settings.py
urls.py, wsgi.py.
manage.py
apache /
apache_django_wsgi.conf, django.wsgi

Linux

1.ติดตั้ง mod_wsgi ของ apache2 (สั่ง sudo apt-get install libapache2-mod-wsgi ใน Debian/Ubuntu )
2.เพิ่มโค้ดด้านล่างลงในไฟล์ httpd.conf (/etc/apache2/httpd.conf):

Alias /media/ /var/www/media/
<Directory /var/www/media>
Order deny,allow
Allow from all
</Directory>
WSGIScriptAlias / /var/www/apache/django.wsgi
<Directory /var/www/apache>
Order deny,allow
Allow from all
</Directory>

3. สร้างไฟล์ใหม่ใน /var/www/apache/django.wsgi แล้วคัดลอกนี้ไปวาง:

import os, sys
root = os.path.join(os.path.dirname(__file__), 'ที่ตั้งของ  project django ตัวอย่างเช่น /usr/local/src')
sys.path.insert(0, root)
sys.path.append('/var/www')
sys.path.append('/usr/local/src/myproject')
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

4.ใช้คำสั่ง chmod o+r /var/www/apache/django.wsgi

5.ใช้คำสั่ง chmod o+rx /var/www/apache

6.ใช้คำสั่ง chmod o+rx /usr/local/src

7. วางโค้ดด้านล่างในบรรทัดสุดท้าขฃยของ /etc/profile และ /etc/bash.bashrc

export PYTHONPATH=/usr/local/src/myproject:$PYTHONPATH
export PYTHONPATH=/usr/local/src:$PYTHONPATH

8. เริ่ม apache ใหม่
sudo /etc/init.d/apache2 restart

ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

Published on Categories ไม่มีหมวดหมู่

About wannaphong

วรรณพงษ์ ภัททิยไพบูลย์ ผู้ดูแลเว็บ wannaphong.com และผู้เขียนบทความบล็อกนี้ นักศึกษาชั้นปีที่ 1 สาขาวิทยาการคอมพิวเตอร์และสารสนเทศ คณะวิทยาศาสตร์ประยุกต์และวิศวกรรมศาสตร์ มหาวิทยาลัยขอนแก่น วิทยาเขตหนองคาย

1 thought on “ติดตั้ง Django กับ Apache โดยใช้ mod_wsgi

  1. กฤษฎิ์

    พอดีผมเขียน Python อยู่โดยอาศัยความรู้จากเว็บนอก
    ตอนแรกเล่น OpenCV อยู่ เสิร์ชภาษาไทยก็ได้ความรู้จากเว็บนี้
    ตอนนี้มาเล่น django ก็มาเจอเว็บนี้อีก และคิดว่าคงมีอีกหลายๆคนได้ความรู้จากเว็บนี้
    เลยมาเป็นกำลังใจให้ครับ เขียนบทความได้ดีมากครับ

    Reply

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องที่ต้องการถูกทำเครื่องหมาย *