LNMP(Nginx+MySQL+PHP)搭建Discuz论坛

一、Nginx简介

  • Nginx是一款高性能、轻量级Web服务软件,特点如下:
  • 稳定性高
  • 系统资源消耗低
  • 对HTTP并发连接的处理能力高(单台物理服务器可支持30000-50000个并发请求)

二、详细搭建步骤

  • 实验环境:VMware Workstation 15.5、Centos 7.6、X Shell 6

  • 本实验所需的软件包下载地址:https://wwa.lanzous.com/inHa0fdemnc

  • 步骤如下

1、将搭建所需要的五个源码包上传到/opt目录下,并解压缩

[root@localhost ~]# cd /opt
[root@localhost opt]# tar zxvf ncurses-5.6.tar.gz 
[root@localhost opt]# tar zxvf nginx-1.12.2.tar.gz
[root@localhost opt]# tar zxvf mysql-boost-5.7.20.tar.gz
[root@localhost opt]# tar jxvf php-7.1.10.tar.bz2
[root@localhost opt]# unzip Discuz_X3.4_SC_UTF8.zip

2、清空防火墙规则并关闭系统核心防护功能

[root@localhost opt]# iptables -F
[root@localhost opt]# setenforce 0

3、安装编译及依赖环境

[root@localhost opt]# yum -y install gcc gcc-c++ zlib-devel pcre pcre-devel

4、进入nginx目录进行安装前配置

[root@localhost opt]# cd cd nginx-1.12.2/      ## 进入软件目录

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

5、编译&安装

[root@localhost nginx-1.12.2]# make && make install

6、将nginx中的命令建立软件界到系统中便于管理

