当前位置: 首页 > news >正文

LNMP安装

目录

1、LNMP简述:

1.1、概述

1.2、LNMP是一个缩写词,及每个字母的含义

1.3、编译安装与yum安装差异

1.4、编译安装的优点

2、通过LNMP创建论坛

2.1、 安装nginx服务

2.1.1、关闭防火墙

2.1.2、创建运行用户

2.1.3、 编译安装

2.1.4、 优化路径

2.1.5、 添加 Nginx 系统服务

 2.1.6、赋权刷新重启

2.2. 安装 MySQL 服务

2.2.1、 安装Mysql环境依赖包

2.2.2、 创建运行用户

2.2.3、编译安装  解压

 2.2.4、修改mysql 配置文件

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

​编辑 2.2.6、设置路径环境变量

2.2.7、 初始化数据库

2.2. 8、添加mysqld系统服务

2.2.9 修改mysql 的登录密码

2.2.10 授权远程登陆

2.3、处理动态页面的中间件 PHP

2.3.1、安装依赖环境

2.3. 2、编译安装

2.3.3、路径优化

2.3. 4、调整PHP配置文件

2.3.5、 启动PHP,端口号为9000

2.3.6、配置 Nginx 支持 PHP 解析

 2.3.7、验证PHP测试页.

2.3.8、 数据库配置

2.4 部署 Discuz!社区论坛 Web 应用

2.4.1、解压。复制

2.4.2 调整论坛目录的权限

 2.4.3、进行论坛访问192.168.41.7/bbs/install/index.php


1、LNMP简述:

1.1、概述

LNMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务及其应用开发环境。

1.2、LNMP是一个缩写词,及每个字母的含义

L: Linux操作系统、

N: nginx网站服务器、前端,提供前端的静态页面服务,同时具有代理和转发的作用

M: MySQL数据库服务器、关系型数据库,主要保存用户的账号和密码

P: PHP(或Perl、Python)动态网页编程语言。负责解释动态网页文件,负责沟通WEB服务器,和nginx以及数据库进行协同工作,PHP的主要作用就是web开发,前端开发

1.3、编译安装与yum安装差异

通过编译安装进行设置

编译安装用二进制进行安装,编译安装可以自由地指定需要的模块,

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

在企业中nginx、mysql都是编译安装

1.4、编译安装的优点

  1. 具有较大的自由度,功能可定制
  2. 可及时获得最新的软件版本
  3. 普遍适用于大多数Linux版本,便于一直使用
     

2、通过LNMP创建论坛

2.1、 安装nginx服务

2.1.1、关闭防火墙

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
、安装依赖包
yum -y install pcre-devel zlib-devel gcc gcc-c++ make

2.1.2、创建运行用户

useradd -M -s /sbin/nologin nginx

2.1.3、 编译安装

cd /opt
解压tar zxvf nginx-1.22.0.tar.gz -C /opt/

安装

cd nginx-1.22.0/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

 安装

 

 程序所在位置

2.1.4、 优化路径

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

2.1.5、 添加 Nginx 系统服务

vim /lib/systemd/system/nginx.service

[Unit]:这个部分定义了服务单元的元数据。
Description: 描述该服务单元的信息,描述为"nginx"。
After: 定义服务单元所依赖的其他单元,这里表示服务需要在网络加载完成之后启动。

[Service]:这个部分定义了服务的运行配置。
Type: 指定服务的类型,这里是forking,表示服务是一个后台进程(通常是fork出子进程)。
PIDFile: 指定保存主进程ID的文件路径,Nginx将会把主进程ID写入这个文件,以便Systemd可以追踪和管理进程。
ExecStart: 指定启动服务的命令。这里是启动Nginx的命令/usr/local/nginx/sbin/nginx。
ExecReload: 指定重新加载配置的命令。当执行此命令时,Systemd将发送HUP信号给主进程,Nginx将重新加载配置文件。
ExecStop: 指定停止服务的命令。当执行此命令时,Systemd将发送QUIT信号给主进程,Nginx将优雅地停止服务。
PrivateTmp: 将此项设置为true,表示为服务提供独立的临时目录。

[Install]:这个部分定义了服务的安装配置。
WantedBy: 指定服务所属的目标(target),这里是multi-user.target,表示服务在多用户模式下启动。

 2.1.6、赋权刷新重启

2.2. 安装 MySQL 服务

2.2.1、 安装Mysql环境依赖包

yum -y install \
ncurses \
ncurses-devel \
bison \
cmake

2.2.2、 创建运行用户

useradd -M -s /sbin/nologin  mysql

2.2.3、编译安装  解压

 进入源码目录进行更改

数据库配置过程

 查看内存容量,内存够了进行安装

 2.2.4、修改mysql 配置文件

vim /etc/my.cnf

 

 

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

chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf 

 2.2.6、设置路径环境变量

echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile  

2.2.7、 初始化数据库

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

2.2. 8、添加mysqld系统服务

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl start mysqld.service
systemctl enable mysqld

