文档章节

Linux配置实践:apache+wsgi+虚拟主机配置

Nob
 Nob
发布于 2014/06/20 16:30
字数 851
阅读 344
收藏 6
点赞 0
评论 1


<安装mod_wsgi>

使用centos光盘中mod_wsgi.rpm包

    LoadModule wsgi_module modules/mod_wsgi.so

编译完成后引入配置文件:

LoadModule wsgi_module modules/mod_wsgi.so


最后的虚拟主机配置:

#
# Use name-based virtual hosting.
#
NameVirtualHost *:80
#
# NOTE: NameVirtualHost cannot be used without a port specifier 
# (e.g. :80) if mod_ssl is being used, due to the nature of the
# SSL protocol.
#

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
<VirtualHost *:80>
    ServerAdmin centos@nobsu.net
    DocumentRoot /var/www/html
    ServerName centos.nobsu.net
    ErrorLog logs/centos.nobsu.net-error_log
    CustomLog logs/centos.nobsu.net-access_log common
</VirtualHost>
<VirtualHost *:80>
    ProxyPreserveHost On
    ProxyPass / http://192.168.75.1
    ProxyPassReverse / http://192.168.75.1/
    ServerAdmin front@nobsu.net
    ServerName front.nobsu.net
</VirtualHost>

<VirtualHost *:80>
        ServerName py.nobsu.net
        ServerAlias py.nobsu.net
        DocumentRoot "/var/www/mysite"
        WSGIScriptAlias /test "/var/www/mysite/wsgi/django.wsgi"
        Alias /static "/var/www/static/"
        <Directory "/var/www/static/">
           Order deny,allow
           Allow from all
        </Directory>
        <Directory "/var/www/">
           Order Deny,Allow
           Allow from all
        </Directory>
</VirtualHost>


apache+Django+mod_wsgi(CentOS6.3)

1.安装apache
1.首先卸载环境自带的httpd
    # rpm -e httpd --nodeps

2.安装gcc
    # yum install -y *gcc*(此过程在虚拟机的环境为CentOS上需要大约40分钟)

3.解压httpd并进行安装(/root/tools/)
    # cd /root/tools
    # tar zxvf httpd-2.2.15.tar.gz
    # cd httpd-2.2.15
    # ./configure --prefix=/usr/local/apache2 --enable-rewrite --enable-so(大约两分钟,选项的作用主要是允许动态加载模块,以后我们要加载mod_wsgi)
    # make(大约三分钟)
    # make install

4.启动apache服务
    # /usr/local/apache2/bin/apachectl start

5.测试
    # firefox localhost
当看到"It works"代表apache配置成功

2.安装mod_wsgi
1.解压,安装
    # tar zxvf mod_wsgi-3.3.tar.gz -C /usr/local/src/
    # cd /usr/local/src/mod_wsgi-3.3/
    # ./configure --with-apxs=/usr/local/apache2/bin/apxs(apache动态添加的一个模块)
                       --with-python=/usr/local/bin/python2.7(指定python的路径)
                       --with-mutex-dir=/var/run/mod_wsgi(最大缓冲值的目录)
    # make 在这一步如果出现make: *** [mod_wsgi.la]错误则需要重新编译安装python2.7并加上--enable-shared参数.
    # make install

编译过程遇到"error while loading shared libraries: libpython2.7.so.1.0:cannot open shared object file: No such file or directory"错误解决:

原因
    在系统的lib路径中找不到这个共享库. 
    如果编译时加上了--enable-shared,才会编译这个共享库,默认的位置是python可执行程序所在目录的lib目录下,如/usr/local/python27

