windows10+apache2.4+python3.6部署Django2.2.4项目
刚从家回来,老师让写专利,就开始准备写,初稿交给老师后,把我说了一顿,我就想着回去改呀,然后。。。老师找到了我,说是食品院那急需一个展示数据的平台,然我尽快干出来,我也是菜鸟啊,就没单独干过呀,即使是一个展示数据,上一次的海底捞的还是师兄搭好框架,我们在上面改的,也遇到了不少坑,详见我的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项目的更多相关文章
- win10,python3.6,django2.0.3,项目基本命令
1.django-admin startproject project_name(创建项目) 2.python manage.py startapp appname(创建应用) 3.python ma ...
- 使用 apache2 + `mod_proxy_uwsgi` + uwsgi + upstart 部署
使用 apache2 + mod_proxy_uwsgi + uwsgi + upstart 部署 网上运行 python wsgi 的应用时,大部分的资料都是使用 nginx .uwsgi ,很少资 ...
- apache2+django+virtualenv 服务器部署实战
目录 基本配置 配置python环境 安装 python.pip 安装 virtualenv 配置python虚拟环境 配置 apache2 安装 apache2 安装 mod-wsgi 服务 部署d ...
- Django:Python3.6.2+Django2.0配置MySQL
持续学习Django中... Django默认使用的数据库是python自带的SQLlite3,但SQLlite并不适用于大型的项目,因此我将数据库换成了MySQL,下面介绍下Django如何配置数据 ...
- 自己用到的解决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 ...
- Django:Python3.6.2+Django2.0配置MySQL 转载
Django默认使用的数据库是python自带的SQLlite3,但SQLlite并不适用于大型的项目,因此我将数据库换成了MySQL,下面介绍下Django如何配置数据库... 我使用的版本是:Py ...
- nginx代理部署Vue与React项目
nginx代理部署Vue与React项目 一,介绍与需求 1.1,介绍 Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务.Nginx是由 ...
- 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包,解压到你 ...
- 部署点评Cat监控项目(转)
原文地址:http://www.bubuko.com/infodetail-986338.html 在项目中监控代码运行的状况,可以采用点评的Cat项目来监控整个项目,但是按照官方的文档来部署cat, ...
随机推荐
- 路飞学城—Python爬虫实战密训班 第二章
路飞学城—Python爬虫实战密训班 第二章 一.Selenium基础 Selenium是一个第三方模块,可以完全模拟用户在浏览器上操作(相当于在浏览器上点点点). 1.安装 - pip instal ...
- SQL审核平台-Yearning安装部署实践
相关文档: https://guide.yearning.io/ yearning简介 http://python.yearning.io/install/ yearning安装 Yearning ...
- Day 6:Vector类和实现Hashset以及登录窗口的模拟
LinkedList作业:生成扑克牌并且洗牌? import java.util.*; class Poker{ String color; String number; public Poker(S ...
- Ubuntu 16.04 上安装 CUDA 9.0 详细教程
https://blog.csdn.net/QLULIBIN/article/details/78714596 前言: 本篇文章是基于安装CUDA 9.0的经验写,CUDA9.0目前支持Ubuntu1 ...
- Java基础知识点简记
此篇主要记录(搬运)的是Java中一些常见概念的理解,大致内容如下 final.finally.finalize的区别 Java的传值或者传引用的理解 重写Override和重载Overload的理解 ...
- getComputedStyle() 和 getPropertyValue()
// getComputedStyle() 方法用于获取指定元素的 CSS 样式. // 获取的样式是元素在浏览器中最终渲染效果的样式. // getPropertyValue() 方法返回指定的 C ...
- html+css新特性
audio 音频 viedeo 视频 <audio src = ""02.pogg" controls = "controls"> lo ...
- C++ spdlog日志管理
[1]spdlog简介 spdlog是一个开源的.快速的.仅有头文件的基于C++11实现的一款C++专用日志管理库. [2]源码下载 下载地址:https://github.com/gabime/sp ...
- MySQL索引(一)
1.索引的类型 1) B-Tree索引 (1)概念 人们常说的Mysql索引一般是指B-Tree索引,它使用B-Tree数据结构来存储数据.存储引擎以不同的方式使用B-Tree索引,性能也各有不同,各 ...
- Python—异步任务队列Celery简单使用
一.Celery简介 Celery是一个简单,灵活,可靠的分布式系统,用于处理大量消息,同时为操作提供维护此类系统所需的工具.它是一个任务队列,专注于实时处理,同时还支持任务调度. 中间人boker: ...