下载安装mod_wsgi
这里我的版本是mod_wsgi-3.4.tar.gz
在django的目录建立一个test.wsgi 这里我的目录是/var/www/html/Simplecmdb
建立一个test.wsgi
def application(environ, start_response): status = '200 OK' output = 'Hello World!' response_headers = [('Content-type', 'text/plain'), ('Content-Length', str(len(output)))] start_response(status, response_headers) return [output]
开启apache的虚拟主机
vim /etc/httpd/conf/httpd.conf
NameVirtualHost *:80
建立测试的配置文件
cd /etc/httpd/conf.d/ vim test.conf <VirtualHost *:80> WSGIScriptAlias / "/var/www/html/Simplecmdb/test.wsgi" <Directory "/var/www/html/Simplecmdb"> Order Deny,Allow Allow from all </Directory> </VirtualHost>
重启apache后访问http://ip
出现hello world说明正常
在自己的django项目目录下建立django.wsgi
#!/usr/bin/env python #coding: utf-8 import sys import os sys.path.append("/var/www/html/Simplecmdb") os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Simplecmdb.settings") from django.core.wsgi import get_wsgi_application application = get_wsgi_application()
注意:因为项目文件夹和下面的子文件夹是同个名字,容易搞混,sys.path.append的路径,
到项目文件夹就可以了,否则下一行的“Simplecmdb.settings”将找不到项目的setting.py文
件,而引发“internal server error”.
cd /etc/httpd/conf.d/ vim simplecmdb.conf LoadModule wsgi_module modules/mod_wsgi.so <VirtualHost *:80> WSGIScriptAlias / "/var/www/html/Simplecmdb/django.wsgi" <Directory "/var/www/html/Simplecmdb"> Order Deny,Allow Allow from all </Directory> </VirtualHost>
service httpd restart
访问http://ip/admin
这里django项目的权限要改成apache的运行用户,不然会有报错
参考地址:http://www.programgo.com/article/9700620001/;jsessionid=9EC670F7ABAE995FE59287E87BA1EB33