`

linux+apache+django配置

阅读更多
linux+apache+django配置
 
 
apache+python+mod_python+django 编译安装指南(2007-05-29 10:41:53)
 

摘要

1、本文将知道你在 linux 下使用源码包安装

  • apache 2.2.4
  • python 2.5.1
  • mod_python 3.3.1
  • django svn trunk version

但是,因为无法得知编译过程中得到的出错信息,故本文默认编译过程全部顺利通过,任何疑问请在文后讨论区中进行。

2、本文中介绍的命令前面的“#”仅代表命令提示符,请不要将其连同命令一起输入。

 

一、安装 apache 2.2.4

1、下载

请到

http://httpd.apache.org

下载最新的 httpd 服务器,只要版本跟 2.2.4 相差不大,就可以参考本文进行配置安装。

2、解压

# tar xvfz httpd-2.2.4.tar.gz

上面命令会在当前目录得到 httpd-2.2.4 目录,这个目录就是 apache 2.2.4 的源码目录。

对于解压命令的详细介绍,请看我的这篇文章:

Linux 文件压缩解压详解

3、Configure

编译安装源代码的过程一般都是 configure/make/make install 三步曲,apache 也遵循这个规则。

进入 httpd-2.2.4 目录:

# cd httpd-2.2.4

执行如下命令查看 configure 的帮助信息

# ./configure --help

安装的全部细节都是由 configure 以及它的参数进行控制的。

如果你刚开始尝试从源代码包安装软件,请尽快习惯 configure 之后冗长复杂的参数!

下面是我推荐的 configure 参数,它会将 apache 安装到 /opt/apache 下面,并且带所有常用的 apache Modules:

# ./configure --prefix=/opt/apache --enable-track-vars --enable-cgi --with-config-file-path=/opt/apache/conf --enable-modules=all --enable-mods-shared=all --enable-file-cache --enable-disk-cache --enable-cache --enable-mem-cache --enable-dumpio --enable-logio --enable-mime-magic --enable-headers --enable-usertrack --enable-version --enable-ssl --enable-http --enable-rewrite --enable-proxy --enable-proxy-connect --enable-proxy-http --enable-proxy-ftp --enable-proxy-ajp --enable-proxy-balancer --enable-so

当然,安装所有扩展模块意味着将 apache 功能扩展到极限,但如果你不会配置这些模块,或者置之不理,他们很可能会给你带来不必要的麻烦或者安全隐患。

4、make / make install

真正漫长的步骤开始了(我指时间上),下面命令开始编译过程:

# make

等待编译完成之后,执行:

# make install

会将 apache 安装到第三步配置的 /opt/apache 目录中。

5、配置 apache

配置 apache 的 httpd.conf 文件是一项大工程,互联网上有很多高人的文章指导你进行正确必要的配置,我在这里就不赘述了。

如何将 apache 加入到系统服务中,请看我的这篇文章:

将 apache 加入 linux 系统服务

6、已知问题及解决方法

如果你遇到类似下面的 .so 权限错误:

httpd: Syntax error on line 63 of /opt/apache/conf/httpd.conf: Cannot load /opt/apache/modules/mod_python.so into server: /opt/apache/modules/mod_python.so: cannot restore segment prot after reloc: Permission denied

说明是你的 .so 文件权限不够,很可能是你的 SELinux(如果你有装)的权限检查没有通过导致的。

使用下面命令可以将 .so 文件定义为共享类库文件,就可以通过权限检查:

# chcon -t texrel_shlib_t /opt/apache/modules/*.so

注意:千万别将 *.so 权限改为 777,具体原因请看我的这篇文章:

解决 SELinux 带来的 PHP 权限问题

上面安装 apache 的过程讲述很详细,之后 python / mod_python 将只给出必要解释和推荐的 configure 命令。

 

二、安装 python 2.5.1

1、编译安装

到 www.python.org 下载最新的 python 源码包,解压得到目录,进入该目录,执行:

# ./configure --prefix=/opt/python/2.5.1

# make

# make install

使用下面命令将 python 添加到 /usr/bin 中,并且区别其他版本的 python 执行文件,使它们可以共存

# ln /opt/python/2.5.1/bin/python /usr/bin/python2.5.1

以后可以将新版本的 python 编译到 /opt/python/[版本]中,使用上面命令生成对应版本的链接。

2、设置运行命令

这里需要注意一下执行程序,现在的 python 2.5.1 的执行程序是 python2.5.1

如果想进入 python 2.5.1 的 shell,需要键入 python2.5.1,

如果想系统使用 python 2.5.1 执行 .py 脚本,需要在脚本第一行将 python 运行命令修改为:

#!/usr/bin/python2.5.1

如果你觉得以后默认使用 python 2.5.1 就好,那么可以:

# rm -f /usr/bin/python

# ln /opt/python/2.5.1/bin/python /usr/bin/python

这样执行 python 进入的就是 2.5.1 了。

 

三、安装 mod_python

1、到 www.modpython.org 下载源码包,解压得到目录,进入该目录,执行:

# ./configure --with-apxs=/opt/apache/bin/apxs --with-python=/usr/bin/python2.5.1

# make

# make install

完毕之后,mod_python 会在 /opt/apache/modules 中添加 mod_python.so 库文件,并且在 /opt/python/2.5.1/lib/python2.5/site-packages 中添加 mod_python 包。

如果编译程序没有检测到 apache 和 python,会报错退出。

2、配置 httpd.conf

找到 /opt/apache/conf/httpd.conf 配置文件,在适当位置添加:

LoadModule python_module modules/mod_python.so

记住,modules/mod_python.so 必须有可以通过 SELinux 检查的权限,参看本文第一章第6节的内容!

 

四、安装 django

这次我们采用 django 的 SVN Head Version(最新开发版本)。

采用这个版本的好处是,官方的任何更新,你只需要运行 svn 进行更新就会得到最新的版本,并且更新即可用。

1、如果系统没有 Subversion,找到装上(过程略)。

2、得到最新版本的 working copy

这里有两个版本可以选择,择其一运行命令:

一是 django 全部源码(文件相当多):

# svn co http://code.djangoproject.com/svn/django /source/svn/django

二是 django 的当前最新版本 trunk:

# svn co http://code.djangoproject.com/svn/django/trunk /source/svn/django_trunk

3、将 django 源码链接到 python 的 site-packages 公共代码目录中

全部源码版本:

# ln -s /source/svn/django/trunk/django /opt/python/2.5.1/lib/python2.5/site-packages/django

最新版本 trunk:

# ln -s /source/svn/django/django /opt/python/2.5.1/lib/python2.5/site-packages/django

注意一定要带上参数 -s,否则后面调用会出错!

上面的命令只是创建了当前源码目录的一个链接到 site-packages 中,这样每次运行下面命令更新 django 之后,python 调用的都是更新之后的最新版本:

# cd /source/svn/django

# svn cleanup(如果提示locked,执行这一句)

# svn update

4、拷贝 django 管理文件

运行下面命令将管理文件拷贝到 /usr/bin 中,以便随处可以执行该文件:

#cp /source/svn/django/trunk/django/bin/django-admin.py /usr/bin/

或者

#cp /source/svn/django/django/bin/django-admin.py /usr/bin/

如果运行 django-admin.py 得到如下错误信息:

ImportError: No module named django.core

说明 django-admin.py 运行在了另一个版本的 python 中!

记住,我们的 django 是安装在 python 2.5.1 中的(/opt/python/2.5.1),如果你的 python 2.5.1 执行命令为 python2.5.1(参考第二章第2节),需要将 /usr/bin/django-admin.py 第一行修改为:

#!/usr/bin/python2.5.1

或者是已经安装 django 的 python 的执行命令。

 

4、参考文章

官方的安装指南,请参考:

http://www.djangoproject.com/documentation/install/ 

如何使用 django,请参考官方指南这一部分:

http://www.djangoproject.com/documentation/modpython/ 

推荐使用 .htaccess 文件,而不是直接修改 httpd.conf 配置文件,因为 .htaccess 更加灵活。

记得将 httpd.conf 配置文件中 AllowOverride 配置项作相应配置(比如 AllowOverride = All)

 

五、总结

如果完全按照上面的安装步骤进行安装,我们会得到如下内容:

apache 2.2.4 目录:

/opt/apache

python 2.5.1 目录:

/opt/python/2.5.1

mod_python.so 位置:

/opt/apache/modules/mod_python.so

django 源码包目录:

/source/svn/django

修改过的文件:

/opt/apache/conf/httpd.conf

如果想更新 django:

# cd /source/svn/django

# svn update

自此,全部安装完毕,你已经可以使用 django 创建你的 Python Web Application 了!

欢迎进行讨论,请直接在下方讨论面板留言。

 

 原文地址 http://blog.sina.com.cn/s/blog_46370cdb01000a13.html###
分享到:
评论

相关推荐

    在Linux系统上部署Apache+Python+Django+MySQL环境

    在Linux系统上部署一个完整的Web开发环境,包括Apache、Python、Django和MySQL,是一个常见的需求,尤其对于那些希望利用这些技术构建高效、可扩展的Web应用程序的开发者来说。以下是一步步搭建这个环境的详细步骤。...

    Linux+Django+Python+Wsgi配置过程

    根据提供的文件信息,本文档将详细介绍如何在Linux环境下配置Apache+Mod_Wsgi+Django环境的过程。具体步骤包括软件安装、项目部署等环节。首先确认环境如下: - 操作系统:CentOS release 5.5 - 内核版本:Linux ...

    apache+python+django开发环境搭建

    无论是Linux还是Windows,搭建Apache + Python + Django开发环境都需要关注几个关键点:Apache服务器的安装与配置、Python与Django的安装、Apache与Django之间的WSGI接口配置以及PYTHONPATH的正确设置。通过本文的...

    django+apache+mod_wsgi.rar

    标题 "django+apache+mod_wsgi.rar" 暗示了这个压缩包是关于使用Django框架与Apache web服务器结合,并通过mod_wsgi模块在Windows 64位平台上部署Python应用的配置。描述中提到的"python3.5+apache2.4vc14+mod_wsgi_...

    django+mysql+apache快速搭建手册1

    本篇手册将详细介绍如何在Linux环境下快速搭建Django、MySQL和Apache的开发环境。 1. **Python的安装** 首先,你需要下载Python的源码包,如Python-2.5.4.tgz或更高版本。使用`tar`命令解压,然后运行`configure`...

    简单的Apache+FastCGI+Django配置指南

    本文介绍了如何在Apache服务器上配置FastCGI和Django,通过这种方式可以充分利用FastCGI的优势,提高Web应用的性能和稳定性。需要注意的是,配置过程中可能遇到各种问题,及时查阅官方文档或社区资料是非常重要的。...

    Centos+Nginx+UWSGI+Django搭建高性能WEB服务器

    - uWSGI的配置相对复杂,通常需要编写配置文件来指定如何启动和运行Django应用。 - uWSGI能够与Nginx无缝配合,通过配置文件中的uwsgi_pass指令,Nginx将Web请求传递给uWSGI处理。 4. **项目结构和文件说明** - ...

    CentOS6.2下配置Django+Python环境步骤

    在CentOS 6.2系统下配置Django与Python环境是一项关键任务,尤其对于那些希望在稳定的企业级Linux操作系统上部署动态网站或Web应用的开发者而言。以下将详细阐述整个配置流程,涵盖从安装必要的软件包到最终启动...

    Linux下将Python的Django项目部署到Apache服务器

    在本文中,我们将深入探讨如何在Linux环境下,特别是Red Hat Enterprise Linux Server 5.3版本上,将基于Python的Django Web项目部署到Apache服务器,采用的是WSGI(Web Server Gateway Interface)作为连接方式。...

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

    我当时只在windows下用 APACHE2.3,django1.4,wsgi 部署过,还没有在 linux 下部署。前几天有时间,我在 centos 上测试部署了一下。也不难。唯一的差别是,在windows 下有已经编译好的 wsgi.so 文件,放到 apache 的...

    解决nginx+uwsgi部署Django的所有问题(小结)

    首先我觉得它小,很轻量级,用着简便,没有apache那么庞杂,并且网上都推荐nginx部署Django。 安装 这里直接略过,说一点Linux用户推荐大家源码安装,因为命令安装可能会自己装成一个淘宝二次开发的nginx,个人还是...

    python学习2.0Apache配置.pdf

    本教程将介绍如何在Red Hat Enterprise Linux 5的32位环境下配置Python 2.7.1以及Django 1.2.4,并通过Apache服务器运行Django项目。 1. **Python安装** - 首先,你需要从官方下载页面获取Python 2.7.1的源码包:...

    门户网站制作django1.4

    10. **部署**:最后,将项目部署到Linux服务器,如使用Apache或Nginx作为Web服务器,并配置合适的数据库,如MySQL或PostgreSQL。 总的来说,创建一个Django 1.4门户站点涉及到多方面的技术,包括后端开发、前端交互...

    Django-1.9.12.

    在安装Django 1.9.12时,通常会有一个名为"Django-1.9.12.tar.gz"的压缩包文件,这是Linux和Unix系统常用的归档和压缩格式。 1. **Django框架介绍**: Django遵循MVT(Model-View-Template)架构模式,即模型、...

Global site tag (gtag.js) - Google Analytics