首先,看到这种方式部署,我也有疑问,为什么不用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后,暂且看不到任何辣眼睛的爆红提醒了。

最新文章

  1. jQ函数after、append、appendTo的区别
  2. WordCount示例深度学习MapReduce过程(1)
  3. FreeMarker常用语法
  4. C puzzles详解【1-5题】
  5. Function模式 -- 深入理解javascript
  6. 对struts2的基本知识和环境的搭建(配图解)
  7. Abstract Factory 抽象工厂模式
  8. 剖析并利用Visual Studio Code在Mac上编译、调试c#程序【转】
  9. Jenkins修改域认证,非域用户忘记密码处理
  10. Extjs4.2 Tree使用技巧
  11. 获取EditText的光标位置
  12. 获取URL中的参数值
  13. Log POST Data in Nginx
  14. 从零开始学习前端开发 — 2、CSS基础
  15. 【翻译】在Ext JS中创建特定主题的重写
  16. 为什么目前无法再docker for windows中调用GPU
  17. 第一天接触stm32
  18. Vmware的虚拟机示例进入BIOS方法
  19. codeforces 889A
  20. android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)

热门文章

  1. aar的使用(module或者library)
  2. [C#]读取不同版本的excel文件的方法
  3. Appium解决搜索框问题
  4. 利用unittest+ddt进行接口测试(二):使用yaml文件管理测试数据
  5. Linux 各种软件的安装-tomcat8+JDK篇
  6. Tomcat ----> 学习笔记
  7. G.711是一种由国际电信联盟(ITU-T)制定的音频编码方式
  8. LeetCode--350--两个数组的交集2
  9. codeforces708b// Recover the String //AIM Tech Round 3 (Div. 1)
  10. android--------Eclipse中ddms heap内存分析工具