三、nginx实现lnmp+discuz论坛

news2024/12/14 23:15:38

lnmp 

l:linux操作系统

n:nginx前端页面

m:mysql数据库,账号密码,数据库等等都保存在这个数据库里面

p:php——nginx擅长处理的是静态页面,页面登录账户,需要请求到数据库,通过php把动态请

求转发到数据库。

如图所示:nginx和数据库mysql之间的访问以及结果的返回都需要中介php。

实现lnmp+discuz论坛

首先提前准备好mysql、php和discuz的安装包

第一步:安装配置数据库mysql

1、安装mysql的依赖环境

apt install -y libaio1 libncurses5

2、解压mysql安装包

tar  -xf  mysql-8.0.30-el7-x86_64.tar.gz

     重命名成mysql并移至/usr/local/目录下

mv mysql-8.0.30-el7-x86_64.tar.gz  mysql

mv mysql  /usr/local/

3、创建mysql账户

useradd  -s   /sbin/nologin  mysql

     创建完之后记得要查看下是否成功

     修改mysql这个目录的所有者和所在组

chown  mysql.mysql   -R   /usr/local/mysql/

4、添加mysql主配置文件

vim   /etc/my.cnf

[client]    #客户端
port = 3306    #mysql监听端口
socket=/usr/local/mysql/mysql.sock   #mysql套接字的文件