复制系统服务文件,重启服务
 

2.2.9 修改mysql 的登录密码

mysqladmin -u root -p password "123456"

2.2.10 授权远程登陆

mysql -u root -p

 授予root用户可以在所有终端远程登录,使用的密码是123456,并对所有数据库和所有表有操作权限,并进行刷新

 数据库完成

2.3、处理动态页面的中间件 PHP

2.3.1、安装依赖环境

2.3. 2、编译安装

cd /opt
tar jxvf php-7.1.10.tar.bz2

 

 make  -j 4 && make install 安装

编译安装完成后

2.3.3、路径优化

ln -s /usr/local/php/bin/* /usr/local/bin/
ln -s /usr/local/php/sbin/* /usr/local/sbin/
 

2.3. 4、调整PHP配置文件

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

将配置文件进行复制,以防止配置错误

更改时区 

 通信配置文件所在,为了和数据库建立通讯

 #验证安装的模块

 修改进程服务配置文件

cd /usr/local/php/etc/
cp  php-fpm.conf.default php-fpm.conf
vim php-fpm.conf

 

 调整扩展配置文件

cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf
 

2.3.5、 启动PHP,端口号为9000

/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini
netstat -anpt | grep 9000
 

 -c 后面表示读取的配置文件位置

2.3.6、配置 Nginx 支持 PHP 解析

 

 2.3.7、验证PHP测试页.

 

 

2.3.8、 数据库配置

数据库bbs创建成功

 赋权

 flush privileges;刷新

 替换原来的测试内容进行测试

 

 测试没问题

2.4 部署 Discuz!社区论坛 Web 应用

2.4.1、解压。复制

cd /opt
unzip Discuz_X3.4_SC_UTF8.zip  -d /opt/dis
cd /opt/dis/dir_SC_UTF8/
cp -r upload/ /usr/local/nginx/html/bbs/

 

 

2.4.2 调整论坛目录的权限

 2.4.3、进行论坛访问192.168.41.7/bbs/install/index.php

 

 

 论坛创建完成

相关文章:

LNMP安装

目录 1、LNMP简述: 1.1、概述 1.2、LNMP是一个缩写词,及每个字母的含义 1.3、编译安装与yum安装差异 1.4、编译安装的优点 2、通过LNMP创建论坛 2.1、 安装nginx服务 2.1.1、关闭防火墙 2.1.2、创建运行用户 2.1.3、 编译安装 2.1.4、 优化路…...

matplotlib绘图风格

文章目录 绘图风格测试代码默认和mpl风格复制风格seaborn风格 绘图风格 matplotlib功能强大,可以定制各种绘图要素,以满足个性化的绘图需求,而更换绘图风格也十分便捷,一个matplotlib.style.use函数轻松搞定,而可用的…...

【初级教程】Appium 启动应用 log 日志分析

刚开始学习 appium 时,老师给我布置了 appium 启动应用 log 分析的作业。由于工作比较忙,再者自己想先动手用 appium 写个公司的 app 的 UI 测试(目前简单的框架基本完成,在不断完善用例管理中)。写这篇文章是为了完成…...

FANUC机器人SRVO-300机械手断裂故障报警原因分析及处理办法

FANUC机器人SRVO-300机械手断裂故障报警原因分析及处理办法 首先,我们查看报警说明书上的介绍: 总结:即在机械手断裂设置为无效时,机器人检测出了机械手断裂信号(不该有的信号,现在检测到了,所以报警) 使机械手断裂设定为无效/有效的具体方法:  按下示教器的MENU菜单…...

MobPush iOS SDK iOS实时活动

开发工具:Xcode 功能需要: SwiftUI实现UI页面,iOS16.1以上系统使用 功能使用: 需应用为启动状态 功能说明 iOS16.1 系统支持实时活动功能,可以在锁定屏幕上实时获知各种事情的进展,MobPushSDK iOS 4.0.3版本已完成适配&#xf…...

c++开发模式,组合模式

组合模式,顾名思义,通过组合关系定义类间的关联关系,实现了将对象组合成树形结构,最终实现类的复用。可能是由于设计模式看的多了,初看组合模式的类图,感觉和装饰者模式类图很相似,都是使用继承…...

【GITHUB】FlipIt – Windows的开源翻页时钟

FlipIt 是一款免费开源的翻页时钟应用,专为 Windows 平台设计。该应用灵感来源于备受喜爱的老牌翻页时钟应用 Fliqlo,后者被公认为经典的翻页时钟屏保。然而,由于 Fliqlo 是基于 Flash 技术开发的,随着微软最近正式禁用 Flash&…...

基于 Flink Paimon 实现 Streaming Warehouse 数据一致性管理

摘要:本文整理自字节跳动基础架构工程师李明,在 Apache Paimon Meetup 的分享。本篇内容主要分为四个部分: 背景 方案设计 当前进展 未来规划 点击查看原文视频 & 演讲PPT 一、背景 ​ 早期的数仓生产体系主要以离线数仓为主&#xf…...

云游戏App简记

注:在安卓手机端使用。其他端不做分析。 App手机游戏PC和主机游戏免费时长(手机游戏)是否排队备注咪咕快游支持。数量一般,和腾讯还有合作,有不少腾讯的游戏支持每日登录签到送30-60分钟,当天失效&#xf…...

ChatGPT已打破图灵测试,新的测试方法在路上

生信麻瓜的 ChatGPT 4.0 初体验 偷个懒,用ChatGPT 帮我写段生物信息代码 代码看不懂?ChatGPT 帮你解释,详细到爆! 如果 ChatGPT 给出的的代码不太完善,如何请他一步步改好? 全球最佳的人工智能系统可以通过…...

Flask学习笔记_异步CMS(五)

Flask学习笔记_异步CMS(五) 1.环境1.安装nvm2.安装node 2.使用vue-cli创建项目3.安装相关插件4.后台CMS开发1.页面结构1.app.vue搭建结构2.element-icon组件的使用3.iconfont组件的使用 2.使用[Vue-router](https://router.vuejs.org/installation.html)…...

争夺年度智能汽车「中间件」方案提供商TOP10,谁率先入围

进入2023年,整车电子架构升级进入新周期,无论是智能驾驶、智能座舱、车身控制还是信息网络安全,软件赋能仍是行业的主旋律。 作为智能汽车赛道的第三方研究咨询机构,高工智能汽车研究院持续帮助车企、投资机构挖掘具备核心竞争力…...

【Spring Cloud一】微服务基本知识

系列文章目录 微服务基本知识 系列文章目录前言一、系统架构的演变1.1单体架构1.2分层架构1.3分布式架构1.4微服务架构1.5分布式、SOA、微服务的异同点 二、CAP原则三、RESTfulRESTful的核心概念: 四、共识算法 前言 在实际项目开发过程中,目前负责开发…...

swift - 如何在数组大小更改后刷新 ForEach 显示元素的数量(SwiftUI、Xcode 11 Beta 5)

我正在尝试实现一个 View ,该 View 可以在内容数组的大小发生变化时更改显示项目的数量(由 ForEach 循环创建),就像购物应用程序可能会在用户下拉刷新后更改其可用项目的数量一样 这是我到目前为止尝试过的一些代码。如果我没记错的话,这些适…...

编程导航算法村第七关 |二叉树的遍历

编程导航算法村第七关 | 二叉树的遍历 前序遍历&#xff08;递归&#xff09; public List<Integer> preorderTraversal(TreeNode root) {ArrayList<Integer> result new ArrayList<Integer>();preorder(root, result);return result;}public void preorde…...

【docker】docker-compose安装带ui页面的kafka集群

docker-compose 安装带kafka-ui 的kafka集群 在日常的工作当中&#xff0c;kafka集群作为常用的中间件&#xff0c;其搭建过程略显繁琐&#xff0c;需要配置的文件颇多&#xff0c;为了方便各位初学者快速体验kafka的魅力&#xff0c;本文采取一键式安装kafka-3.3.1&#xff0…...

java实现多级菜单

/** * 查询所有菜单 */ public BaseWebResponse<Object> getAllMenus() { List<SystemMenuInfo> systemMenuInfoList menuInfoMapper.getAllMenus(); List<SystemMenuInfo> menuTree buildMenuTree(systemMenuInfoList); return setResultSuccess(&q…...

HTML中元素和标签有什么区别?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 标签&#xff08;Tag&#xff09;⭐元素&#xff08;Element&#xff09;⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&a…...

android 如何分析应用的内存(十三)——perfetto

android 如何分析应用的内存&#xff08;十三&#xff09; 本篇文章是native内存的最后一篇文章——perfetto perfetto简介 从2018年始&#xff0c;android开发者峰会正式推出perfetto工具。从此perfetto成为安卓最重要的工具之一。在2018年以前&#xff0c;android使用syst…...

Chapter20 音乐

目录 音乐 琴键 哆来咪 振动与调式 利萨如曲线 和声与音调与和弦 音乐 在音乐理论中&#xff0c;一个八音度&#xff08;octave&#xff09;是一个频率范围相差二倍的区间。在大多数西洋乐器中&#xff0c;一个八音度被分为12个频率比相等的半音程&#xff08;semitone&a…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端&#xff0c;它允许HTTP与Elasticsearch 集群通信&#xff0c;而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应&#xff0c;这是一种非线性光学现象&#xff0c;主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场&#xff0c;对材料产生非线性响应&#xff0c;可能…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天&#xff0c;再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至&#xff0c;这不仅是开发者的盛宴&#xff0c;更是全球数亿苹果用户翘首以盼的科技春晚。今年&#xff0c;苹果依旧为我们带来了全家桶式的系统更新&#xff0c;包括 iOS 26、iPadOS 26…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候&#xff0c;遇到了一些问题&#xff0c;记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...