科技常识:Apache上部署Django步骤详细介绍

2021-04-06 19:42:57
导读今天小编跟大家讲解下有关科技常识:Apache上部署Django步骤详细介绍,相信小伙伴们对这个话题应该也很关注吧,小编也收集到了有关科技常识

今天小编跟大家讲解下有关科技常识:Apache上部署Django步骤详细介绍,相信小伙伴们对这个话题应该也很关注吧,小编也收集到了有关科技常识:Apache上部署Django步骤详细介绍的相关资料,希望小伙伴会喜欢也能够帮助大家。

Apache上部署Django

目前,Apache和mod_python是在生产服务器上部署Django的最健壮搭配。mod_python 是一个在Apache中嵌入Python的Apache插件,它在服务器启动时将Python代码加载到内存中。

Django 需要Apaceh 2.x 和mod_python 3.x支持。

Apache的配置参见:http://www.djangoproject.com/r/apache/docs/

使用mod_python部署

1.为了配置基于 mod_python 的 Django,首先要安装有可用的 mod_python 模块的 Apache。

2.然后应该有一个 LoadModule 指令在 Apache 配置文件中。 它看起来就像是这样:

LoadModule python_module /usr/lib/apache2/modules/mod_python.so

3.配置Apache,用来定位请求URL到Django应用:

<VirtualHost *:80> ServerName www.example.com <Location"/mysite1"> SetHandler python\program PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE mysite1.settings PythonAutoReload Off PythonDebug Off PythonPath"['/var/www/html/mysite1'] + sys.path"PythonInterpreter mysite1 </Location> <Location"/mysite2"> SetHandler python\program PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE mysite2.settings PythonAutoReload Off PythonDebug Off PythonPath"['/var/www/html/mysite2'] + sys.path"PythonInterpreter mysite2 </Location> [......]</VirtualHost>

它告诉 Apache,任何在 / mysite这个路径之后的 URL 都使用 Django 的 mod_python 来处理。 它 将DJANGO_SETTINGS_MODULE 的值传递过去,使得 mod_python 知道这时应该使用哪个配置。

查看 mod_python 文档获得详细的指令列表。

4.重启Apache,查看Http://www.example.com/mysite:

/etc/init.d/apache2 restart

使用mod_wsgi部署

1.下载安装 mod_wsgi 模块,生成mod_wsgi.so和wsgi.conf

2.在配置中加载模块:

LoadModule python_module /usr/lib/apache2/modules/mod_wsgi.so

3.修改Apache配置文件httpd.conf

<VirtualHost *:80> ServerName www.example DocumentRoot /var/www/html/mysite WSGIScriptAlias / /var/www/html/mysite/apache/django.wsgi <Directory /> Order deny,allow Allow from all </Directory> <Directory /apache> Allow from all </Directory></VirtualHost>

4.创建并配置wsgi的配置文件:

# filename:mysite.apache.django.wsgiimport os, sys#Calculate the path based on the location of the WSGI script.apache_configuration= os.path.dirname(__file__)project = os.path.dirname(apache_configuration)workspace = os.path.dirname(project)sys.path.append(workspace)os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'os.environ['PYTHON_EGG_CACHE'] = '/tmp'import django.core.handlers.wsgiapplication = django.core.handlers.wsgi.WSGIHandler()print >> sys.stderr, sys.path shell>chmod a+x django.wsgi

5.修改Django项目配置文件settings.py:

DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mysite', 'USER': 'admin', 'PASSWORD': 'admin123', 'HOST': '127.0.0.1', 'PORT': '3306', }}TEMPLATE_DIRS = ( '/var/www/html/mysite/templates',)

6.重启Apache,访问http://www.example.com/mysite

/etc/init.d/apache2 restart

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

来源:爱蒂网

免责声明:本文由用户上传,如有侵权请联系删除!

猜你喜欢

最新文章