您的位置:首页 > 运维架构 > Apache

linux下 Apache mysql python mod_python Django 配置安装说明,绝对可以安装上的说明

2011-03-10 22:22 1216 查看
Time:2011.03.09

System:RedhatAS5.3

Author:Caler.Wang

1. 安装apache

wget http://www.apache.org/dist//httpd/httpd-2.2.17.tar.gz  # 下载安装包

tar jxvf httpd-2.2.14.tar.bz2   #解包
cd httpd-2.2.14                 #进来准备编译安装apache
mkdir /usr/local/apache2        #这个目录用来安装apache
/configure --prefix=/usr/local/support/apache2 --enable-so --enable-dav --enable-dav-fs -enable-maintainer-mode              #编译
make ; make install;
id apache  # 检查是否存在apache账户
useradd apache  # 建立apache 账户
chown  -R apache.apache /usr/local/support/apache2  # 让apache用apache这个账户权限运行
vi /usr/local/support/apache2/conf/httpd.conf
修改User和Group均为apache


2. 安装mysql

wget http://download.mysql.cn/download_file/gz/5.0/mysql-5.0.22.tar.gz tar xfz mysql-5.0.22.tar.gz   # 解压mysql 包
cd mysql-5.0.22  # 进入mysql
mkdir /usr/local/support/mysql  #  建立mysql目录
./configure --prefix=/usr/local/support/mysql/
# 这个参数可以尝试 --enable-thread-safe-client
# 编译mysql 增加这个参数是为了Msqldb编译的时候可以找到-lmysqlclient_r
make;make install   # 安装mysql
id mysql # 检查mysql账户是否存在
useradd  mysql
/usr/local/support/mysql/bin/mysql_install_db --user=mysql  #以用户mysql身份创建默认库
/usr/local/support/mysql/bin/mysqld_safe &  # 启动mysql
/usr/local/support/mysql/bin/mysql -u root password jishubu  #给mysql加个密码挡一下菜鸟黑客


3. Python 安装

wget 地址自己查一下,Python-2.5.2.tgz 这个版本
./configure ----prefix=/usr/local/support/python  # 编译
make; make install;  # 安装


4. 安装Mysqldb

wget  http://cdnetworks-kr-2.dl.sourceforge.net/project/mysql-python/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz[/code] 
如果你是像前面说的,编译安装的MySQL,对于MySQLdb的安装,用vi打开MySQLdb目录中的site.cfg文件,找到“mysql_config=”,修改后面的路径到你机器中mysql_config文件的路径。

mysql_config = /usr/local/support/mysql/bin/mysql_config  # 在site.cfg 里增加这一行


一般来说这样就可以编译了。但是,如果在编译到最后时,报告链接不上libmysqlclient_r.so的话,还需要把threadsafe设置为False。

ln -s /usr/local/support/python/bin/python2.5  /usr/bin/  #尝试使用setuptools 安装

wget http://pypi.python.org/packages/2.5/s/setuptools/setuptools-0.6c11-py2.5.egg#md5=64c94f3bf7a72a13ec83e0b24f2749b2     # 下载支持2.5 版本的setuptools

sh setuptools-0.6c11-py2.5.egg    # 安装
PATH=$PATH:/usr/local/support/mysql/bin/   #增加mysql_config  到系统路径
echo "/usr/local/support/mysql/lib/mysql/" >> /etc/ld.so.conf  #增加折行到/etc/ld.so.conf 配置文件
ldconfig # 生效

python2.5  setup.py build;python2.5  setup.py install    # 尝试python2.5 编译安装
测试:
# python
>>> import MySQLdb
>>>
如果没有任何输出,恭喜,安装成功!

5. 安装mod_python
wget http://archive.apache.org/dist/httpd/modpython/mod_python-3.3.1.tgz # 下载
./configure  --with-apxs=/usr/local/support/apache2/bin/apxs    # 编译方法1

./configure  --with-apxs=/usr/local/support/apache2/bin/apxs  --with-python=/usr/local/support/python/bin/python --with-max-locks=32 --with-python-src=/root/soft/Python-2.5.2/ --with-flex=/usr/bin/flex              #编译方法2
make  #
报错解决
编译mod_python不通过,
报错:connobject.c:142: error: request for member `next' in something not a structure or union
解决:
1、打开源码,找到:connobject.c的142行
2、把!(b == APR_BRIGADE_SENTINEL(b) || 改为!(b == APR_BRIGADE_SENTINEL(bb) ||
3、再次make clean; make ,解决。
make  install # 安装完成
测试:
# python
>>> import mod_python
>>>
为Apache的http.conf 添加一行:
LoadModule python_module modules/mod_python.so

6. 安装Django
wget  http://www.djangoproject.com/download/1.2.5/tarball/ tar xfz Django-1.2.5.tar.gz
cd Django-1.2.5
python2.5   setup.py  install   # 安装
# python2.5
>>> import django
>>>

7.测试: Source.self@gmail.com
下面全部在命令行中执行:
# mkdir /htdocs
# cd /htdocs
# /usr/local/support/python/bin/django-admin.py  startproject myproject
# cd myproject
# python manager.py runserver 0.0.0.0:8000
好了,现在访问 http://服务器IP:8000,看到“It works”了吧 ^_^
正常后,Ctrl + C退出来,刚才那个是Django自带的测试服务器,下面在Apache上开通虚拟主机啦。

8. 配置apache
54 LoadModule python_module modules/mod_python.so
55
56 <Directory "/htdocs">
57     AddHandler mod_python .py
58     PythonHandler django.core.handlers.modpython
59     SetEnv DJANGO_SETTINGS_MODULE myproject.settings
60     PythonDebug On
61 </Directory>
62 Alias /medias /htdocs/mddias
63 <Location "/medias/">
64     SetHandler None
65 </Location>
66
67 Alias /media /usr/local/support/python/lib/python2.5/site-packages/django/contrib/admin/media/
68 <Location "/media/">
69     SetHandler None
70 </Location>
71
72 <LocationMatch "(?i)/.(jpg|gif|png|txt|ico|pdf|css|jpeg)$">
73 SetHandler None
74 </LocationMatch>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: