千家信息网

LNMP架构之Discue论坛

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,LNMP架构LNMP平台就是Linux,Nginx,MySQL,PHP的组合架构,需要Linux服务器,MySQL服务器,PHP解析环境构成组件Linux是一类Unix计算机操作系统的统称,是目前最流
千家信息网最后更新 2026年11月01日LNMP架构之Discue论坛

LNMP架构

LNMP平台就是Linux,Nginx,MySQL,PHP的组合架构,需要Linux服务器,MySQL服务器,PHP解析环境

构成组件

Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。Nginx是一个高性能的HTTP和反向代理服务器。Mysql是一个小型关系型数据库管理系统。PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。

LAMP优势

Nginx性能稳定、功能丰富、运维简单、处理静态文件速度快且消耗系统资源极少,小巧高效。

一,在Windows上将LAMP所需压缩软件包共享出来(此处如有问题请看之前的博客相关文章)

二,在Linux上使用远程共享获取文件并挂载到mnt目录下

[root@localhost ~]# smbclient -L //192.168.100.3/   ##远程共享访问Enter SAMBA\root's password:                 Sharename       Type      Comment                ---------       ----      -------                LNMP-C7         Disk       [root@localhost ~]# mount.cifs //192.168.100.3/LNMP-C7 /mnt  ##挂载到/mnt目录下

三,编译安装Nginx

1,解压源码包到/opt下,并查看
[root@localhost ~]# cd /mnt    ##切换到挂载点目录[root@localhost mnt]# lsDiscuz_X3.4_SC_UTF8.zip    nginx-1.12.2.tar.gzmysql-boost-5.7.20.tar.gz  php-7.1.20.tar.gz[root@localhost mnt]# tar zxvf nginx-1.12.2.tar.gz -C /opt   ##解压Nginx源码包到/opt下[root@localhost mnt]# cd /opt/    ##切换到解压的目录下[root@localhost opt]# lsnginx-1.12.2  rh
2,安装编译需要的环境组件包
[root@localhost opt]# yum -y install \gcc \                                       //c语言gcc-c++ \                        //c++语言pcre-devel \                     //pcre语言工具zlib-devel                       //数据压缩用的函式库
3,创建程序用户nginx并编译Nginx
[root@localhost opt]# useradd -M -s /sbin/nologin nginx  ##创建程序用户,安全不可登陆状态[root@localhost opt]# id nginxuid=1001(nginx) gid=1001(nginx) 组=1001(nginx)[root@localhost opt]# cd nginx-1.12.0/                 ##切换到nginx目录下[root@localhost nginx-1.12.0]# ./configure \         ##配置nginx> --prefix=/usr/local/nginx \        ##安装路径> --user=nginx \                         ##用户名> --group=nginx \                       ##用户组> --with-http_stub_status_module     ##状态统计模块
4,编译和安装
[root@localhost nginx-1.12.0]# make     ##编译...[root@localhost nginx-1.12.0]# make install   ##安装...
5,优化nginx启动脚本,以便于系统识别
[root@localhost nginx]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ ##创建软连接让系统识别nginx启动脚本[root@localhost nginx]# nginx -t       ##检查配置文件的语法问题nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful[root@localhost nginx]# nginx      ##开启ngnix[root@localhost nginx]# netstat -ntap | grep 80     ##查看端口,nginx已经开启tcp   0   0 0.0.0.0:80      0.0.0.0:*   LISTEN   39620/nginx: master [root@localhost nginx]# systemctl stop firewalld.service    ##关闭防火墙[root@localhost nginx]# setenforce 0 [root@localhost nginx]# nginx                         ##开启
6,制作管理脚本,便于使用service管理使用
[root@localhost nginx]# cd /etc/init.d/   ##切换到启动配置文件目录[root@localhost init.d]# lsfunctions  netconsole  network  README[root@localhost init.d]# vim nginx         ##编辑启动脚本文件#!/bin/bash# chkconfig: - 99 20                                    ##注释信息# description: Nginx Service Control ScriptPROG="/usr/local/nginx/sbin/nginx"           ##设置变量为nginx命令文件PIDF="/usr/local/nginx/logs/nginx.pid"       ##设置变量PID文件 进程号为5346case "$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 1esacexit 0[root@localhost init.d]# chmod +x /etc/init.d/nginx    ##给启动脚本执行权限[root@localhost init.d]# chkconfig --add nginx          ##添加到service管理器中[root@localhost init.d]# service nginx stop                ##就可以使用service控制nginx[root@localhost init.d]# service nginx start
7,或者方便systemctl管理,配置文件(为方便写一种即可)
[root@localhost ~]# vim /lib/systemd/system/nginx.service      ##创建配置文件[Unit]Description=nginx                                            ##描述After=network.target                                        ##描述服务类型[Service]Type=forking                                                    ##后台运行形式PIDFile=/usr/local/nginx/logs/nginx.pid            ##PID文件位置ExecStart=/usr/local/nginx/sbin/nginx              ##启动服务ExecReload=/usr/bin/kill -s HUP $MAINPID    ##根据PID重载配置ExecStop=/usr/bin/kill -s QUIT $MAINPID       ##根据PID终止进程PrivateTmp=true[Install]WantedBy=multi-user.target[root@localhost ~]# chmod 754 /lib/systemd/system/nginx.service     ##设置执行权限[root@localhost ~]# systemctl stop nginx.service       ##关闭[root@localhost ~]# systemctl start nginx.service       ##开启

四,编译安装MySQL

1,安装环境组件
[root@localhost ~]# yum install -y \     ##安装环境组件> ncurses \> ncurese-devel \    ##控制终端屏幕显示的库> bison \                 ##语法分析工具> cmake                 ##cmake工具[root@localhost ~]# useradd -s /sbin/nologin mysql     ##创建程序用户
2,解压源码包到/opt下
[root@localhost ~]# cd /mnt[root@localhost mnt]# tar zxvf mysql-boost-5.7.20.tar.gz -C /opt   ##解压源码包到/opt[root@localhost mnt]# cd /opt[root@localhost opt]# lsmysql-5.7.20  nginx-1.12.2  rh
3,cmake配置
[root@localhost opt]# cd mysql-5.7.20/       ##切换到MySQL目录下[root@localhost mysql-5.7.20]# cmake \     ##cmake配置-DCMAKE_INSTALL_PREFIX=/usr/localmysql \            ##安装路径-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ ##定义sock文件连接数据库文件-DSYSCONFDIR=/etc \                                                   ##配置文件目录-DSYSTEMD_PID_DIR=/usr/local/mysql \                      ##PID文件目录-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                                                   ##主从参数>
4,编译及安装
[root@localhost mysql-5.7.20]# make          ##编译[root@localhost mysql-5.7.20]# make install    ##安装
5,配置mysql,调整配置文件
[root@localhost mysql-5.7.20]# chown -R mysql:mysql /usr/local/mysql/   ##数据库目录进行权限调整[root@localhost mysql-5.7.20]# vim /etc/my.cnf     ##调整配置文件[client]                            ##客户端port = 3306default-character-set=utf8socket = /usr/local/mysql/mysql.sock[mysql]                           ##客户端     port = 3306default-character-set=utf8socket = /usr/local/mysql/mysql.sock[mysqld]                         ##服务器        user = mysql                  ##用户basedir = /usr/local/mysql      ##设置mysql的安装目录datadir = /usr/local/mysql/data    ##设置mysql数据库的数据的存放目录port = 3306                    ##设置3306端口character_set_server=utf8            ##中文字符集pid-file = /usr/local/mysql/mysqld.pid     ##pid文件路径socket = /usr/local/mysql/mysql.sock     ##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##支持模块>[root@localhost mysql-5.7.20]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile##将MySQL写到本地环境配置中[root@localhost mysql-5.7.20]# echo 'export PATH' >> /etc/profile    ##设置全局环境配置[root@localhost mysql-5.7.20]# source /etc/profile    ##重启配置文件
6,初始化数据库
[root@localhost mysql-5.7.20]# cd /usr/local/mysql/[root@localhost mysql]# bin/mysqld \> --initialize-insecure \        ##初始化> --user=mysql \                 ##用户> --basedir=/usr/local/mysql \      ##安装目录> --datadir=/usr/local/mysql/data   ##数据库数据文件目录
7,将MySQL服务配置文件复制到/usr/lib/systemd/system/下便于使用systemctl管理
[root@localhost mysql]# cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ ##便于systemctl管理[root@localhost mysql]# systemctl enable mysqld   ##开机自启动[root@localhost mysql]# systemctl start mysqld.service     ##开启数据库[root@localhost mysql]# netstat -ntap | grep 3306              ##查看MySQL端口号开启情况tcp6  0  0 :::3306    :::*       LISTEN   59464/mysqld   
8,设置MySQL密码
[root@localhost mysql]# mysqladmin -u root -p passwordEnter password:               ##空格New password:                ##新密码Confirm new password:   ##确认密码

