部署搭建分层次LAMP架构+Wordpress+phpMyAdmin+MySQL主从复制

  1. 云栖社区>
  2. 博客>
  3. 正文

部署搭建分层次LAMP架构+Wordpress+phpMyAdmin+MySQL主从复制

技术小胖子 2017-11-15 18:37:00 浏览1261
展开阅读全文

    实验主要是基于LAMP来搭建 wordpress个人博客,实现MySQL主从复制、并且使用phpMyAdmin管理数据库。

实验步骤目录:

一、准备说明

二、MySQL安装配置

三、Apache安装配置

四、PHP安装配置

五、Apache结合PHP

六、wordpress安装配置

七、phpMyAdmin安装配置

八、MySQL主从复制

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

LAMP环境搭建:http://msiyuetian.blog.51cto.com/8637744/1688019

MySQL主从配置:http://msiyuetian.blog.51cto.com/8637744/1697288


一、准备说明


Linux发行版本:centos 6.7 x86_64 (三台)

HostName IP 备注
lanp 192.168.0.112 安装Apache+PHP
mysql-master 192.168.0.109 主MySQL
mysql-slaver 192.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上操作

[root@mysql-master ~]# cd /usr/local/src/

[root@mysql-master src]# wget http://mirrors.sohu.com/mysql/MySQL-5.1/mysql-5.1.73-linux-x86_64-glibc23.tar.gz

[root@mysql-master src]# tar -zxvf mysql-5.1.73-linux-x86_64-glibc23.tar.gz

[root@mysql-master src]# mv mysql-5.1.73-linux-x86_64-glibc23 /usr/local/mysql

[root@mysql-master src]# cd /usr/local/mysql/

[root@mysql-master mysql]# useradd -s /sbin/nologin mysql

[root@mysql-master mysql]# mkdir -p /data/mysql

[root@mysql-master mysql]# chown -R mysql /data/mysql

[root@mysql-master mysql]# cp support-files/my-large.cnf /etc/my.cnf

[root@mysql-master mysql]# cp support-files/mysql.server /etc/init.d/mysqld

[root@mysql-master mysql]# chmod 755 /etc/init.d/mysqld

[root@mysql-master mysql]# vim /etc/init.d/mysqld                               //修改启动脚本

basedir=/usr/local/mysql

datadir=/data/mysql

