一、基础环境配置
1.规划节点
IP地址 | 主机名 | 节点 |
192.168.200.70 | Discuz | 单节点服务器 |
2.基础环境准备
使用VMWare Workstation软件安装CentOS 7.2操作系统,镜像使用提供的CentOS-7-x86_64-DVD-1511.iso,最小化安装CentOS 7.2系统。Yum源使用本地yum,提前下载mysql-boost-5.7.20.tar.gz、nginx-1.22.1.tar.gz、php-7.1.10.tar.bz2、Discuz_X3.4_SC_UTF8软件包,上传至/opt目录下。
二、环境搭建
1.修改主机名
[root@localhost ~]# hostnamectl set-hostname Discuz
[root@localhost ~]# bash
2.搭建nginx服务
(1)解压nginx-1.22.1.tar.gz软件包,命令如下:
[root@localhost ~]# cd /opt/
[root@localhost opt]# tar -zxvf nginx-1.22.1.tar.gz
[root@discuz opt]# ls
centos Discuz_X3.4_SC_UTF8.zip mysql-boost-5.7.20.tar.gz nginx-1.22.1 nginx-1.22.1.tar.gz php-7.1.10.tar.bz2
(2)安装nginx环境依赖
[root@discuz ~]# yum -y install \
pcre-devel \
zlib-devel \
gcc \
gcc-c++ \
make \
openssl \
openssl-devel
(3)创建管理用户
[root@discuz ~]# useradd -M -s /sbin/nologin nginx
[root@discuz ~]# id nginx
uid=1000(nginx) gid=1000(nginx) 组=1000(nginx)
(4)编译和安装
设置nginx安装路径和模块进行编译,命令如下:
[root@discuz opt]# cd nginx-1.22.1
[root@discuz nginx-1.22.1]# ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module \
--with-http_ssl_module
编译完后,进行安装nginx,命令如下:
[root@discuz nginx-1.22.1]# make && make install
(5)优化nginx路径
[root@discuz nginx-1.22.1]# ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/
(6)添加nginx系统服务
[root@discuz nginx-1.22.1]# vi /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecStop=/bin/kill -s QUIT $MAINPID
ExecReload=/bin/kill -s HUP $MAINPID
PrivateTmp=True
[lnstall]
WantedBy=multi-user.target
赋予权限,命令如下:
[root@discuz nginx-1.22.1]# chmod 754 /lib/systemd/system/nginx.service
(7)启动nginx服务
[root@discuz nginx-1.22.1]# systemctl start nginx.service
[root@discuz nginx-1.22.1]# systemctl status nginx.service
[root@discuz nginx-1.22.1]# netstat -antp | grep 80
(8)访问页面进行验证
打开浏览器,访问http://IP
2.搭建Mysql
(1)解压mysql源码包,命令如下:
[root@discuz opt]# tar -zxvf mysql-boost-5.7.20.tar.gz
(2)安装mysql环境依赖
[root@discuz opt]# yum -y install \
ncurses \
ncurses-devel \
bison \
cmake \
bzip2 \
bzip2-devel
(3)创建mysql用户
[root@discuz ~]# useradd -M -s /sbin/nologin mysql
[root@discuz ~]# id mysql
uid=1001(mysql) gid=1001(mysql) 组=1001(mysql)
(4)编译安装mysql
[root@discuz 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_EXTRA_CHARSETS=all \
-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
[root@discuz mysql-5.7.20]# make && make install
(5)修改mysql配置文件
[root@discuz mysql-5.7.20]# vi /etc/my.cnf
[client]
port = 3306
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
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
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
(6)更改文件配置文件和数据目录的所有权
[root@discuz mysql-5.7.20]# chown mysql:mysql /etc/my.cnf
[root@discuz mysql-5.7.20]# chown -R mysql:mysql /usr/local/mysql/
(7)配置环境变量
[root@discuz mysql-5.7.20]# echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
[root@discuz mysql-5.7.20]# source /etc/profile
(8)初始化数据库
[root@discuz mysql-5.7.20]# cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
(9)添加系统服务
[root@discuz bin]# cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system
(10)启动服务
[root@discuz bin]# systemctl daemon-reload
[root@discuz bin]# systemctl start mysqld.service
[root@discuz bin]# systemctl enable mysqld.service
[root@discuz bin]# systemctl status mysqld.service
(11)修改数据库密码并登录
[root@discuz bin]# mysql -u root
mysql> alter user 'root'@'localhost' identified by '123456';
3.安装配置PHP解析环境
(1)解压PHP源码包
[root@discuz opt]# tar -jxvf php-7.1.10.tar.bz2
(2)安装PHP依赖包
[root@discuz opt]# yum -y install gd \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel
(3)设置安装路径及模块
[root@discuz opt]# cd php-7.1.10
[root@discuz 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-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip
(4)编译和安装
[root@discuz php-7.1.10]# make && make install
(5)优化PHP路径
[root@discuz php-7.1.10]# ln -s /usr/local/php/bin/* /usr/local/bin/
[root@discuz php-7.1.10]# ln -s /usr/local/php/sbin/* /usr/local/sbin/
(6)调整PHP配置文件
[root@discuz php-7.1.10]# cp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini
[root@discuz php-7.1.10]# vi /usr/local/php/lib/php.ini
将939行的“;”去掉,并添加Asia/Shanghai
将1170行添加mysql文件路径/usr/local/mysql/mysql.sock
(7)修改进程服务配置文件
[root@discuz php-7.1.10]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
[root@discuz php-7.1.10]# vi /usr/local/php/etc/php-fpm.conf
将17行‘;’注释去掉
(8)修改扩展配置文件
[root@discuz php-7.1.10]# cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
(9)启动php-fpm并添加系统服务
[root@discuz php-7.1.10]# /usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini
[root@discuz php-7.1.10]# systemctl restart php-fpm.service
[root@discuz php-7.1.10]# systemctl status php-fpm.service
(10)配置Nginx支持PHP解析
vi /usr/local/nginx/conf/nginx.conf
在45行添加index.php字段
去掉65-71行注释,69行的 /secripts 换成 nginx 的工作目录
(11)验证PHP测试页
[root@discuz php-7.1.10]# vi /usr/local/nginx/html/index.php
<?php
phpinfo();
?>
浏览器访问服务器http://192.168.200.70/index.php
三、搭建Discuz论坛
1.解压Discuz源码包
[root@discuz opt]# unzip Discuz_X3.4_SC_UTF8.zip -d /opt/dis
2.创建数据库并进行授权
[root@discuz opt]# mysql -u root -p
mysql> CREATE DATABASE bbs;
mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
mysql> GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';
mysql> flush privileges;
3.将Discuz论坛部署到Nginx
[root@discuz opt]# cp -r /opt/dis/upload/ /usr/local/nginx/html/bbs
[root@discuz opt]# cd /usr/local/nginx/html/bbs/
[root@discuz bbs]# chmod -R 777 config/
[root@discuz bbs]# chmod -R 777 data/
[root@discuz bbs]# chmod -R 777 uc_client/
[root@discuz bbs]# chmod -R 777 uc_server/
4.论坛访问
浏览器访问http://192.168.200.70/bbs/install/index.php
数据库服务器:localhost
数据库名字:bbs
数据库用户名:bbsuser
数据库密码:123456
管理员账号:admin
管理员密码:admin123
至此基于LNMP架构搭建Discuz论坛完成。