CentOS+Apache2+Python+MySQLdb

原创 2016年12月07日 11:08:02

最近接了一个网站外包,为一个公司开发主业站点。正好最近也想学python,所以上网找了一下介绍LAMP架构的资料。经过一个上午的奋战,网站终于落成。只是疑点颇多,各种文章如管中窥豹,最终还是得借助官方文档。为了让自己以后方便回看,也希望能够帮到网友朋友们,所以把这次架站成功的经历胡乱记下来。


1.首先安装apache

    要安装apache需要先安装apr和apr-util。笔者原本想装apache4.x的版本,但是由于4.x的版本需要1.4的apr,而在阿里云的镜像源里只有apr1.3x的版本,所以笔者最后用了2.x的版本。


安装apr:

sudo yum install apr

安装apr-devel:

sudo yum install apr-devel

安装apr-util:
     sudo yum install apr-util

安装apr-util-devel:

sudo yum install apr-util-devel


apache可以使用yum或者rpm直接安装,但是此处笔者采用了源码安装方式。首先去官网下载apache的源码httpd-2.2.9.tar。然后解压到主目录,并进入apache目录:

      tar xfv httpd-2.2.9.tar.gz

        cd httpd-2.2.9

执行configure命令:

        ./configure --prefix=/home/yulin/apache2(注:prefix指定安装目录)

       make

       make install

安装完成之后修改一下conf/http.conf文件,主要是把服务器的根目录改成你想要指定的。笔者在修改配置的时候曾经导致403禁止访问,在网上找了一大堆资料都没有解决,最后去看了apache的官方手册,得知了各个配置段的含义才解决这个问题,这里也提醒一下大家,网上的资料可以做参考,但是由于情况不一,所以方法可能不能照搬,此时还是安安静静地去看官方文档为宜。下面是笔者修改之后的配置文件内容:
ServerRoot "/home/yulin/apache2"
Timeout 60
User yulin
Group yulin
Listen 80
ServerAdmin you@example.com
ServerName localhost
DocumentRoot "/home/yulin/my_python"
<Directory "/home/yulin/my_python">
    Options Indexes FollowSymLinks
    AllowOverride None
    Allow from All
    AddHandler mod_python .py
    PythonHandler index
    PythonDebug On
</Directory>
LoadModule python_module modules/mod_python.so


2.安装python以及setuptools

       先安装zlib:

        yum install zlib

yum install zlib-devel

安装python的命令十分简单,直接使用yum即可:

yum install python

也可采用源码安装方式(笔者正是采用这种),笔者安装的是2.7.12版本的python,即在python源码目录下执行configure && make && make install

(注:笔者第一次安装完成之后发现静态库无法打开,查阅资料之后得知要在configure命令执行时加选项enable-shared;此后再一次安装后发现有一些.o文件无法使用,查阅资料后得知python源码中本来有若干个.o文件,所以编译的时候不会再次进行编译,而后使用.o文件的时候会发现在静态库缓存中没有未经过编译的.o文件。所以笔者的方法是删除所有源码中的.o文件,重新编译安装)

安装setuptools有多种方式,这里笔者采用setuptools-0.6c11-py2.7.egg文件安装,首先下载此文件(版本号自定):

wget http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg

然后执行:

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

ldconfig

(注:安装setuptools是因为后续安装mod_python以及MySQLdb需要用到此工具)


3.安装mod_python,让apache支持python

首先下载mod_python的源码mod_python-3.3.0b.tgz,然后解压并进入源码根目录:

     tar xfz mod_python-3.3.0b.tgz

        cd mod_python-3.3.0b

        执行配置、编译、安装命令:

        ./configure --with-apxs=/home/yulin/apache2/bin/apxs --with-python=/usr/local/python/bin/python

        make

注:此时可能会出现报错:

apxs:Error: Command failed with rc=65536.

make[1]: *** [mod_python.so] Error 1

make[1]: Leaving directory