五,编译安装PHP

1,安装环境依赖包
[root@localhost mysql]# yum install -y \> libjpeg \                              ##jpeg图片格式和开发包> libjpeg-devel \> libpng libpng-devel \           ##png图片和开发包> freetype freetype-devel \    ##字体库> libxml2 \                              ##xml文件库> libxml2-devel \> zlib zlib-devel \                    ##压缩库 > curl curl-devel \                   ##支持数据文件下载工具> openssl openssl-devel        ##安全访问连接
2,解压源码包到/opt
[root@localhost mysql]# cd /mnt     ##切换到挂载点[root@localhost mnt]# tar jxvf php-7.1.10.tar.bz2 -C /opt     ##解压源码包到/opt[root@localhost mnt]# cd /opt[root@localhost opt]# ls       ##查看mysql-5.7.20  nginx-1.12.2  php-7.1.10  rh
3,配置PHP
[root@localhost opt]# cd php-7.1.10/[root@localhost 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                                          ##gd图像支持图片处理库--with-jpeg-dir                                  ##jpeg--with-png-dir                                   ##png--with-freetype-dir                            ##字体--with-openssl                                  ##安全访问连接--enable-fpm                                    ##fpm支持动态请求模块--enable-mbstring                            ##支持多字节的字符串--enable-xml                                    ##xml文件--enable-session                             ##session支持会话--enable-ftp                                     ##ftp服务--enable-pdo                                   ##驱动连接管理--enable-tokenizer                          ##PHP自带函数--enable-zip                                    ##zip压缩包
4,编译及安装
[root@localhost php-7.1.10]# make ##编译[root@localhost php-7.1.10]# make install ##安装
5,配置核心配置文件(php.ini核心配置文件,php-fpm.conf进程服务配置文件,www.conf扩展配置文件 )
[root@localhost php-7.1.10]# cp php.ini-development /usr/local/php/lib/php.ini   ##复制到安装目录lib库中[root@localhost php-7.1.10]# vim /usr/local/php/lib/php.ini   ##配置核心配置文件mysqli.default_socket = /usr/local/mysql/mysql.sock     ##默认连接文件date.timezone = Asia/Shanghai                                      ##时间[root@localhost php-7.1.10]# /usr/local/php/bin/php -m   ##验证安装的模块
6,配置及优化FPM模块
[root@localhost php-7.1.10]# cd /usr/local/php/etc/[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf   ##优化复制默认进程服务配置文件[root@localhost etc]# cd /usr/local/php/etc/php-fpm.d/[root@localhost php-fpm.d]# cp www.conf.default www.conf   ##优化复制扩展配置文件[root@localhost php-fpm.d]# cd /usr/local/php/etc/  [root@localhost etc]# vim php-fpm.conf      ##开启fpm.pid进程pid = run/php-fpm.pid[root@localhost etc]# /usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini[root@localhost etc]# netstat -ntap | grep 9000     ##查看端口信息tcp   0 0 127.0.0.1:9000   0.0.0.0:*    LISTEN   69104/php-fpm: mast [root@localhost etc]# ln -s /usr/local/php/bin/* /usr/local/bin/   ##创建软连接便于系统识别[root@localhost etc]# ps aux | grep -c "php-fpm"4
7,让Nginx支持PHP功能
[root@localhost etc]# vim /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;    }       [root@localhost etc]# vim /usr/local/nginx/html/index.php               ##测试php网页

