项目实施(如图所示):注web1为172.16.5.1 web2为172.16.5.5

1、Web1上配置NFS服务,导出/www/htdocs以读写方式给Web2访问;(不能给其它主机以访问权限)
# service nfs start 启动nfs
# vim /etc/exports编辑exports添加如下行
/www      172.16.5.5(rw)
2、Web1上配置MySQL-5.5.20,要求:
首先编译安装mysql过程如下:
安装mysql-5.5.19
1、准备数据存放的文件系统
 
新建一个逻辑卷,并将其挂载至特定目录即可,过程如下:
fdisk /dev/sda 建一个分区,大概2G 即可,类型要是8e的。如 /dev/sda5
     # pvcreate /dev/sda5先创建物理卷
     # vgcreate myvg /dev/sda5再创建物理卷组
     # lvcreate -L 1G -n lv1 /dev/myvg   创建逻辑卷并指定大小为1G,名字为lv1 
     # mke2fs -j /dev/myvg/lv1格式化
其逻辑卷的挂载目录为/mydata,则# mkdir /mydata 
                                       # mount /dev/myvg/lv1 /mydata 如果想开机自启动,则可在/etc/fstab内添加内容。 
而后需要创建/mydata/data目录做为mysql数据的存放目录。
    # mkdir /mydata/data
 
这里假设其逻辑卷的挂载目录为/mydata,而后需要创建/mydata/data目录做为mysql数据的存放目录。
 
2、新建用户以安全方式运行进程:
 
# groupadd -r mysql
# useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql
# chown -R mysql:mysql /mydata/data
 
3、安装并初始化mysql-5.5.19
 
首先下载平台对应的mysql版本至本地,这里是32位平台,因此,选择的为mysql-5.5.19-linux2.6-i686.tar.gz,其下载位置为ftp://172.16.0.1/pub/Sources/mysql-5.5。
 
# tar xf mysql-5.5.19-linux2.6-i686.tar.gz -C /usr/local
# cd /usr/local/
# ln -sv mysql-5.5.19-linux2.6-i686  mysql  创建链接
# cd mysql 
 
# chown -R mysql:mysql  .
# ./scripts/mysql_install_db --user=mysql --datadir=/mydata/data 初始化mysql
# chown -R root  .
 
4、为mysql提供主配置文件:
 
# cd /usr/local/mysql
# cp support-files/my-large.cnf  /etc/my.cnf
# vim /etc/my.cnf
修改此文件中thread_concurrency的值为你的CPU个数乘以2,比如这里使用如下行:
thread_concurrency = 2
 
另外还需要添加如下行指定mysql数据文件的存放位置:
datadir = /mydata/data
 
5、为mysql提供sysv服务脚本:
 
# cd /usr/local/mysql
# cp support-files/mysql.server  /etc/rc.d/init.d/mysqld
并查看是否有执行权限,若无 则加上执行权限
 
添加至服务列表:
# chkconfig --add mysqld
# chkconfig mysqld on 实现开机启动
 
而后就可以启动服务测试使用了(service mysql start)。
 
为了使用mysql的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还需要进行如下步骤:
6、输出mysql的man手册至man命令的查找路径:
 
编辑/etc/man.config,添加如下行即可:
MANPATH  /usr/local/mysql/man
 
7、输出mysql的头文件至系统头文件路径/usr/include:
这可以通过简单的创建链接实现:
# ln -sv /usr/local/mysql/include  /usr/include/mysql
 
8、输出mysql的库文件给系统库查找路径:
 
# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
 
而后让系统重新载入系统库:
# ldconfig
若无mysql库文件则:
vim /etc/ld.co.conf.d/mysql.conf
添加/usr/local/mysql/bin
则再次重新载入系统库即可
 
9、修改PATH环境变量,让系统可以直接使用mysql的相关命令。
步骤如下
# Vim /etc/profile
增加:PATH=$PATP:/usr/local/mysql/bin
#source /etc/profile让内核重读一下配置文件,使其立即生效
至此mysql源码编译安装完成
 
