实验拓扑图如下
实验环境如下
实验环境如下
所有主机的防火墙要关闭
后面用到的所有软件包,都在这里了
链接:https://pan.baidu.com/s/1L7j55GvLEuYLFQ1HTWLD8w
提取码:rgi1
一.首先配置后端mysql
关于安装这里不阐述,直接进行MHA配置
在sqlmaster,sqlsalve1,sqlslave2,主机操作,注意看我这前面的主机名,关于在哪个主机上操作,我就不阐述了
1)配置免密登陆
master
[root@sqlmaster ~]# ssh-keygen -t rsa
[root@sqlmaster ~]# ssh-copy-id 192.168.1.11
[root@sqlmaster ~]# ssh-copy-id 192.168.1.12
[root@sqlmaster ~]# ssh-copy-id 192.168.1.13
slave1
[root@sqlslave1 ~]# ssh-keygen -t rsa
[root@sqlslave1 ~]# ssh-copy-id 192.168.1.11
[root@sqlslave1 ~]# ssh-copy-id 192.168.1.12
[root@sqlslave1 ~]# ssh-copy-id 192.168.1.13
slave2
[root@sqlslave2 ~]# ssh-keygen -t rsa
[root@sqlslave2 ~]# ssh-copy-id 192.168.1.11
[root@sqlslave2 ~]# ssh-copy-id 192.168.1.12
[root@sqlslave2 ~]# ssh-copy-id 192.168.1.13
2)上传节点软件包并安装
master
[root@sqlmaster ~]# mkdir mha
[root@sqlmaster mha]# tar -zxvf mhapath.tar.gz -C /root
[root@sqlmaster mha]# vim /etc/yum.repos.d/centos7.repo
[centos]
name=centos7
baseurl=file:///mnt
enabled=1
gpgcheck=0
[mha]
name=mha
baseurl=file:///root/mhapath
enabled=1
gpgcheck=0
[root@sqlmaster mha]# mount /dev/cdrom /mnt/
[root@sqlmaster mha]# yum -y install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager --skip-broken --nogpgcheck
[root@sqlmaster mha]# rpm -ivh mha4mysql-node-0.57-0.el7.noarch.rpm
给slave节点传过去,也安装上MHA软件
[root@sqlmaster ~]# scp -r /etc/yum.repos.d/* 192.168.1.12:/etc/yum.repos.d/
[root@sqlmaster ~]# scp -r /etc/yum.repos.d/* 192.168.1.13:/etc/yum.repos.d/
[root@sqlmaster ~]# scp -r /root/mha/mha4mysql-node-0.57-0.el7.noarch.rpm 192.168.1.12:/root
[root@sqlmaster ~]# scp -r /root/mha/mha4mysql-node-0.57-0.el7.noarch.rpm 192.168.1.13:/root
[root@sqlmaster ~]# scp -rf mhapath 192.168.1.12:/root
[root@sqlmaster ~]# scp -r mhapath 192.168.1.13:/root
slave1中
[root@sqlslave1 ~]# mount /dev/cdrom /mnt/
[root@sqlslave1 ~]# yum -y install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager --skip-broken --nogpgcheck
[root@sqlslave1 ~]# rpm -ivh /root/mha4mysql-node-0.57-0.el7.noarch.rpm
slave2中
[root@sqlsalve2 ~]# mount /dev/cdrom /mnt/
[root@sqlsalve2 ~]# yum -y install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager --skip-broken --nogpgcheck
[root@sqlsalve2 ~]# rpm -ivh /root/mha4mysql-node-0.57-0.el7.noarch.rpm
3)安装管理节点
安装一下MHA manager管理节点,我这是在master上安装的
master中
[root@sqlmaster ~]# yum install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker perl-CPAN -y
[root@sqlmaster ~]# rpm -ivh /root/mha/mha4mysql-manager-0.57-0.el7.noarch.rpm
4)主从配置
master中
[root@sqlmaster ~]# vim /etc/my.cnf 添加如下两句
log-bin=mysql-bin-master
server-id=1
[root@sqlmaster ~]# systemctl restart mysqld
授权
[root@sqlmaster ~]# mysql -uroot -p123456
mysql> grant replication slave on *.* to repl@'192.168.1.%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> grant all privileges on *.* to 'root'@'192.168.1.%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
slave1中
[root@sqlslave1 ~]# vim /etc/my.cnf
添加
log-bin=mysql-salve1
server-id=2
log_slave_updates=1
[root@sqlslave1 ~]# systemctl restart mysqld
授权
[root@sqlslave1 ~]# mysql -uroot -p123456
mysql> grant replication slave on *.* to 'repl'@'192.168.1.%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> grant all privileges on *.* to 'root'@'192.168.1.%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
建立主从
mysql> change master to master_host='192.168.1.11',master_user='repl',master_password='123456';
Query OK, 0 rows affected, 2 warnings (0.21 sec)
mysql> start slave;
Query OK, 0 rows affected (0.01 sec)
mysql> show slave status\G;
...
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
...
slave2中
[root@sqlsalve2 ~]# vim /etc/my.cnf
添加
log-bin=mysql-slave2
server-id=3
log_slave_updates=1
[root@sqlsalve2 ~]# systemctl restart mysqld
授权
[root@sqlsalve2 ~]# mysql -uroot -p123456
mysql> grant replication slave on *.* to 'repl'@'192.168.1.%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> grant all privileges on *.* to 'root'@'192.168.1.%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.04 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.15 sec)
主从关系
mysql> change master to master_host='192.168.1.11',master_user='repl',master_password='123456';
Query OK, 0 rows affected, 2 warnings (0.07 sec)
mysql> start slave;
Query OK, 0 rows affected (0.08 sec)
mysql> show slave status\G
...
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
...
5)两台slave设置临时只读
[root@sqlslave1 ~]# mysql -uroot -p123456 -e 'set global read_only=1’
[root@sqlsalve2 ~]# mysql -uroot -p123456 -e 'set global read_only=1’
6)MHA设置
master(MHA manager)中
[root@sqlmaster ~]# mkdir -p /etc/masterha
[root@sqlmaster ~]# mkdir -p /var/log/masterha/app1
[root@sqlmaster ~]# vim /etc/masterha/app1.cnf
[server default]
manager_workdir=/var/log/masterha/app1
manager_log=/var/log/masterha/app1/manager.log
master_binlog_dir=/data/mysql/data
user=root
password=123456
ping_interval=1
remote_workdir=/tmp
repl_user=repl
repl_password=123456
ssh_user=root
[server1]
hostname=192.168.1.11
port=3306
[server2]
hostname=192.168.1.12
port=3306
candidate_master=1
check_repl_delay=0
[server3]
hostname=192.168.1.13
port=3306
在slave1和slave2中,设置不自动清除中继日志
[root@sqlslave1 ~]# mysql -uroot -p123456 -e 'set global relay_log_purge=0’
[root@sqlsalve2 ~]# mysql -uroot -p123456 -e 'set global relay_log_purge=0’
7)检测群集状态
master(MHA manager)中
SSH检测
[root@sqlmaster ~]# masterha_check_ssh --conf=/etc/masterha/app1.cnf
环境检测
[root@sqlmaster ~]# masterha_check_repl --conf=/etc/masterha/app1.cnf
8)配置VIP地址
master(MHAmanager)中
[root@sqlmaster ~]# ifconfig ens33:1 192.168.1.99 netmask 255.255.255.0 up
[root@sqlmaster ~]# ifconfig
...
ens33:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.99 netmask 255.255.255.0 broadcast 192.168.1.255
ether 00:0c:29:ea:b3:4d txqueuelen 1000 (Ethernet)
修改配置文件,支持VIP
添加下面句话,在[server default]段中
master_ip_failover_script=/usr/bin/master_ip_failover
如下
[server default]
manager_workdir=/var/log/masterha/app1
manager_log=/var/log/masterha/app1/manager.log
master_binlog_dir=/data/mysql/data
user=root
password=123456
ping_interval=1
remote_workdir=/tmp
repl_user=repl
repl_password=123456
ssh_user=root
master_ip_failover_script=/usr/bin/master_ip_failover
[server1]
hostname=192.168.1.11
port=3306
[server2]
hostname=192.168.1.12
port=3306
candidate_master=1
check_repl_delay=0
[server3]
hostname=192.168.1.13
port=3306
编写VIP自动切换脚本
[root@sqlmaster ~]# vim /usr/bin/master_ip_failover
#!/usr/bin/env perl
use strict;
use warnings FATAL => 'all';
use Getopt::Long;
my (
$command, $ssh_user, $orig_master_host, $orig_master_ip,
$orig_master_port, $new_master_host, $new_master_ip, $new_master_port
);
my $vip = '192.168.1.99/24';
my $key = '1';
my $ssh_start_vip = "/sbin/ifconfig ens33:$key $vip";
my $ssh_stop_vip = "/sbin/ifconfig ens33:$key down";
GetOptions(
'command=s' => \$command,
'ssh_user=s' => \$ssh_user,
'orig_master_host=s' => \$orig_master_host,
'orig_master_ip=s' => \$orig_master_ip,
'orig_master_port=i' => \$orig_master_port,
'new_master_host=s' => \$new_master_host,
'new_master_ip=s' => \$new_master_ip,
'new_master_port=i' => \$new_master_port,
);
exit &main();
sub main {
print "\n\nIN SCRIPT TEST====$ssh_stop_vip==$ssh_start_vip===\n\n";
if ( $command eq "stop" || $command eq "stopssh" ) {
my $exit_code = 1;
eval {
print "Disabling the VIP on old master: $orig_master_host \n";
&stop_vip();
$exit_code = 0;
};
if ($@) {
warn "Got Error: $@\n";
exit $exit_code;
}
exit $exit_code;
}
elsif ( $command eq "start" ) {
my $exit_code = 10;
eval {
给与执行权限
[root@sqlmaster ~]# chmod +x /usr/bin/master_ip_failover
再次检测,结果应该和上面检测结果一样才对
[root@sqlmaster ~]# masterha_check_repl --conf=/etc/masterha/app1.cnf
9)开启监控
运行如下指令,然后回车
nohup masterha_manager --conf=/etc/masterha/app1.cnf \
--remove_dead_master_conf --ignore_last_failover < /dev/null > \
/var/log/masterha/app1/manager.log 2>&1 &
查看状态,如下是成功
[root@sqlmaster ~]# masterha_check_status --conf=/etc/masterha/app1.cnf
app1 (pid:5326) is running(0:PING_OK), master:192.168.1.11
看一下日志
[root@sqlmaster ~]# cat /var/log/masterha/app1/manager.log
二.配置中间的Web服务器
下面都是Web1上的配置
1)安装并启动apache
[root@web1 ~]# tar -zxvf httpd-2.4.38.tar.gz
[root@apache ~]# yum -y install gcc gcc-c++ apr apr-devel cyrus-sasl-devel expat-devel libdb-devel openldap-devel apr-util-devel apr-util pcre-devel pcre openssl*
[root@web1 ~]# cd httpd-2.4.38/
[root@web1 httpd-2.4.38]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi --enable-ssl --enable-mpms-shared=all
[[email protected]]# make && make install
[root@web1~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/apache
[root@web1 ~]# vim /etc/init.d/apache
在第一行后添加两行内容,如下#号也要写上,注意格式要一致,空格都要一致,不然会报错
#chkconfig: 2345 11 88
# despriction:httpd apache server
[root@web1 ~]# chkconfig --add apache
[root@web1 ~]# vim /usr/local/httpd/conf/httpd.conf
我这里主机名是web1你们写你们的主机名即可,然后保存退出即可
[root@web1 ~]# /etc/init.d/apache start
[root@web1 ~]# netstat -anpt | grep 80
tcp6 0 0 :::80 :::* LISTEN 50482/httpd
2)安装PHP
PHP的作用是用来连接后端的mysql,mysql返回数据后,PHP进行运算返回客户端动态页面
libmcrypt-2.5.7:是PHP的依赖包,因为系统的yum没有这个安装包,这里安装上就行了
[root@web1 ~]# tar zxvf libmcrypt-2.5.7.tar.gz
[root@web1 ~]# cd libmcrypt-2.5.7/
[root@web1 libmcrypt-2.5.7]# ./configure --prefix=/usr/local/libmcrypt && make && make install
[root@web1 ~]# mount /dev/cdrom /mnt/
[root@web1 ~]# yum -y install php-mcrypt libmcrypt libmcrypt-devel autoconf freetype gd libmcrypt libpng libpng-devel libjpeg libxml2 libxml2-devel zlib curl curl-devel re2c libmcrypt-devel freetype-devel libjpeg-devel bzip2-devel
[root@web1 ~]# tar -zxvf /root/php-5.6.36.tar.gz -C /usr/local/src/
[root@web1 php-5.6.36]# ./configure --prefix=/usr/local/php5.6 --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-fpm --enable-sockets --enable-sysvshm --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --with-mhash --with-mcrypt=/usr/local/libmcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/usr/local/php5.6/etc/ --with-bz2 --enable-maintainer-zts --with-apxs2=/usr/local/httpd/bin/apxs
这里解释几个重要的参数
--with-mysql=mysqlnd
--with-pdo-mysql=mysqlnd
--with-mysqli=mysqlnd
上面这三个选项的作用是,后端数据库不和PHP在一台服务器上,需要添加这项项,就是连接数据库驱动
--with-apxs2
:必须添加这项,表示把PHP作为apache的一个模块使用,apache的所有功能,都是模块的形式体现
--with-config-file-path=/usr/local/php5.6/etc
:配置文件存放路径
没有提到的参数不是很重要,但最好也都加上,以防止后面要使用
[root@web1 php-5.6.36]# make && make install
[root@web1 php-5.6.36]# cp php.ini-production /usr/local/php5.6/etc/php.ini
3)配置PHP,测试后端数据库VIP
让Apache支持PHP,
添加两处,下面第一处
第二处,添加这句
AddType application/x-httpd-php .php .phtml
保存退出
[root@web1 ~]# /etc/init.d/httpd restart
创建测试页面
[root@web1 ~]# vim /usr/local/httpd/htdocs/index.php
<?php
phpinfo();
?>
[root@web1 htdocs]# /etc/init.d/httpd restart
访问http://192.168.1.14/
先去sqlmaster(主)上创建一个测试账号,也是一会discuz论坛账号
[root@sqlmaster ~]# mysql -uroot -p123456
mysql> grant all on *.* to dtest@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
回到web1中,测试连接,这里指定后端mysql的VIP就可以
[root@web1 ~]# cd /usr/local/httpd/htdocs/
[root@web1 htdocs]# vim ptest.php
<?php
$link=mysql_connect('192.168.1.99','dtest','123456');
if ($link)echo "connection success......";
mysql_close();
?>
访问测试,应该是如下页面,如果是空白页面,就说明配置有误
http://192.168.1.14/ptest.php
安装discuz论坛
discuz是开源的网址论坛软件,是国内较火的论坛软件
[root@web1 ~]# unzip Discuz_7.2_FULL_SC_UTF8.zip -d discuz
[root@web1 ~]# cd discuz/
[root@web1 discuz]# cp -r upload /usr/local/httpd/htdocs/discuz
[root@web1 ~]# vim /usr/local/php5.6/etc/php.ini
改为On
[root@web1 ~]# /etc/init.d/httpd restart
赋予权限,一会浏览器用户,使用daemon用户去安装论坛,所以要有权限
[root@web1 ~]# chown -R daemon:daemon /usr/local/httpd/htdocs/
访问
http://192.168.1.14/discuz/install/index.php
继续下一步,到我如下,按我下图填写
等待安装,到如下,跳过
下面就是配置Web2服务器
因为web1上都已经安装好了,这里直接把Web1安装好的PHP和Discuz,传给Web2
web1中
[root@web1 ~]# scp -r /usr/local/httpd/ [email protected]:/usr/local
[root@web1 ~]# scp -r /usr/local/php5.6 [email protected]:/usr/local
[root@web1 ~]# scp -r /usr/local/libmcrypt [email protected]:/usr/local/
Web2中
Web2中也需要安装一些依赖包,才可以运行
[root@web2 ~]# yum -y install gcc gcc-c++ apr apr-devel cyrus-sasl-devel expat-devel libdb-devel openldap-devel apr-util-devel apr-util pcre-devel pcre openssl*
[root@web2 ~]# yum -y install php-mcrypt libmcrypt libmcrypt-devel autoconf freetype gd libmcrypt libpng libpng-devel libjpeg libxml2 libxml2-devel zlib curl curl-devel re2c bzip2-devel libmcrypt-devel freetype-devel libjpeg-devel
[root@web2 ~]# cp /usr/local/bin/apachectl /etc/init.d/
[root@web2 ~]# /etc/init.d/httpd start
[root@web2 htdocs]# chown -R daemon:daemon /usr/local/httpd/htdocs/
访问并测试数据一致性
http://192.168.1.15/discuz/
可以访问,注册一个账号
如下
到web1的论坛中,登陆zhangsan账号,可以登陆
http://192.168.1.14/discuz/
这是因为两个discuz后端的数据库都是一个,数据都是在数据库中的,所以其中数据都是一样的
三.配置前端的Keepliave热备
kemaster中
就是keepliave,中的master主机
[root@kemaster ~]# mount /dev/cdrom /mnt/
[root@kemaster ~]# yum -y install ipvsadm keepalived
[root@kemaster ~]# cd /etc/keepalived/
[root@kemaster keepalived]# rm -rf keepalived.conf
[root@kemaster keepalived]# vim keepalived.conf
配置文件中可以有注释
global_defs { #全局配置
router_id master #LVS服务器节点名(不能相同)
}
vrrp_instance VI_1 {
state MASTER #设置热备类型(MASTER为主,BACKUP为备)
interface ens33 #热备份接口
virtual_router_id 51 #热备份组号(必须相同)
priority 100 #优先级,主的优先级要比备的高
advert_int 1 #hello time
authentication { #密码认证
auth_type PASS #认证的类型为密码认证
auth_pass 1111
}
virtual_ipaddress { #虚拟IP
192.168.1.200
}
}
virtual_server 192.168.1.200 80 { #创建虚拟服务器 VIP 和端口
delay_loop 6 #多长时间检测一次real server 单位为秒
lb_algo rr #调度算法,rr代表轮询
lb_kind DR #集群工作模式
persistence_timeout 0 #健康监测时间,设置0为不检测
protocol TCP 使用为TCP协议
real_server 192.168.1.14 80 { #添加真实服务器和端口
weight 1 #分配权重
TCP_CHECK { #检测模块,为TCP连接
connect_port 80 #检测端口
connect_timeout 3 #连接超时时间
nb_get_retry 3 #重试次数
delay_before_retry 3 #重试间隔时间
}
}
real_server 192.168.1.15 80 { #添加真实服务器和端口
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
keslave中
[root@keslave ~]# yum -y install keepalived ipvsadm
[root@keslave ~]# cd /etc/keepalived/
[root@keslave keepalived]# rm -rf keepalived.conf
[root@keslave keepalived]# vim keepalived.conf
lobal_defs {
router_id slave
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.200
}
}
virtual_server 192.168.1.200 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 0
protocol TCP
real_server 192.168.1.14 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.1.15 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
两台都启动keepalived
[root@kemaster ~]# systemctl restart keepalived
[root@keslave keepalived]# systemctl restart keepalived
去到kemaster查看VIP地址
配置Web节点,内核参数
Web1
[root@web1 ~]# vim /root/vip.sh
#!/bin/sh
VIP=192.168.1.200
case $1 in
start)
ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
/sbin/route add -host $VIP dev lo:0
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p >/dev/null 2>&1
echo "RealServer Start OK"
exit 0
;;
stop)
ifconfig lo:0 down
route del $VIP >/dev/null 2>&1
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "RealServer Stoped OK"
exit 1
;;
*)
echo "Usage: $0 {start|stop}"
;;
esac
[root@web1 ~]# chmod +x /root/vip.sh
[root@web1 ~]# cd /root/
[root@web1 ~]# ./vip.sh start
Web2
Web2同这个web1操作一样,复制脚本内容,赋予权限并执行,这里不演示了
四.访问测试
通过VIP的地址访问Discuz论坛,成功
测试和后端mysql通信
右上角登陆,登陆刚刚创建的 zhangsan 用户,可以登陆上去
通过查看日志,来查看是否轮询
web1
[root@web1 ~]# tail -f /usr/local/httpd/logs/access_log
web2
[root@web2 ~]# tail -f /usr/local/httpd/logs/access_log
只要刷新页面一次,那个符号应该在web1和web2中变动,表示那个终端有变动
当然也可以观察,配置文件,访问一次肯定只有一个Web有日志产生,就是那个GET请求
五.故障切换keepaliaved和MHA
关闭后端mysql的当前master,关闭当前keepalived主
[root@sqlmaster ~]# systemctl stop mysqld
[root@kemaster ~]# systemctl stop keepalived
KeepalivedVIP漂移了
MHA也已经转换
[root@sqlmaster ~]# tail -n20 /var/log/masterha/app1/manager.log
另外如果MHA老是切换失败,可以先关闭监控再打开,命令如下
关闭
[root@sqlmaster ~]# masterha_stop --conf=/etc/masterha/app1.cnf
开启MHA监控
nohup masterha_manager --conf=/etc/masterha/app1.cnf \
--remove_dead_master_conf --ignore_last_failover < /dev/null > \
/var/log/masterha/app1/manager.log 2>&1 &
访问测试
新打开一个网页访问http://192.168.1.200/discuz/,使用用户zhangsan登陆,可以登陆即可