Windows server 2012 服务器部署
软件版本前提
- Windows server 2012 标准版
2.Apache 2.4
3.python 3.6
4.django 1.11
5.mysql 5.7
安装环境
1.python,Django,mysql已经安装完成
2.Apache,下载地址点我, 现在完成之后解压到 3.C:\Apache24 , apache 帮助文档
4.官网没有64位版本,可以在这个地址下载点我
配置Apache
进入C:\Apache24\conf (我将文件放到了C盘)这是Apache服务气的配置文件夹,修改httpd.conf文件,使用VSCode打开,Ctrl+f 搜索Define SRVROOT,并修改项目配置
Define SRVROOT “C:\Apache24” #Apache24文件的路径,其余不用改。
ServerRoot “${SRVROOT}”
Listen IP:PORT #需要部署到服务器的ip和端口号(无关紧要)
ServerName IP:PORT #需要部署到服务器的ip和端口号(无关紧要)
创建Apache服务
进入C:\Apache24\bin 目录,使用管理员身份运行cmd命令行,输入以下代码:
httpd.exe -k install -n "apache2.4" # -n参数给服务起别名,apache2.4是所创建服务器名称,也可不写,使用默认的。
出现== successfullyinstalled == 安装成功
- 打开浏览器 输入本机物理IP 看到欢迎界面 Apache启动成功
安装MOD_WSGI
- 什么是mod_wsgi
mod_wsgi的目标是实现一个简单的Apache模块,支持任何Python WSGI的接口的Python应用程序的托管。该模块适用于高性能生产的WEB站点,同时也适用于自己维护站点的WEB 服务托管
mod_wsgi下载地址点我
== 找到 mod_wsgi==
ap24vc14 表示Apache2.4VC14版本,
cp36表示python3.6,
amd64表示64位
下载对应版本 下载之后进行安装
pip3 install “mod_wsgi-4.5.24+ap24vc14-cp36-cp36m-win_amd64.whl” ( 在文件所在目录下运行cmd)
使用以下命令获取文件必要路径
mod_wsgi-express module-config > 1.txt # 重定向到一个文本便于复制粘贴
可以得到相关环境的路径由于cmd不能复制 我们将其重定向成一个txt 方便复制代码下面上面txt文本的内容
LoadFile"c:/users/my/appdata/local/programs/python/python36/python36.dll"
LoadModule wsgi_module "c:/users/my/appdata/local/programs/python/python36/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
WSGIPythonHome "c:/users/my/appdata/local/programs/python/python36"
打开apache根目录bin目录的httpd.conf
也就是apache24/bin/httpd.conf最后一行引入使用Include引入的方式:
Include sites/yikuang/yikuang.conf
配置django项目(你的site下的项目,将上方txt文本内容粘贴到这个文件)
方法一:打开httpd.conf,在该文件末尾加入以下内容(也可以使用Include进行引入,任选其一即可):
LoadFile “c:/users/my/appdata/local/programs/python/python36/python36.dll”
LoadModule wsgi_module “c:/users/my/appdata/local/programs/python/python36/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd”
WSGIPythonHome “c:/users/my/appdata/local/programs/python/python36”
#设置工程中的wsgi路径
WSGIScriptAlias / C:\Apache24\sites\yikuang\yikuang\wsgi.py
#设置工程路径
WSGIPythonPath C:\Apache24\sites\yikuang\yikuang
#设置wsgi路径
<Directory C:\Apache24\sites\yikuang\yikuang\wsgi.py>
方法二: 使用Include引入的方式(搞不懂这个我没用):
Include sites/yikuang/yikuang.conf # 此方式将上面的代码不再追加到httpd.conf中,另外创建配置文件,并写入
打包静态文件(我没)
python manage.py collectstatic 在django中运行
运行此命令前提:在项目的settings.py中配置:==STATIC_ROOT = os.path.join(BASE_DIR, “static”)==将会将项目中所有的静态文件打包项目根目录的static文件夹中,将项目部署到服务器之后,主要是通过该路径访问的,否则会产生css,js,图片等资源加载不了:
若报错:
django.core.exceptions.ImproperlyConfigured: The STATICFILES_DIRS setting should not contain the STATIC_ROOT setting 原因是的 STATICFILES_DIRS 中的文件名重名了,将STATICFILES_DIRS 中的改为其他名字即可。
### 说明
STATICFILES_DIRS , STATIC_ROOT与STATIC_URL :
STATICFILES_DIRS 是所有app中所有静态文件位置路径的配置,STATICFILES_DIRS告诉django,首先到STATICFILES_DIRS里面寻找静态文件,其次再到各个app的static文件夹里面找,所以这里配置的就是静态资源路径
而STATIC_ROOT 是在部署的时候才发挥作用,使用python manage.py collectstatic 会将所有的静态文件复制到该static目录中
STATIC_URL 浏览器通过这个访问服务器中的静态资源,django利用STATIC_URL来让浏览器可以直接访问静态文件,比如:STATIC_URL = '/static/'
重启Apache服务
打开浏览器,输入正确的IP及端口号,看到网站效果, 部署成功!
参考:https://blog.csdn.net/qq_38276669/article/details/99701930