1)新建dzuser用户,使其通过Web1或Web2主机都可以访问此数据库,并且其对discuz数据库中的所有对象有全部访问权限;
GRANT ALL PRIVILEGES ON testdb.* TO [email protected] IDENTIGIED BY ‘123456’;
2)删除两个匿名用户,并为所有名称为root的用户设置密码;
DROP USER ‘’@localhost
DROP USER ‘’@stu5.magedu.com;
SET PASSWORD FOR root@localhost=password(‘123456’);
  SET PASSWORD FOR [email protected]=password(‘123456’);
  SET PASSWORD FOR [email protected]=password(‘123456’);
3、Web1上编译安装httpd-2.4.1和php-5.3.10,并配置LAMP平台可以正常工作;
编译安装apache
 
1、解决依赖关系
 
httpd-2.4.1需要较新版本的apr和apr-util,因此需要事先对其进行升级。升级方式有两种,一种是通过源代码编译安装,一种是直接升级rpm包。这里选择使用后一种方式进行。rpm包的下载共需要如下4个软件包:
apr-1.4.6-1.i386.rpm
apr-devel-1.4.6-1.i386.rpm
apr-util-1.4.1-1.i386.rpm
apr-util-devel-1.4.1-1.i386.rpm
 
下载完成之后,使用“rpm -Uvh”进行升级即可。
另外,httpd-2.4.1编译过程也要依赖于pcre-devel软件包,需要事先安装。此软件包系统光盘自带,因此,找到并安装即可。
注:编译安装首先确认开发工具已安装 查看是否安装命令:yum grouplist
 
2、编译安装httpd-2.4.1
 
首先下载httpd-2.4.1到本地,下载路径为ftp://172.16.0.1/pub/Sources/new_lamp。而后执行如下命令进行编译安装过程:
 
# tar xf httpd-2.4.1.tar.bz2
# cd httpd-2.4.1
# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib
# make && make install
- -prfix=/usr/local/apache默认安装路径 - -sysconfdir=/etc/httpd配置文件的安装路径 
- -enable-so启用DSO功能 动态模块的装载能力  
make install 之前确认rpm httpd未安装
源代码编译是不提供service服务(我们可以借助rpm包安装httpd-yum install httpd 取出配置文件 cp /etc/rc.d/init.d/httpd ./复制到根目录下,然后卸载httpd - yum remove httpd)
启动apache:
# cd /usr/local/apache/bin/
# ./apachectl start
# netstat –tnlp 查看apache是否启动
3、修改httpd的主配置文件,设置其Pid文件的路径
编辑/etc/httpd/httpd.conf,添加如下行即可:
PidFile  "/var/run/httpd.pid"
查找pid文件方式:find ./ -name “*.pid”
4、提供SysV服务脚本/etc/rc.d/init.d/httpd,此处httpd文件为根目录下复制过来的,内容如下:
Apachectl=/usr/sbin/apachectl 替换成apachectl=/usr/local/apache/bin/apachectl
Httpd=${HTTPD-/usr/sbin/httpd}替换成httpd=/usr/local/apache/bin/httpd
由于我们使用的版本不是apache1.3 所以删除测验是否为1.3版本一项
 
而后为此脚本赋予执行权限:
# chmod +x /etc/rc.d/init.d/httpd
 
加入服务列表:
# chkconfig --add httpd
# chkconfig httpd on 设置开机自动启动
 
接下来就可以启动服务进行测试了。
 
编译安装php-5.3.10
 
1、解决依赖关系:
 
请配置好yum源(可以是本地系统光盘)后执行如下命令:
# yum -y groupinstall "X Software Development" 
如果想让编译的php支持mcrypt扩展,此处还需要下载ftp://172.16.0.1/pub/Sources/ngnix目录中的如下两个rpm包并安装之:
libmcrypt-2.5.7-5.el5.i386.rpm
libmcrypt-devel-2.5.7-5.el5.i386.rpm
 
2、编译安装php-5.3.10
 
首先下载源码包至本地目录
 
# tar xf php-5.3.10.tar.bz2
# cd php-5.3.10
# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml  --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt
 
