千家信息网

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

发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,1、实验需求:1)CentOS 7, amp + xcache, rpm包,php-fpm;a) 分别深度:httpd, php, mariadb分别部署在一个单独的主机上,以及都在同一主机;b) 一
千家信息网最后更新 2025年01月22日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

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




第六部分:压力测试报告

0