三、nginx实现lnmp+discuz论坛

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.rhkb.cn/news/488723.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

03篇--二值化与自适应二值化

二值化 定义 何为二值化?顾名思义,就是将图像中的像素值改为只有两种值,黑与白。此为二值化。 二值化操作的图像只能是灰度图,意思就是二值化也是一个二维数组,它与灰度图都属于单信道,仅能表示一种色调…

CV之UIGM之OmniGen:《OmniGen: Unified Image Generation》翻译与解读

CV之UIGM之OmniGen:《OmniGen: Unified Image Generation》翻译与解读 导读:这篇论文介绍了OmniGen,一个用于统一图像生成的扩散模型。 >> 背景痛点:目前的图像生成模型大多专注于特定任务,例如文本到图像生成。…

数据分析python小工具录入产品信息到Excel

在没有后台管理系统的时候,有时候为了方便起见,想提供一个输入框让运营人员直接输入,然后数据就会以数据库的形式存进数据库 效果图: 输入用户名 输入数据 输入信息后点击添加到表格,检查后方便批量保存到excel …

scala的泛型2

package test55 //隐式转换 //1.隐式函数 //2.隐式类 //3.隐式对象 //4.函数的隐式参数//泛型:类型参数化。 //Pair 约定一对数据 class Pair[T](var x:T, var y:T) //泛型的应用场景: //1.泛型函数 //2.泛型类 //3.泛型特质 object test2 {def main(arg…

【刷题22】BFS解决最短路问题

目录 一、边权为1的最短路问题二、迷宫中离入口最近的出口三、最小基因变化四、单词接龙五、为高尔夫比赛砍树 一、边权为1的最短路问题 如图:从A到I,怎样走路径最短 一个队列一个哈希表队列:一层一层递进,直到目的地为止哈希表&…

Google Cloud Database Option(数据库选项说明)

关系数据库 在关系数据库中,信息存储在表、行和列中,这通常最适合结构化数据。因此,它们用于数据结构不经常更改的应用程序。与大多数关系数据库交互时使用 SQL(结构化查询语言)。它们为数据提供 ACID 一致性模式&am…

【Java 学习】面向程序的三大特性:封装、继承、多态

引言 1. 封装1.1 什么是封装呢?1.2 访问限定符1.3 使用封装 2. 继承2.1 为什么要有继承?2.2 继承的概念2.3 继承的语法2.4 访问父类成员2.4.1 子类中访问父类成员的变量2.4.2 访问父类的成员方法 2.5 super关键字2.6 子类的构造方法 3. 多态3.1 多态的概…

PAT甲级-1114 Family Property

题目 题目大意 共有n个户主,每个户主的房产按照“ 户主id 父亲id 母亲id 孩子个数 孩子的id 房产数 房产面积 ”的格式给出。如果父亲或母亲不存在,值为-1。每个户主及其父亲母亲孩子可以构成一个家庭,不同户主如果有相同的家人,…

如何不重启修改K8S containerd容器的内存限制(Cgroup方法)

1. 使用crictl 查看容器ID crictl ps2. 查看Cgroup位置 crictl inspect 容器ID3. 到容器Cgroup的目录下 使用上个命令就能找到CgroupPath 4 . 到cgroup目录下 正确目录是 : /sys/fs/cgroup/memory/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-podf68e18…

《计算机视觉:瓶颈之辩与未来之路》

一、计算机视觉的崛起 计算机视觉是使用计算机模仿人类视觉系统的科学,让计算机拥有类似人类提取、处理、理解和分析图像以及图像序列的能力。它是一个多学科交叉的领域,与机器视觉、图像处理、人工智能、机器学习等领域密切相关。 计算机视觉行业可分为…

Burp suite2 (泷羽sec)

声明 学习视频来自B站UP主 泷羽sec,如涉及侵泷羽sec权马上删除文章。 笔记只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 这节课旨在扩大自己在网络安全方面的知识面,了解网络安全领域的见闻,了…

Scala中求汉罗塔游戏

记:f(n,"A","B","C")表示n个盘子从A柱子上移动到C柱子上,借用B柱子的过程 f(要移动的盘子的个数,起点,辅助柱子,终点) 1.基本情况(直接能求的):f(1,"A",&…

mac 安装CosyVoice (cpu版本)

CosyVoice 介绍 CosyVoice 是阿里研发的一个tts大模型 官方项目地址:https://github.com/FunAudioLLM/CosyVoice.git 下载项目(非官方) git clone --recursive https://github.com/v3ucn/CosyVoice_for_MacOs.git 进入项目 cd CosyVoic…

C++50道经典面试题

文章结尾有最新热度的文章,感兴趣的可以去看看。 本文是经过严格查阅相关权威文献和资料,形成的专业的可靠的内容。全文数据都有据可依,可回溯。特别申明:数据和资料已获得授权。本文内容,不涉及任何偏颇观点,用中立态度客观事实描述事情本身 导读 作为一种通用且面向对…

家里养几条金鱼比较好?

金鱼,作为备受喜爱的家庭水族宠物,其饲养数量一直是众多养鱼爱好者关注的焦点。究竟养几条金鱼最为适宜,实则需要综合考量多方面因素,方能达到美观、健康与和谐的理想养鱼境界。 从风水文化的视角来看,金鱼数量有着诸…

启明智显ZX7981PC:5G时代的新选择,全屋网络无缝覆盖

在这个飞速发展的5G时代,每一个细微的科技进步都在推动着我们的生活向更加智能、便捷的方向发展。近日,启明智显再次引领科技潮流,正式发布其最新的5G CPE产品——ZX7981PC。作为继7981PG与7981PM之后的又一次迭代升级,ZX7981PC凭…

MATLAB四种逻辑运算

MATLAB中的四种逻辑运算包括逻辑与用&或 a n d 表示 ( 全为 1 时才为 1 ,否则为 0 ) and表示(全为1时才为1,否则为0) and表示(全为1时才为1,否则为0),逻辑或用|或 o r 表示 ( 有 1 就为 1 ,都为 0 才为 0 ) or表示…

讲解如何使用NLTK?外加数据清理实例演示

一、如何使用NLTK? 定义:自然语言工具包(Natural Language Toolkit),它是一个将学术语言技术应用于文本数据集的 Python 库,称为“文本处理”的程序设计是其基本功能,专门用于研究自然语言的语…

【PlantUML系列】状态图(六)

一、状态图的组成部分 状态:对象在其生命周期内可能处于的条件或情形,使用 state "State Name" as Statename 表示。初始状态:表示对象生命周期的开始,使用 [*] 表示。最终状态:表示对象生命周期的结束&…

ARM循环程序和子程序设计

1、计算下列两组数据的累加和并存入到sum1和 sum2 单元中。datal:0x12,0x935,0x17,0x100,0x95,0x345。 data2:0x357,0x778,0x129,0x188,0x190,0x155,0x167。 1.定义数据段 ;定义数据段,类型为data(表示为数据段),权限为可读可写(程序可以读取和修改这…