LNMP及论坛搭建(第一个访问,单节点)

LNMP:目前成熟的一个企业网站的应用模式之一,指的是一套协同工作的系统和相关软件

能够提供静态页面服务,也可以提供动态web服务,LNMP是缩写

L:指的是Linux操作系统。

N:指的是nginx,nginx提供网站服务,前端的静态页面服务,同时还有代理转发作用

转发后端请求,转发到PHP。nginx没有处理动态资源的功能,但是他有可以支持转发动态请求的模块。

M:指的是mysql关系型数据库,用于保留用户的账户密码。

P:指的是PHP,动态页面的编程语言,负责解释动态网页文件,和nginx以及数据库协同工作

主要作用是前端开发,PHP作为中间键。

数据流向:

客户端→nginx→PHP→mysql

nginx PHP mysql都是在Linux中

客户端用get方式请求到nginx,nginx只能查看静态页面

当需要用户登录输入账户密码时(有交互操作时为动态页面)通过nginx支持PHP转发模块到PHP发起后端动态请求

PHP到mysql:socket端口和数据库建立通信,post数据传输给mysql,mysql查询数据库,匹配账号和密码

需要用到编译安装,用二进制包进行安装

yum安装只是安装基础服务模块,其他模块要想用,用户要手动重新添加

而编译安装可以自由的指定需要的模块,在企业中nginx,mysql都是编译安装、

论坛搭建实验:

虚拟机内存一定要给到4G

 把安装包拖进来

 解压nginx安装包到当前文件夹

 在真正的程序下面编译安装                                                              

 ./configure \       安装
--prefix=/usr/local/nginx \       指定安装包路径
--user=nginx \           指定哪个用户可以打开nginx
--group=nginx \        指定所在的组为nginx
--with-http_stub_status_module       可以支持查看http请求状态的模块

 创建nginx的程序用户  -M不需要家目录    不需要登录

 安装  -j 4:指定使用4个cpu核安装,提高安装速度

 真正的安装的nginx程序所在的地方,opt目录下的那个只是一个源码包

 建一个软连接,优化路径

 要到sbin里面

 添加到系统服务当中

给权限

 小技巧,用nginx -t看语法和配置文件是否有问题

 重启

 验证一下nginx是否有问题

下面安装数据库mysql

 安装依赖环境

创建运行用户

 编译安装,先到opt目录下解压mysql包

 到源码目录里进行操作,所有的操作都在mysql包里进行操作

 设置数据库配置的过程                                                                                             -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
#指定mysql的安装路径
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
#指定mysql进程监听套接字文件(数据库连接文件)的存储路径
-DSYSCONFDIR=/etc \
#指定配置文件的存储路径
-DSYSTEMD_PID_DIR=/usr/local/mysql \
#指定进程文件的存储路径
-DDEFAULT_CHARSET=utf8  \
#指定默认使用的字符集编码,如utf8
-DDEFAULT_COLLATION=utf8_general_ci \
#指定默认使用的字符集校对规则
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
#安装INNOBASE存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
#安装ARCHIVE存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
#安装BLACKHOLE存储引擎
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
#安装FEDERATED存储引擎
-DMYSQL_DATADIR=/usr/local/mysql/data \
#指定数据库文件的存储路径
-DWITH_BOOST=boost \
#指定boost的路径,
-DWITH_SYSTEMD=1
#生成便于systemctl管理的文件

 在编译安装mysql前检查一下内存是否够用,如果不够用可以用echo 1 > /proc/sys/vm/drop_caches  这个命令来清理内存,防止在编译安装时报错

 安装

 配置数据库文件

 其中模块组件:NO_ENGINE_SUBSTITUTION
如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常
STRICT_TRANS_TABLES
在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制
NO_AUTO_CREATE_USER
禁止:GRANT创建密码为空的用户
NO_AUTO_VALUE_ON_ZERO
mysql中的自增长列可以从o开始。默认情况下自增长列是从1开始的,如果你插入值为0的数据会报错
NO_ZERO_IN_DATE
mysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告
ERROR_FOR_DIVISION_BY_ZERO
在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告。默认情况下数据被零除时MysQL返回NULL
IPES_AS_CONCAT
将"||"视为字符串的连接操作符而非或运算符,这和oracle数据库是一样的,
ANSI QUOTES
启用ANSI QUOTES后,不能用双引号来引用字符串,因为它被解释为识别符

 更改mysql安装目录和配置文件的属主属组

 把mysql的环境变量写到系统配置文件etc/profile里面去实现全局配置对所有终端都生效,让系统来进行识别

 立即生效

 对数据库的数据初始化

 把配置文件复制到usr/lib/systemd/system下面

 对数据库的数据初始化  > --initialize-insecure \就是初始化  > --user=mysql \
