虚拟实验:
实验前准备:
七台主机:192.168.189.151 192.168.189.152 192.168.189.153 192.168.189.154 192.168.189.163 192.168.189.165 192.168.189.166 同时按照当前IP顺序 以【1-7】来识别 后续只写数字
(禁用防火墙,关闭selinux, 时间同步) yum源 epel 源 各种配置
第七台主机【7】编译安装mysql 5.6.34版本 :解压缩生成三个文件
#cat my.cnf
[mysqld]
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
datadir=/data/mysql
innodb_file_per_table=1
[client]
port=3306
socket=/var/lib/mysql/mysql.sock
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/tmp/mysql.sock
安装执行脚本 # cat mysql-install.sh
#!/bin/bash
DIR=`pwd`
NAME="mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz"
FULL_NAME=${DIR}/${NAME}
DATA_DIR="/data/mysql"
yum install vim gcc gcc-c++ wget autoconf net-tools lrzsz iotop lsof iotop bash-completion -y
yum install curl policycoreutils openssh-server openssh-clients postfix -y
if [ -f ${FULL_NAME} ];then
echo "安装文件存在"
else
echo "安装文件不存在"
exit 3
fi
if [ -h /usr/local/mysql ];then
echo "Mysql 已经安装"
exit 3
else
tar xvf ${FULL_NAME} -C /usr/local/src
ln -sv /usr/local/src/mysql-5.6.34-linux-glibc2.5-x86_64 /usr/local/mysql
if id mysql;then
echo "mysql 用户已经存在,跳过创建用户过程"
fi
useradd mysql -s /sbin/nologin
if id mysql;then
chown -R mysql.mysql /usr/local/mysql/* -R
if [ ! -d /data/mysql ];then
mkdir -pv /data/mysql && chown -R mysql.mysql /data -R
/usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql/
cp /usr/local/src/mysql-5.6.34-linux-glibc2.5-x86_64/support-files/mysql.server /etc/init.d/mysqld
chmod a+x /etc/init.d/mysqld
cp ${DIR}/my.cnf /etc/my.cnf
ln -sv /usr/local/mysql/bin/mysql /usr/bin/mysql
/etc/init.d/mysqld start
else
echo "MySQL数据目录已经存在,"
exit 3
fi
fi
fi
可直接执行此脚本进行安装 直接执行:bash mysql-install.sh
可直接登陆 :创建数据库:授权账号:
mysql> CREATE DATABASE wordpress;
mysql> GRANT ALL PRIVILEGES ON wordpress.* TO "wordpress"@"192.168.189.%" IDENTIFIED BY "123";
安装nfs-utils 并编写 实现远程文件共享
vim /etc/exports
/data/wordpress *(rw,no_root_squash)
启动#:systemctl start nfs
切换第五台主机【5】 第六台主机【6】
yum mysql nfs-utils
远程登陆第七台主机数据库
# mysql -uwordpress -p123 -h192.168.189.166
启动nfs 查看可否远程共享目录
showmount -e 192.168.189.166
实验第六台主机可否挂载第七台主机
# mount -t nfs 192.168.189.166:/data/wordpress /mnt/
在第五台主机【5】第六主机【6】编译编译安装 (nginx) (php)
切入cd /usr/local/src 将准备好的nginx放在此目录下
解压# tar -xvf nginx-1.16.1.tar.gz
切入nginx-1.16.1 目录 实行源码编译
./configure --prefix=/apps/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre \
--with-stream \
--with-stream_ssl_module \
--with-stream_realip_module
# make && make install
# chown nginx.nginx -R /apps/nginx
创建账户 useradd -r -s /sbin/nologinn nginx
安装 php 过程
先安装php所需的环境
yum -y install wget vim pcre pcre-devel openssl openssl-devel libicu- devel gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype
freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc
glibc-devel glib2 glib2- devel ncurses ncurses-devel curl curl-devel krb5-devel
libidn libidn-devel openldap openldap-devel nss_ldap jemalloc-devel cmake boost-devel bison automake libevent libevent-devel gd gd-devel libtool* libmcrypt
libmcrypt-devel mcrypt mhash libxslt libxslt-devel readline readline-devel gmp gmp-devel libcurl libcurl-devel openjpeg- devel
解压缩 :tar -xvf php-7.2.21.tar.gz
切入php-7.2.21目录
./configure \
--prefix=/apps/php \
--with-config-file-path=/apps/php/etc \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--with-mysqli \
--with-pdo-mysql \
--with-libdir=lib64 \
--with-iconv-dir \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--enable-mbstring \
--with-mcrypt \
--enable-ftp \
--with-gd \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--without-pear \
--with-gettext \
--disable-fileinfo \
--enable-maintainer-zts
make -j 2
make install
创建账户:useradd www -s /sbin/nologin -u 1001
创建 :mkdir /data/nginx/wordpress 测试页
切入/apps/php/etc/ 修改此文件目录
cd /apps/php/etc/php-fpm.d/
拷贝此文件到只当目录并且改名
cp /usr/local/src/php-7.2.21/php.ini-production /apps/php/etc/php.ini
测试 /apps/php/sbin/php-fpm -t 是否错误
#:启动 /apps/php/sbin/php-fpm -c /apps/php/etc/php.ini
```查看主机 9000 端口
修改第五台主机 nginx配置文件
vim /apps/nginx/conf/nginx.conf
使其指向/data/nginx/wordpress/
切入/data/nginx/wordpress/ 创建index.php文件
<?php
phpinfo();
? >
使用浏览器 192.168.189.163/index.php 测试是某成功:下图为php成功页面
接下来在第六台主机和第五台主机导入wordpress (【5】【6】)
#cd /data/nginx/wordpress
导入worpress到此目录
#unzip wordpress-5.2.2-zh_CN.zip
移动无关目录到另一个文件下:
#mv wordpress wordpress-5.2.2-zh_CN.zip /opt/
修改此文件名去除 sample
cp wp-config-sample.php wp-config.php
编辑 wp-config.php 修改数据库名 用户名称 数据库密码 数据库主机IP
找到此配置文件下
上放配置注释:https://api.wordpress.org/secret-key/1.1/salt/
此网站在浏览器打开会生成i相对应的配置加密密码删除上图中所有行 , 网页中复制到此配置文件:
修改nginx
vim /apps/nginx/conf/nginx.conf
加入www.magedu.net
重启 nginx
在网页中打开 www.magedu.net/wp-admin/install.php
登陆进去 切换第七台主机进入数据库表
#use wordpress;
#show tables;
第三台主机和第四台主机安装 yum install keepalived haproxy
修改 keepalived.conf 配置文件
第三台主机【3】
第四台主机【4】 作为次主机还需修改
启动服务:并且设置开机启动
systemctl start keepalived
systemctl enable keepalived
查看192.168.189.248 是否配置成功
停止第三台主机keepalived服务 看第四台主机是否会 变成主 继承192.168.189.248
在第三台主机【3】配置haproxy 监听192.168.189.248 并且转发到第五台和第六台主机
vim /etc/haproxy/haproxy.cfg
删除此文件下59%后的所有行 并编辑
listen web-80
bind 192.168.189.248:80
server web1 192.168.189.163:80 check inter 3s fall 3 rise 5
server web2 192.168.189.165:80 check inter 3s fall 3 rise 5
重启该服务
systemctl start haproxy
在Windows 主机配置 hosts
192.168.189.248 www.magedu.net
访问此网站会出现
在第四台主機還需配置
vim /etc/sysctl.conf
net.ipv4.ip_nonlocal_bind = 1
重啓配置 :sysctl -p
第一台主機和第二台主機【1】【2】裝keepalived
修改第一台主機配置文件
儅存在多台主機有keepalived 時
virtual_router_id 要不同