[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    #mysql的pid文件
socket=/usr/local/mysql/mysql.sock   #mysql的套接字文件
bind-address = 0.0.0.0     #表示任意地址都可以访问
skip-name-resolve      #mysql服务器将不再尝试将主机名解析为IP地址
max_connections=2048      #最大连接数2048
default-storage-engine=INNODB      #默认存储引擎为INNODB
max_allowed_packet=16M     #允许的最大数据包16M
server-id = 1        
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

     修改配置文件所属者

chown  mysql.mysql   /etc/my.cnf

     把配置文件整个添加到系统里以便系统能识别配置文件

5、初始化mysql

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

6、复制mysql.server文件并赋权

     将/usr/local/mysql/support-files/下的mysql.serve,复制到/etc/init.d/,并改名成mysqld

     给mysqld添加可执行权限并重启mysqld服务

chmod +x /etc/init.d/mysqld
systemctl daemon-reload
systemctl restart mysqld

这时候查看3306端口显示mysqld已启来

7、初始化mysql账户

      先初始化mysql账户,初始化账户root,初始化密码123456

     登录mysql账户 

8、实现远程连接mysql

     首先创建一个远程登录identified的mysql用户并赋权,‘@’表示任意的IP地址

create user 'root'@'%' identified by '123456';

grant all privileges on *.* root'@'%';

使用alter修改加密方式,root用户加密方式就是密码123456

最后别忘了结束语flush,刷新权限

这时候我们使用Navicat便可实现远程连接

第二步:安排安装配置php

1、安装php依赖环境

apt-get install -y libgd-dev libjpeg8-dev libpng-dev libfreetype6-dev libxml2-dev zlib1g-dev libcurl4-openssl-dev libssl-dev libonig-dev libsqlite3-dev

2、解压安装php

     在安装包里面创建一个组nobody

     安装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-pdo-mysql \
--with-openssl \
--with-sqlite-devel \
--with-oniguruma-devel \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip

最后安装php

make -j 4 && make install

3、配置php主配置文件php.ini

先创建两个软连接,使系统能识别php相关命令

php三个配置文件

  • php.ini:主配置文件
  • php-fpm.conf:进程服务端的配置文件
  • www.conf:扩展配置文件

三个配置文件都有,但是名字并不是这个,都需要我们改名配置。

首先我们将php源码包里面的主配置文件移动并修改名字到指定位置

修改php.ini配置文件,具体操作如下

  • #定义时区
  • #定义mysql套接字的文件

4、配置php进程服务端的配置文件php-fpm.conf

首先将指定目录下的php-fpm.conf.default文件复制成php-fpm.conf

接着vim配置php-fpm.conf,修改如下两行

5、配置php扩展配置文件www.conf

首先在指定目录下还是老样子改名,这个文件不需要配置

6、启动php

首先启动配置文件,操作命令如下

  • php-fpm:是一个fastcgi的管理工具,nginx的动态请求实际上是由php-fpm来处理
  • 9000:是php默认端口

接着把源码包的php-fpm.service复制到系统管理服务目录下,使系统可以直接控制php服务

最后重启php服务

注意要查看日志是否重启成功,防止假启动。

第三步:配置nginx

修改nginx主配置文件,添加一个location,并修改主location,配置和注释如下

配置完之后,重启nginx服务

第四步:安装配置discuz

1、首先给discuz创建一个数据库,给论坛使用,具体操作如下

CREATE DATABASE bbs;

CREATE USER 'bbsuser'@'%' IDENTIFIED BY 'admin123';
GRANT ALL PRIVILEGES ON bbs.* TO 'bbsuser'@'%';
FLUSH PRIVILEGES;

CREATE USER 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';
GRANT ALL PRIVILEGES ON bbs.* TO 'bbsuser'@'localhost';
FLUSH PRIVILEGES;

2、接着我们测试nginx访问数据库是不是正常

我们新建一个目录/var/www/html/(nginx配置文件里面我们定义好的location),在它的里面创建一个脚本文件 index.php,添加如下,表示如果正常显示success,失败则是Fail。

这时候我们访问nginx的index.php这个location,显示成功

3、安装论坛

首先解压Discuz_X3.5_SC_UTF8.zip

unzip  Discuz_X3.5_SC_UTF8.zip   -D   /opt/Dis

接着将Dis目录下的upload文件夹复制到指定目录/var/www/html/下,并改名成bbs

然后给bbs修改权限

最后我们进入bbs/config/目录下,将如下两个文件复制重命名

并给重新赋权

第五步:实现论坛

我们登录http://192.168.254.14/bbs/install/index.php

实现安装论坛

 最后我们登录论坛http://192.168.254.14/bbs/index.php

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2259600.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MFC】如何读取rtf文件并进行展示

tf是微软的一个带格式的文件,比word简单,我们可以用写字板等程序打开编辑。下面以具体实例讲解如何在自己程序中展示rtf文件。 首先使用VS2022创建一个MFC的工程。 VIEW类需要选择richview类,用于展示,如下图: 运行效…

AudioSegment 将音频分割为指定长度时间片段 - python 实现

DataBall 助力快速掌握数据集的信息和使用方式,会员享有 百种数据集,持续增加中。 需要更多数据资源和技术解决方案,知识星球: “DataBall - X 数据球(free)” -------------------------------------------------------------…

【新人系列】Python 入门(十六):正则表达式

✍ 个人博客:https://blog.csdn.net/Newin2020?typeblog 📝 专栏地址:https://blog.csdn.net/newin2020/category_12801353.html 📣 专栏定位:为 0 基础刚入门 Python 的小伙伴提供详细的讲解,也欢迎大佬们…

Leetcode 每日一题9.回文数

🌈🌈🌈今天给大家分享的是:回文数的解法 目录 ​编辑 问题描述 输入输出格式 示例 约束条件 进阶挑战 解决方案 问题分析 过题图片 字符串转换法 数学方法 算法解释 题目链接 结论 问题描述 给定一个整数 x,我们需要…

Python Turtle 实现动态时钟:十二时辰与星空流星效果

在这篇文章中,我将带你通过 Python 的 turtle 模块构建一个动态可视化时钟程序。这个时钟不仅具备传统的时间显示功能,还融合了中国古代的十二时辰与八卦符号,并通过动态星空、流星效果与昼夜背景切换,为程序增添了观赏性和文化内…

建筑电气火灾是怎么发生的?如何降低电气火灾风险?

电气火灾一直是建筑火灾的主要诱因,占总火灾比例的28.4%。传统的末端配电监控手段存在覆盖范围不足、反应时间滞后等问题,难以及时发现并应对潜在的电气安全隐患。本文提出了一种基于通讯模块、智能微断和智能终端的建筑末端配电解决方案,通过…

Go有限状态机实现和实战

Go有限状态机实现和实战 有限状态机 什么是状态机 有限状态机(Finite State Machine, FSM)是一种用于建模系统行为的计算模型,它包含有限数量的状态,并通过事件或条件实现状态之间的转换。FSM的状态数量是有限的,因此称…

Qt实现自定义行编辑器

引言 开发环境项目结构ui界面设计示例代码运行效果总结qt中原有的行编辑器无法满足当前的需要,所以需要自定义行编辑器。 通过上下按键切换到不同的行编辑器,在选中的行编辑器中输入数字,编辑器呈现边框,编辑后按下回车键保存之前编辑的数值,没有按下回车键直接切换上下键…

企业级日志分析系统ELK之ELK概述

ELK 概述 ELK 介绍 什么是 ELK 早期IT架构中的系统和应用的日志分散在不同的主机和文件,如果应用出现问题,开发和运维人员想排 查原因,就要先找到相应的主机上的日志文件再进行查找和分析,所以非常不方便,而且还涉及…

2024153读书笔记|《春烂漫:新平摄影作品选》——跳绳酷似人生路,起落平常,进退平常,莫惧征途万里长

2024153读书笔记|《春烂漫:新平摄影作品选》——跳绳酷似人生路,起落平常,进退平常,莫惧征途万里长 《春烂漫:新平摄影作品选》作者新平,2019.12.25年读完的小书,当时就觉得挺不错,今…

每日一站技術架構解析之-cc手機桌布網

# 網站技術架構解析: ## 一、整體架構概述https://tw.ccwallpaper.com是一個提供手機壁紙、桌布免費下載的網站,其技術架構設計旨在實現高效的圖片資源管理與用戶訪問體驗優化。 ### (一)前端展示 1. **HTML/CSS/JavaScript基礎構…

Nacos 3.0 Alpha 发布,在安全、泛用、云原生更进一步

自 2021 年发布以来,Nacos 2.0 在社区的支持下已走过近三年,期间取得了诸多成就。在高性能与易扩展性方面,Nacos 2.0 取得了显著进展,同时在易用性和安全性上也不断提升。想了解更多详细信息,欢迎阅读我们之前发布的回…

Mybatis -plus -jion的复习

Mybatis -plus -jion 是一个 MyBatis-Plus 的增强工具,在 MyBatis-Plus 的基础上只做增强不做改变,为简化开发、提高效率而生。 - **无侵入**:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 - **损耗小…

计算机网络-Wireshark探索ARP

使用工具 Wiresharkarp: To inspect and clear the cache used by the ARP protocol on your computer.curl(MacOS)ifconfig(MacOS or Linux): to inspect the state of your computer’s network interface.route/netstat: To inspect the routes used by your computer.Brows…

Qt之自定义动态调控是否显示日志

创作灵感 最近在芯驰x9hp上开发仪表应用。由于需要仪表警告音,所以在该平台上折腾并且调试仪表声音的时候,无意间发现使用: export QT_DEBUG_PLUGINS1 可以打印更详细的调试信息。于是想着自己开发的应用也可以这样搞,这样更方便…

右玉200MW光伏电站项目 微气象、安全警卫、视频监控系统

一、项目名称 山西右玉200MW光伏电站项目 微气象、安全警卫、视频监控系统 二、项目背景: 山西右玉光伏发电项目位于右玉县境内,总装机容量为200MW,即太阳能电池阵列共由200个1MW多晶硅电池阵列子方阵组成,每个子方阵包含太阳能…

Java基础学习:java常用启动命令

一、java -jar 1、系统属性传递 使用形式:java -DpathD:\jacoco -jar 获取方式:System.getProperties() 2、系统参数传递 使用形式:java -jar application.jar --jacocoPathD:\tomcat 获取方式:通过启动方法入口main的参数arg…

一级考试真题(2019)

一级考试真题(2019)

echarts图表自定义配置(二)——代码封装

下图是初版,火山图的代码。可以看出,里面的变量,逻辑,函数存在冗余,基本上都是改了参数,同样的get和set,去刷新图表;对于往后继续开发十几二十个图表,会很麻烦。因此需要…

如何用状态图进行设计05

到目前为止,我们已经讨论了状态图的原理。这些原理对状态图和扩展状态图都适用。第二章后面的部分主要讲述了扩展状态图的扩展功能。我们将围绕这些增强的功能,使你对BetterState Pro的设计能力有很好的了解。 关于这些内容和其他有关扩展状态图特性的完…