设为首页 收藏本站
查看: 1576|回复: 0

部署搭建分层次LAMP架构+Wordpress+phpMyAdmin+MySQL主从复制 实现高可用架构

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-2-1 08:53:44 | 显示全部楼层 |阅读模式
实验主要是基于LAMP来搭建 wordpress个人博客,实现MySQL主从复制、并且使用phpMyAdmin管理数据库。实验步骤目录:
一、准备说明
二、MySQL安装配置
三、Apache安装配置
四、PHP安装配置
五、Apache结合PHP
六、wordpress安装配置
七、phpMyAdmin安装配置
八、MySQL主从复制

一、准备说明

Linux发行版本:centos 6.7 x86_64 (三台)
HostNameIP备注
lanp192.168.0.112安装Apache+Nginx+PHP
mysql-master192.168.0.109主MySQL
mysql-slaver192.168.0.110从MySQL
MySQL 版本:mysql-5.1.73
Apache 版本:httpd-2.2.31
PHP 版本:php-5.3.27
WordPress 版本:wordpress-4.4.1
phpMyAdmin 版本: 4.0.10.14


二、MySQL安装配置

1、在mysql-master上操作

[iyunv@mysql-master ~]# cd /usr/local/src/
[iyunv@mysql-master src]# wget http://mirrors.sohu.com/mysql/My ... 6_64-glibc23.tar.gz
[iyunv@mysql-master src]# tar -zxvf mysql-5.1.73-linux-x86_64-glibc23.tar.gz
[iyunv@mysql-master src]# mv mysql-5.1.73-linux-x86_64-glibc23 /usr/local/mysql
[iyunv@mysql-master src]# cd /usr/local/mysql/
[iyunv@mysql-master mysql]# useradd -s /sbin/nologin mysql
[iyunv@mysql-master mysql]# mkdir -p /data/mysql
[iyunv@mysql-master mysql]# chown -R mysql /data/mysql
[iyunv@mysql-master mysql]# cp support-files/my-large.cnf /etc/my.cnf
[iyunv@mysql-master mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[iyunv@mysql-master mysql]# chmod 755 /etc/init.d/mysqld
[iyunv@mysql-master mysql]# vim /etc/init.d/mysqld                               //修改启动脚本
basedir=/usr/local/mysql
datadir=/data/mysql
[iyunv@mysql mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
[iyunv@mysql-master mysql]# chkconfig --add mysqld
[iyunv@mysql-master mysql]# chkconfig mysqld on
[iyunv@mysql-master mysql]# service mysqld start
Starting MySQL.. SUCCESS!
2、在mysql-slaver上操作

若不想下载MySQL安装包,可以通过scp命令直接远程拷贝主上的MySQL安装包,需在主从上都安装 openssh-clients 这个包,就可以用scp命令。
# yum install -y openssh-clients

[iyunv@mysql-slaver ~]# scp root@192.168.0.109:/usr/local/src/mysql-5.1.73-linux-x86_64-glibc23.tar.gz /usr/local/src/
后续的安装步骤同在mysql-master上操作。
3、主从MySQL都加入到环境变量中

# vim /etc/profile                                                 //末尾加入两行
PATH=$PATH:/usr/local/mysql/bin
export PATH
# source /etc/profile                                            //使修改生效
# echo $PATH                                                      //可以查看环境变量
这样我们就可以直接输入 mysql 命令进入了。



三、Apache安装配置

以下步骤在 lanp 上操作。安装之前先安装一些必要的库文件:
[iyunv@lanp ~]# yum install -y gcc zlib-devel pcre pcre-devel apr apr-devel
1、安装
[iyunv@lanp ~]# cd /usr/local/src/
[iyunv@lanp src]# tar -jxvf httpd-2.2.31.tar.bz2
[iyunv@lanp src]# cd httpd-2.2.31
[iyunv@lanp httpd-2.2.31]# ./configure \
--prefix=/usr/local/apache2 \
--with-included-apr \
--enable-so \
--enable-deflate=shared \
--enable-expires=shared \
--enable-rewrite=shared \
--with-pcre
[iyunv@lanp httpd-2.2.31]# make
[iyunv@lanp httpd-2.2.31]# make install
2、配置
[iyunv@lanp httpd-2.2.31]# vim /usr/local/apache2/conf/httpd.conf
#ServerName www.example.com:80                                    //去掉前面的注释符#,如下         
ServerName localhost:80
3、启动
[iyunv@lanp httpd-2.2.31]# /usr/local/apache2/bin/apachectl start
[iyunv@lanp httpd-2.2.31]# netstat -lnp |grep httpd
tcp        0      0 :::80           :::*           LIST          EN      1609/httpd


四、PHP安装配置

以下步骤在 lanp 上操作。
1、安装一些必需的库文件
[iyunv@lanp ~]# yum install -y libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers libtool libtool-ltdl-devel
[iyunv@lanp ~]# rpm -ivh "http://www.aminglinux.com/bbs/data/attachment/forum/month_1211/epel-release-6-7.noarch.rpm"
[iyunv@lanp ~]# yum install -y libmcrypt-devel
1、安装PHP
[iyunv@lanp httpd-2.2.31]# cd /usr/local/src/
[iyunv@lanp src]# wget http://mirrors.sohu.com/php/php-5.3.27.tar.gz
[iyunv@lanp src]# tar -zxvf php-5.3.27.tar.gz
[iyunv@lanp src]# cd php-5.3.27
[iyunv@lanp php-5.3.27]# ./configure \
--prefix=/usr/local/php \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-config-file-path=/usr/local/php/etc  \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-libxml-dir \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-iconv-dir \
--with-zlib-dir \
--with-bz2 \
--with-openssl \
--with-mcrypt \
--enable-soap \
--enable-gd-native-ttf \
--enable-mbstring \
--enable-sockets \
--enable-exif \
--disable-ipv6
注意:这里使用了 php 自带的 mysql 驱动程序 "mysqlnd"
[iyunv@lanp php-5.3.27]# make
[iyunv@lanp php-5.3.27]# make install
[iyunv@lanp php-5.3.27]# cp php.ini-production /usr/local/php/etc/php.ini

五、Apache结合PHP

以下步骤在 lanp 上操作
1、编辑Apache配置文件
[iyunv@lanp ~]# vim /usr/local/apache2/conf/httpd.conf
①首先找到:
AddType application/x-gzip .gz .tgz                                //在其下面增加如下一行:
AddType application/x-httpd-php .php
②再找到:
<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>
更改为:
<IfModule dir_module>
    DirectoryIndex index.html index.htm index.php
</IfModule>
2、重启服务
[iyunv@lanp ~]# /usr/local/apache2/bin/apachectl -t
Syntax OK
[iyunv@lanp ~]# /usr/local/apache2/bin/apachectl restart
3、测试
[iyunv@lanp ~]# vim /usr/local/apache2/htdocs/info.php
<?php
phpinfo();
?>
保存脚本后用浏览器输入 http://192.168.0.112/info.php 测试,如下图所示
QQ截图20160201085121.png


六、wordpress安装配置

1、下载解压wordpress
[iyunv@lanp ~]# cd /usr/local/src/
[iyunv@lanp src]# tar -zxvf wordpress-4.4.1-zh_CN.tar.gz
[iyunv@lanp src]# mkdir -p /data/web
[iyunv@lanp src]# mv wordpress /data/web/blog
2、配置虚拟主机
①开放虚拟主机配置文件
[iyunv@lanp blog]# vim /usr/local/apache2/conf/httpd.conf
#Include conf/extra/httpd-vhosts.conf            //去掉#号,如下

Include conf/extra/httpd-vhosts.conf
②编辑虚拟主机
[iyunv@lanp blog]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
    DocumentRoot "/data/web/blog"
    ServerName  blog.test.com
</VirtualHost>
③打开80端口
[iyunv@lanp blog]# vim /usr/local/apache2/conf/httpd.conf
<Directory />
   Options FollowSymLinks
   AllowOverride None
   Order deny,allow
   Deny from all
</Directory>
改为:
<Directory />
   Options FollowSymLinks
   AllowOverride all
   Order deny,allow
   Allow from all
</Directory>
保存退出后检测配置是否正确,并重启Apache服务:

[iyunv@lanp blog]# /usr/local/apache2/bin/apachectl -t
Syntax OK
[iyunv@lanp blog]# /usr/local/apache2/bin/apachectl restart

3、新建数据库(在mysql-master(0.109)机器上)
[iyunv@mysql-master ~]# mysql
mysql> create database blog;
mysql> grant all on blog.* to 'tpp'@'192.168.0.112' identified by '123456';
mysql> flush privileges;

4、安装wordpress
首先找到本机 C:\Windows\System32\drivers\etc 下的hosts文件,添加下面内容后保存退出。
192.168.0.112  blog.test.com pma.test.com
再用浏览器输入网址  blog.test.com 会出现以下安装界面
QQ截图20160201085130.png
点击“现在就开始”

QQ截图20160201085147.png
注意:提交后提示不能写入wp-config.php文件,需我们手工创建这个文件:
[iyunv@lanp blog]# vim wp-config.php        //将提示信息贴入其中
完成之后,点击"进行安装";最后进入欢迎页面,填入相应信息后点击安装即可。首页如下:
QQ截图20160201085159.png
注意:当我们在WordPress博客里面添加图片附件时会报一个错误:”无法建立目录wp-content/uploads/2016/01。有没有上级目录的写权限?“。这时查看wp-content文件夹权限为755,我们将其改为777,上传图片会提示成功,问题解决!而后再将wp-content文件夹属性权限改为755即可,保证文件安全!
操作如下:

[iyunv@lanp pma]# cd /data/web/blog/
[iyunv@lanp blog]# chmod 777 wp-content
[iyunv@lanp blog]# chmod 755 wp-content


七、phpMyAdmin安装配置

官方下载地址:http://www.phpmyadmin.net/downloads/
1、下载解压
[iyunv@lanp blog]# cd /usr/local/src/
[iyunv@lanp src]# wget https://files.phpmyadmin.net/php ... ll-languages.tar.gz
[iyunv@lanp src]# tar -zxvf phpMyAdmin-4.0.10.14-all-languages.tar.gz

[iyunv@lanp src]# mv phpMyAdmin-4.0.10.14-all-languages /data/web/pma
[iyunv@lanp src]# cd /data/web/pma/
2、修改配置文件
[iyunv@lanp pma]# cp libraries/config.default.php config.inc.php
[iyunv@lanp pma]# vim config.inc.php
$cfg['Servers'][$i]['host'] = '192.168.0.109';                //数据库IP地址
$cfg['Servers'][$i]['auth_type'] = 'config';                   //认证模式
$cfg['Servers'][$i]['user'] = 'tpp';                                //数据库用户
$cfg['Servers'][$i]['password'] = '123456';
3、增加虚拟主机
[iyunv@lanp pma]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf       //末尾增加
<VirtualHost *:80>
    DocumentRoot "/data/web/pma"
    ServerName pma.test.com
</VirtualHost>
[iyunv@lanp pma]# /usr/local/apache2/bin/apachectl -t
Syntax OK
[iyunv@lanp pma]# /usr/local/apache2/bin/apachectl restart
4、phpMyAdmin主界面
浏览器输入 http://pma.test.com 就可以看到如下主界面
QQ截图20160201085211.png


八、MySQL主从复制


步骤详细解释说明可见我之前的文章:

1、查看blog库
mysql> show databases;
mysql> use blog;
mysql> show tables;
QQ截图20160201085219.png
2、在mysql-master上操作

[iyunv@mysql-master ~]# vim /etc/my.cnf           //在[mysqld]段添加以下内容
server-id = 1                     
log-bin = mysql-bin   
max_binlog_size = 500M               
binlog_cache_size = 128K      
binlog-do-db = blog           
log-slave-updates         
expire_logs_day = 2         
binlog_format = mixed
注意:binlog-do-db = blog,定义需要同步的数据库名字,如果是多个库,以逗号隔开;也可以设置黑名单。

重启 mysqld 服务
[iyunv@mysql-master ~]# /etc/init.d/mysqld restart
Shutting down MySQL... SUCCESS!
Starting MySQL. SUCCESS!

再添加一个用于主从同步的用户:repl,密码为:123456

[iyunv@mysql-master ~]# mysql
mysql> grant replication slave on *.* to 'repl'@'192.168.0.110' identified by '123456';
mysql> flush privileges;                                   //刷新权限

mysql> flush tables with read lock;                 //锁死表读,防止主库再写数据

mysql> show master status;                            //查看状态,待会儿要用这个参数

QQ截图20160201085229.png

最后备份 blog 库

[iyunv@mysql-master ~]# mysqldump blog > /data/blog.sql

3、在mysql-slaver上操作
先从主上拷贝备份的 blog 库
[iyunv@mysql-slaver ~]# scp root@192.168.0.109:/data/blog.sql /data/
创建和主数据库一样的 blog库
[iyunv@mysql-slaver ~]# mysql -e "create database blog"
[iyunv@mysql-slaver ~]# mysql blog < /data/blog.sql
修改配置文件
[iyunv@mysql-slaver ~]# vim /etc/my.cnf                            //在[mysqld]段修改添加以下地方
server-id = 2
master-host=192.168.0.109
master-user=repl
master-password=123456
master-port=3306
master-connect-retry=30                                                   //控制重试间隔,默认为60秒
slave-skip-errors=1062                                                      //忽略错误,1062为主键重复错误
replicate-do-db = blog
slave-skip-errors=1007,1008,1053,1062,1213,1158,1159 //忽略一些其他错误,不影响数据库完整性
重启 mysqld 服务
[iyunv@mysql-slaver ~]# /etc/init.d/mysqld restart
Shutting down MySQL.. SUCCESS!
Starting MySQL. SUCCESS!
同步数据库

[iyunv@mysql-slaver ~]# mysql
mysql> slave stop;
mysql> change master to master_host='192.168.0.109',master_port=3306,master_user='repl',master_password='123456',master_log_file='mysql-bin.000010',master_log_pos=343;
mysql> slave start;

查看从的状态
mysql> show slave status\G;
QQ截图20160201085238.png 注意:当看到 Slave_IO_Running 和 Slave_SQL_Running 参数都为 Yes 时,表示主从配置成功。若为No,很有可能就是授权主从同步的用户、密码或者IP哪个不对;没有关闭防火墙,也会导致这个问题。

4、测试主从是否同步
首先在主数据库上解锁,并创建一个表:test_tb
[iyunv@mysql-master ~]# mysql
mysql>UNLOCK TABLES;
mysql> use blog;
mysql> create table test_tb (`id` int(4), `name` char(20)) ENGINE=MySIAM DEFAULT CHARSET=gbk;

然后在从数据库上查看
[iyunv@mysql-slaver ~]# mysql
mysql> use blog;
mysql> show tables;
QQ截图20160201085247.png
从上图可知主从配置测试成功。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-172101-1-1.html 上篇帖子: Linux之LAMP搭建 下篇帖子: 搭建LNMP架构
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表