编译安装LNMP架构之Discuz论坛
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,LNMP架构LNMP平台就是Linux,Nginx,MySQL,PHP的组合架构,需要Linux服务器,MySQL服务器,PHP解析环境LNMP架构组件Linux是一类Unix计算机操作系统的统称,是
千家信息网最后更新 2025年12月02日编译安装LNMP架构之Discuz论坛
LNMP架构
LNMP平台就是Linux,Nginx,MySQL,PHP的组合架构,需要Linux服务器,MySQL服务器,PHP解析环境
LNMP架构组件
Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。Nginx是一个高性能的HTTP和反向代理服务器。Mysql是一个小型关系型数据库管理系统。PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。LAMP的优势
Nginx性能稳定、功能丰富、运维简单、处理静态文件速度快且消耗系统资源极少,小巧高效。演示步骤:
第一步:在Linux上使用远程共享获取来自Windows共享的源码包
[root@localhost ~]# smbclient -L //192.168.235.1/ ##远程共享访问Enter SAMBA\root's password: Sharename Type Comment --------- ---- ------- LNMP Disk [root@localhost ~]# mkdir /abc [root@localhost ~]# mount.cifs //192.168.235.1/LNMP /abc ##挂载到/abc目录下第二步:编译安装Nginx
1,解压源码包到/opt目录
[root@localhost ~]# cd /abc ##切换到挂载点目录[root@localhost abc]# lsDiscuz_X3.4_SC_UTF8.zip nginx-1.12.2.tar.gzmysql-boost-5.7.20.tar.gz php-7.1.10.tar.gz[root@localhost abc]# tar zxvf nginx-1.12.2.tar.gz -C /opt ##解压Nginx源码包到/opt下[root@localhost abc]# 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]# cd nginx-1.12.2/ ##切换到nginx目录下[root@localhost nginx-1.12.2]# ./configure \ ##配置nginx> --prefix=/usr/local/nginx \ ##安装路径> --user=nginx \ ##用户名> --group=nginx \ ##用户组> --with-http_stub_status_module ##访问状态统计模块4,编译和安装
[root@localhost nginx-1.12.2]#make && make install5,优化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 ##开启nginx 服务6,制作service管理nginx脚本
[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 Script PROG="/usr/local/nginx/sbin/nginx" ##设置变量为nginx命令文件 PIDF="/usr/local/nginx/logs/nginx.pid" ##设置变量PID文件 进程号为5346 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[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 ##使用service启动nginx服务7,systemctl管理nginx脚本
[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 ##关闭nginx [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 /abc[root@localhost abc]# tar zxvf mysql-boost-5.7.20.tar.gz -C /opt [root@localhost abc]# 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 && make install5,修改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 = 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 ##设置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,初始化mysql数据库
[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/ ##ystemctl管理[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,解压源码包
[root@localhost mysql]# cd /abc [root@localhost abc]# tar jxvf php-7.1.10.tar.bz2 -C /opt [root@localhost abc]# 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 && make install5,配置核心配置文件
(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 69371/php-fpm: mast [root@localhost etc]# ln -s /usr/local/php/bin/* /usr/local/bin/ ##创建PHP命令软链接到系统命令[root@localhost etc]# ps aux | grep -c "php-fpm" ##查看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网页[root@localhost etc]# nginx -s stop##停止nginx服务[root@localhost etc]# nginx ##启动nginx服务8,测试网页
9,进入数据库创建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 ##重启服务10,再次测试网页

第六步:安装Discuz论坛压缩包
1,解压缩论坛包到/opt下,并将目录内容复制到bbs站点中
[root@localhost etc]# cd /abc [root@localhost abc]# unzip Discuz_X3.4_SC_UTF8.zip -d /opt ##解压到/opt下[root@localhost abc]# 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目录中的所有内容到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/ ##修改nginx属组[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.158/bbs/install/index.php站点,进入Discuz论坛向导
4,设置运行环境并进行全新安装
5,安装数据库
数据服务器:192.168.235.158(此处输入创建数据库主机的IP)数据库名:bbs数据库用户名:bbsusers(用户名可在命令行修改)数据库密码:admin123(密码可在命令行修改)管理员账号:admin(该账号为默认)密码:123123(密码可直接在网页设定)七,访问论坛,开始发帖吧!!!
文件
配置
数据
服务
目录
数据库
用户
支持
管理
密码
编译
环境
命令
模块
脚本
服务器
站点
系统
路径
进程
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发模型种类
重庆党员教育软件开发
计算机网络安全马利思维导图
数据库技术怎么确定候选码
软件工程提出的软件开发方法
虚拟主机开泰拉瑞亚服务器
数据库版本编号怎么查
网络数据库笔记本电脑
服务器硬盘维修报价表
济南中智互联网科技
数据库教材第四版答案
数据库 统计性别人数
软件开发技术面
软件开发工程师概念
数据库日期是什么软件
怎么画数据库的各表关联图
软件开发最好的在成都哪个区
网络安全部队发言
数据库建立职工表
flashfxp数据库
惠州金融软件开发优势
用服务器架设网站
游戏后期服务器管理
数据库和实例的关系
安恒网络安全销售的待遇
手机网络安全受到监管怎么解决
数据库读写分离是怎么实现的
腾讯健康系统服务器异常
代理服务器上谷歌
网络安全论文可以多投