用户指定mysql   > --basedir=/usr/local/mysql \
> --datadir=/usr/local/mysql/data  把mysql目录和mysql数据存储文件都进行初始化

 把配置文件复制到usr/lib/systemd/system下面

 重新加载配置

 重启MySQL服务

 给数据库设置密码,用户名为root,密码为123456

如果设置密码报错,解决步骤如下

 添加skip-grant-tables  #免密登录  保存退出后

不用输入密码直接回车

 

 重新设置密码

 回到配置文件中删除免密登录的命令

 重启mysql服务,这时可以用密码123456进行登录

 打开Navicat 点击连接,连接名随便起,主机名要改成服务器的地址

 进行连接测试报错,因为没有给远程连接工具的访问权限

 grant all privileges on *.* to 'root'@'%' identified by '123456';        (有分号)
#授予root用户可以在所有终端远程登录,使用的密码是123456,并对所有数据库和所有表有操作权限



grant:赋权语句

all  privileges:所有权限  select,create,insert,update,delete,drop 

 ,:授予root用户,可以操作所有数据库当中的所有的表

root:指定用户 

 %:所有主机都拥有连接数据库的权限

identified by '123456'  用户登录时需要输入密码,密码是123456

 flush privileges; 刷新权限
最好刷新一下

 再到Navicat里面看一下,连接成功

 使用一下Navicat,输入几条查询语句,右键可以选择运行已选择的

下面到处理中间键的PHP部分

 安装环境依赖包

到opt目录下

 解压源码包

 进入php源码包中

 --prefix=/usr/local/php: 指定PHP的安装目录为/usr/local/php。
--with-mysql-sock=/usr/local/mysql/mysql.sock: 指定MySQL的Unix socket文件路径,用于与MySQL数据库建立连接。
--with-mysqli: 启用MySQLi扩展,用于支持MySQL数据库。
--with-zlib: 启用Zlib库,用于压缩和解压缩数据。
--with-curl: 启用cURL库,用于支持对URL的操作,如下载文件等。
--with-gd: 启用GD库,用于处理图像。
--with-jpeg-dir: 指定JPEG库的路径,用于GD库对JPEG格式图片的处理。
--with-png-dir: 指定PNG库的路径,用于GD库对PNG格式图片的处理。
--with-freetype-dir: 指定FreeType库的路径,用于GD库对字体的支持。
--with-openssl: 启用OpenSSL库,用于支持SSL加密和HTTPS协议。
--enable-fpm: 启用PHP-FPM(FastCGI Process Manager),用于提供更高效的PHP进程管理和请求处理。
--enable-mbstring: 启用多字节字符串支持,用于处理多字节字符集的操作。
--enable-xml: 启用XML支持,用于处理XML文档和数据。
--enable-session: 启用会话支持,用于在不同页面间保持用户会话状态。
--enable-ftp: 启用FTP支持,用于对FTP服务器进行操作。
--enable-pdo: 启用PDO(PHP Data Objects),用于支持数据库访问的统一接口。
--enable-tokenizer: 启用Tokenizer扩展,用于对字符串进行分词处理。
--enable-zip: 启用Zip扩展,用于对ZIP文件进行操作。

 安装前查看一下内存是否够,不够就清理一下内存,防止报错

 安装一下

 把bin里面的和sbin里面的文件都优化一下

补充:调整PHP配置文件
php有三个配置文件: 
php.ini 主配置文件  
php-fpm.conf 进程服务配置文件 
www.conf 扩展配置文件

 把名字改一下

 修改配置文件

 939gg 取消注释把时区改了  

 1170gg,告诉php,通信的配置文件在/usr/local/mysql/mysql.sock

以上为对php的主配制文件进行修改

 看安装模块是否正常

 修改进程服务配置文件

 

改名

 

 把pid号文件取消注释

 www.conf是扩展配置文件

 给www.conf.default改个名字

 启动php-fpm

 php默认端口号为9000

这个时候php就启动好了

 复制,做备份

 重启php服务

 看一下端口号是否正确

下面回到nginx,nginx本身不能处理动态请求,动态请求交给PHP 

修改nginx配置文件

 取消注释

 

 代表当前请求在root指令中指定的值

$document_root=/usr/local/nginx/html指定默认路径

 $fastcgi_script_name=  index.php    把指定的默认路径传给php

/usr/local/nginx/html    所有的动态请求文件的默认位置

请求的文件名为:index.php

 检测配置文件修改是否正确

 修改完要重启服务

接下来验证一下php的验证页

 默认请求的目录都在这个下面,创建一个动态请求的页面

 一个简单的验证PHP测试页

 测试一下页面,这就是获取到的php动态页面

配置数据库

 进入数据库

 创建一个数据库,名字叫bbs

