部署社交网站- MYSQL主从 与 MFS 文件系统

案例概述

公司的社交网站采用PHP语言开发,为了管理PHP程序员开发的代码,上级领导要求搭建SVN服务器进行版本控制。社交网站的第一个版本部署在LNMP平台之上,前端为 Nginx服务器,通过 fastcgi协议访问后端的PHP服务器。为了保证数据安全,
要求搭建 MYSQL数据库主从集群。

社交网站项目包含用户的相册功能,允许用户上传照片,上传照片需要使用共享
存储来存放。针对共享存储可用的开源方案有很多,如MFS、 FastDFS等。公
使用MFS分布式文件系统来实现,并将MFS挂载在PHP服务器的相关目录司决定

案例实施

根据公司的需求,实施过程大致分为以下步骤

部署SVN服务器,为PHP程序员创建repo目录的访问账户,通知程序员可
以导入代码

部署 MYSQL主从服务器,根据PHP程序员的要求创建数据库与表

部署 Nginx服务器

使用keepalived对Nginx服务器做热备

部署PHP服务器

部署MFS,将MFS文件系统挂载在前端PHP服务器的相关目录下

通知上线部署人员可以发布上线。

保证数据库服务、PHP服务、 Nginx服务依次启动,并通知测试人员开始测试,
网站维护人员检查 Nginx、PHP与数据库服务器是否正常工作。

本篇将部署 MYSQL主从服务 与 MFS文件系统

MYSQL 主从服务 部署

主服务器 (IP 192.168.100.105)
从服务器 (IP 192.168.100.106)

mysql 5.7 安装

yum install ncurses ncurses-devel bison cmake -y   ##安装依赖包

useradd -s /sbin/nologin  mysql

tar zxvf mysql-5.7.17.tar.gz -C
tar zxvf boost_1_59_0.tar.gz -C /usr/local/
cd /usr/local/
mv boost_1_59_0 boost
cd mysql-5.7.17/

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql ## 指定安装目录
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock
-DSYSCONFDIR=/etc    ##指定初始化参数文件目录
-DSYSTEMD_PID_DIR=/usr/local/mysql
-DDEFAULT_CHARSET=utf8    ##指定默认字符集
-DDEFAULT_COLLATION=utf8_general_ci    #默认使用的字符集校对规则
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1
-DMYSQL_DATADIR=/usr/local/mysql/data
-DWITH_BOOST=/usr/local/boost   ##指定Boost库的位置,5.7版本必须添加
-DWITH_SYSTEMD=1

!!注意:如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧

make && make install       ##安装过程时间较长

chown -R mysql.mysql /usr/local/mysql/   ##权限设置

vi /etc/my.cnf

[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysqld]
user = mysql     ##用户
basedir = /usr/local/mysql    ##基础目录
datadir = /usr/local/mysql/data    ##数据目录
port = 3306    ##端口
character_set_server=utf8    ##服务语言设置
pid-file = /usr/local/mysql/mysqld.pid    ##pid文件位置
socket = /usr/local/mysql/mysql.sock     ##socket文件位置
server-id = 1    ##服务ID

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

chown mysql:mysql /etc/my.cnf

echo ‘PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH‘ >> /etc/profile
echo ‘export PATH‘ >> /etc/profile
source /etc/profile
## 方便使用mysql命令,设置环境变量

/usr/local/mysql/bin/mysqld
--initialize-insecure
--user=mysql
--basedir=/usr/local/mysql
--datadir=/usr/local/mysql/data
## 初始化数据库

cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/

systemctl daemon-reload

systemctl start mysqld

netstat -anpt | grep 3306
## 3306端口开启 服务开启成功

systemctl enable mysqld

mysqladmin -u root -p password "abc123"   给root账户设置密码为abc123

mysql主从复制

在主 和 从mysql服务器上
vim /etc/my.cnf

[mysqld]
binlog-ignore-db=mysql,information_schema
character_set_server=utf8
log_bin=mysql_bin
server_id=1     ## 主从服务器的 server_id 不相同
log_slave_updates=true
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=1

systemctl restart mysqld

在 主MYSQL上 为 从服务器授予权限

mysql -u root -p

grant replication slave on *.* to ‘replication‘@‘192.168.100.%‘ identified by ‘123456‘;

show master status;
+-------------------+----------+--------------+------------------+
| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| master-bin.000002 |      335 |              |                  |
+-------------------+----------+--------------+------------------+

在从服务器上

mysql -u root -p

change master to master_host=‘192.168.100.105‘,master_user=‘replication‘,master_password=‘123456‘,master_log_file=‘mysql_bin.000002‘,master_log_pos=335;

start slave;

show slave status \G;

  Slave_IO_Running: Yes
  Slave_SQL_Running: Yes
## 出现这两条YES 则说明 MYSQL主从复制完成

MFS 文件系统部署

MFS Master (IP 192.168.100.107)
MFS MetaLogger (IP 192.168.100.108)
MFS Chunk1 (IP 192.168.100.109)
MFS Chunk2 (IP 192.168.100.110)

