重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、实验需求:
1)CentOS 7, amp + xcache, rpm包,php-fpm;
a) 分别深度:httpd, php, mariadb分别部署在一个单独的主机上,以及都在同一主机;
b) 一个虚拟主机提供phpMyAdmin,另一个虚拟主机提供wordpress;
c) 为phpMyAdmim提供https服务;
2、实验环境:
1)服务器环境
Linux服务器操作系统版本:CentOS release 6.7 (Final)
http) IP: 172.16.66.60
php-fpm) IP:172.16.66.70
mariadb) IP:172.16.66.70
2)测试环境
WIN7系统客户机):IP:172.16.66.100
3、实验前提:
1)关闭防火墙和SELinux
# service iptables stop
# sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
# systemctl stop firewalld
# systemctl status firewalld
创新互联致力于互联网品牌建设与网络营销,包括成都网站建设、成都做网站、SEO优化、网络推广、整站优化营销策划推广、电子商务、移动互联网营销等。创新互联为不同类型的客户提供良好的互联网应用定制及解决方案,创新互联核心团队10余年专注互联网开发,积累了丰富的网站经验,为广大企业客户提供一站式企业网站建设服务,在网站建设行业内树立了良好口碑。
2)开发包组
# yum groupinstall Development Tools Server Platform Development -y
4、实验过程:
第一部分:
部署主机IP: 172.16.66.60
1 基本设置
1.1 设置 httpd 主机名 HOSTNAME
echo "HOSTNAME=www1" >> /etc/sysconfig/network
1.2 更新 HOSTS 配置文件 /etc/hosts
# echo "172.16.66.60 www1 www2 " >> /etc/hosts
1.3 修改 DNS 解析设置
vim /etc/resolv.conf
2 安装httpd-2.4.6
2.0 安装依赖库包
# yum install pcre-devel openssl-devel libevent-devel apr-devel apr-util-devel
2.1 编译安装并配置 httpd网络服务器
tools]# tar xf httpd-2.4.6.tar.bz2
2.2 编译相关参数
# ./configure --prefix=/usr/local/apache24 --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi--enable-rewrite \
--enable-modules=most --enable-mpms-shared=all --with-mpm=prefork --with-pcre --with-zlib --with-apr=/usr --with-apr-util=/usr
2.3 编译
# make -j 4
2.4 开始安装(install是拷贝命令)
# make install
2.5 检查系统库文件对应路径
# ldconfig -v
2.6 已装载库文件路径
# ldconfig -v
2.7 在/etc/profile.d/目录中vim apache.sh 添加如下内容,为httpd添加环境变量。
# export PATH=/usr/local/apache24/bin:$PATH
2.8 使其环境变量生效
# source /etc/profile.d/apache.sh
2.9 把apache头文件导入到usr头文件中
# ln -sv /usr/local/apache24/include /usr/include/httpd
2.10 如果不想配置man文件,可以使用全路径,man帮助
# man /usr/local/apache24 httpd
2.11 启动apachectl
# apachectl start
2.12 为配置文件创建备份目录
# mkdir ~/confbak
2.13 备份配置文件 ~:表示当前登录用户文件夹 -R:递归所有子目录
# cp -R /etc/httpd24/ ~/confbak/
3.创建和配置虚拟主机
# cd /etc/httpd24/extra/
3.1配置虚拟主机(/etc/httpd24/extra/www1.conf)
vim /etc/httpd/conf.d/www1.conf
主机www1
[root@www1 conf.d]# cat www1.conf
ServerName www1
# ServerAlias www
DocumentRoot /data/vhosts/www1 #注意这行末尾不要带 /
ProxyRequests Off
DirectoryIndex index.php
ProxyPassMatch ^/(.*\.php)$ fcgi://172.16.66.70:9000/data/vhosts/www1/$1
Options None
AllowOverride None
Require all granted
ErrorLog logs/www1-error_log
CustomLog logs/www1-access_log combien
#ServerSignature Off
3.2配置虚拟主机(/etc/httpd24/extra/www2.conf )
vim /etc/httpd/conf.d/www2.conf
主机 www2
[root@www1 conf.d]# cat www2.conf
ServerName www2
DocumentRoot /data/vhosts/www2
ProxyRequests Off
DirectoryIndex index.php
ProxyPassMatch ^/(.*\.php)$ fcgi://172.16.66.70:9000/data/vhosts/www2/$1
Options None
AllowOverride None
Require all granted
ErrorLog logs/www2-error_log
CustomLog logs/www2-access_log combien
#ServerSignature Off
3.3 检查语法错误
# httpd -t
3.4 重载apachectl服务
# apachectl graceful
3.5 为虚拟主机创建网站目录www{1,2}
# mkdir /data/vhosts/www{1,2} -p
3.6 测试www1/index.html静态网页
# curl www1 -I
4.配置httpd24
4.1 启动httpd的相关模块 /etc/httpd24/httpd.conf
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
Include /etc/httpd24/extra/www2.conf
Include /etc/httpd24/extra/www1.conf
4.2 删除原有/usr/local/apache24/htdocs/
# rm index.html
4.3让apache能识别php格式的页面
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
第二部分:
部署mariadb主机IP: 172.16.66.80
1安装和配置 Mariadb 数据库服务
1.1 创建存放tools工具目录
# mkdir /tools
1.2 解压mariadb 到指定目录
# tar xf mariadb-5.5.46-linux-x86_64.tar.gz -C /usr/local/
1.3 创建MySQL数据目录
# mkdir -pv /data/mydata
1.4 创建mysql系统组
# groupadd -r -g 306 mysql
1.5 创建mysql系统用户
# useradd -r -g 306 -u 306 mysql
1.6 授权属主属组/data/mydata
# chown -R mysql.mysql /data/mydata
1.7 创建软连接
# ln -sv mariadb-5.5.46-linux-x86_64 mysql
1.8 授权mysql安装包目录
# chown -R root.mysql ./
1.9 编译mariadb
# scripts/mysql_install_db --user=mysql --datadir=/data/mydata
1.10 创建mysql配置文件目录
# mkdir /etc/mysql
1.11 拷贝配置文件到指定目录
# cp support-files/my-large.cnf /etc/mysql/my.cnf
1.12 修改配置文件/ect/mysql/my.cnf 在server中添加下面三行
datadir = /data/mydata
innodb_file_per_table = ON
skip_name_resolve = ON
1.13 添加mysqld服务到开机自启动
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
1.14 为mysqld执行权限
# chmod +x /etc/rc.d/init.d/mysqld
1.14 添加到服务列表
# chkconfig --add mysqld
1.14 添加到开机自动启动
# chkconfig on
1.15 重命名/etc/my.cnf 为 my.cnf.bak
# mv my.cnf my.cnf.bak
1.16 添加mysql环境变量/etc/profile.d/myslqd.sh 下
export PATH=/usr/local/mysql/bin:/usr/local/mysql/support-files:$PATH
1.17 使其mysqld环境变量生效
# source /etc/profile.d/mysqld.sh
1.18 导入mysqld头文件到usr头文件中
# ln -sv /usr/local/mysql/include /usr/include/mysqld
1.19 启动mysqld服务
# mysql.server start
1.20 以查看内存占用情况
# top -u mysql
2.使用 MariaDB 内建的安全配置脚本进行配置
2.1 执行安全配置脚本进行配置
# mysql_secure_installation
2.2 输入密码后回车,下面是输出示例,可以看到命令提示符变为 MariaDB [(none)]>
# mysql -u root -p
2.3创建一个新数据库给 WordPress 用(这里取名为 wordpress,也可以用别的名字)
MariaDB [(none)]> create database wordpress;
2.4创建一个新用户,并将该数据库的权限赋给他(这里只是举例,用户名为 admin,密码为 admin)
MariaDB [(none)]> grant all on wordpress.* to 'admin'@'172.16.%.%' identified by 'admin';
2.5更新权限
MariaDB [(none)]> flush privileges;
2.6退出数据库
MariaDB [(none)]> quit
2.7 创建配置文件备份目录
# mkdir ~/confbak
2.7 备份配置文件
#cp /etc/my.cnf ~/confbak/my.cnf.bak
第三部分:
部署php5.4.40主机IP: 172.16.66.70
1安装和配置 php 数据库服务
1.1 创建存放tools工具目录
# mkdir /tools
1.2 创建配置文件备份目录
# mkdir ~/confbak/
1.3 安装依赖库
# yum install libxm12-devel gd-devel freetype-devel libmcrypt-devel -y
1.3 解压php 到指定目录
# tar xf php-5.4.40.tar.bz
1.4 编译安装php
# ./configure --prefix=/usr/local/php54 --with-mysql --with-mysqli --with-openssl --enable-mbstring --enable-xml --enable-sockets \
--enable-fpm --with-freetype-dir --with-gd --with-libxml-dir=/usr --with-zlib --with-bz2 --with-png-dir --with-mcrypt \
--with-config-file-path=/etc/php54.ini --with-config-file-scan-dir=/etc/php54.d
1.5 执行编译命令
# make
1.6 执行安装命令
# make install
1.7 拷贝配置文件到/etc/目录下
# cp /tools/php-5.4.40/php.ini-production /etc/php54.ini
1.8 软连接头文件到/usr/include/
# ln -sv /usr/local/php54/include /usr/include/
2.配置php-fpm
2.1 为php-fpm提供init 脚本
# cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
2.2 为php-fpm执行权限
# chmod +x /etc/rc.d/init.d/php-fpm
2.3 加入到服务列表
~]# chkconfig --add php-fpm
2.4 设置开机自动运行
# chkconfig php-fpm on
2.5 为php-fpm提供配置文件
# cp /usr/local/php54/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
2.6 备份配置文件到指定目录
# cp -R /usr/local/php54/etc/ ~/confbak/
2.7 编辑配置php-fpm的配置文件/usr/local/php54/etc/php-fpm.conf 修改如下5行
pm.max_children = 50
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 8
pid = /usr/local/php54/var/run/php-fpm.pid
listen = 172.16.66.70:9000 本机监听ip
listen.allowed_clients = 172.16.66.60 允许的ip
2.8 启动php-fpm服务
# service php-fpm start
2.9 查看php-fpm服务是否启动成功
# ps aux | grep php-fpm
2.10 查看监听套接字
# netstat -tnlp | grep php-fpm
第四部分: 安装和配置 wordpress,phpMyAdmin
在php-fpm主机环境中 IP: 172.16.66.70
1.安装和配置wordpress
1.1 解压wordpress包
tools]# unzip wordpress-4.3.1-zh_CN.zip
1.2 拷贝到站点目录www1中
cp wordpress /data/vhosts/www1
1.3 改名wordpress配置文件为wp-config.php
]# cp wp-config-sample.php wp-config.php
1.4 修改wp-config.php文件连接数据库
~]# sed -n '22,38p' /data/vhosts/www1/wordpress/wp-config.php
/** WordPress数据库的名称 */
define('DB_NAME', 'wordpress');
/** MySQL数据库用户名 */
define('DB_USER', 'admin');
/** MySQL数据库密码 */
define('DB_PASSWORD', 'admin');
/** MySQL主机 */
define('DB_HOST', '172.16.66.80');
/** 创建数据表时默认的文字编码 */
define('DB_CHARSET', 'utf8');
/** 数据库整理类型。如不确定请勿更改 */
define('DB_COLLATE', '');
2.安装和配置phpMyAdmin
2.1 解压phpMyAdmin包
tools]# unzip phpMyAdmin-4.4.14.1-all-languages.zip
2.2 拷贝到站点目录www2中
~]# cp -r phpMyAdmin-4.4.14.1-all-languages /data/vhosts/www2
2.3 配置phpMyAdmin软件
# ln -sv phpMyAdmin-4.4.14.1-all-languages/ pma
2.4 改名配置文件名
~]# cp config.sample.inc.php config.inc.php
2.5 生成随机数
~]# openssl rand -hex 8 #-->(640b56f72820ace8)
2.6 修改配置文件连接数据库config.inc.php
~]# vim config.inc.php
$cfg['blowfish_secret'] = '640b56f72820ace8'
$cfg['Servers'][$i]['host'] = '172.16.66.80';
$cfg['Servers'][$i]['user'] = 'admin';
$cfg['Servers'][$i]['password'] = 'admin';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
3.测试php和mariad连通性
3.1 httpd-->php是否可以访问
www1]# cat admin.php
phpinfo();
?>
3.2 httpd-->php--mariadb是否可以访问
www1]#cat index.php
$conn = mysql_connect('172.16.100.71','admin','admin');
if($conn)
cho "OK";
else
echo "Failure";
?>
4.测试wordpress和phpMyAdmin
4.1 在PC浏览器中测试,wordpress是否能正常方式
http://www1/wordpress/index.php通过80端口访问
4.2 在PC浏览器中测试,根据提示输入数据库名和密码(主机账号和密码是授权wordpress中用户)
http://www2/pma/index.php
5.为php-fpm安装xcache加速器并配置
5.1 解压xcache3.3包
# tar xf xcache-3.2.0.tar.bz2
5.2 在/tools/xcache-3.2.0目录下 执行挂载接口
#/usr/local/php54/bin/phpize
5.3 编译安装
# ./configure --enable-xcache --with-php-config=/usr/local/php54/bin/php-config
# make && make install
5.4 编辑php.ini ,整合php和xcache
# cp /tools/xcache-3.2.0/xcache.ini /etc/php54.d
第五部分:为phpMyAdmim提供https服务
在httpd主机环境中 IP: 172.16.66.60
工作目录:/etc/pki/CA/
1.建立私有CA
1.1 生成私钥
CA]# (umask 077; openssl genrsa -out private/cakey.pem 2048)
1.2 生成自签证书
CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Beijing
Common Name (eg, your name or your server's hostname) []:www2
1.3 提供辅助文件
CA]# touch index.txt
CA]# echo 01 > serial 序列号
CA]# tree
.
├── cacert.pem
├── certs
├── crl
├── index.txt
├── newcerts
├── private
│ └── cakey.pem
└── serial
2.节点申请证书
2.1 生成私钥
~]# mkdir -pv /etc/httpd/ssl
ssl]# (umask 077; openssl genrsa -out httpd.key 1024)
2.2 生成证书签署请求:
ssl]# openssl req -new -key httpd.key -out httpd.csr
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Beijing
Common Name (eg, your name or your server's hostname) []:www2
2.3 把请求发给CA
ssl]# cp httpd.csr /tmp/
3.CA签发证书
3.1 签署证书
~]# openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt
3.2 把签署好的证书发还给请求者。
~]# cp /etc/pki/CA/certs/httpd.crt /etc/httpd/ssl/
注意:本次私建CA和节点申请证书在同一台机器完成。
4.配置httpd支持使用ssl,及使用的证书
4.1 在httpd.conf中启用mod_ssl模块
LoadModule ssl_module modules/mod_ssl.so
Include /etc/httpd24/extra/httpd-ssl.conf
4.2修改配置文件ssl.conf
~]# cat /etc/httpd/conf.d/ssl.conf
DocumentRoot "/data/vhosts/www2"
ServerName www2:443
ProxyRequests Off
DirectoryIndex index.php
ProxyPassMatch ^/(.*\.php)$ fcgi://172.16.66.70:9000/data/vhosts/www2/$1
SSLCertificateFile /etc/httpd24/ssl/httpd.crt
SSLCertificateKeyFile /etc/httpd24/ssl/httpd.key
SSLOptions +StdEnvVars
AllowOverride None
Require all granted
第六部分:压力测试报告