starxzj 发表于 2018-11-21 09:08:16

django结合apache部署

  下载安装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   

  开启apache的虚拟主机
  vim /etc/httpd/conf/httpd.conf
  NameVirtualHost *:80
  建立测试的配置文件
cd /etc/httpd/conf.d/
vim test.conf

      WSGIScriptAlias / "/var/www/html/Simplecmdb/test.wsgi"

          Order Deny,Allow
          Allow from all

  重启apache后访问http://ip
  出现helloworld说明正常
  

  在自己的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

WSGIScriptAlias / "/var/www/html/Simplecmdb/django.wsgi"

      Order Deny,Allow
      Allow from all

  service httpd restart
  访问http://ip/admin
  

  这里django项目的权限要改成apache的运行用户,不然会有报错
  

  参考地址:http://www.programgo.com/article/9700620001/;jsessionid=9EC670F7ABAE995FE59287E87BA1EB33
  




页: [1]
查看完整版本: django结合apache部署