django网页开发:5. 部署(apache+mod_wsgi)

必须安装的环境:

python:3.6

django:2.1.2

(在部署时一直报500错误,最后发现是我犯了一个很低级的错误,没装django)

(因为是从别的电脑拷贝来的,pycharm直接创建的Django项目,忽略了这一步)

 

如果部署到apache服务器:

版本环境:

apache:2.4

mod_wsgi:要根据apache和python版本而定

 

参考:https://blog.csdn.net/GodLordGee/article/details/83934615

 

1. 安装apache

首先安装apache 2.4,这个镜像快(https://www.apachehaus.com/cgi-bin/download.plx)

下载后是一个压缩文件,直接解压缩,获取文件夹里的Apache24文件夹,这个文件夹就是apache服务器文件了,不需要安装,我直接将Apache24文件夹移动到了D盘根目录。

然后进入D:\Apache24\conf这个路径,使用notepad++打开httpd.conf(也可使用记事本)

修改:

(1)Apache路径

Define SRVROOT "D:\Apache24"

ServerRoot "${SRVROOT}"

(2)端口

#Listen 12.34.56.78:80

Listen 0.0.0.0:80

这里0.0.0.0指的是监听所有ip的请求,也就是任何IP都可以访问我们的网页

80是默认端口,这样在输入网址时就不用输入端口号了。但80容易冲突,如果冲突就修改

(3)服务器名

ServerName localhost

(如果你设置了其他端口,如8000,那么这里应该改为localhost:8000)

配置完成,然后安装apache,在bin目录打开cmd,输入:

httpd.exe -k install -n "apache2.4"

这里需要说明,如果用cmd运行安装apache服务的命令,那么,会出现下面这句话:

Errors reported here must be corrected before the service can be started

 这句话的下一行,如果有输出一些信息,那么,就表明你的httpd.conf配置有问题,那么,你就要根据它提示你的报错信息,去检查哪里有问题,如果这句话的下一行是空白的,那么,就说明你的apache服务安装没有问题,你可以正常启动了。

我的电脑——》管理——》服务,就可以看到apache服务了,可以在这里开启服务

浏览器访问localhost,出现 it works 即成功。

 

2. 安装mod_wsgi

下载mod_wsgi(python的包),下载网址:http://www.lfd.uci.edu/~gohlke/pythonlibs

注意:mod_wsgi对apache和python的版本要求很严格,要对号入座

这里我下载的是mod_wsgi-4.5.24+ap24vc14-cp36-cp36m-win_amd64.whl(放在了百度云)

找个能找到的地方放在里面,我放在apache的目录里了

然后用cmd进入.whl文件所在的目录,安装mod_wsgi:

pip install mod_wsgi-4.5.24+ap24vc14-cp36-cp36m-win_amd64.whl 

ps:你可以输入个mod_wsgi,然后按TAB键,就可以自动补全了,以免输错

如果提示pip要更新,根据提示upgrate。

安装完成以后,在cmd里面输入:

mod_wsgi-express module-config

 会出来3行信息,复制,添加到刚才的 D:\Apache24\conf\httpd.conf 文末。

 

3. 关键配置

依然在 httpd.conf 文件,文末添加:

# apache连接mod_wsgi

LoadFile "d:/anaconda/anaconda3/python36.dll"

LoadModule wsgi_module "d:/anaconda/anaconda3/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"

WSGIPythonHome "d:/anaconda/anaconda3"

#设置工程中的wsgi路径

WSGIScriptAlias / D:\pycharm\workspace\CKlab\CKlab\wsgi.py

#设置工程路径

WSGIPythonPath D:\pycharm\workspace\CKlab

#给wsgi权限,设置wsgi文件可修改

<Directory D:\pycharm\workspace\CKlab\CKlab>

<Files wsgi.py>

Require all granted

</Files>

</Directory>

#设置静态文件路径

Alias /static D:\pycharm\workspace\CKlab\static

<Directory D:\pycharm\workspace\CKlab\static>

AllowOverride None

Options None

Require all granted

</Directory>

#设置媒体文件路径

Alias /media D:\pycharm\workspace\CKlab\media

<Directory D:\pycharm\workspace\CKlab\media>

AllowOverride None

Options None

Require all granted

</Directory>

到此,所有的配置已经完成了,重启apache服务(这是必须的!必须重启),接着,输入网址,就可以正常访问啦!其他人也可以通过IP地址或者域名访问网站了。

 

发现后台admin很乱,没有样式,修改settings.py,加上:

STATIC_ROOT = os.path.join(BASE_DIR, 'static')

然后运行命令python manage.py collectstatic即可。

pycharm:工具——》run manage.py......

如果想关闭开发者模式(debug模式),保证网站安全:

DEBUG = False

TEMPLATE_DEBUG = False

ALLOWED_HOSTS = ['*']

 

 

如果部署到云服务器:

1. 登陆云服务器

(以下这几个网址都在腾讯云官方文档里,可到官网查看)

(1)登陆云服务器:https://cloud.tencent.com/document/product/213/2764

(2)开启服务器(IIS):https://cloud.tencent.com/document/product/213/2755

(3)放开所有端口:首先在左侧列表【安全组】里新建安全组,选择【放通所有端口】,然后到【云主机】【更多】(登陆右边)添加这个安全组。

(4)防火墙配置:

打开服务器管理器,右上角工具---高级安全windows防火墙,点击Windows防火墙属性,选择公用配置文件,入站链接设置为允许,然后确定,服务器配置完毕.

其他:{

上传文件:https://cloud.tencent.com/document/product/213/2761

安装mysql:https://cloud.tencent.com/document/product/213/10190

}

 

2. 环境配置:

python3.6+django2.1.2+apache24+mod_wsgi

跟部署到本地一样,我使用anaconda安装的python3.6

django从本地复制来,安装

apache2.4配置时,提示80端口不可用,改为了8080

wsgi也是复制而来,安装

 

3. 上传项目

httpd.conf文件文末修改同上

启动服务:

C:\Apache24\mod_wsgi>net start apache2.4

 

如果报错:server certificate does NOT include an ID which matches the server name

尝试把debug改为true,好像并没有出错,是url没输入正确

 

任何终端都可以输入网址找到该网站了:

http://118.24.131.52:8080/lab/

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值