安装环境描述
系统环境:RHEL5.3,默认python为2.4,如果不需要安装python2.6或者使用KVM模板安装的系统,则可以省略python2.6的安装
软件版本:(软件包下载:http://208.asktao.com/cairong/init/LAMP_Python_Django.tgz)
Apache:
httpd-2.2.14.tar.gz
MySQL:
mysql-5.1.45.tar.gz
PHP:
php-5.2.5.tar.gz
libgcrypt-1.2.4-1.el5.i386.rpm
libgcrypt-devel-1.2.4-1.el5.i386.rpm
libjpeg-6b-37.i386.rpm
libjpeg-devel-6b-37.i386.rpm
libpng-1.2.10-7.1.el5_0.1.i386.rpm
libpng-devel-1.2.10-7.1.el5_0.1.i386.rpm
libxslt-1.1.17-2.el5_2.2.i386.rpm
libxslt-devel-1.1.17-2.el5_2.2.i386.rpm
freetype-2.2.1-20.el5_2.i386.rpm
freetype-devel-2.2.1-20.el5_2.i386.rpm
php_screw-1.5.tar.gz
gd-2.0.33.tar.tar
freetds-stable0.64.tgz
Django:
Django-1.2.5.tar.gz
mod_wsgi-3.3.tar.gz
这里主要是LAMP和Django的安装,Python2.6等的安装可以李材荣写的原始参考文档:http://192.168.4.250/wiki/project/article.php?action=browse&aid=234
安装过程
MySQL安装:
MySQL安装到/usr/local/mysql5目录下,数据目录编译时指定为安装目录下的data目录。
1、建立mysql组和用户:
# groupadd mysql
# useradd -g mysql mysql
2、解压软件包:
# tar zxvf mysql-5.1.45.tar.gz
# cd mysql-5.1.45
3、编译选项:
# ./configure --prefix=/usr/local/mysql5 --localstatedir=/usr/local/mysql5/data --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --with-big-tables --with-plugins=innobase,federated
注:编译时开启innodb和federated引擎
4、编译安装:
# make && make install
5、安装完成后初始化mysql权限库:
# /usr/local/mysql5/bin/mysql_install_db --user=mysql
# cd /usr/local/mysql5/
# chgrp -R mysql .
6、 在安装目录建立etc目录,将MySQL的配置文件放在此目录下,如果要启动多个MySQL应用,也将多个对应的配置文件放在此目录,在启动服务时指定相应的配置文件;
7、 使用以下命令启动mysql:
# /usr/local/mysql5/bin/mysqld_safe --user=mysql &
8、 执行mysql客户端程序连接mysql,删除用户名和密码为空的用户,并建立一个dba@’%’用户,权限与root相同,用于远程管理数据库:
# /usr/local/mysql5/bin/msyql
mysql> delete from mysql.user where user!='root' or host!='localhost';
mysql> set password for root@'localhost' = password('xxxxx');
mysql> flush privileges;
mysql>GRANT ALL PRIVILEGES ON *.* TO 'dba'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
9、关闭mysql服务,复制data目录至/home/mysql目录,将启动语句写入/etc/rc.local文件:
# /usr/local/mysql5/bin/mysqladmin shutdown
# cp –a /usr/local/mysql5/data /home/mysql
# echo "/usr/local/mysql5/bin/mysqld_safe --defaults-file=/usr/local/mysql5/etc/my.cnf --datadir=/home/mysql/data --user=mysql &" >> /etc/rc.local
Apache安装:
Apache安装到/usr/local/apache目录,编译时开启rewrite,开启动态模块加载。
1、添加htdocs组和用户,apache服务将以htdocs用户组来启动:
# groupadd htdocs
# useradd -g htdocs htdocs
2、解压软件包:
# tar zxvf httpd-2.2.14.tar.gz
# cd httpd-2.2.14
3、编译选项:
# ./configure --prefix=/usr/local/apache --enable-dav --enable-dav-fs --enable-so --enable-modules=most --enable-mods-shared=all --enable-info --enable-rewrite --enable-deflate --enable-ssl
4、编译安装:
# make && make install
5、编辑http.conf文件,修改用户和组:
# sed -i 's/User daemon/User htdocs/' /usr/local/apache/conf/httpd.conf
# sed -i 's/Group daemon/Group htdocs/' /usr/local/apache/conf/httpd.conf
6、启动apache服务:
# /usr/local/apache/bin/apachectl start
7、在浏览器中打开http://ip,看到“It works!”表示apache安装成功。
Php安装:
1、为了让php服务支持网站常用的一些项目,安装php之前需要先安装如下依赖的软件包,这里采用rpm包进行安装,也可以通过搭建yum软件仓库进行安装,其中大部分软件包已经安装:
rpm –ivh libgcrypt-1.2.4-1.el5.i386.rpm
rpm –ivh libgcrypt-devel-1.2.4-1.el5.i386.rpm
rpm –ivh libjpeg-6b-37.i386.rpm
rpm –ivh libjpeg-devel-6b-37.i386.rpm
rpm –ivh libpng-1.2.10-7.1.el5_0.1.i386.rpm
rpm –ivh libpng-devel-1.2.10-7.1.el5_0.1.i386.rpm
rpm –ivh libxslt-1.1.17-2.el5_2.2.i386.rpm
rpm –ivh libxslt-devel-1.1.17-2.el5_2.2.i386.rpm
rpm –ivh freetype-2.2.1-20.el5_2.i386.rpm
rpm –ivh freetype-devel-2.2.1-20.el5_2.i386.rpm
2、安装gd 2.0:
# tar zxvf gd-2.0.33.tar.tar
# cd gd-2.0.33
# ./configure
# make && make install
3、安装freetds,用于连接数据库:
# tar zxvf freetds-stable0.64.tgz
# cd freetds-0.64
# ./configure --prefix=/usr/local/freetds --enable-msdblib --with-tdsver=8.0 --enable-dbmfix --with-gnu-ld --enable-shared --enable-static
# make && make install
4、安装php:
# tar zxvf php-5.2.5.tar.gz
# cd php-5.2.5
5、编译选项:
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql5/ --with-curl --with-libxml-dir --with-libexpat-dir --enable-soap --with-xsl --with-gd --with-jpeg-dir --with-zlib --with-png-dir --with-freetype-dir --enable-sockets --enable-pcntl --with-mssql=/usr/local/freetds --enable-mbstring
6、编译安装:
# make && make install
7、复制配置文件:
# cp php.ini-dist /usr/local/php/lib/php.ini
8、修改apache配置文件,增加以下两行:
# sed -i '/AddType application\/x-gzip .gz .tgz/a \
AddType application/x-httpd-php .php\
AddType application/x-httpd-php-source .phps\
' /usr/local/apache/conf/httpd.conf
9、在/usr/local/apache/htdocs目录下建立test.php文件:
# echo –e “” > /usr/local/apache/htdocs/test.php
重启apache服务,在浏览器打开http://ip/test.php,如相关参数正常则php安装成功。
php_screw安装:
php_screw是一个开源的php代码加密工具。
1、解压缩软件包:
# tar zxvf php_screw-1.5.tar.gz
# cd php_screw-1.5
2、执行phpize加挂php模块:
# /usr/local/php/bin/phpize
3、编译选项,指出php安装路径:
# ./configure --with-php-config=/usr/local/php/bin/php-config
4、编辑my_screw.h文件,这是密码文件,可以自己设置加密的密码,增加数组长度即可:
# sed -i 's/62/6287687438273/' my_screw.h
5、执行make生成php_screw.so文件,这个文件是php用来解释加密的php文件的,生成的文件在./modules目录下:
# make
6、复制php_screw.so文件到php所在路径,并修改php.ini文件,重启apache服务:
# cp ./modules/php_screw.so /usr/local/php/lib/php
# echo "extension = php_screw.so" >> /usr/local/php/lib/php.ini
# sed -i 's/extension_dir = "\.\/"/extension_dir = "\/usr\/local\/php\/lib\/php\/"/' /usr/local/php/lib/php.ini
# /usr/local/apache/bin/apachectl restart
7、执行make生成screw 这个可执行文件,它用来加密php文件,生成加密后的.php文件:
# cd tools
# make
# cp screw /root
Django安装:
1、解压缩软件包:
# tar zxvf Django-1.2.5.tar.gz
# cd Django-1.2.5
2、安装软件:
# python setup.py install
3、验证django是否安装成功:
# python
>>>import django
>>>
加载django模块,如果无错误提示说明安装成功。
4、创建项目例子:
项目名称:Hector
# django-admin.py startproject Hector
之后再当前目录下就会出来一个新的文件夹Hector
里面有4个文件:
__init__.py会把项目目录变成一个python的 package(相关的python模块的集合),让我们可以用"."来指定项目中的某个部分。例如Hector.urls。
manage.py是一个同这个Django项目一起工作的工具,可执行。
settings.py包含了项目的默认设置。包括数据库信息、调试标记以及其他的一些重要变量。
urls.py在Django里叫URLconf,它是一个将URL模式映射到应用程序上的配置文件。
本地测试:
Hector>manage.py runserver
出现以下信息
Validating models...
0 errors found
Django version 1.2, using settings 'Hector.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
然后在命令行里执行curl http://127.0.0.1:8000/ 就可以看到结果了。
mod_wsgi安装:
为了让Apache支持Django,需要安装mod_wsgi。
1、解压缩软件包:
# tar zxvf mod_wsgi-3.3.tar.gz
# cd mod_wsgi-3.3
2、编译选项,指定apache和python的安装路径
# ./configure --with-apxs=/usr/local/apache/bin/apxs --with-python=/usr/local/bin/python
3、编译安装:
# make && make install
4、修改apache配置文件:
# sed -i '/libphp5.so/a LoadModule wsgi_module modules\/mod_wsgi.so' /usr/local/apache/conf/httpd.conf
5、检查安装是否成功:
在apache配置文件中加入以下一段:
WSGIScriptAlias /python "/usr/local/apache/htdocs/test/test.wsgi"
Order Deny,Allow
Allow from all
在/usr/local/apache/htdocs/test目录中创建test.wsgi,内容如下:
def application(environ, start_response):
status='200 OK'
output='Hello World!'
response_headers=[('Content-type','text/plain'), ('Content-Length',str(len(output)))]
start_response(status, response_headers)
return[output]
重新启动apache服务
访问http://ip/python,看到“Hello World!”说明安装成功。