LNMP架构之Discue论坛
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,LNMP架构LNMP平台就是Linux,Nginx,MySQL,PHP的组合架构,需要Linux服务器,MySQL服务器,PHP解析环境构成组件Linux是一类Unix计算机操作系统的统称,是目前最流
千家信息网最后更新 2025年12月02日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 rh2,安装编译需要的环境组件包
[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 start7,或者方便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 rh3,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 rh3,配置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"47,让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安全错误
数据库的锁怎样保障安全
x86服务器是使用什么cpu
太原恒速网络技术有限公司it
音乐 元数据库
svg转png服务器上失败
软件开发前置是什么意思
郑州糖小果网络技术
软件开发企业新收入准则
okr 软件开发模板
学校用维普查重数据库
公司软件开发信任 云趣科技
大账房软件开发
复翼软件开发年报
字节跳动服务器安全
部署网络安全工作已经
网络安全岗位认识
数据库的每一行代表
ntp服务器架设
数据库安全问题有哪些
在制造业软件开发
speedtest测速服务器地址
服务器管理与配置文件实训
鲲鹏平台软件开发
网络安全自查自纠整改方案
网络技术标准设计规范大全
美国网络安全的特征体现在
期刊属于主流数据库吗
我国网络安全面临哪些威胁
北京有什么特价云主机云服务器
服务器管理器添加服务
浪潮服务器blos设置