`/root/soft/mod_python-3.3.1/src'

make: *** [do_dso] Error 2

解决方法是:编辑 /root/soft/mod_python-3.3.1/src/connobject.c (即包解压目录的src下的connobject.c文件)的 142 行:

!(b == APR_BRIGADE_SENTINEL(b)

改成:

!(b == APR_BRIGADE_SENTINEL(bb) 即:改成两个b

然后重新编译。

        make install

安装完毕之后会在/home/yulin/apache2/modules目录下生成mod_python.so文件。

在apache的conf/http.conf文件中加入:

        LoadModule python_module modules/mod_python.so

        让apache加载python模块。


4.安装MySQLdb

     首先安装MySQL:

        yum install mysql-server mysql-client

        然后安装mysql开发环境:

yum install mysql-devel

        下载MySQLdb源码MySQL-python-1.2.5.zip,解压并进入源码根目录:

unzip MySQL-python-1.2.5.zip

cd MySQL-python-1.2.5

        修改site.cfg文件,找到mysql_config项,修改为:

mysql_config = /usr/bin/mysql_config(具体路径看mysql_config在哪里)

        然后执行:

  python setup.py build
sudo python setup.py install

        至此,MySQLdb安装完毕(注:python2都是用MySQLdb操作MySQL数据库,但是python3使用pymysql)


    到这里所有的安装工作已经完成,剩下的就是开发了。在安装过程中出现了很多问题,笔者通过解决这些问题也学到了很多东西,尤其是对于apache配置文件的解读。另外对于LAMP的架构也有了更为清晰的理解,它们每一部分都是可以直接拆开来用的,经常把它们放在一起是因为这样的组合威力最大,所以架构并没有固定的模式,只有普遍的需求。我们在选择某一项技术框架时应该要具体情况具体分析,并且对于每一个单独的部分都十分了解,这样才能在开发过程中游刃有余。




相关文章推荐

centos6 安装redmine+apache2

  • 2013年10月26日 16:36
  • 2.8MB
  • 下载

CentOS装LAMP服务器(Apache2+PHP5+MySQL)

  • 2013年10月16日 11:20
  • 36KB
  • 下载

在CentOS 6.0安装LAMP服务器(Apache2+PHP5+MySQL)

CentOS 6.0才发布不久,现在我们来共同学习一下如何在CentOS 6.0上安装Apache2 + PHP5 + MySQL的web服务器。   1.重要提示:   在本教程中使用的主机...

centos 7 配置apache2.x PHP5.4 mysql(MariaDB)环境

1        基础安装 1.1  安装centos7 略。 1.2  配置防火墙,开启80端口、3306端口 1、关闭firewall: systemctl stop firewalld.serv...

centos6.5安装apache2

centos6.5 apache2 apr apr-util pcre

CentOS 6.5 安装Apache2+JDK1.6+Tomcat6+jk整合实现JSP运行环境

一、安装Apache(也叫httpd) 1、检查是否已经安装Apache #rpm -qa|grep httpd 2、yum安装Apache #yum install httpd ...
  • xyk21
  • xyk21
  • 2014年05月30日 16:20
  • 451

centos7 下安装Apache2+MariaDB+PHP5过程详解

1.启用Apache2 Centos7默认已经安装httpd服务,只是没有启动。如果你需要全新安装,可以yum install -y httpd 启动服务:systemctl start httpd....

搭建Linux(centos5.5)+Apache2+Mysql5+Php5+zabbix1.8.5系统环境实现网络状况监控

搭建Linux(centos5.5)+Apache2+Mysql5+Php5+zabbix1.8.5系统环境实现网络状况监控   2012-03-29 09:41:29|  分类: 监控Zabb...
  • yymh123
  • yymh123
  • 2015年03月02日 18:27
  • 723

Ubuntu14.04 apache2 配置 CGI(并测试:shell,可执行文件,python)

#PS:要转载请注明出处,本人版权所有#PS:这个只是 《 我自己 》理解,如果和你的 #原则相冲突,请谅解,勿喷环境: 59~14.04.1-Ubuntu SMP Tue Jul ...

ubuntu14.04 apache2+python cgi安装与配置

ubuntu
  • zlhn55
  • zlhn55
  • 2016年07月14日 12:27
  • 1392
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CentOS+Apache2+Python+MySQLdb
举报原因:
原因补充:

(最多只允许输入30个字)