查看一下是否创成功

 

 开始赋权,只要用户名叫bbsuser给他所有的权限,登录密码为admin123

 本地用户登录也需要输入密码admin123

 把权限刷新一下

 改配置文件,测试一下php服务和数据库之间的通信是否正常

 PHP脚本
使用mysqli_connect()函数连接到MySQL数据库服务器。

'192.168.88.20':表示MySQL服务器的IP地址。
'bbsuser':表示要连接的MySQL用户。
'admin123':表示MySQL用户的密码。
判断连接状态:

如果连接成功,即$link不为空,就输出<h1>Success!!</h1>,显示"Success!!"这个标题。
如果连接失败,即$link为空,就输出Fail!!,显示"Fail!!"这个信息。

该脚本的目的是测试连接到MySQL数据库服务器的状态。如果连接成功,
将显示"Success!!",如果连接失败,将显示"Fail!!"

最后一步:部署论坛

 在opt目录下解压论坛的数据包

 把整个目录复制到页面配置页面下面nginx/html

起个名字叫bbs

 

 把所有者改成nginx ./config/

 把数据文件所有者改了

 把客户端所有者目录改掉

 把服务端所有者目录改掉

 赋权

 ll看一下是否有问题,下面通过网页进行论坛访问

 

 

 

 所有的两边都要是打勾的

 

 密码都为admin123

 

 因为要写到绝对路径上才可以进行访问

 

 管理员账户登录成功

 可以进行管理

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Vue3项目实战】vue3项目基于el-menu封装左侧菜单栏组件