解决方法
    1.可以使用如下方式编译Python解决这个问题
          # ./configure --enable-shared --prefix=/usr/local/python27
          # make && make install

    2.
        # cp /usr/local/python27/lib/libpython2.7.so.1.0 /usr/local/lib
        # cd /usr/local/lib
        # ln -s libpython2.7.so.1.0 libpython2.7.so

    3.
        # whereis libpython2.7.so.1.0
        libpython2.7.so.1:/usr/local/lib/libpython2.7.so.1.0

    4.如果whereis没有结果,或者仍然没有解决问题
        # cat /etc/ld.so.conf  在此文件中加入/usr/local/lib
        include ld.so.conf.d/*.conf
        /usr/local/lib 
        # /sbin/ldconfig
        # /sbin/ldconfig -v|grep libpython2.7*
    

    # make && make install

2.配置Apache
    在Apache配置文件httpd.conf中,增加一行:
    LoadModule wsgi_module modules/mod_wsgi.so
    AddType text/html .py

3.修改Virtual Host配置
    Apache 可以配置很多个 Named-based Virtual Hosts ,可以在一个服务器上部署多个Web Sites。
    在Apache配置文件/usr/local/apache2/conf/extra/httpd-vhosts.conf增加:
    <VirtualHost *:80>
        ServerName unicorn.test.com
        ServerAlias unicorn.test.cn
        DocumentRoot "/var/www/mysite"
        WSGIScriptAlias /test "/var/www/mysite/wsgi/django.wsgi"
        Alias /static "/var/www/static/"
        <Directory "/var/www/static/">
           Order Deny,Allow
           Allow from all 
        </Directory>
        <Directory "/var/www/">
           Order Deny,Allow
           Allow from all 
        </Directory>
    </VirtualHost>

4.创建测试页面
1.创建django工程:
    django-admin.py startproject mysite

2.创建django.wsgi文件:
    在mysite文件夹下创建文件夹wsgi;
    在wsgi文件夹下面创建django.wsgi文件,其内容为:
        import os
        import sys

        sys.stdout = sys.stderr

        from os.path import abspath, dirname, join
        from site import addsitedir

        from django.core.handlers.wsgi import WSGIHandler

        sys.path.insert(0, abspath(join(dirname(__file__), "../")))
        sys.path.insert(0, abspath(join(dirname(__file__), "../../")))

        os.environ["DJANGO_SETTINGS_MODULE"] = "mysite.settings" #your settings module

        application = WSGIHandler()

重启apache访问localhost/test看到django的It worked成功.


© 著作权归作者所有

共有 人打赏支持
Nob

Nob

粉丝 16
博文 86
码字总数 58473
作品 0
东城
个人站长
加载中

评论(1)

tube
tube
thx 找了好几天
软件模拟DHCP中继代理的配置

DHCP中继可以实现在不同子网和物理网段之间处理和转发dhcp信息 DHCP具有以下功能: 保证任何IP地址在同一时刻只能由一台DHCP客户机所使用。 DHCP应当可以给用户分配永久固定的IP地址。 DHCP...

cchenyz ⋅ 05/04 ⋅ 0

Nginx系列-3.配置Nginx虚拟主机

Nginx系列-3.配置Nginx虚拟主机 目录 - Nginx系列 Nginx系列-1.Linux下安装Nginx Nginx系列-2.配置LNMP(Linux、Nginx、MySQL、PHP)架构 Nginx系列-3.配置Nginx虚拟主机 Nginx系列-4.Nginx日...

ngle ⋅ 06/08 ⋅ 0

openstack预备知识---虚拟化

一、虚拟化 1、什么是虚拟化? 虚拟化使得在一台物理的服务器上可以跑多台虚拟机,虚拟机共享物理机的 CPU、内存、IO 硬件资源,但逻辑上虚拟机之间是相互隔离的。 物理机我们一般称为宿主机...

西鼠 ⋅ 05/29 ⋅ 0

Linux 局域网路由新手指南:第 2 部分

上周 我们学习了 IPv4 地址 和如何使用管理员不可或缺的工具 —— ,今天我们继续学习更精彩的内容:局域网路由器。 VirtualBox 和 KVM 是测试路由的好工具,在本文中的所有示例都是在 KVM ...

13% ⋅ 05/24 ⋅ 0

用PXE方法从裸机批量推Oracle 11gR2 RAC环境

唐波,福建省第一批Oracle ERP实施顾问,中国科学院最佳技术顾问。Oracle 10g/11g OCM、RHCE,ACOUG&SHOUG核心成员。 2004年4月到2006年12月在北京担任中科院ARP项目组数据仓库架构师,参与完...

唐波 ⋅ 2015/09/29 ⋅ 0

50.本地VMware环境虚拟机的异地(Azure)容灾(上)

首先还是需要提前完成准备工作《异地(Azure)容灾-准备工作》 要实现VMware虚拟化平台的虚拟机的异地Azure容灾需要检查下先决条件: VMware平台至少是vCenter Server 6.5、6.0、5.5 或 vSph...

ZJUNSEN ⋅ 05/11 ⋅ 0

DNS服务部署之一 域名解析服务

人们习惯记忆域名,但机器间互相只认IP地址,域名与IP地址之间是多对一的关系,一个ip地址不一定只对应一个域名,且一个域名只可以对应一个ip地址,它们之间的转换工作称为域名解析,域名解析...

cchenyz ⋅ 05/13 ⋅ 0

Linux 网桥配置命令:brctl

Linux网关模式下将有线LAN和无线LAN共享网段实现局域网内互联: 转载链接:http://fp-moon.iteye.com/blog/1468650 思路其实很简单:就是将虚拟出一个bridge口,将对应的有线LAN和无线LAN都绑...

chenming_hnu ⋅ 2017/03/12 ⋅ 0

三种方式在CentOS 7搭建KVM虚拟化平台

KVM 全称是基于内核的虚拟机(Kernel-based Virtual Machine),它是一个 Linux的一个内核模块,该内核模块使得 Linux变成了一个Hypervisor:它由 Quramnet开发,该公司于 2008年被 Red Hat ...

杨书凡 ⋅ 06/16 ⋅ 0

Nginx系列-5.配置Nginx的防盗链

Nginx系列-5.配置Nginx的防盗链 目录 - Nginx系列 Nginx系列-1.Linux下安装Nginx Nginx系列-2.配置LNMP(Linux、Nginx、MySQL、PHP)架构 Nginx系列-3.配置Nginx虚拟主机 Nginx系列-4.Nginx日...

ngle ⋅ 06/08 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

win10怎么彻底关闭自动更新

win10自带的更新每天都很多,每一次下载都要占用大量网络,而且安装要等得时间也蛮久的。 工具/原料 Win10 方法/步骤 单击左下角开始菜单点击设置图标进入设置界面 在设置窗口中输入“服务”...

阿K1225 ⋅ 今天 ⋅ 0

Elasticsearch 6.3.0 SQL功能使用案例分享

The best elasticsearch highlevel java rest api-----bboss Elasticsearch 6.3.0 官方新推出的SQL检索插件非常不错,本文一个实际案例来介绍其使用方法。 1.代码中的sql检索 @Testpu...

bboss ⋅ 今天 ⋅ 0

informix数据库在linux中的安装以及用java/c/c++访问

一、安装前准备 安装JDK(略) 到IBM官网上下载informix软件:iif.12.10.FC9DE.linux-x86_64.tar放在某个大家都可以访问的目录比如:/mypkg,并解压到该目录下。 我也放到了百度云和天翼云上...

wangxuwei ⋅ 今天 ⋅ 0

PHP语言系统ZBLOG或许无法重现月光博客的闪耀历史[图]

最近在写博客,希望通过自己努力打造一个优秀的教育类主题博客,名动江湖,但是问题来了,现在写博客还有前途吗?面对强大的自媒体站点围剿,还有信心和可能型吗? 至于程序部分,我选择了P...

原创小博客 ⋅ 今天 ⋅ 0

IntelliJ IDEA 2018.1新特性

工欲善其事必先利其器,如果有一款IDE可以让你更高效地专注于开发以及源码阅读,为什么不试一试? 本文转载自:netty技术内幕 3月27日,jetbrains正式发布期待已久的IntelliJ IDEA 2018.1,再...

Romane ⋅ 今天 ⋅ 0

浅谈设计模式之工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻...

佛系程序猿灬 ⋅ 今天 ⋅ 0

Dockerfile基础命令总结

FROM 指定使用的基础base image FROM scratch # 制作base image ,不使用任何基础imageFROM centos # 使用base imageFROM ubuntu:14.04 尽量使用官方的base image,为了安全 LABEL 描述作...

ExtreU ⋅ 昨天 ⋅ 0

存储,对比私有云和公有云的不同

导读 说起公共存储,很难不与后网络公司时代的选择性外包联系起来,但尽管如此,它还是具备着简单和固有的可用性。公共存储的名字听起来也缺乏专有性,很像是把东西直接堆放在那里而不会得到...

问题终结者 ⋅ 昨天 ⋅ 0

C++难点解析之const修饰符

C++难点解析之const修饰符 c++ 相比于其他编程语言,可能是最为难掌握,概念最为复杂的。结合自己平时的C++使用经验,这里将会列举出一些常见的难点并给出相应的解释。 const修饰符 const在c...

jackie8tao ⋅ 昨天 ⋅ 0

聊聊spring cloud netflix的HystrixCommands

序 本文主要研究一下spring cloud netflix的HystrixCommands。 maven <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-clo......

go4it ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部