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

[经验分享] mod_wsgi+apache+django

[复制链接]

尚未签到

发表于 2018-11-24 10:45:01 | 显示全部楼层 |阅读模式
环境:CentOS 5.X

django项目目录结构是按照http://djangobook.py3k.cn/2.0/chapter12/一路安装过来的。

目前目录结构:

[root@n66mysite]# pwd

/data/game/project/mysite

[root@n66mysite]# ls

books  manage.py mysite

升级python:

由于系统自带python是2.4,我们需要升到2.7

#wget http://www.python.org/ftp/python/2.7/Python-2.7.tgz

#./configure  --enable-shared

#make

#make install

替换原来的python

#mv/usr/bin/python{,.bak}

#cp/usr/local/bin/python2.7 /usr/bin/python

[root@n66 ~]#python

Python 2.7(r27:82500, May  9 2013, 17:58:15)

[GCC 4.1.220080704 (Red Hat 4.1.2-52)] on linux2

Type"help", "copyright", "credits" or"license" for more information.

>>>

显示python升级成功

但因为yum使用的是2.4版本,所以还要修改下

#vi/usr/bin/yum

#!/usr/bin/python2.4     #用2.4版本

#cat “/usr/local/lib”>>/etc/ld.so.conf

#ldconfig



安装python模块

#wget https://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg#md5=fe1f997bc722265116870bc7919059ea

#sh  setuptools-0.6c11-py2.7.egg

#wget https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz

#pythonsetup.py install

#wget https://pypi.python.org/packages/source/M/MySQL-python/MySQL-python-1.2.4.zip#md5=ddf2386daf10a97af115ffad2ed4a9a0

#python setup.pyinstall

安装django

#pip installDjango==1.5.1



安装apache

#wget http://apache.etoak.com//httpd/httpd-2.2.24.tar.gz

  #./configure--prefix=/usr/local/apache2
  #make
  #make install
  安装mod_wsgi
  #wget http://modwsgi.googlecode.com/files/mod_wsgi-3.4.tar.gz
  #./configure--with-apxs=/usr/local/apache2/bin/apxs
  #make
  #make installd
  
  配置apache
  在httpd.conf里增加一行:
  LoadModulewsgi_module modules/mod_wsgi.so
  在apache虚拟机主机配置文件里增加以下字段,也可以放在httpd.conf里:
  
      #ServerAdminwebmaster@dummy-host2.example.com
      #DocumentRoot"/usr/local/apache2/docs/dummy-host2.example.com"
      ServerName 192.168.0.110
      ErrorLog "logs/error_log"
      CustomLog "logs/access_log"common
     
         Order deny,allow
         Allow from all
     
  

      WSGIScriptAlias / /data/game/project/mysite/mysite/django.wsgi
  
  其中/data/game/project/mysite/mysite/django.wsgi文件内容如下:
  import os
  import sys
  importdjango.core.handlers.wsgi
  os.environ['DJANGO_SETTINGS_MODULE']= 'mysite.settings'
  app_path ="/data/game/project/mysite/"
  sys.path.append(app_path)
  application =django.core.handlers.wsgi.WSGIHandler()
  按照官方的配置:
  import os,sys
  sys.path.append('/data/game/project/mysite/')
  os.environ['AJANGO_SETTINGS_MODULE']= 'mysite.settings'
  importdjango.core.handlers.wsgi
  _application =django.core.handlers.wsgi.WSGIHandler()
  defapplication(environ,start_response):
          environ['PATH_INFO'] =environ['SCRIPT_NAME'] + environ['PATH_INFO']
          return_application(environ,start_response)
  不行,不知道为什么,如有懂的,请告知下。
  可以用http://192.168.0.110/admin/访问django自带后台管理模版地址了,但奇怪的是样式全丢了。也是google了下,终于找到了解决方法,cd到你的manage.py目录,运行
  #python manage.py collectstatic
  django会收集必要的静态文件到setting文件里STATIC_ROOT指定的目录,由于我的settings.py里的STATIC_ROOT = ''为空,所以生成的静态目录在:
  [root@n66mysite]# ls
  admin  books manage.py  mysite
  [root@n66 mysite]#pwd
  /data/game/project/mysite
  admin目录就是刚生成的.
  

  编辑/data/game/project/mysite/mysite/settings.py文件:
  其中
  STATIC_ROOT = ''
  

  # URL prefix for static files.
  # Example: "http://example.com/static/", "http://static.example.com/"
  STATIC_URL = '/static/'
  

  # Additional locations of static files
  STATICFILES_DIRS = (
  # Put strings here, like "/home/html/static" or "C:/www/django/static".
  # Always use forward slashes, even on Windows.
  # Don't forget to use absolute paths, not relative paths.
  '/data/game/project/mysite/admin/'
  )
  保持这样。
  

  由先前apache访问日志得知样式访问url是类似以下形式:
  /static/admin/css/base.cssHTTP/1.1" 404 2874
  所以我们需要在配置虚拟主机文件里增加以下内容:
      Alias /static/admin//data/game/project/mysite/admin/
  

  httpd-vhosts.conf全文内容如下(我的虚拟主机配置文件):
  NameVirtualHost*:80
  
      #ServerAdminwebmaster@dummy-host2.example.com
      #DocumentRoot"/usr/local/apache2/docs/dummy-host2.example.com"
      ServerName 115.238.225.50
      ErrorLog "logs/error_log"
      CustomLog "logs/access_log" common
      Alias /static/admin//data/game/project/mysite/admin/
     
         Order deny,allow
         Allow from all
     
      WSGIScriptAlias / /data/game/project/mysite/mysite/django.wsgi
  
  重启apache,再次访问正常。
  

  如有在编译mod_wsgi模块里出现
apxs:Error: Command failed with rc=65536.
make: *** [mod_wsgi.la] Error 1
  错误,重新编译python,加上
  #./configure  --enable-shared
  

  本文档是在搭建后三天写的,可能有遗漏之处。






运维网声明 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-638954-1-1.html 上篇帖子: apache mysql设置开机启动 下篇帖子: Ngix和Apache中KeepAlive如何选择
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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