CentOS 7, amp + xcache, rpm包,php-fpm

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

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
<VirtualHost *:80>
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
<Directory "/data/vhosts/www1">
Options None
AllowOverride None
Require all granted
</Directory>
ErrorLog logs/www1-error_log
CustomLog logs/www1-access_log combien
#ServerSignature Off
</VirtualHost>

3.2配置虚拟主机(/etc/httpd24/extra/www2.conf )
vim /etc/httpd/conf.d/www2.conf

主机 www2
[root@www1 conf.d]# cat www2.conf
<VirtualHost *:80>
ServerName www2
DocumentRoot /data/vhosts/www2
ProxyRequests Off
DirectoryIndex index.PHP
ProxyPassMatch ^/(.*\.PHP)$ fcgi://172.16.66.70:9000/data/vhosts/www2/$1
<Directory "/data/vhosts/www2">
Options None
AllowOverride None
Require all granted
</Directory>
ErrorLog logs/www2-error_log
CustomLog logs/www2-access_log combien
#ServerSignature Off
</VirtualHost>

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
<?PHP
PHPinfo();
?>

3.2 httpd-->PHP--mariadb是否可以访问
www1]#cat index.PHP
<?PHP
$conn = MysqL_connect('172.16.100.71','admin','admin');
if($conn)
cho "OK";
else
echo "Failure";
?>

4.测试wordpressPHPMyAdmin

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.pemCountry Name (2 letter code) [XX]:CN State or Province Name (full name) []:BeijingCommon Name (eg,your name or your server's hostname) []:www2 1.3 提供辅助文件CA]# touch index.txtCA]# echo 01 > serial 序列号CA]# tree .├── cacert.pem├── certs├── crl├── index.txt├── newcerts├── private│ └── cakey.pem└── serial2.节点申请证书 2.1 生成私钥~]# mkdir -pv /etc/httpd/sslssl]# (umask 077; openssl genrsa -out httpd.key 1024) 2.2 生成证书签署请求:ssl]# openssl req -new -key httpd.key -out httpd.csrCountry Name (2 letter code) [XX]:CNState or Province Name (full name) []:BeijingCommon Name (eg,your name or your server's hostname) []:www2 2.3 把请求发给CAssl]# 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 <VirtualHost> 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 <Directory "/data/vhosts/www2"> SSLOptions +StdEnvVars AllowOverride None Require all granted </Directory> </VirtualHost> 第六部分:压力测试报告

相关文章

Centos下搭建性能监控Spotlight
CentOS 6.3下Strongswan搭建IPSec VPN
在CentOS6.5上安装Skype与QQ
阿里云基于centos6.5主机VPN配置
CentOS 6.3下配置multipah
CentOS安装、配置APR和tomcat-native