# make
# make test (此处可以省略)
# make intall
 
为php提供配置文件:
# cp php.ini-production /usr/local/php/lib/php.ini
 
3、 编辑apache配置文件httpd.conf,以apache支持php
 
 # vim /etc/httpd/httpd.conf
 1、添加如下二行
   AddType application/x-httpd-php  .php
   AddType application/x-httpd-php-source  .phps
 
 2、定位至DirectoryIndex index.html 
   修改为:
    DirectoryIndex  index.php  index.html
 
而后重新启动httpd,或让其重新载入配置文件即可测试php是否已经可以正常使用。
 
 
要求:
1)php能使用mcrypt扩展;
2)Web使用中心主机,其网页文件目录为/www/htdocs;
# mkdir /www/htdocs
# echo "hello world" > /www/htdocs/index.html
# vim /etc/httpd/httpd.conf
 修改DcoumentRoot为DcoumentRoot “/www/htdocs”
3)此Web也能基于https协议工作;
# cd /etc/pki/CA
# vim ../tls/openssl.cnf
修改dir  =../../CA 为 dir   =/etc/pki/CA
# (umask077; openssl genrsa 1024 > private/cakey.pem)生成CA的私钥
# openssl req -new -x509 -key private/cakey.pem -out cacert.pem 生成自签证书
依次输入 CN  Henan  ZZ  Magedu  Tech  H ,后面的直接回车即可
# mkdir newcerts certs crl
# touch index.txt
# echo 01 > serial
# echo 01 > crlnumber
  到此CA准备好了
  给httpd服务发证:
# cd /etc/httpd/
# (umask 077; openssl genrsa 1024 > httpd.key)web服务私钥
# openssl req -new -key httpd.key -out httpd.csr请求证书
# openssl ca -in httpd.csr -out httpd.crt签署证书
# vim httpd.conf
LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so  将这两行注释去掉
把CA证书cacert.pem拷贝到要访问web服务的主机上,改后缀名为.crt,即是cacert.crt,导入到可信任站点。
此时基于https的web访问就实现了。
# service httpd restart
# 至此https即可使用
4、Web2上编译安装httpd-2.4.1和php-5.3.10,让其使用Web1的mysql做为数据库服务器,配置LAMP平台可以正常工作,
编译安装apache
 
1、解决依赖关系
 
httpd-2.4.1需要较新版本的apr和apr-util,因此需要事先对其进行升级。升级方式有两种,一种是通过源代码编译安装,一种是直接升级rpm包。这里选择使用后一种方式进行。rpm包的下载路径为ftp://172.16.0.1/pub/Sources/new_lamp,共需要如下4个软件包:
apr-1.4.6-1.i386.rpm
apr-devel-1.4.6-1.i386.rpm
apr-util-1.4.1-1.i386.rpm
apr-util-devel-1.4.1-1.i386.rpm
 
下载完成之后,使用“rpm -Uvh”进行升级即可。
另外,httpd-2.4.1编译过程也要依赖于pcre-devel软件包,需要事先安装。此软件包系统光盘自带,因此,找到并安装即可。
注:编译安装首先确认开发工具已安装 查看是否安装命令:yum grouplist
 
2、编译安装httpd-2.4.1
 
首先下载httpd-2.4.1到本地,下载路径为ftp://172.16.0.1/pub/Sources/new_lamp。而后执行如下命令进行编译安装过程:
 
