拓扑图见编译实现LAMP,bind,CA.jpg
test3配置:
yum -y install bind
修改named.conf配置文件:
// listen-on port 53 { 127.0.0.1; }; //监听IP与端口
// allow-query { localhost; }; //供查询的主机,这里的localhost为只允许查询本机
dnssec-enable no; //启动安全的开关
dnssec-validation no; //安全相关选项
注释掉根解析的相关配置
//zone “.” IN {
// type hint;
// file “named.ca”;
//};
修改name.rfc1912.zones
添加如下内容:
zone “.” IN {
type master;
file “root.zone”;
};
写一个解析数据库
$TTL 1D
@ IN SOA rootdns rootadmin ( 1 1H 1H 1W 1D )
NS rootdns
com NS comdns.
rootdns. A 172.18.35.102
com. A 172.18.35.111
修改named.ca文件:这个文件是寻找根DNS服务器的文件,所有的DNS服务器上的这个文件都修改为以下形式:
. 3600000 NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 172.18.35.102
test5配置:
安装bind:yum -y install bind
修改配置文件/etc/named.conf
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
dnssec-enable no;
dnssec-validation no;
配置一个区域:/etc/named.rfc1912.zones
zone “com” IN {
type master;
file “com.zone”;
};
配置com区域数据库
$TTL 1D
@ IN SOA comdns comadmin ( 1 1H 1H 1W 1D )
NS comdns
tom NS tomdns
comdns A 172.18.35.111
tomdns A 172.18.35.112
配置named.ca
. 518400 IN NS a.root-servers.net.
a.root-servers.net. 3600000 IN A 172.18.35.102
test6配置;
安装bind:yum -y install bind
配置/etc/named.conf文件
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
dnssec-enable no;
dnssec-validation no;
配置一个区域:/etc/named.rfc1912.zones
zone “tom.com” IN {
type master;
file “tom.com.zone”;
};
配置一个区域数据库:
$TTL 1D
@ IN SOA tomdns tomadmin ( 1 1H 1H 1W 1D )
NS tomdns
tomdns A 172.18.35.112
webserver A 172.18.35.100
www CNAME webserver
修改/var/named/named.ca
. 518400 IN NS a.root-servers.net.
a.root-servers.net. 3600000 IN A 172.18.35.102
test7配置DNS:
修改配置文件/etc/named.conf
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
dnssec-enable no;
dnssec-validation no;
修改/var/named/named.ca
. 518400 IN NS a.root-servers.net.
a.root-servers.net. 3600000 IN A 172.18.35.102
以上为DNS配置,关闭防火墙,与SELinux,启动服务即可,如果服务无法启动,检查配置文件与区域文件,可以使用以下命令进行检查
named-checkconf //检查配置文件
named-checkzone “tom.com” tom.com.zone //检查区域文件
test1配置
下载httpd,apr,apr-util程序
由于这里编译的apache程序是2.4.25,需要apr1.4与apr-util1.4以上而yum库提供的apr与apr-util为1.39,所以这里需要编译apr与apr-util程序
解压apr-1.5.0.tar.bz2,apr-util-1.5.3.tar.bz2,httpd-2.4.25.tar.bz2
tar xf ….
编译apr-1.5.0.tar.bz2:
cd apr-1.5.0
./configure –prefix=/usr/local/apr
出错,提示gcc没有,安装
yum -y install gcc
echo $?:如果为0就成功了,如果不为0那就挂了
-j 4 && make install
echo $?
cd ..
编译apr-util-1.5.3.tar.bz2:
cd apr-util-1.5.3
./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr
echo $?
make -j 4 && make install
echo $?
cd ..
编译httpd-2.4.25.tar.bz2
./configure –prefix=/usr/local/httpd –sysconfdir=/etc/httpd –enable-modules=most –enable-mods-shared=most –enable-so –enable-proxy –enable-proxy-fcgi –enable-ssl –enable-cgi –enable-rewrite –with-apr=/usr/local/apr –with-apr-util=/usr/local/apr-util –with-mpm=profork –with-z –with-libxml2 –with-pcre –enable-cgid
出错:提示缺少perc-config
yum provides */pcre-config //查出这个文件是在pcre-devel包下
yum -y install pcre-devel
出错:提示openssl有点旧了
yum -y install openssl-devel
出错:提示MPM选项没有叫profork的,回头一看原来是写错了,叫prefork
echo $?
make -j 4 && make install
echo $?
test4配置:
下载一个mariadb程序
tar xf mariadb-10.1.22-linux-x86_64.tar.gz -C /usr/local/
cd /usr/local
ln -sv mariadb-10.1.22-linux-x86_64 mysql
useradd -r -M -s /sbin/nologin mysql
cd mysql/
chown -R root.mysql ./*
mv /etc/my.cnf /etc/my.cnf.bak
mkdir -p /data/mysql
chown -R mysql.mysql /data
cp support-files/my-huge.cnf /etc/my.cnf //具体复制那个文件要看你的内存有多大了,各个文件对应的内存不一样
cp support-files/mysql.server /etc/init.d/mysqld //启动脚本文件
chmod +x /etc/init.d/mysqld //给脚本的小权利
配置/etc/my.cnf文件
datadir = /data/mysql //指定数据库目录
skip_name_resolve = ON //优化性能
innodb_file_per_table = ON //优化性能
./scripts/mysql_install_db –user=mysql –datadir=/data/mysql //数据库初始化
出错了,说没有libaio.so.1这个玩意
yum provides */libaio.so.1
yum -y install libaio-0.3.109
service mysqld start
启动成功
export PATH=$PATH:/usr/local/mysql/bin //写个命令路径
mysql -u root //登陆数据库
grant all privileges on *.* to test@’%’ identified by ‘test’; //创建一个用户,并允许在其它主机登陆
grant all privileges on *.* to test@’localhost’ identified by ‘test’; //允许在本地登陆
create database mydata; //创建一个库
flush privileges; //刷新数据库
\q //退出数据库
test2配置:
上传数据库,并解压到/usr/local/下,做一个软链接为mysql指向解压目录
下载php:
tar xf php-5.6.4.tar.xz
cd php-5.6.4
./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 –enable-sockets –with-mcrypt –with-config-file-path=/etc –with-config-file-scan-dir=/etc/php.d –with-bz2 –enable-maintainer-zts –enable-fpm
出错了,没有安装gcc
yum -y install gcc
出错了,没有找到xml2-config文件
yum provides */xml2-config
yum -y install libxml2-devel
出错了,说,没有打到openssl的<evp.h>
yum provides */evp.h
yum -y install openssl-devel
出错了,说需要重新安装bzip2
yum -y install bzip2
出问题了,说有bzip2这个包了,那就装一下bzip2的开发包吧
yum -y install bzip2-devel
出错了,说找不到mcrypt.h头文件,看看这个头文件那里有
yum provides */mcrypt.h
yum -y install libmcrypt-devel
echo $?
make -j 4 && make install
echo $?
mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
修改配置文件:/usr/local/php/etc/php-fpm.conf
listen = 172.18.35.101:9000 //修改监听IP与端口
在test1上搭建nfs服务:
修改/etc/export文件添加如下内容
/www/root 172.18.35.101(async,rw)
yum -y install showmount
service rpcbind start
service nfs start
在test2挂载nfs目录
yum -y install showmount
mkdir /www/root -p
mount -t nfs 172.18.35.100:/www/root /www/root
test7配置CA
cd /etc/pki/CA/
openssl genrsa -out private/cakey.pem 2048 //生成CA私钥
openssl req -x509 -new -key private/cakey.pem -out cacert.pem -days 3650 //生成自签证书
touch index.txt serial //创建必要文件
echo 01 > serial //文件中添加编号
在test1上生成CA请求文件
cd /etc/httpd //在此目录中生成文件以后配置文件就可以不改了
openssl genrsa -out server.key 1024 //生成私钥文件
openssl req -new -key server.key -out server.p //生成请求文件server.p,将请求文件给CA服务器,名声然后确认并生成证书
scp server.p 172.18.35.113:/etc/pki/CA/certs/ //发送请求文件给CA服务器
在test7上确认证书
openssl ca -in certs/server.p -out certs/server.crt -days 365 //确认证书
scp certs/server.crt 172.18.35.100:/etc/httpd/ //将证书发送给http服务器
配置test1上的https服务:
修改主配置文件/etc/httpd/httpd.conf
LoadModule proxy_module modules/mod_proxy.so //将注释去掉
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so //将注释去掉
LoadModule rewrite_module modules/mod_rewrite.so //启动URL重写功能
LoadModule ssl_module modules/mod_ssl.so //启动ssl功能
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so //启动shmcb功能
<Directory />
AllowOverride none
Require all granted //这个是禁止访问其它所有目录修改为granted后就为允许了
</Directory>
<IfModule dir_module>
DirectoryIndex index.html index.php //添加可以运行以.php结尾的文件
</IfModule>
AddType application/x-http-php .php //添加的行,增加一种应用类型
AddType application/x-http-php-source .phps //添加的行,增加一种应用类型
DocumentRoot “/www/root” 修改网页根目录
#DocumentRoot “/usr/local/httpd/htdocs” //注释掉,中心主机不可以与虚拟主机同时启动,这里关闭中心主机
Include /etc/httpd/extra/httpd-ssl.conf //去掉注释,启动ssl的配置文件
配置etc/httpd/extra/httpd-ssl.conf文件:
<VirtualHost 172.18.35.100:443> //监听的端口与IP
DocumentRoot “/www/root/wordpress” //网页的存放地
ServerName www.tom.com //访问https的域名
#ServerAdmin you@example.com //管理员邮箱
ProxyRequests off //关闭正向解析文件
ProxyPassMatch ^(.*\.php)$ fcgi://172.18.35.101:9000/www/root/$1 //指定反解方式
rewriteEngine on //启动重写功能
rewritecond %{HTTP_HOST} !^www.tom.com [NC] //申明client请求的不是以www.tom.com为前缀[NC]为忽略大小写
rewritecond %{HTTP_HOST} !^$ //申明client请求的不是以空为前缀
rewriterule ^(.*) https://www.tom.com/ [L] //如果请求符合上述要求,那么就进行跳转,跳转为https://www.tom.com/;[L]为立即停止重写,并不再使用其它规则
<Directory “/www/root/wordpress”>
Options none
AllowOverride none
Require all granted
</Directory>
在test1上进行配置wordpress:
下载wordpress:
解压到/www/root/目录下,并给其写权限
将客户端的DNS修改为172.18.35.113,将根证书导入浏览器,访问www.tom.com进行测试
测试成功
原创文章,作者:gaomei,如若转载,请注明出处:http://www.178linux.com/74020