设为首页 收藏本站
查看: 889|回复: 0

[经验分享] Python 学习笔记13:Python + wsgi + django 配置。坑爹的python3和wsgi不兼容的解决

[复制链接]

尚未签到

发表于 2015-11-30 12:35:38 | 显示全部楼层 |阅读模式
  今人不见古时月,今月曾经照古人。生命是如此的美丽与短暂!
  学习Python已经两个月了,Python的语法通过做简单的语法题和看Python语法介绍,有了初步的了解。但上班还是要做别的事情,所以感觉学起来特别慢。有一种时不我待的感觉。
  
  基本的语法了解了,接下来就要尽快进入到项目的实战。这样才能快速的遇到问题,并解决问题,迅速提升能力。
  开始当然就是先按网上的一般步骤,用django写个博客网站出来。
  接下来就是血泪啊!配置这个Python + wsgi + django, 其恶心已达到足以让我呕出几十两血的程度。来看:
  
  ***********************
  安装环境:
  Centos5.6
  Python2.7
  Mod_wsgi: mod_wsgi-4.4.13
  Apache: httpd2.2
  Django: Django-1.8.3
  ***********************
  
  1. 安装Python: Python2.7
  本来系统里已经自带了Python2.6, 为了我的追求极致,装逼的完美主义,我又安装了Python3.4. 并且把 /usr/local/bin/python 直接指向Python3.4. 将其设为python的主要程序。
  此处就为悲剧的根源了。因为Python3 和 mod_wsgi 不兼容 (注:至少到现在我还没有找到能用使用python3 来安装的wsgi),我安装的时候直接使用 ./Configure   make    makeinstall 命令,导致系统先择了将apache 的python版本设置成了python2.6. (注:wsgi: 即为 the python web server gateway interface, 其作用就是apache能通过它来连接并使用Python)
  但是由于我的django是用Python3安装的。最终导致apache根本就连接不上django, 我查询httpd下的error_log来回无数遍,终于发现httpd使用的是python2.6。所以只能果断使用python2了, 但是新的问题又出现了,因为下载的django版本过高,python2.6安装不了,所以最终结果就是:安装python2.7!
  命令:



tar -xvf Python-2.7.10.tgz
cd Python-2.7
./configure --enable-shared
make
make install
  可能遇到问题:python: error while loading shared  libraries: libpython2.7.so.1.0:
  cannot open shared object file: No such file
  原因: python2.7 的库找不到了
  解决方案:1. 进入/etc/ld.so.conf.d/,
  2. 新建文件:vim python2.7.conf
  3. 添加python2.7的库的所在路径: /usr/local/lib
  4. 保存并退出,然后执行命令:ldconfig
  
  2. 安装django: Django-1.8.3
  直接进入安装包文件夹使用python安装



tar xzvf  Django-1.8.3 .tar.gz
cd  Django-1.8.3
sudo python  setup.py install
  
  3. 安装mod_wsgi: mod_wsgi-4.4.13
  下载地址:https://pypi.python.org/pypi/mod_wsgi
  安装命令:



./configure --with-python=/usr/local/bin/python2.7
make
make install
  
  可能遇到问题:
  3-1. apxs: command not found
  原因: apache 组件 httpd-devel 没有安装
  解决办法: yum install httpd-devel
  3-2. 在make时编译失败。查看错误第一行,发现:Sorry, Python developer package does not appear to be installed.
  原因:python组件 python-devel没有安装
  解决办法: yum install python-devel
  参考链接: http://www.cnblogs.com/bolddream/p/mod_wsgi.html
  4. 配置httpd(注:此目的为能让httpd能通过wsgi来使用python,并访问django的网站目录) 非常重要,也很容易出问题:
  4-1. 为httpd添加wsgi的动态链接库.so文件的链接:
  1. vim /etc/httpd/conf/httpd.conf
  2. 添加内容:LoadModule  wsgi_module modules/mod_wsgi.so
  3. 保存退出。
  4-2. 继续修改httpd.conf, 添加django项目的路径,比如我新建的django网站的路径为:/var/www/html/mysite, 则配置为如下:



WSGIPythonPath /var/www/html/mysite
WSGIScriptAlias / "/var/www/html/mysite/mysite/wsgi.py"

<Directory "/var/www/html/mysite/mysite">
Order Allow,Deny
Allow from all
<Files wsgi.py>
Order allow,deny
Allow from all
</Files>
</Directory>
  4-3. 配置wsgi文件
  一般django生成项目时会自动帮你配置好wsgi.py文件。不需要自己配的,前提是你的wsgi得装好了。我的/var/www/html/mysite/mysite/wsgi.py 内容如下:



import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
  
  5. 重启httpd service: service httpd restart
  
  至少则配置问题基本解决. 如果遇到新的问题,就得上stackoverflow再去查一下了。
  下一篇讲一下怎么用django建blog网站。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-145365-1-1.html 上篇帖子: 使用国内镜像源来加速python pypi包的安装 下篇帖子: python 书籍推荐 三
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表