MFS Master

yum install zlib-devel gcc gcc-c++ male -y

useradd -s /sbin/nologin mfs

tar xzvf mfs-1.6.27-5.tar.gz

cd mfs-1.6.27-5

./configure
--prefix=/usr/local/mfs  ##安装目录
--with-default-user=mfs    ##默认用户
--with-default-group=mfs    ##默认用户基本组
--disable-mfschunkserver    ##不启动节点服务器
--disable-mfsmount     ##不启动mount服务器

make && make install

cd /usr/local/mfs/etc/mfs/

cp mfsmaster.cfg.dist mfsmaster.cfg

cp mfsexports.cfg.dist mfsexports.cfg    ##挂载权限

cp mfstopology.cfg.dist mfstopology.cfg     ##架构感知

cd/usr/local/mfs/var/mfs

cp metadata.mfs.empty metadata.mfs  ##防断电

/usr/local/mfs/sbin/mfsmaster start  ##启动服务

/usr/local/mfs/sbin/mfsmaster -s ##停止服务用这条命令

MFS MetaLogger

yum install zlib-devel gcc gcc-c++ male -y

useradd -s /sbin/nologin mfs

tar xzvf mfs-1.6.27-5.tar.gz

cd mfs-1.6.27-5

./configure
--prefix=/usr/local/mfs  ##安装目录
--with-default-user=mfs    ##默认用户
--with-default-group=mfs    ##默认用户基本组
--disable-mfschunkserver    ##不启动节点服务器
--disable-mfsmount     ##不启动mount服务器

make && make install

cd /usr/local/mfs/etc/mfs/

cp mfsmetalogger.cfg.dist mfsmetalogger.cfg

vi mfsmetalogger.cfg
MASTER_HOST = 192.168.100.107

/usr/local/mfs/sbin/mfsmetalogger start  ##启动服务

/usr/local/mfs/sbin/mfsmetalogger -s  ##停止服务用这条命令

MFS Chunk

两台Chunk服务器的配置相同

yum install zlib-devel gcc gcc-c++ male -y

useradd -s /sbin/nologin mfs

tar xzvf mfs-1.6.27-5.tar.gz

cd mfs-1.6.27-5

./configure
--prefix=/usr/local/mfs  ##安装目录
--with-default-user=mfs    ##默认用户
--with-default-group=mfs    ##默认用户基本组
--disable-mfsmaster    ##不启动主服务器
--disable-mfsmount     ##不启动mount服务器

make && make install

cd /usr/local/mfs/etc/mfs/

cp mfschunkserver.cfg.dist mfschunkserver.cfg

cp mfshdd.cfg.dist mfshdd.cfg

vim mfschunkserver.cfg

MASTER_HOST = 192.168.100.107

vim mfshdd.cfg

添加一行
/data

mkdir /data
chown -R mfs:mfs /data

/usr/local/mfs/sbin/mfschunkserver start   ##启动服务

/usr/local/mfs/sbin/mfschunkserver -s     ##停止服务用这条命令

MFS 客户端

由于要将MFS 文件系统挂载到 前端PHP 服务器上 ,作为用户上传图片的存储, MFS客户端需要在PHP服务器上安装


安装FUSE,MFS客户端依赖于FUSE

tar xzvf fuse-2.9.2.tar.gz
cd fuse-2.9.2

./configure

make && make install

vi /etc/profile

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
## 设置环境变量

source /etc/profile

安装mfs客户端

yum install zlib-devel gcc gcc-c++ male -y

useradd -s /sbin/nologin mfs

tar xzvf mfs-1.6.27-5.tar.gz

cd mfs-1.6.27-5

./configure
--prefix=/usr/local/mfs  ##安装目录
--with-default-user=mfs    ##默认用户
--with-default-group=mfs    ##默认用户基本组
--disable-mfschunkserver ##不启动节点服务器
--enable-mfsmount     ##启动mount服务器

make && make install

modprobe fuse          ##加载fuse模块到内核
/usr/local/mfs/bin/mfsmount /var/www/html/webphp/uploads/photos -H 192.168.100.107   ##将MFS 文件系统 挂载到 PHP服务器上

df -hT
## 查看挂载情况

原文地址:http://blog.51cto.com/13625924/2151670

时间: 2024-10-05 06:16:22

部署社交网站- MYSQL主从 与 MFS 文件系统的相关文章

部署社交网站

项目案例:部署社交网站 前言:本次项目是搭建一套动态网站服务器平台,在上面运行社交网站(例如:人人网,开心网,天涯论坛).相关知识点在前面的课程中都有所涉及,今天的实验就是一个综合运用,体现了真实的项目实施流程和思路.本次实验有一个新的知识点,就是SVN服务器,SVN服务器可以统一存储程序员开发的代码,避免代码混乱,说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的,有点类似于文件服务器,但是比文件服务器要更安全,有利于多人维护,避免工作协调出现问题.此外,我们今天的环境要实现n