[root@mysql mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

[root@mysql-master mysql]# chkconfig --add mysqld

[root@mysql-master mysql]# chkconfig mysqld on

[root@mysql-master mysql]# service mysqld start

Starting MySQL.. SUCCESS!

2、在mysql-slaver上操作

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

# yum install -y openssh-clients

[root@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 上操作。安装之前先安装一些必要的库文件:

[root@lanp ~]# yum install -y gcc zlib-devel pcre pcre-devel apr apr-devel

1、安装

[root@lanp ~]# cd /usr/local/src/

[root@lanp src]# wget http://mirrors.sohu.com/apache/httpd-2.2.31.tar.bz2

[root@lanp src]# tar -jxvf httpd-2.2.31.tar.bz2

[root@lanp src]# cd httpd-2.2.31

[root@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

[root@lanp httpd-2.2.31]# make

[root@lanp httpd-2.2.31]# make install

2、配置

[root@lanp httpd-2.2.31]# vim /usr/local/apache2/conf/httpd.conf

#ServerName www.example.com:80                                    //去掉前面的注释符#,如下          

ServerName localhost:80

3、启动

[root@lanp httpd-2.2.31]# /usr/local/apache2/bin/apachectl start

[root@lanp httpd-2.2.31]# netstat -lnp |grep httpd

tcp        0      0 :::80           :::*           LIST          EN      1609/httpd



四、PHP安装配置


以下步骤在 lanp 上操作。

1、安装一些必需的库文件

[root@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

[root@lanp ~]# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

[root@lanp ~]# yum install -y libmcrypt-devel

1、安装PHP

[root@lanp httpd-2.2.31]# cd /usr/local/src/

[root@lanp src]# wget http://mirrors.sohu.com/php/php-5.3.27.tar.gz

[root@lanp src]# tar -zxvf php-5.3.27.tar.gz

[root@lanp src]# cd php-5.3.27

[root@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"

[root@lanp php-5.3.27]# make

[root@lanp php-5.3.27]# make install

[root@lanp php-5.3.27]# cp php.ini-production /usr/local/php/etc/php.ini


五、Apache结合PHP


以下步骤在 lanp 上操作

1、编辑Apache配置文件

[root@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、重启服务

[root@lanp ~]# /usr/local/apache2/bin/apachectl -t

Syntax OK

[root@lanp ~]# /usr/local/apache2/bin/apachectl restart

3、测试
[root@lanp ~]# vim /usr/local/apache2/htdocs/info.php

<?php
phpinfo();
?>

保存脚本后用浏览器输入 http://192.168.0.112/info.php 测试,如下图所示

wKiom1apoazBjp_dAAEI93AlCn4445.png



六、wordpress安装配置


1、下载解压wordpress

[root@lanp ~]# cd /usr/local/src/

[root@lanp src]# wget https://cn.wordpress.org/wordpress-4.4.1-zh_CN.tar.gz

[root@lanp src]# tar -zxvf wordpress-4.4.1-zh_CN.tar.gz

[root@lanp src]# mkdir -p /data/web

[root@lanp src]# mv wordpress /data/web/blog

2、配置虚拟主机

①开放虚拟主机配置文件

[root@lanp blog]# vim /usr/local/apache2/conf/httpd.conf

#Include conf/extra/httpd-vhosts.conf            //去掉#号,如下

Include conf/extra/httpd-vhosts.conf

②编辑虚拟主机

[root@lanp blog]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>

    DocumentRoot "/data/web/blog"

    ServerName  blog.test.com

</VirtualHost>

③打开80端口

[root@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服务:

[root@lanp blog]# /usr/local/apache2/bin/apachectl -t

Syntax OK

[root@lanp blog]# /usr/local/apache2/bin/apachectl restart


3、新建数据库(在mysql-master(0.109)机器上)

[root@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 会出现以下安装界面

wKiom1aramrD9e8EAAEoGIkfZ8c313.png

点击“现在就开始”

wKiom1arbhzDOx5OAABVDl1mL9c759.png

注意:提交后提示不能写入wp-config.php文件,需我们手工创建这个文件:

[root@lanp blog]# vim wp-config.php        //将提示信息贴入其中

完成之后,点击"进行安装";最后进入欢迎页面,填入相应信息后点击安装即可。首页如下:

wKiom1arcHuCF9IlAACRbAHOVps369.png

注意:当我们在WordPress博客里面添加图片附件时会报一个错误:”无法建立目录wp-content/uploads/2016/01。有没有上级目录的写权限?“。这时查看wp-content文件夹权限为755,我们将其改为777,上传图片会提示成功,问题解决!而后再将wp-content文件夹属性权限改为755即可,保证文件安全!

操作如下:

[root@lanp pma]# cd /data/web/blog/

[root@lanp blog]# chmod 777 wp-content

[root@lanp blog]# chmod 755 wp-content



七、phpMyAdmin安装配置


官方下载地址:http://www.phpmyadmin.net/downloads/

1、下载解压

[root@lanp blog]# cd /usr/local/src/

[root@lanp src]# wget https://files.phpmyadmin.net/phpMyAdmin/4.0.10.14/phpMyAdmin-4.0.10.14-all-languages.tar.gz

[root@lanp src]# tar -zxvf phpMyAdmin-4.0.10.14-all-languages.tar.gz

[root@lanp src]# mv phpMyAdmin-4.0.10.14-all-languages /data/web/pma

[root@lanp src]# cd /data/web/pma/

2、修改配置文件

[root@lanp pma]# cp libraries/config.default.php config.inc.php

[root@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、增加虚拟主机

[root@lanp pma]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf       //末尾增加

<VirtualHost *:80>

    DocumentRoot "/data/web/pma"

    ServerName pma.test.com

</VirtualHost>

[root@lanp pma]# /usr/local/apache2/bin/apachectl -t

Syntax OK

[root@lanp pma]# /usr/local/apache2/bin/apachectl restart

4、phpMyAdmin主界面

浏览器输入 http://pma.test.com 就可以看到如下主界面

wKioL1areGujDHQ5AAJUduO4css557.png



八、MySQL主从复制


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

MySQL主从配置:http://msiyuetian.blog.51cto.com/8637744/1697288

1、查看blog库

mysql> show databases;

mysql> use blog;

mysql> show tables;

wKioL1asSMXSap5CAAA9aRzaFBw597.png

2、在mysql-master上操作

[root@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 服务

[root@mysql-master ~]# /etc/init.d/mysqld restart

Shutting down MySQL... SUCCESS!

Starting MySQL. SUCCESS!


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

[root@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;                            //查看状态,待会儿要用这个参数

wKiom1asaquwz-l_AAAglaTroAA986.png


最后备份 blog 库

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


3、在mysql-slaver上操作

先从主上拷贝备份的 blog 库

[root@mysql-slaver ~]# scp root@192.168.0.109:/data/blog.sql /data/

创建和主数据库一样的 blog库

[root@mysql-slaver ~]# mysql -e "create database blog"

[root@mysql-slaver ~]# mysql blog < /data/blog.sql

修改配置文件

[root@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 服务

[root@mysql-slaver ~]# /etc/init.d/mysqld restart

Shutting down MySQL.. SUCCESS!

Starting MySQL. SUCCESS!

同步数据库

[root@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;

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


4、测试主从是否同步

首先在主数据库上解锁,并创建一个表:test_tb

[root@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;


然后在从数据库上查看

[root@mysql-slaver ~]# mysql

mysql> use blog;

mysql> show tables;

wKiom1ascXKQDpZ1AAAoMtI0MKM252.png

从上图可知主从配置测试成功。






      本文转自 M四月天 51CTO博客,原文链接:http://blog.51cto.com/msiyuetian/1740236,如需转载请自行联系原作者



网友评论

登录后评论
0/500
评论
技术小胖子
+ 关注