# tar xf httpd-2.4.1.tar.bz2
# cd httpd-2.4.1
# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib
# make && make install
- -prfix=/usr/local/apache默认安装路径 - -sysconfdir=/etc/httpd配置文件的安装路径 
- -enable-so启用DSO功能 动态模块的装载能力  
make install 之前确认rpm httpd未安装
源代码编译是不提供service服务(我们可以借助rpm包安装httpd-yum install httpd 取出配置文件 cp /etc/rc.d/init.d/httpd ./复制到根目录下,然后卸载httpd - yum remove httpd)
启动apache:
# cd /usr/local/apache/bin/
# ./apachectl start
# netstat –tnlp 查看apache是否启动
3、修改httpd的主配置文件,设置其Pid文件的路径
编辑/etc/httpd/httpd.conf,添加如下行即可:
PidFile  "/var/run/httpd.pid"
查找pid文件方式:find ./ -name “*.pid”
4、提供SysV服务脚本/etc/rc.d/init.d/httpd,此处httpd文件为根目录下复制过来的,内容如下:
Apachectl=/usr/sbin/apachectl 替换成apachectl=/usr/local/apache/bin/apachectl
Httpd=${HTTPD-/usr/sbin/httpd}替换成httpd=/usr/local/apache/bin/httpd
由于我们使用的版本不是apache1.3 所以删除测验是否为1.3版本一项
 
而后为此脚本赋予执行权限:
# chmod +x /etc/rc.d/init.d/httpd
 
加入服务列表:
# chkconfig --add httpd
# chkconfig httpd on 设置开机自动启动
 
接下来就可以启动服务进行测试了。
编译安装php-5.3.10
 
首先下载源码包至本地目录
 
# tar xf php-5.3.10.tar.bz2
# cd php-5.3.10
# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml  --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt
 
# make
# make test (此处可以省略)
# make intall
 
为php提供配置文件:
# cp php.ini-production /usr/local/php/lib/php.ini
 
3、 编辑apache配置文件httpd.conf,以apache支持php
 
 # vim /etc/httpd/httpd.conf
 1、添加如下二行
   AddType application/x-httpd-php  .php
   AddType application/x-httpd-php-source  .phps
 
 2、定位至DirectoryIndex index.html 
   修改为:
    DirectoryIndex  index.php  index.html
 
而后重新启动httpd,或让其重新载入配置文件即可测试php是否已经可以正常使用。
 
 
要求
1) php能使用mcrypt扩展;
2)挂载Web1上的nfs目录/www/htdocs至本地的/www/htdocs;
mount –t nfs 172.16.5.1:/www/htdocs /mnt 
  3)Web使用中心主机,其网页文件目录为/www/htdocs;
  vim /etc/httpd/httpd.conf
  修改DocumentRoot为DocumentRoot "/www/htdocs"
4)此Web也能基于https协议工作;(提示:Web2需要使用发颁发给Web1的证书和Web1的私钥文件。请思考为什么。)
提示:Web2上也需要事先安装mysql,因为php的configure脚本需要用到mysql的头文件等;但Web2的mysql不需要启动;
scp 172.16.5.1:/etc/httpd/httpd.crt /etc/httpd/
scp 172.16.5.1:/etc/httpd/httpd.key /etc/httpd/
scp 172.16.5.1:/etc/httpd/httpd.src /etc/httpd/
5、在Web1的LAMP平台上安装配置discuz-7.2,
安装配置discuz-7.2
把discuz-7.2源码包下载到本地
# cp Discuz_7.2_FULL_SC_GBK.zip /www
# cd /www
# unzip Discuz_7.2_FULL_SC_GBK.zip
# mv upload/*  htdocs/
然后在地址栏输入172.16.5.1/install就成功了
 
要求:
  1)在Web1上安装完成后,此dz论坛也能够通过Web2被正常访问;
  2)通过任一台主机登录的用户都能上传的文件或发的帖子等,而且通过另一台主机也可以访问到;
6、在Web1上的/www/phpmyadmin目录中安装phpMyAdmin-3.4.10.1,要求:
1)其能够通过https://web1_ip/dma路径访问到;
2)仅能够通过https协议访问,不能通过http协议访问到此应用;
思考:(1)能不能将phpMyAdmin-3.4.10.1安装到Web2上对Web1上的mysql进行管理?如果能,请实现之;
   (2)通过https://www.magedu.com/pma访问phpMyAdmin行不行,为什么?如果期望其可以,如何解决?
