flask+apache+mod-wsgi部署遇到的坑
首先,看到这种方式部署,我也有疑问,为什么不用nginx,gunicorn。接手的项目,就先按照前人思路run起来。
线上使用ubuntu系统,apache2,而给我玩耍的测试机是centos6.5,就按照这个装了httpd和mod-wsig,都是python2环境。一路下来,遇到下面几个问题:
一、403Forbidden
网站上各路大神基本指明是目录权限问题,开始只给我的项目目录指定权限:chmod -R 777 /root/autobase_pj,无效。后改:chmod 755 /root,403消除了。
二、500错误,ImportError: No module named ...
tail -f /var/log/httpd/error_log 可以看到是没找到flask相关依赖,所以得进到虚拟环境,在项目根目录下的.wsgi中配置一下path:
import sys
import site
sys.path.insert(0,"/root/autobase_pj");
site.addsitedir("/root/autobase/lib/python2.7/site-packages");
from manage import app as application
activate_this = 'root/autobase/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))
三、还是500错误,... flask/helpers.py", line 628, in send_file ...,TypeError: make_conditional() got an unexpected keyword argument 'accept_ranges
日志说明flask内部文件报错,查看日志开始apache启动的时候:[notice] Apache/2.2.15 (Unix) mod_wsgi/4.6.2 Python/2.6 DAV/2 configured -- resuming normal operations。可见python版本不对,mod-wsgi默认是使用python2.6,执行mod_wsgi-express module-config,得到:
LoadModule wsgi_module "/usr/lib64/python2.7/site-packages/mod_wsgi/server/mod_wsgi-py27.so"
WSGIPythonHome "/usr"
将其复制粘贴到/etc/httpd/conf/httpd.conf 一堆LoadModule中,保存重启service httpd restart即可。自己的网页就可以打开了。
四、部分image和js无法加载
apache跟nginx差不多,应该需要指定下静态文件路径,在httpd.conf最下面VirtualHost中WSGIScriptAlias 指定wsgi文件下面加上Alias /static /root/autobase_pj/app/static,你的静态文件路径,重启apache,暂且正常了。
五、web首页控制台报错,Cannot read property 'defaults' of undefined TypeError: Cannot read property 'defaults' of undefined
百度一番,js加载顺序有问题,在页面中加载jquery下面加载jquery.dataTables.js,保存,重启apache后,暂且看不到任何辣眼睛的爆红提醒了。
flask+apache+mod-wsgi部署遇到的坑的更多相关文章
- django apache 通过wsgi部署
生产上部署django 1. 修改settings关闭debug DEBUG = False ALLOWED_HOSTS = ['*'] 2. 安装wsgi yum -y install mod_ws ...
- window10下部署flask系统(apache和wsgi)
公司有一个小系统,通过url和其他系统进行数据交互(有点土). 因此,利用flask写了一个小程序. 现在,考虑到并发问题(flask自身是不会并发的),准备部署在apache+wsgi环境. 网上百 ...
- windows下apache + mod_wsgi + python部署flask接口服务
windows下apache + mod_wsgi + python部署flask接口服务 用python3安装虚拟环境 为啥要装虚拟环境? 原因1:安装虚拟环境是为了使项目的环境和全局环境隔离开,在 ...
- Flask + mod_wsgi + Apache on Windows 部署成功(随时接受提问)
前言 说是前言,纯粹就是吐槽. 假设你赶时间.全然能够跳过这部分,我保证不会在这里隐藏不论什么实用的内容. 人上年纪后.可能冲劲不足,我花了大概两周的时间才成功的将flask部署到windows上.还 ...
- Flask学习-Flask基础之WSGI
一.WSGI为什么会出现? 在学习一个东西之前,我们肯定想知道:它为什么会出现?那么,WSGI为什么会出现呢? 我们知道,部署一个web应用,经常需要使用nginx.apache或者IIS等web服务 ...
- [Django笔记] Apache + mod-wsgi 环境部署所遇到的各种问题总结
在一台CentOS7机器上配置Django+apache运行环境 Django安装 python2 or python3 ? 一般情况下Linux系统都有自带python2,本机CentOS7上的是p ...
- CentOS 5系统安装Django、Apache 、mod_wsgi部署Python环境教程
Django,是一款针对Python环境的WEB开发框架,能够帮助我们构架快捷.简单的WEB框架设置,Django框架非常适合开发内容应用环境,所以在本文中,麦子将整理基于Centos系统部署安装Dj ...
- Ubuntu16.04 apache2 wsgi 部署django
在Ubuntu16.04上部署django其实还算简单直观,最重要的问题就是路径设置正确,并且保证版本统一,这个测试是在 Apache/2.4.18 (Ubuntu) apt-get install ...
- Apache Mod/Filter Development
catalog . 引言 . windows下开发apache模块 . mod进阶: 接收客户端数据的 echo 模块 . mod进阶: 可配置的 echo 模块 . mod进阶: 过滤器 0. 引言 ...
- 基于flask+gunicorn+nginx来部署web App
基于flask+gunicorn&&nginx来部署web App WSGI协议 Web框架致力于如何生成HTML代码,而Web服务器用于处理和响应HTTP请求.Web框架和Web服务 ...
随机推荐
- 转载 R语言颜色基础设置
原文链接:http://www.biostatistic.net/thread-5065-1-1.html R语言在画图形的时候,经常遇到颜色设定问题,用户可以根据color.rgb值和hsv值来设定 ...
- 百万并发中间件系统的内核设计看Java并发性能优化
“ 这篇文章,给大家聊聊一个百万级并发的中间件系统的内核代码里的锁性能优化. 很多同学都对Java并发编程很感兴趣,学习了很多相关的技术和知识.比如volatile.Atomic.synchroniz ...
- feed
a1=tf.placeholder(tf.float32) # 占位符 a2=tf.placeholder(tf.float32)r=tf.multiply(a1,a2) with tf.Ses ...
- java调用dll/so文件
大家都知道用C++编写的程序如果用于windows使用则编译为xxx.dll文件,如果是Linux使用则编译为libxxx.so文件.下面将java调用dll/so文件的方法粘出来方便下次使用.此处使 ...
- win10如何一键开启关闭windows Defender(亲测有效)
win10如何一键开启关闭windows Defender(亲测有效) 一.总结 一句话总结:各种找资料如何开启关闭都没用,直接下载软件简单方便 软件 因为我关windows defender是用的一 ...
- 图片路径转base64字节码
package product; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOE ...
- English trip EM2-PE-6A Family Relationship Teacher:Taylor
课上内容(Lesson) What's your name? Where is your hometown? 你的家乡是哪里? Where do you come from? 你从哪里来? ...
- Spring Cloud之配置中心搭建
一.配置中心服务端搭建 1)引入相关Maven坐标 <dependency> <groupId>org.springframework.cloud</groupId> ...
- H5微信页面开发 IOS系统 input输入框失去焦点,软键盘关闭后,被撑起的页面无法回退到原来正常的位置,导致弹框里的按钮响应区域错位
H5微信页面开发,软键盘弹起后,若原输入框被遮挡,页面整体将会上移,然而当输入框失焦,软键盘收起后,页面未恢复,导致弹框里的按钮响应区域错位. 解决方案:给输入框(或select选择框)添加失去焦点的 ...
- PHP多种序列化/反序列化的方法(serialize和unserialize函数)
serialize和unserialize函数 这两个是序列化和反序列化PHP中数据的常用函数. <?php $a = array('a' => 'Apple' ,'b' => 'b ...