Centos7 部署社交网站(discuz论坛)

Centos7 部署社交网站(discuz论坛) 操作环境: 192.168.80.100 : svn192.168.80.101 : nginx192.168.80.102 : mariadb192.168.80.103 : php192.168.80.104 : nfs注意:为了防止不必要的错误,五台虚拟机都要联网,并且防火墙和selinux都要关闭systemctl stop firewalld //临时关闭防火墙setenforce 0 //临时关闭selinux 实验所需软件包(没有的

部署社交网站全过程(Nginx+PHP+Mysql+MFS+SVN)

案列概述 公司的社交网站采用PHP语言开发,为了管理PHP程序员开发的代码,上级领导要求搭建SVN服务器进行版本控制.社交网站的第一个版本部署在LNMP平台上,前端为Nginx,通过fastcgi协议访问后端的PHP服务器.为了保证数据安全,要求搭建MySQL数据库主从集群.社交网站包含用户的相册功能,允许用户上传照片,上传照片需要使用共享存储来存放.公司决定使用MFS分布式文件系统,并将MFS挂载到PHP服务器的相关目录下. 本案拓扑 案列环境 主机 操作系统 IP地址 主要软件 Nginx

部署社交网站(SVN+PHP+NGINX+MYSQL+MFS)

案例需求:社交网站采用PHP语言开发,为了管理开发代码,搭建SVN服务器进行版本控制,社交网站的第一个版本部署在LNMP平台上,前端为nginx服务器,通过fastcgi协议访问后端的PHP服务器.这里实现动静分离,动态页面交给PHP服务器来处理,静态页面交给nginx服务器来处理.为了保证数据安全,要求搭建Mysql数据库主从集群. 社交网站项目包含用户的相册功能,允许用户上传照片,上传照片需要使用共享存储来存放,针对共享存储采用MFS分布式文件系统来实现,并将MFS挂载在PHP服务器的相关目

一篇博客让你学会部署社交网站( SVN+nginx+PHP+MySQL+MFS 内含所有源码包)

根据公司要求,实施过程大致如下:1 部署SVN服务器,为PHP程序员创建repo目录的访问账户,通知程序员可以导入代码2 部署nginx服务器3 部署PHP服务器4 部署MySQL主从服务器,根据程序员的要求创建数据库和表5 部署MFS6 发布上线 实验拓扑图如下: 实验环境:源码包链接:https://pan.baidu.com/s/1JONQrVyqH0qMwVzKmwsoxA 提取码:0zm8实验过程如下:一 部署SVN systemctl stop firewalld.service s

centos7上部署社交网站之MYSQL主从服务

部署MYSQL主从服务器,根据php程序员的要求创建数据库与表. 实验要求 主:192.168.43.229 从:192.168.43.198 主Master 开启时间同步 # systemctl stop firewalld.service //关闭防火墙 # setenforce 0 # vim /etc/ntp.conf 末尾添加:server 127.127.43.0 //本地是时钟源// fudge 127.127.43.0 stratum 8 //设置时间层级为8(限制在15内 #

部署社交网站-SVN 与 LNMP架构

案例概述 公司的社交网站采用PHP语言开发,为了管理PHP程序员开发的代码,上级领导要求搭建SVN服务器进行版本控制.社交网站的第一个版本部署在LNMP平台之上,前端为 Nginx服务器,通过 fastcgi协议访问后端的PHP服务器.为了保证数据安全,要求搭建 MYSQL数据库主从集群. 社交网站项目包含用户的相册功能,允许用户上传照片,上传照片需要使用共享存储来存放.针对共享存储可用的开源方案有很多,如MFS. FastDFS等.公使用MFS分布式文件系统来实现,并将MFS挂载在PHP服务器

搭建SVN,部署社交网站

概述: 社交网站的第一个版本部署在LNMP平台之上,前段为Nginx服务器,通过fastcgi协议访问后端的PHP服务器.为了保证数据安全,要求搭建MySQL数据库主从集群. 项目介绍: 本项目案例结合SVN.LNMP和MySQL三种环境,部署一个社交网站,本社交网站采用PHP语言开发,搭建SVN服务器进行版本控制和集中管理PHP程序员开发的代码,以Nginx作为前端服务器,通过fastcgi协议访问后端的PHP服务器,调用PHP页面:为保证数据安全,搭建MySQL主从复制环境存储用户重要数据:

部署社交网站(步骤超详细)

实验具体任务要求:1:部署SVN服务器为PHP程序员创建repo目录的访问账户,通知程序员可以导入代码2:部署MySQL主从服务器,根据PHP程序员要求创建数据库与表3:部署Nginx服务器4:部署PHP服务器5:部署MFS,将MFS文件系统挂载在前端PHP服务器的相关目录下6:通知上线部署人员可以发布上线7:保住数据库服务.PHP服务.Nginx服务依次启动,并通知测试人员开始测试,网站维护人员检查Nginx.PHP与数据库服务器是否正常工作实验拓扑图:实验环境介绍:具体实验步骤: -----