8,进入数据库创建bbs数据库并设置管理员和密码
[root@localhost etc]# mysql -u root -pEnter password:      ##进入数据库,密码为之前设定的abc23mysql> CREATE DATABASE BBS;   ##创建bbs数据库Query OK, 1 row affected (0.00 sec)mysql> GRANT all ON bbs.* TO 'bbsusers'@'%' IDENTIFIED BY 'admin123';  ##提权数据库用户bbsuser为管理员并设定密码Query OK, 0 rows affected, 1 warning (0.00 sec)       mysql> GRANT all ON bbs.* TO 'bbsusers'@'localhost' IDENTIFIED BY 'admin123';Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> flush privileges;         ##刷新数据库Query OK, 0 rows affected (0.00 sec)mysql> quit       ##退出[root@localhost etc]# vim /usr/local/nginx/html/index.php   ##测试数据库连接状态Success!";else echo "Fail!!";?>[root@localhost etc]# systemctl restart nginx.service     ##重启服务

六,安装Discuz论坛压缩包

1,解压缩压缩包到/opt下,并将目录内容复制到bbs站点中
[root@localhost etc]# cd /mnt                      [root@localhost mnt]# unzip  Discuz_X3.4_SC_UTF8.zip -d /opt    ##解压到/opt下[root@localhost mnt]# cd /opt[root@localhost opt]# lsdir_SC_UTF8  mysql-5.7.20  nginx-1.12.2  php-7.1.10  rh  说明.htm[root@localhost opt]# cd dir_SC_UTF8/          ##进入论坛目录[root@localhost dir_SC_UTF8]# cp -r upload/ /usr/local/nginx/html/bbs/     ##复制/opt目录里的内容到html站点的bbs目录中
2,进入站点并给程序用户提权
[root@localhost dir_SC_UTF8]# cd /usr/local/nginx/html/bbs/    ##进入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/
3,访问192.168.235.137/bbs站点,安装Discuz论坛

4,设置运行环境为全新安装

5,安装数据库
数据服务器:192.168.13.130(此处输入创建数据库主机的IP)数据库名:bbs数据库用户名:bbsusers(用户名可在命令行修改)数据库密码:admin123(密码可在命令行修改)管理员账号:admin(该账号为默认)密码:123123(密码可直接在网页设定)

七,成功搭建并访问论坛

谢谢阅读!!!

文件 配置 数据 目录 数据库 服务 用户 管理 编译 密码 支持 环境 系统 服务器 源码 站点 脚本 路径 切换 模块 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深圳九邦互联网科技有限公司 北京路客互联网科技有限公司 互联网属科技 没上市的科技互联网公司 西安互联网科技公司 沃里互联网科技 人人互联网科技是培训 深圳卡尔迅互联网科技有限公司怎么样 农村开互联网科技讲堂 江苏南京365互联网科技 智腾互联网科技有限公司 千方科技属于互联网企业吗 银川新华互联网科技学校联系电话 翼展科技 首家互联网医院 明优互联网科技有限公司 南通创西澳互联网科技有限公司 浙南科技城互联网大厦招聘 唐山双旺合互联网科技产业园 绵阳真晨互联网科技有限公司 北京瑞云互联网科技有限公司 百单网互联网科技有限公司怎么样 鸠鸠互联网科技 智能科技公司是互联网公司吗 广州宏创互联网科技 互联网科技的英文 互联网科技股有哪些 中正互联网科技招聘 科技大学互联网专业好不好 怎样加入科技互联网 郑州欣桑互联网科技有限公司
0