[root@localhost nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/

7、启动nginx服务

[root@localhost nginx-1.12.2]# nginx

8、添加Nginx系统服务

[root@localhost nginx-1.12.2]# vim /lib/systemd/system/nginx.service

写入以下内容:

[Unit]
Description=nginx
After=network=nginx
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/bin/kill -s HUB $MAINPID
ExecStop=/usr/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WanteBy=multi-user.target

9、安装mysql必须的依赖环境

yum -y install  \
ncurses \
ncurses-devel \
bison \
cmake

10、进入mysql软件目录,进程安装前配置

[root@localhost mysql-5.7.20]# cd ../mysql-5.7.20/    ## 进入mysql目录

执行以下命令进行编译前配置:

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

11、编译&安装

[root@localhost mysql-5.7.20]# make && make install

12、创建mysql服务账户

[root@localhost mysql-5.7.20]# useradd -s /sbin/noligin mysql

13、数据库目录进行权限调整

[root@localhost mysql-5.7.20]# chown -R mysql:mysql /usr/local/mysql/

14、编辑mysql配置文件

[root@localhost mysql-5.7.20]# vi /etc/my.cnf

将文件内所有内容删除,重新添加如下代码:

[client]
port=33306
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

15、设置系统环境变量,设置完成后重载配置文件

[root@localhost mysql-5.7.20]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
[root@localhost mysql-5.7.20]# echo 'export PATH' >> /etc/profile
[root@localhost mysql-5.7.20]# source /etc/profile

16、初始化数据库

[root@localhost mysql-5.7.20]# cd /usr/local/mysql/     ## 进入数据库目录

执行以下代码:

bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

17、将mysql命令建立软连接到systemctl使系统能识别到方便管理

[root@localhost mysql]# cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/

18、启动mysql服务

[root@localhost mysql]# systemctl start mysqld

19、设置MySQL数据库管理员密码

[root@localhost mysql]# mysqladmin -u root -p password "123456"    ## 刚开始设密码是空的直接回车,然后输入密码123456,再次确认密码123456

20、登陆数据库

[root@localhost mysql]# mysql -u root -p
 
## 登陆后可以使用quit命令退出登录

21、安装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

22、对PHP进行编译安装前配置

[root@localhost mysql]# cd /opt/php-7.1.10/     ## 进入PHP软件目录

执行以下命令进行编译前配置:

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

23、编辑&安装

[root@localhost php-7.1.10]# make && make install

24、找到php服务的模板,然后生成一个配置文件到指定目录

[root@localhost php-7.1.10]# cp php.ini-development /usr/local/php/lib/php.ini

25、编辑并修改php配置文件

[root@localhost php-7.1.10]# vi /usr/local/php/lib/php.ini

修改如下内容:

mysqli.default_socket= /usr/local/mysql/mysql.sock     ## 修改1170行
date.timezone=Asia/Shanghai     ## 修改939行,设置时区

26、验证安装的模块

[root@localhost php-7.1.10]# /usr/local/php/bin/php -m

27、开启并优化fpm模块

[root@localhost php-7.1.10]# cd /usr/local/php/etc/    ## 进入目录
[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf    ## 复制配置文件模板

开启fpm模块
[root@localhost etc]# vi php-fpm.conf    ## 编辑配置文件

将第17行前面的分号去掉:
pid = run/php-fpm.pid

28、将扩展配置文件开启

[root@localhost etc]# cd /usr/local/php/etc/php-fpm.d/
[root@localhost php-fpm.d]# cp www.conf.default www.conf

29、启用fpm

[root@localhost php-fpm.d]# /usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini

使用netstat查看端口是否开启:

[root@localhost php-fpm.d]# netstat -antp | grep 9000
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      21734/php-fpm: mast 

30、让php中的命令让系统识别

[root@localhost php-fpm.d]# ln -s /usr/local/php/bin/* /usr/local/bin/

查看fpm进程是否开启:

[root@localhost php-fpm.d]# ps aux | grep -c "php-fpm"
4      ## 有四个进程开启

下面的步骤是让nginx服务支持php功能

31、修改nginx配置文件

[root@localhost php-fpm.d]# vi /usr/local/nginx/conf/nginx.conf   ## 编辑nginx配置文件

插入以下代码:

location ~ \.php$ {
     root           html;
     fastcgi_pass   127.0.0.1:9000;
     fastcgi_index  index.php;
     fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
     include        fastcgi_params;
}

ajdGDJ.md.png

32、创建php默认站点页面

[root@localhost php-fpm.d]# cd /usr/local/nginx/html   ## 进入站点目录
[root@localhost html]# mv index.html index.html.bak   ## 将原先的html站点文件改名让系统不能识别
[root@localhost php-fpm.d]# vi index.php    ## 创建一个php站点页面

33、重启nginx服务

[root@localhost html]# systemctl restart nginx

34、关闭系统核心防护功能并清空防火墙规则

[root@localhost html]# setenforce 0
[root@localhost html]# iptables -F

35、打开浏览器,访问服务器站点

192.168.50.134/index.php

ajdtER.md.png
出现如上页面说明PHP搭建成功!

所有服务环境均已经搭建完毕,下面开始论坛的部署

35、创建论坛数据库

[root@localhost html]# mysql -u root -p    ## 回车后输入之前设置的密码‘123456’进入数据库

进入数据库后依次执行以下命令:

mysql> CREATE DATABASE bbs;   ## 创建数据库
mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin';
mysql> GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin';
mysql> flush privileges;   ## 刷新数据库

创建完成后输入quit命令退出数据库

36、测试页面能否连接数据库,修改之前的php站点测试页面

[root@localhost html]# vi /usr/local/nginx/html/index.php

将之前的写入的配置全部删除,重新写入以下内容:

<?php
$link=mysqli_connect('192.168.50.134','bbsuser','admin');    ##IP根据实际设置
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>

刷新站点,出现如下页面说明连接成功:
ajd8u4.png

37、将opt目录中解压的论坛源码复制到nginx站点目录下

[root@localhost html]# cd /opt/dir_SC_UTF8/    ## 进入论坛源码解压目录
[root@localhost dir_SC_UTF8]# cp -r upload/ /usr/local/nginx/html/bbs   ## 将源码复制到nginx站点目录中
[root@localhost dir_SC_UTF8]# cd /usr/local/nginx/html/bbs/   ## 进入论坛站点目录

进行目录赋权操作,要不然网页无法写入数据:

[root@localhost bbs]# chown -R root:nginx ./config/
[root@localhost bbs]# chown -R root:nginx ./data/
[root@localhost bbs]# chown -R root:nginx ./uc_client/
[root@localhost bbs]# chown -R root:nginx ./uc_server/
[root@localhost bbs]# chmod -R 777 ./config/
[root@localhost bbs]# chmod -R 777 ./data/
[root@localhost bbs]# chmod -R 777 ./uc_client/
[root@localhost bbs]# chmod -R 777 ./uc_server/

38、在浏览器中输入地址开始安装论坛

http://192.168.50.134/bbs/install/index.php    ##IP地址根据实际情况替换

ajdJb9.md.png
直接点击下一步
ajd1vF.md.png

在安装向导页面选择“全新安装”,点击“下一步”
ajdNU1.md.png

在“安装数据库”步骤,输入之前设置的数据库配置信息,并设置论坛后台的管理员用户名及密码
ajdU4x.md.png

论坛开始安装,稍等片刻后论坛就安装完成了
ajddC6.md.png
ajdsDH.md.png
点击右下角的连接可以进入论坛,或者在地址栏中输入以下地址也可以直接访问论坛首页

http://192.168.50.134/bbs/index.php

ajdBvD.md.png
输入以下地址可以访问论坛管理后台

http://192.168.50.134/bbs/admin.php

ajd0gO.md.png

登陆后就可以对论坛进行全局管理了
ajdrKe.md.png

猜你喜欢

转载自blog.csdn.net/u014042047/article/details/107954088