刚从家回来,老师让写专利,就开始准备写,初稿交给老师后,把我说了一顿,我就想着回去改呀,然后。。。老师找到了我,说是食品院那急需一个展示数据的平台,然我尽快干出来,我也是菜鸟啊,就没单独干过呀,即使是一个展示数据,上一次的海底捞的还是师兄搭好框架,我们在上面改的,也遇到了不少坑,详见我的github:http://JadenFK.github.io

还好前几天就在GitHub上下载了一个Django的开源项目,实现了登陆注册功能,这个也只需要改改就好了呀,然后又找了免费的前端的bootstrap框架写的前端代码,我自己整合的,然后修改一下啊,比自己从头写快多了哈哈,然后就开发呀,数据展示我用的ajax取的数据,前台延用的免费框架用的DataTable框架,画图也是延用:chart.js

一切基本实现了后,得部署啊,让外网能访问啊,前面我也弄过我们实验室搭建过的网站,海底捞用到的服务器是tomcat,php的网站用的是wamp(Apache+Mysql/MariaDB+Perl/PHP/Python)服务器,而一个c#写是直接部署到了Windows server 2008R2的IIS服务器上,其他的海底捞、php等项目都是在其基础上改不同的端口以供外网访问。wamp是把php项目其文件夹www下,并且设置端口即可,设置数据库连接,tomcat也可以打包成var包放进去,然后设置端口监听(我还没试过,只是在tomcat设置监听端口,然后在TP-LINK,虚拟服务器上给与其端口),在IntelliJ idea上直接运行项目即可(运行环境配置也要设置端口和本机ip,这个也和我这次的django部署相关,也不知道我理解的对不对,反正django这么做的是行了,以后我觉得也会有真相大白的一天)

首先找到的是UWSGI+Nginx,https://blog.csdn.net/u013156691/article/details/83688810,了解了后才知道UWSGI是Linux系统用的,但是也在此感谢博主

我想部署的是Windows,于是接着找啊,准备用apache+一个插件mod_wsgi,感谢以下博主
https://www.cnblogs.com/shenh/p/7552722.html     https://blog.csdn.net/bibuying/article/details/78532427

但是又一次碰到了揪心的事啊,真是。。。。。就是坑的很难受,好吧,停止难受,开始叙述我的难受的经历吧

首相我参考了好多博主写的博客,可能是由于我的环境配置比较乱,然后都没成功

首先我步骤直接参考了博客:https://www.cnblogs.com/shenh/p/7552722.html,最后就是不知道哪的原因,反正外网访问不了,也有可能我一直非正常关闭httpd.exe,还有可能我环境配置比较乱,我可是一直改一直改,甚至httpd.conf中的斜杠\和反斜杠/我都改来改去,都不行啊。。。。。。然后就把我同们叫来了啊,直接用Django自带的服务器设置的,尼玛,这都行,反正是能访问了,只用了一句命令行:python managel.py runserver 0.0.0.0:8009,监听端口直接在这个地址后面写了就行,我还在忙着部署到apache上。。。搞了一天多,真是醉了,以为万事大吉了,就给导师说啊,结束了,都挺高兴,结果坑来了,访问速度超级慢,打开网页慢的要死要死的

这就很揪心啊,导师来找了,让看看为啥,不知道是谁说了一句,服务器,我和我同门就吭哧吭哧的捣鼓服务器啊,以为Django自带的服务器的性能的原因,又重新捣鼓apache

我同门捣鼓了一下午也够够的,没弄明白,但是活还得继续啊,得上线让人家看啊,不能这么慢啊,我就开始继续弄apache,这时候还没走到正轨上来

我就严格按照博主:https://www.cnblogs.com/wcwnina/p/9974642.html 的步骤来做,python3.6.8换成3.6.4,还要配置环境变量,因为笔记本上还装了Ancona,自带python3.7,系统又默认使用最新的版本,我就修改系统默认使用python的版本啊,有好多博主说修改python.exe的名称什么的,太麻烦了我就不想试,结果找到了好的解决方案,即https://www.cnblogs.com/JadenFK3326/p/11426560.html 就是修改系统变量中python的路径,修改到最上面即可

然后安装apache,安装mod_wsgi-4.5.24+ap24vc14-cp36-cp36m-win_amd64.whl

输入命令:mod_wsgi-express module-config

得到一下三行代码,用来代替有的博客所说的mod_wsgi-py36-VC14.so

LoadFile "d:/python36/python36.dll"
LoadModule wsgi_module "d:/python36/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
WSGIPythonHome "d:/python36"

