当前位置 主页 > 服务器问题 > Linux/apache问题 >

    Apache,wsgi,django 程序部署配置方法详解

    栏目:Linux/apache问题 时间:2019-10-09 22:16

    本文实例讲述了Apache,wsgi,django 程序部署配置方法。分享给大家供大家参考,具体如下:

    前面写过一篇文章,ngixn,uwsgi,django,python 环境配置,有兴趣的朋友可以参考 nginx,django部署

    后来有人在QQ上问我,用Apache 好部署吗?我当时只在windows下用 APACHE2.3,django1.4,wsgi 部署过,还没有在 linux 下部署。前几天有时间,我在 centos 上测试部署了一下。也不难。唯一的差别是,在windows 下有已经编译好的 wsgi.so 文件,放到  apache 的 modules下,然后在 httpd.conf 中增加

    LoadModule wsgi_module modules/mod_wsgi.so
    
    

    但是在 linux 下,wsgi的安装,都要在源码编译下安装,而且还有几点要注意的。下面就详细介绍我部署的过程。

    安装python 2.7 或者你需要的版本

    这个就简单带过了,下载安装包之后,windows 可以直接 运行安装包,linux 下 最好编译安装吧。这一步可以参考我上面提到的文章,我已经说得比较清楚。 但我这个centos 环境,是别人已经装好了的,而且比较怪异,安装在:/usr/local/activepython27 ,一般的python 安装在:/usr/bin/python 。其实原因简单,因为centos 自带的python 是 2.4 的版本较低,所以重新装了一个新版本的。

    安装wsgi

    首先要在google 代码托管处下载.https://code.google.com/p/modwsgi ,如果是windows 的,可以直接下载编译好的文件。linux 的兄弟们,下载源码编译:

    wget http://modwsgi.googlecode.com/files/mod_wsgi-3.4.tar.gz
    tar zxvf mod_wsgi-3.4.tar.gz
    cd mod_wsgi-3.4
    ./configure
    
    

    发现什么了,报错了

    ./configure
    checking for apxs2... no
    checking for apxs... no
    checking Apache version... ./configure: line 1695: apxs: command not found
    ./configure: line 1695: apxs: command not found
    ./configure: line 1696: /: is a directory
    
    

    报错的原因,也很清楚。没有 apxs.下面安装它

    yum install httpd-devel
    
    

    如果是 ubuntu  可能命令为 sudo apt-get install apache2-devsudo apt-get install apache2-threaded-dev,具体的命令可以查一下.

    再次编译

    [root@29 mod_wsgi-3.4]# ./configure (这里有可能要加上python路径 --with-python=/usr/local/activepython27)
    checking for apxs2... no
    checking for apxs... /usr/sbin/apxs
    checking Apache version... 2.2.3
    checking for python... /usr/local/activepython27/bin/python
    configure: creating ./config.status
    config.status: creating Makefile
    [root@29 mod_wsgi-3.4]#
    make
    make install
    
    

    得到如下编译结果:

    See any operating system documentation about shared libraries for
    more information, such as the ld(1) and ld.so(8) manual pages.
    ----------------------------------------------------------------------
    chmod 755 /usr/lib/httpd/modules/mod_wsgi.so
    [root@29 mod_wsgi-3.4]#

    配置 apache2 配置文件httpd.conf .

    LoadModule wsgi_module modules/mod_wsgi.so
    
    

    然后启动 apache

    service httpd start
    
    

    发现什么鸟,这是只布谷鸟,乱叫,报错了

    Could not find platform independent libraries <prefix>