文章目录 概述一、先看效果1.1 静态效果1.2 动态效果 二、核心思路三、全量代码3.1 文件目录结构3.2 /sidebar/index.vue 中3.3 /sidebar/sidebarItem.vue 中3.4 路由表结构 四、代码讲解五、SVG组件六、系列文章友链1、[配置husky、stylelint、commitlint&#xff0c;实现git提…

HadoopWEB页面上传文件报错Couldn‘t upload the file course_info.txt

HadoopWEB页面上传文件报错Couldn’t upload the file course_info.txt 右键F2检查发现&#xff1a;文件上传PUT操作的IP地址是节点IP别名识别不到导致 解决方法&#xff1a;在WEB页面访问浏览器所在机器上面配置hosts映射地址(注意:配置的是浏览器访问的地址不是hadoop节点所在…

使用Golang实现一套流程可配置,适用于广告、推荐系统的业务性框架——组合应用

在《使用Golang实现一套流程可配置&#xff0c;适用于广告、推荐系统的业务性框架——简单应用》中&#xff0c;我们看到了各种组合Handler的组件&#xff0c;如HandlerGroup和Layer。这些组件下面的子模块又是不同组件&#xff0c;比如LayerCenter的子组件是Layer。如果此时我…

网络安全(黑客)自学的误区

一、自学网络安全学习的误区和陷阱 1.不要试图先成为一名程序员&#xff08;以编程为基础的学习&#xff09;再开始学习 我在之前的回答中&#xff0c;我都一再强调不要以编程为基础再开始学习网络安全&#xff0c;一般来说&#xff0c;学习编程不但学习周期长&#xff0c;而…

项目中使用非默认字体

项目场景&#xff1a; 由于开发需要&#xff0c;默认的字体不符合开发需求&#xff0c;有时候我们需要引入某种字体到项目中 解决方案&#xff1a; 首先需要下载或引入字体包 然后创建一个 index.css 文件用于声明引入字体名称 font-face {font-family: "YouSheBiao…

C语言多级指针

#include "stdio.h" #include <stdlib.h>int main() {int a 10;//*p int a int *pint* p &a;int** q &p;//int** q int *(*q) int *(q) a//int**q int*(*q) int*(&a) int*&a aint*** k &q;//分析&#xff1a;首先k是个变量&…

大模型系列|基于大模型复杂数据系统架构(二)

张俊林老师在 2023 WAIC AI 开发者论坛的演讲非常有概括性&#xff0c;这边沿着思路进行一定的整理。&#xff08;文章来源&#xff1a;WAIC 2023 | 张俊林&#xff1a;大语言模型带来的交互方式变革&#xff09; 文章目录 1 PlanningProgramming 模式的系统技术架构2 HuggingG…

【Linux】创建与删除用户

新增用户&#xff1a; adduser 用户名【添加用户】 passwd 用户名【设置用户密码】删除用户&#xff1a; userdel -r 用户名【删除用户】

【多模态】23、RO-ViT | 基于 Transformer 的开发词汇目标检测(CVPR2023)

文章目录 一、背景二、方法2.1 基础内容2.2 Region-aware Image-text Pretraining2.3 Open-vocabulary Detector Finetuning 三、效果3.1 细节3.2 开放词汇目标检测效果3.3 Image-text retrieval3.4 Transfer object detection3.5 消融实验 论文&#xff1a;Region-Aware Pretr…

如何解决电脑无声问题:排除故障的几种常见方法

大家好&#xff0c;今天我们来讨论一下处理电脑没有声音的故障。当你突然发现电脑静音无声时&#xff0c;需要逐步排除可能的问题&#xff0c;但总体而言&#xff0c;声音故障是相对容易解决的。接下来&#xff0c;我们将介绍一些排除电脑无声问题的方法。 第一步&#xff1a;…

使用 FastGPT 构建高质量 AI 知识库

作者&#xff1a;余金隆。FastGPT 项目作者&#xff0c;Sealos 项目前端负责人&#xff0c;前 Shopee 前端开发工程师 FastGPT 项目地址&#xff1a;https://github.com/labring/FastGPT/ 引言 自从去年 12 月 ChatGPT 发布以来&#xff0c;带动了一轮新的交互应用革命。尤其在…

安卓:BottomNavigationBar——底部导航栏控件

目录 一、BottomNavigationBar介绍 二、BottomNavigationBar的常用方法及其常用类 &#xff08;一&#xff09;、常用方法 1. 添加菜单项 2. 移除菜单项 3. 设置选中监听器 4. 设置当前选中项 5. 设置徽章 6. 样式和颜色定制 7. 动画效果 8. 隐藏底部导航栏。 9、设…

windows物理机 上安装centos ,ubuntu,等多个操作系统的要点

一、摘要 一般情况下&#xff0c;我们的笔记本或工作电脑都默认安装windows 分几个区&#xff0c;当下是win7 win8 win 10 win11 等&#xff0c;突然我们有需求需要安装个centos &#xff0c;后面我们应当怎么做&#xff0c;要点是什么&#xff1f;一定要根据网上的贴子一步步来…

【Golang 接口自动化00】为什么要用Golang做自动化?

目录 为什么使用Golang做自动化 最终想实现的效果 怎么做&#xff1f; 写在后面 资料获取方法 为什么使用Golang做自动化 顺应公司的趋势学习了Golang之后&#xff0c;因为没有太多时间和项目来实践&#xff0c;怕止步于此、步Java缺少练习遗忘殆尽的后尘&#xff0c;决定…

【iOS】json数据解析以及简单的网络数据请求

文章目录 前言一、json数据解析二、简单的网络数据请求三、实现访问API得到网络数据总结 前言 近期写完了暑假最后一个任务——天气预报&#xff0c;在里面用到了简单的网络数据请求以及json数据的解析&#xff0c;特此记录博客总结 一、json数据解析 JSON是一种轻量级的数据…

vulnhub靶机Empire_LupinOne

下载地址&#xff1a;https://www.vulnhub.com/entry/empire-lupinone,750/ 主机发现 arp-scan -l nmap --min-rate 10000 -p- 192.168.21.137 nmap -sV -sT -O -p22,80 192.168.21.137 nmap --scriptvuln -p22,80 192.168.21.137 先看一下网页 啥也没有 先看一下nmap扫出来的…

10.物联网操作系统之低功耗管理

一。低功耗管理概念及其应用 1.STM32低功耗设计详解 STM32的电源管理系统主要分为&#xff1a; 备份域 调压器供电电路 ADC电源电路 2.低功耗模式 1.运行模式 2.睡眠模式 3.停机模式 4.待机模式 &#xff08;1&#xff09;睡眠模式 在睡眠模式中&#xff0c;仅关闭了内核时钟&…

带你简单认识淘宝 API 接口,API接口适用场景和业务类型

淘宝 API 接口是为开发电商类应用程序而设计的一套完整的、跨浏览器、跨平台的接口规范。通过开放接口&#xff0c;开发者可以不改变现有系统&#xff0c;直接在原有系统上实现新功能。该规范于 2007 年发布&#xff0c;是目前业界唯一完整覆盖电商系统各相关业务领域的接口标准…

Flutter运行app时向logcat输出当前打开的界面路径且点击可跳转

当一个项目大了目录文件多了&#xff0c;我们往往会为了找到一个文件花费大量的时间和精力&#xff0c;为了快捷方便的调试我们的项目&#xff0c;我们往往需要在打开app运行的时候需要知道当前打开的界面的文件在哪儿&#xff0c;我们这个代码就能快捷的知道我们app正在打开的…

iTOP-RK3568开发板Windows 安装 RKTool 驱动

在烧写镜像之前首先需要安装 RKTool 驱动。 RKTool 驱动在网盘资料“iTOP-3568 开发板\01_【iTOP-RK3568 开发板】基础资料 \02_iTOP-RK3568 开发板烧写工具及驱动”路径下。 驱动如下图所示&#xff1a; 解压缩后&#xff0c;进入文件夹&#xff0c;如下图所示&#xff1a;…