背景
时间:2019.5.3
创作背景
最近用django开发了一个小项目,打算用iis上线挂到网上,但是找遍了网络上的各种教程,在服务器上都没有成功,自己慢慢摸索,花了一个多星期总算部署成功。于是写这篇帖子来让有需要的小伙伴来参考。
部署配置:
服务器:Windows server12
数据库:mysql
python环境:python3.6+Django2.2
依赖包:mysqlclient、wfastcgi
步骤
开启iis(详细步骤可以参考网上的,这里就不赘述了),安装python解释器,安装django。
打包项目:
命令行切换到项目的路径下,输入以下命令,将依赖包导出到文件中,将项目整个打包上传到服务器中。建议将项目放到C:\inetpub\wwwroot这个目录下。
pip freeze > requirements.txt
1
命令行切换到项目目录下,运行以下命令导入依赖包。
pip install -r requirements.txt
1
在iis中创建网站,目录就是项目所在的路径。
安装wfastcgi,直接使用pip命令安装即可。
命令行输入:wfastcgi-enable,复制其中的wfasgtcgi.py的路径。
打开建立的网站,选择“处理程序映射”,然后选择“添加模块映射”
按照上图配置,可执行文件中填的前面一部分是python.exe的路径,中间用“|”分割,后面一部分是wfastcgi.py文件的路径。例如:C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe|C:\Users\Administrator\AppData\Local\Programs\Python\Python36\Lib\site-packages\wfastcgi.py
请求限制里面去掉勾选的。如下图:
8. 进入fastcgi设置:
进入之后找到自己添加的映射模块,路径和自己添加的对的上的就是的。双击,在环境变量选项中添加三个参数:
name:WSGI_HANDLER
value:django.core.wsgi.get_wsgi_application()
name:PYTHONPATH
value:C:\inetpub\wwwroot\sale(替换为自己的项目路径)
name:DJANGO_SETTINGS_MODULE
value:sale.settings(sale替换为自己的项目名)
1
2
3
4
5
6
7
8
点击自己创建的网站,右键选择添加虚拟目录,名称static,物理路径就填自己项目的静态文件夹。如果没有这一步,通过浏览器访问的只能看到HTML结构。静态文件无法加载。
极其重要的一步(99.99%的网上教程没有这个要命的一步):找到python解释器和项目的根路径,右键->属性->安全,给IIS_IUS和IUSER对这两个文件夹的完全控制权。否则会因为权限问题,网站无法跑起来,状态一直是500.
总结:
windows系统对django不是很友好,在windows上部署的话,效率很低,建议部署在Linux上。对于网站的静态文件,尤其是图片,一定要控制好文件大小。图片尽量压缩,可以在下面这个网站apowersoft进行压缩。如果压缩过后还是比较大,建议使用CDN.