MFS+PHP+MYSQL+NGINX搭建discuz论坛

在这里插入图片描述
系统环境
主机 操作系统 ip地址 软件包
master centos7.4 192.168.80.100 mfs
metalogger centos7.4 192.168.80.101 mfs
chunk01 centos7.4 192.168.80.102 mfs
chunk02 centos7.4 192.168.80.103 mfs
chunk03 centos7.4 192.168.80.104 mfs
client centos7.4 192.168.80.105 mfs、fuse

搭建master server:(IP地址:192.168.80.102)
1、安装相关编译器、工具包
yum install gcc gcc-c++ make zlib-devel -y

2、创建进程用户
useradd -s /sbin/nologin mfs

3、安装mfs软件包
tar xf mfs~ -C /opt

cd /opt/mfs~

./configure --prefix=/usr/local/mfs
–with-default-user=mfs
–with-default-group=mfs
–disable-mfschunkserver
–disable-mfsmount
make && make install #编译及编译安装

4、修改相关文件信息
cd /usr/local/mfs/etc/mfs
cp mfsexports.cfg. sample mfsexports.cfg
cp mfsmaster.cfg. sample mfsmaster.cfg
cp mfstopology.cfg. sample mfstopology.cfg
cd /usr/local/mfs/var/mfs/
cp metadata.mfs.empty metadata.mfs #master元数据文件

5、详解主配置文件
cd /usr/local/mfs/etc/mfs/
vi mfsmaster.cfg
#WORKING_USER = mfs #运行master服务的用户
#WORKING_GROUP = mfs #运行master服务的组
#SYSLOG_IDENT = mfsmaster #在syslog中表示是mfsmaster产生的日志,在syslog的标识,说明由master服务产生的
#LOCK_MEMORY = 0 #是否执行mlockall(),避免master进程溢出(默认为0)
#NICE_LEVEL = -19 #运行的优先级(如果可以,默认是-19;注意进程必须是root启动)

#EXPORTS_FILENAME = /usr/local/mfs/etc/mfs/mfsexports.cfg #被挂载目录及其权限控制文件的存放位置

#TOPOLOGY_FILENAME = /usr/local/mfs/etc/mfs/mfstopology.cfg
#DATA_PATH = /usr/local/mfs/var/mfs #数据存放位置

#BACK_LOGS = 50 #metadata改变的log文件数目(默认是50)
#BACK_META_KEEP_PREVIOUS = 1

#REPLICATIONS_DELAY_INIT = 300
#REPLICATIONS_DELAY_DISCONNECT = 3600

#MATOML_LISTEN_HOST = * #metalogger监听的IP地址(默认是*,代表任何IP)
#MATOML_LISTEN_PORT = 9419 #metalogger监听的端口地址(默认是9419)
#MATOML_LOG_PRESERVE_SECONDS = 600
#MATOCS_LISTEN_HOST = * #用于chunkserver连接的IP地址(默认是*,代表任何IP)
#MATOCS_LISTEN_PORT = 9420 #用于chunkserver连接的端口IP地址(默认是9420)

#MATOCL_LISTEN_HOST = *
#MATOCL_LISTEN_PORT = 9421

#CHUNKS_LOOP_MAX_CPS = 100000
#CHUNKS_LOOP_MIN_TIME = 300 #chunks的回环频率(默认是300秒)

#CHUNKS_SOFT_DEL_LIMIT = 10
#CHUNKS_HARD_DEL_LIMIT = 25
#CHUNKS_WRITE_REP_LIMIT = 2 #在一个循环里复制到一个chunkserver的最大chunk数
#CHUNKS_READ_REP_LIMIT = 10 #在一个循环里从一个chunkserver复制的最大chunk数
#ACCEPTABLE_DIFFERENCE = 0.1

#SESSION_SUSTAIN_TIME = 86400
#REJECT_OLD_CLIENTS = 0

#deprecated:
#CHUNKS_DEL_LIMIT - use CHUNKS_SOFT_DEL_LIMIT instead
#LOCK_FILE - lock system has been changed, and this option is used only to search for old lockfile

6、详解被挂载目录及权限配置文件
cd /usr/local/mfs/etc/mfs/
vi mfsexports.cfg

#Allow everything but “meta”.
/ rw,alldirs,maproot=0