在web1上安装phpMyAdmin-3.4.10.1
下载phpMyAdmin-3.4.10.1.tar.gz到本地
# tar xvf phpMyAdmin-3.4.10.1.tar.gz
# cd phpMyAdmin-3.4.10.1
# mkdir /www/htdocs/pma
# mv * /www/htdocs/pma
# cd /www/htdocs/pma
# cp config.sqmple.inc.php config.inc.php
# vim config.inc.php
把$cfg[‘blowfish_secret’]=’’改为$cfg[‘blowfish_secret’]=’asdghawfejdsv’即可。
 
基于https访问web2的pma
# vim /etc/httpd/httpd.conf
启用mod_ssl:
#LoadModule ssl_module modules/mod_ssl.so 的注释去掉
 
# cd /etc/pki/tls
# vim openssl.cnf
把dir= ../CA改为 dir = /etc/pki/CA
# cd /etc/pki/CA
# mkdir certs crl newcerts
# touch index.txt serial crlnumber
# echo 01 > serial
# echo 01 > crlnumber
# (umask 077;openssl genrsa 2048 > private/cakey.pem)  生成CA自己的私钥
# openssl req –new –x509 –key private/cakey.pem –out cacert.pem –days 3650 给自己签发证书
依次输入 CN  Henan  ZZ  Magedu  Tech  H ,后面的直接回车即可
# mkdir /www/htdocs/pma/ssl
# cd /www/htdocs/pma/ssl
# (umask 077;openssl genrsa 1024 > pma.key)  生成pma自己的私钥
# openssl req –new –key pma.key –out pma.csr  证书签署请求
依次输入 CN  Henan  ZZ  Magedu  Tech  H ,后面的直接回车即可
 
给pma颁发证书
# openssl ca –in pma.csr –out pma.crt
# vim /etc/httpd/conf.d/ssl.conf
把证书文件路径以及私钥文件路径配置一下
SSLCertificateFile  /www/htdocs/pma/ssl /pma.crt   证书文件路径
SSLCertificatekeyFile  /www/htdocs/pma/ssl /pma.key 私钥文件路径
重启一下httpd服务。
# service httpd restart
再把CA证书cacert.pem拷贝到要访问web服务的主机上,改后缀名为.crt,即是cacert.crt,导入到可信任站点。
此时基于https的web访问就实现了。
 
7、在Web2上的/www/wordpress目录中安装wordpress-3.3.1,要求:
1)其能够通过http://web2_ip/blog访问,或通过https://web2_ip/blog访问;
思考:(1)能不能直接使用http://www.magedu.com/blog访问此博客,为什么?如果期望其可以,如何实现?
下载wordpress-3.3.1.zip到本地
# mv wordpress-3.3.1.zip /www
# cd /www
# mkdir htdocs/blog
# unzip wordpress-3.3.1.zip
# mv wordpress/* htdocs/blog/
# cd htdocs/blog
# cp wp-config-sample.php wp-config.php
# vim wp-config.php
将define('DB_NAME', 'database_name_here')改为define('DB_NAME', 'mysql');
将define('DB_USER', 'username_here');改为 define('DB_USER', 'root');
将define('DB_PASSWORD', 'password_here')改为define('DB_PASSWORD', '123456');
 
基于https访问web2的blog
# mkdir /www/htdocs/blog/ssl
# cd /www/htdocs/blog/ssl
# (umask 077;openssl genrsa 1024 > blog.key)  生成pma自己的私钥
# openssl req –new –key pma.key –out blog.csr  证书签署请求
依次输入 CN  Henan  ZZ  Magedu  Tech  H ,后面的直接回车即可
 
给blog颁发证书
# openssl ca –in blog.csr –out blog.crt
# vim /etc/httpd/conf.d/ssl.conf
把证书文件路径以及私钥文件路径配置一下
SSLCertificateFile  /www/htdocs/blog/ssl /blog.crt   证书文件路径
SSLCertificatekeyFile  /www/htdocs/blog/ssl /blog.key 私钥文件路径
# service httpd restart重启httpd服务
再把CA证书cacert.pem拷贝到要访问web服务的主机上,改后缀名为.crt,即是cacert.crt,导入到可信任站点。
此时基于https的web访问就实现了。