然后修改Apache24\conf\httpd.conf

  Define SRVROOT "D:/Apache24"    # D:/Apache24即apache的安装路径

  Listen 8009  # 监听端口,即外网要用的端口

  ServerName fdl.cau.edu.cn:8009    #服务器名,也可以是IP地址,即我们TP-LINK赋予8009端口的IP

博主还说要在windows\System32\drivers\etc\hosts设置解析即 TP-LINK赋予8009端口的IP也是本机ip  fdl.cau.edu.cn 如:127.0.0.1 fdl.cau.edu.cn

然后就是往httpd.conf中添加内容了,

首先把上面的三行加上

接着

WSGIScriptAlias / "D:/YakMilk/bigdata/wsgi.py"   #项目的Web Server Gateway Interface,web服务网关接口路径

WSGIPythonPath "D:/YakMilk/"    #项目根路径

<Directory "D:/YakMilk/bigdata">  # 项目web服务网关接口路径,设置其权限
<Files wsgi.py>
Require all granted
</Files>
</Directory>

Alias /static "D:/YakMilk/static"    # 项目静态文件路径及权限配置,有的博客没加,下面的meta的路径及配置,此博主加了,我没加,因为没用到
<Directory "D:/YakMilk/static">
AllowOverride None
Options None
Require all granted
</Directory>

还有的博主加了其他的配置及权限,请根据自己实际情况添加即可

然后设置项目的初始的项目的settings.py文件中的允许的主机,此博主设置的是*,但是实际中没有这么干的,设置要用的主机Ip及域名即可

ALLOWED_HOSTS = ['TP-LINK赋予8009端口的IP,即本机ip', 'fdl.cau.edu.cn']

博主说的启动服务器首先要安装服务器,在apache24根目录下打开cmd,运行 httpd -k install -n 即可安装成功

然后通过net start apache2.4   net stop apache2.4启动和停止服务器,也可以通过右击我的电脑->管理->服务与应用程序->服务,选择apache2.4右键启动,我的出现下面的问题

windows10+apache2.4+python3.6部署Django2.2.4项目

就是很尬,解决不了,我就一直sc delete apache2.4、httpd -k install -n,就是删除服务,安装服务,不行,又重启了计算机,接着删除服务、安装服务,竟然某一次启动行了

启动了服务器后还是访问不了啊,查看错误日志,就是缺包

windows10+apache2.4+python3.6部署Django2.2.4项目

咦,我明明装了包呀,才发现安装mod_wsgi-4.5.24+ap24vc14-cp36-cp36m-win_amd64.whl时装到了python的直接环境下,我pycharm上的环境是继承的直接环境,然后在项目下虚拟化的一个

windows10+apache2.4+python3.6部署Django2.2.4项目

所以就缺什么包再装一遍了,如下,先更新pip,这里没用python -m pipinstall --upgrade pip,我这出问题了

windows10+apache2.4+python3.6部署Django2.2.4项目

windows10+apache2.4+python3.6部署Django2.2.4项目

 

然后启动服务器后,博主说可以访问了,好多博主也这么说,但是我的就是访问不了,这也到了我前面说的"我不知道理解的对不对”的那了,我用pycharm运行项目,且得编辑配置,或许有可能把django项目打包放到apache服务器某个文件下才行,我没试

加上host名和端口,然后运行,并且启动apache2.4服务器才能运行,否则少了哪一个都不行,这和以前用IntelliJ idea 部署海底捞项目一样,就这样我认为本项目用来apache服务器,若有错误请指出呀,在此感谢各位大神

windows10+apache2.4+python3.6部署Django2.2.4项目

好了,也使用好了apache服务器,但是网速还是没起来,就因为某个人提到了服务器,我的想法就限制到了服务器上,偶尔见去按F12,查看浏览器加载时间,发现了一个内鬼:

<link href="https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900i" rel="stylesheet">

这个玩意加载时花费了17s,对,你没看错,17秒,其他的都是几十ms,这好像是一个字体样式,还是Google的,最近老美又限制我们,不知道Google解除了没,因为啥,就是没加载出来,发现也没用到,就注释了,然后问题解决,慢也快了。。。。。。。。。。。。

真实,难受了一下午及一晚上,就是憋屈,怎么就限制到了服务器不行上去了,谁提了一句,明明正常思路,显示F12调试,查看为啥慢,好吧,如果没有此问题,我还没有学会部署apache呢,对应apache的部署也会不了了之,这也有好处,俗话说,祸兮福相依。