刚从家回来,老师让写专利,就开始准备写,初稿交给老师后,把我说了一顿,我就想着回去改呀,然后。。。老师找到了我,说是食品院那急需一个展示数据的平台,然我尽快干出来,我也是菜鸟啊,就没单独干过呀,即使是一个展示数据,上一次的海底捞的还是师兄搭好框架,我们在上面改的,也遇到了不少坑,详见我的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右键启动,我的出现下面的问题

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

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

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

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

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

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

好了,也使用好了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的部署也会不了了之,这也有好处,俗话说,祸兮福相依。

windows10+apache2.4+python3.6部署Django2.2.4项目的更多相关文章

  1. win10,python3.6,django2.0.3,项目基本命令

    1.django-admin startproject project_name(创建项目) 2.python manage.py startapp appname(创建应用) 3.python ma ...

  2. 使用 apache2 + `mod_proxy_uwsgi` + uwsgi + upstart 部署

    使用 apache2 + mod_proxy_uwsgi + uwsgi + upstart 部署 网上运行 python wsgi 的应用时,大部分的资料都是使用 nginx .uwsgi ,很少资 ...

  3. apache2+django+virtualenv 服务器部署实战

    目录 基本配置 配置python环境 安装 python.pip 安装 virtualenv 配置python虚拟环境 配置 apache2 安装 apache2 安装 mod-wsgi 服务 部署d ...

  4. Django:Python3.6.2+Django2.0配置MySQL

    持续学习Django中... Django默认使用的数据库是python自带的SQLlite3,但SQLlite并不适用于大型的项目,因此我将数据库换成了MySQL,下面介绍下Django如何配置数据 ...

  5. 自己用到的解决Python3.6.5+Django2.0集成xadmin后台点击添加或者内容详情报 list index out of range 的错误的办法如下:

    Python3.6.5 Django2.0 这是Django版本与xadmin兼容的问题 解决办法如下: 注释掉如下代码: def render(self, name, value, attrs=No ...

  6. Django:Python3.6.2+Django2.0配置MySQL 转载

    Django默认使用的数据库是python自带的SQLlite3,但SQLlite并不适用于大型的项目,因此我将数据库换成了MySQL,下面介绍下Django如何配置数据库... 我使用的版本是:Py ...

  7. nginx代理部署Vue与React项目

    nginx代理部署Vue与React项目 一,介绍与需求 1.1,介绍 Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务.Nginx是由 ...

  8. Red5 1.0.0RC1 集成到tomcat6.0.35中运行&部署新的red5项目到tomcat中

    1.下载red5-war-1.0-RC1.zip 解压之得到 ROOT.war 文件. 2.处理tomcat. 下载apache-tomcat-6.0.35-windows-x86.zip包,解压到你 ...

  9. 部署点评Cat监控项目(转)

    原文地址:http://www.bubuko.com/infodetail-986338.html 在项目中监控代码运行的状况,可以采用点评的Cat项目来监控整个项目,但是按照官方的文档来部署cat, ...

随机推荐

  1. maven的理解和使用

    一.maven是什么? maven是项目管理工具 二.maven为什么要用? 在做开发的时候常常会用到外部的工具包(jar包),这就需要你一个一个的去他们的官网下工具包,然后在项目里依赖他们,比较的麻 ...

  2. 前端框架vue学习笔记

    占坑

  3. UVA - 10934 Dropping water balloons(装满水的气球)(dp)

    题意:有k个气球,n层楼,求出至少需要多少次实验能确定气球的硬度.气球不会被实验所“磨损”. 分析: 1.dp[i][j]表示第i个气球,测试j次所能确定的最高楼层. 2.假设第i-1个气球测试j-1 ...

  4. ADC分辨率

    转载:http://www.rationmcu.com/elecjc/1874.html 今天给大家简单介绍一下ADC器件的常识. ADC,模数转换器,功能是把模拟电压转换成数字量. 概念听的模糊,说 ...

  5. MySQL表的几个简单查询语句

    1. 创建数据库CREATE DATABASE database-name 2. 删除数据库drop database dbname 3.    创建新表create table tabname(co ...

  6. django 过滤器-查询集-比较运算符-FQ对象-mysql的命令窗口

    """ 返回查询集的方法称为过滤器 all() 返回查询集中所有数据 filter() 返回符合条件的数据 一.filter(键=值) 二.filter(键=值,键=值) ...

  7. php中const和define的区别

    define部分:宏不仅可以用来代替常数值,还可以用来代替表达式,甚至是代码段.(宏的功能很强大,但也容易出错,所以其利弊大小颇有争议.)宏的语法为:#define 宏名称 宏值作为一种建议和一种广大 ...

  8. Django1.11序列化与反序列化

    django序列化与反序列化 from rest_framwork import serializers serializers.ModelSerializer 模型类序列化器,必须依据模型类创建序列 ...

  9. 20个GitHub最热门的Java开源项目:文档、框架、工具

    专注于Java领域优质技术,欢迎关注 文章来源:JavaGuide 以下涉及到的数据统计,数据来源:https://github.com/trending/java?since=monthly[1] ...

  10. nvm安装教程

    nvm是一个nodejs的版本管理工具 默认安装位置  C:\Users\userName\AppData\Roaming\nvm x   1 C:\Users\userName\AppData\Ro ...