Django项目部署到Apche服务器

1.简介

Django中的runserver只是一个很简单的web服务器,启动服务器常见的方法是通过Putty执行命令。虽然调试和测试方便,然而如果关闭了Putty或者退出命令,服务就停止了,并且不能承受许多用户同时使用的负载。所以需要将Django部署到生产级的服务器,这里选择Apache。

2.修改Django项目

1.进入到项目根路径,修改项目权限:

[root@s200 ~]# cd /usr/local/share/auto_deploy/

[root@s200 ~]# chmod 777 -R  /usr/local/share/auto_deploy

3.执行如下命令,安装项目依赖:

[root@s200 ~]# pip install -r requirements.txt

4.启动项目服务,测试依赖是否安装成功(在项目根目录下执行如下命令):

[root@s200 ~]# python runserver IP:Port

提示:查看服务是否正常启动。访问:http://IP:Port

常见问题:

启动服务时报如下错误:

AttributeError: module 'gssapi' has no attribute '

解决方案:

修改/root/anaconda2/lib/python2.7/site-packages/paramiko/ssh_gss.py,53,54行为:

53 import gssapi.error

54 GSS_EXCEPTIONS = (gssapi.error.GSSException,)

 

3.配置DjangoApache服务器

1.首先,确定安装httpd服务并启动,否则安装httpd服务

[root@s200 ~]# yum install httpd

[root@s200 ~]# systemctl start httpd

[root@s200 ~]# systemctl enable httpd

2.配置Auto_deploy项目到Apache

[root@s200 ~]# yum install httpd

[root@s200 ~]# systemctl start httpd

[root@s200 ~]# systemctl enable httpd

3.安装mod_wsgi python-devel

[root@s200 ~]# yum install mod_wsgi,python-devel

4.进入Apache服务器配置路径,完成如下操作:

[root@s200 ~]# cd /etc/httpd/conf.d/

5.创建并编辑Auto_deploy.conf文件

<VirtualHost *:82>

WSGIScriptAlias / /usr/local/share/auto_deploy/auto_deploy/wsgi.py

Alias /static/ /usr/local/share/auto_deploy/static/

<Directory "/usr/local/share/auto_deploy">

#WSGIProcessGroup wxsrv

WSGIApplicationGroup %{GLOBAL}

 WSGIScriptReloading On

        Order deny,allow

        Require all granted

</Directory>

</VirtualHost>

说明:

82:是Auto_deploy服务将监听的端口号。

/usr/local/share/auto_deploy/auto_deploy/wsgi.py:是Auto_deploy项目的wsgi脚本路径。

/usr/local/share/auto_deploy/static/:是Auto_deploy项目静态文件所在路径。

/usr/local/share/auto_deploy:是Auto_deploy项目的根目录。

6.修改Apache配置文件,添加监听端口:

[root@s200 ~]# vim /etc/httpd/conf/httpd.conf

7.在文件中添加

Listen    82

8.修改项目中$root/auto_deploy/wsgi.py,改为如下内容:

import os,sys

from django.core.wsgi import get_wsgi_application

path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

sys.path. insert (0,path)

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "auto_deploy.settings")

application = get_wsgi_application()

猜你喜欢

转载自blog.csdn.net/u011220960/article/details/81184244
今日推荐