Apache+flask在服务器上的搭建实现
心血来潮,想弄一个自己的服务器,并且希望能用自己稍微熟悉一点的flask来实现网页,就这样头大,头大,头大,最后弄好了。
其实网上有很多博主写了具体的教程,可能这个用的是真的广泛,但是我还是遇到了一些问题。
我这篇文章是为了自己以后参考使用,回头来补充bug作用,当然如果可以帮到一个人我也是很开心的。
现在说说我遇到了哪一些问题:
1.最常见的版本问题,python,apache,wsgi三种版本需要相互对应,即32位对应32位,64对64,这个我觉得稍微仔细点就可以了。
2.“.whl”文件的使用,一般这种文件长成这样
mod_wsgi-4.5.24+ap24vc14-cp35-cp35m-win_amd64.whl
ap24对应着apache2.4版本,cp35对应的是python3.5,amd64就是64位, vc14就是visual studio 2015对应的运行库,一搜索就能查到下载
3.其中flask所需要的虚拟环境我没有自己安装,一是因为偷懒,二是我这段时间受不了因为自己单独操作而爆出的bug,所以我选择了用pycharm来新建一个flask项目,我直接拷贝了过去hha
4.对于whl文件网上的方法如果直接复制控制台打印出来的那几条语句,可能会出现文件路径错误或者语法错误问题,这是因为服务器操作系统控制台再复制内容之后,并不会保持各行之间的关联,而是直接黏贴为原本样子,这在http.conf中就会出现路径的报错,一开始就是因为一步步看着那些博主说的,我都是自己打的代码啊,我就搞不懂哪里错了,一直看着那些xdd/xxx/xxx/xxx。。。什么什么的,但是没有一个解决办法,其实只要仔细看看错误就会发现,是因为conf中换行的原因导致了路径连接不上了,比如python变成了py换行thon,他是识别不出来的。
5.又有一个地方错误,在运行httpd -k start/restart 的时候,他正常运行了,不会报错,但是我的flask一直没有用,不管怎么换wsgi中的路径或者conf中的文件路径,就是不报错,最后终于在apache的wrong_logs文件中仔细找到了错误,又是一个小问题,from 导入包的时候把名字没有改回来,不是一开始用的test.py文件,而是之后导入的app.py文件,哎 都是蠢到自己了。
6.在conf文件中添加
WSGIPythonHome "C:\Users\Administrator\AppData\Local\Programs\Python\Python35" WSGIPythonPath "C:\mydir\flask_test\flask_test;C:\mydir\flask_test\flask_test\venv\Lib\site-packages" <VirtualHost *:80> DocumentRoot C:\mydir\flask_test\flask_test WSGIScriptAlias /test C:\mydir\flask_test\flask_test\wsgi.py <Directory C:\mydir\flask_test\flask_test> AllowOverride All Require all granted </Directory> </VirtualHost>
自己成功的代码就是这样了,其中的WSGIPythonHome是python安装路径,WSGIPythonPath是项目路径和项目的虚拟环境路径
DocumentRoot项目路径
WSGIScriptAlias 之后是定义的url地址 在之后是wsgi文件,其实内部就是一个转到flask项目的转接函数
AllowOverride All 权限打开最大
原文地址:https://www.cnblogs.com/1120lwk/p/11383293.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法