项目实施(如图所示):注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访问就实现了。