#Allow “meta”.
. rw
7、优化路径
ln -s /usr/local/mfs/sbin/* /usr/local/bin/

8、启动服务
mfsmaster start
netstat -anpt | grep ‘mfs’

9、编辑启动脚本
vi /lib/systemd/system/mfs.service

[Unit]
Description=mfs
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/mfs/sbin/mfsmaster start
ExecStop=/usr/local/mfs/sbin/mfsmaster stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

systemctl enable mfs.service
systemctl stop mfs.service
systemctl start mfs.service #启动服务

二、搭建MetaLogger Server(IP地址:192.168.80.103)
1、安装相关编译器、工具包
yum -y install gcc gcc-c++ zlib-devel

2、创建进程用户
groupadd mfs
useradd -s /sbin/nologin -g mfs -M mfs

3、安装mfs软件包
tar xf moosefs-3.0.100-1.tar.gz -C /opt/
cd /opt/moosefs-3.0.100/
./configure
–prefix=/usr/local/mfs
–with-default-user=mfs
–with-default-group=mfs
–disable-mfschunkserver
–disable-mfsmount
make && make install

4、修改主配置文件
cd /usr/local/mfs/etc/mfs/
cp mfsmaster.cfg.sample mfsmaster.cfg
cp mfsexports.cfg.sample mfsexports.cfg
cp mfsmetalogger.cfg.sample mfsmetalogger.cfg
cd /usr/local/mfs/var/mfs
mv metadata.mfs.empty metadata.mfs

cd /usr/local/mfs/etc/mfs/
vi mfsmetalogger.cfg

修改以下内容:
MASTER_HOST = 192.168.80.102 #执行master服务器的ip地址,去掉注释符号

5、优化路径
ln -s /usr/local/mfs/sbin/* /usr/local/bin/

6、启动服务
mfsmetalogger start
netstat -anpt | grep mfsmetalogger

三、搭建Chunk Server(两台Chunk Server主机搭建步骤相同,IP地址是192.168.80.104、192.168.80.106)
1、安装相关编译器、工具包
yum -y install gcc gcc-c++ zlib-devel

2、创建程序用户
groupadd mfs
useradd -s /sbin/nologin -g mfs -M mfs

3、安装mfs软件包
tar xf moosefs-3.0.100-1.tar.gz -C /opt/
cd /opt/moosefs-3.0.100/
./configure
–prefix=/usr/local/mfs
–with-default-user=mfs
–with-default-group=mfs
–disable-mfsmaster
–disable-mfsmount

make && make install

4、修改相应配置文件

cd /usr/local/mfs/etc/mfs/
cp mfschunkserver.cfg.sample mfschunkserver.cfg
cp mfshdd.cfg.sample mfshdd.cfg

vi mfschunkserver.cfg
修改以下内容:
MASTER_HOST = 192.168.80.102 #指向master服务器的ip地址,去掉注释符号

vi mfshdd.cfg
添加一行:
/data #这是一个给MFS的分区,生产环境中最好使用独立的分区,或者磁盘挂载到此目录下

5、创建MFS分区目录
mkdir /data
chown -R mfs:mfs /data/

6、优化路径
ln -s /usr/local/mfs/sbin/* /usr/local/bin/

7、启动服务
mfschunkserver start
netstat -anpt | grep ‘mfschunkserver’ #看9422 端口是否在工作

四、配置客户端(在LNMP上,IP地址:192.168.80.100)
1、安装相关编译器、工具包
yum -y install gcc gcc-c++ zlib-devel

2、安装fuse软件包
tar xzvf fuse-2.9.2.tar.gz
cd fuse-2.9.2
./configure
make && make install

3、设置环境变量
vi /etc/profile
末行添加:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
source /etc/profile #重新加载系统环境变量配置文件

4、创建进程用户
groupadd mfs
useradd -s /sbin/nologin -g mfs -M mfs

5、安装mfs软件包
tar xf moosefs-3.0.100-1.tar.gz -C /opt/
cd /opt/moosefs-3.0.100/
./configure
–prefix=/usr/local/mfs
–with-default-user=mfs
–with-default-group=mfs
–disable-mfsmaster
–disable-mfschunkserver
–enable-mfsmount
make && make install

6、挂载MFS文件系统

mkdir /var/www/aa/mfs #创建挂载点,挂载到PHP的目录下,主要看你nginx的配置文件中php的路径是什么。

modprobe fuse #加载fuse模块到内核

/usr/local/mfs/bin/mfsmount /var/www/aa/mfs/ -H 192.168.80.102 #挂载MFS
df -h #查看挂载情况
在这里插入图片描述
7、master开启web监控服务
mfscgiserv start

8、访问MFS监控工具
http://192.168.80.102:9425/mfs.cgi #client端访问web,查看MFS有没有配置成功。

搭建LNMP并配置PHP:
service firewalld stop
systemctl disable firewalld

yum -y install
pcre-devel
zlib-devel

useradd -M -s /sbin/nologin nginx

tar xzvf nginx-1.15.5.tar.gz -C /opt/
cd /opt/nginx-1.15.5
./configure
–prefix=/usr/local/nginx
–user=nginx
–group=nginx
–with-http_stub_status_module

make && make install

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

nginx -t //配置文件语法检查
nginx //启动服务
-------制作管理角本--------
vi /etc/init.d/nginx
#!/bin/bash
#chkconfig: 35 99 20
#description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case “$1” in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF)
;;
*)
echo “Usage: $0 {start|stop|restart|reload}”
exit 1
esac
exit 0

chmod +x /etc/init.d/nginx
chkconfig --add nginx

vi /usr/local/nginx/conf/nginx.conf
user nginx nginx;
error_log logs/error.log info;

安装MYSQL数据库:
yum -y install
ncurses
ncurses-devel
bison
cmake

useradd -s /sbin/nologin mysql

tar xf mysql-boost-5.7.20.tar.gz
cd mysql-5.7.20/

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=boost
-DWITH_SYSTEMD=1

make && make install

chown -R mysql.mysql /usr/local/mysql/ 也可mysql: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
socket = /usr/local/mysql/mysql.sock
server-id = 1

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

cd /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

systemctl enable mysqld

配置PHP
yum -y install
libjpeg
libjpeg-devel
libpng libpng-devel
freetype freetype-devel
libxml2
libxml2-devel
zlib zlib-devel
curl curl-devel
openssl openssl-devel

tar xjvf php-7.1.10.tar.bz2
cd php-7.1.10
./configure
–prefix=/usr/local/php
–with-mysql-sock=/usr/local/mysql/mysql.sock
–with-mysqli
–with-zlib
–with-curl
–with-gd
–with-jpeg-dir
–with-png-dir
–with-freetype-dir
–with-openssl
–enable-mbstring
–enable-xml
–enable-session
–enable-ftp
–enable-pdo
–enable-tokenizer
–enable-zip
–enable-fpm

make && make install

cp php.ini-development /usr/local/php/lib/php.ini 若lib不存在,需要重新./configure
vi /usr/local/php/lib/php.ini

mysqli.default_socket = /usr/local/mysql/mysql.sock
date.timezone = Asia/Shanghai

/usr/local/php/bin/php -m //验证安装的模块

-----------配置及优化FPM模块--------
cd /usr/local/php/etc/
cp php-fpm.conf.default php-fpm.conf
cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf

cd /usr/local/php/etc/
vi php-fpm.conf

pid = run/php-fpm.pid
;user = nginx
;group = nginx


/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini
netstat -anpt | grep 9000
ln -s /usr/local/php/bin/* /usr/local/bin/
ps aux | grep -c “php-fpm” //结果

-----更新启动脚本----------
vi /etc/init.d/nginx
#!/bin/bash
#chkconfig: 35 99 20
#description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
PROG_FPM="/usr/local/php/sbin/php-fpm"
PIDF_FPM="/usr/local/php/var/run/php-fpm.pid"
case “$1” in
start)
$PROG
$PROG_FPM
;;
stop)
kill -s QUIT $(cat $PIDF)
kill -s QUIT $(cat $PIDF_FPM)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF)
;;
*)
echo “Usage: $0 {start|stop|restart|reload}”
exit 1
esac
exit 0

--------以下是让nginx支持PHP功能--------
vi /usr/local/nginx/conf/nginx.conf

location ~ .php$ {
root /var/www/aa;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/aa$fastcgi_script_name; //注意目录名称
include fastcgi_params;
}

vi /var/www/aa/index.php

<?php phpinfo(); ?>

在网页测试http://192.168.80.100/index.php会出现PHP的相关网页,会有测试结果出现

unzip Discuz_X3.2_SC_UTF8.zip -d /opt/
cd /opt/dir_SC_UTF8
cp -r upload/ /var/www/aa/mfs/bbs 放到挂载点的下面
cd /var/www/aa/mfs/bbs
chown -R root:nginx ./config/
chown -R root:nginx ./data/
chown -R root:nginx ./uc_client/
chown -R root:nginx ./uc_server/

chmod -R 777 ./config/
chmod -R 777 ./data/
chmod -R 777 ./uc_client/
chmod -R 777 ./uc_server/

http://192.168.80.100/mfs/bbs/install/index.php 测试会看到Discuz论坛的安装

配置动静分离:
进入nginx的配置文件/usr/local/nginx/conf/nginx.conf里
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值