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

 

 

 论坛创建完成

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

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

相关文章

前端JS实用操作符,一些骚操作✨

目录 0、!! 双重逻辑非操作符 📚 1、?? 操作符 空值合并/空判断 ✅ 2、?. 可选链运算符🔍 3、?? 操作符 逻辑空值赋值运算符 💚 4、三元运算符 📗 5、~~ 操作符 双位运算符 🔨 6、&&与 ||或 短…

【Autolayout自动布局介绍 Objective-C语言】

一、好,我们开始介绍Autolayout 1.什么事Autolayout 好,那么,接下来,我们介绍一下这个Autolayout Autolayout,就是“自动布局” 那么,自动布局,它就是专门用来做UI界面的 那么,UI界面,我们为了适应不同屏幕,要进行自动布局, 所以要使用Autolayout 这个Autolayou…

Open3D (C++) 计算矩阵的广义逆

目录 一、算法原理1、广义逆2、计算过程二、代码实现三、结果展示四、参考链接本文由CSDN点云侠原创,原文链接。爬虫网站自重,把自己当个人,爬些不完整的误导别人有意思吗???? 一、算法原理 1、广义逆 非方阵不存在逆,但是存在广义逆(伪逆)。对于一个矩阵

数据仓库设计理论

数据仓库设计理论 一、数据仓库基本概念 1.1、数据仓库介绍 数据仓库是一个用于集成、存储和分析大量结构化和非结构化数据的中心化数据存储系统。它旨在支持企业的决策制定和业务分析活动。 1.2、基本特征 主题导向:数据仓库围绕特定的主题或业务领域进行建模…

【网络基础实战之路】基于MGRE多点协议的实战详解

系列文章传送门: 【网络基础实战之路】设计网络划分的实战详解 【网络基础实战之路】一文弄懂TCP的三次握手与四次断开 【网络基础实战之路】基于MGRE多点协议的实战详解 【网络基础实战之路】基于OSPF协议建立两个MGRE网络的实验详解 PS:本要求基于…

记录一次Linux环境下遇到“段错误核心已转储”然后利用core文件解决问题的过程

参考Linux 下Coredump分析与配置 在做项目的时候,很容易遇到“段错误(核心已转储)”的问题。如果是语法错误还可以很快排查出来问题,但是碰到coredump就没办法直接找到问题,可以通过设置core文件来查找问题&#xff0…

About Multiple regression

ps:this article is not very strict,just some ml and mathematic basic knowledge.My english is poor too.So If this passage make you confuse and uncomfortable.Please give me a feedback in the comment :-D Prior to this(在此之前), we learned the concept of sin…

数据结构:单链表的实现(C语言)

个人主页 : 水月梦镜花 个人专栏 : 《C语言》 《数据结构》 文章目录 前言一、单链表实现思路和图解1.节点的定义(SListNode)2.申请一个节点(BuySListNode)3.单链表打印(SListPrint)4.单链表尾插(SListPushBack)5.单链表的头插(SListPushFront)6.单链表的…

vue2-v-show和v-if有什么区别,使用场景分别是什么?

1、v-show和v-if的共同点 在vue中,v-if和v-show的作用效果是相同的(不含v-else),都能控制元素在页面是否显示,在用法上也相同。 当表达式为true的时候,都会占据页面的位置 当表达式为false的时候&#xff…

css3 hover border 流动效果

/* Hover 边线流动 */.hoverDrawLine {border: 0 !important;position: relative;border-radius: 5px;--border-color: #60daaa; } .hoverDrawLine::before, .hoverDrawLine::after {box-sizing: border-box;content: ;position: absolute;border: 2px solid transparent;borde…

TCP的三次握手和四次挥手······详解

1、三次握手 三次握手是建立连接的过程 如图大致为三次握手的流程图: 当客户端对服务端发起连接时,会先发一个包连接请求数据,去询问能否建立连接,该数据包称为 “SYN”包 然后,如果对方同意连接,那么…

九耶|阁瑞钛伦特 Java中,锁的实现方式

在Java中,锁的实现方式有以下几种: 1. Synchronized关键字:使用synchronized关键字可以创建一个互斥锁,它可以保证同一时刻只有一个线程可以进入被synchronized关键字修饰的代码块或方法。 2. ReentrantLock类:Reentr…

二叉树进阶版(C)

文章目录 1.树1.1概念1.2相关定义1.3 表示(左孩子右兄弟) 2.二叉树2.1概念2.2特殊的二叉树1. 满二叉树:2. 完全二叉树: 2.3二叉树的性质2.4练习 3.二叉树的存储结构1. 顺序存储2. 链式存储 4.完全二叉树的代码实现4.1堆的介绍1.堆…

【雕爷学编程】Arduino动手做(184)---快餐盒盖,极低成本搭建机器人实验平台3

吃完快餐粥,除了粥的味道不错之外,我对个快餐盒的圆盖子产生了兴趣,能否做个极低成本的简易机器人呢?也许只需要二十元左右 知识点:轮子(wheel) 中国词语。是用不同材料制成的圆形滚动物体。简…

Qt展示动态波形

Qt展示动态波形 需求描述成品展示实现难点Qt多线程 需求描述 接入串口,配置串口顺序进行接收数据;数据分成两个串口分别传入,使用多线程并发接入;时域数据有两个通道(I,Q),分别以实…

zookeeper入门学习

zookeeper入门学习 zookeeper应用场景 分布式协调组件 客户端第一次请求发给服务器2,将flag值修改为false,第二次请求被负载均衡到服务器1,访问到的flag也会是false 一旦有节点发生改变,就会通知所有监听方改变自己的值&#…

【C++】类和对象-多态

1.多态的基本语法 代码 #include <iostream> using namespace std; /******************************************/ class Animal { public://speak函数就是虚函数//函数前面加上virtual关键字&#xff0c;变成虚函数&#xff0c;//那么编译器在编译的时候就不能确定函数…

DevExpress WPF Tree List组件,让数据可视化程度更高!(二)

DevExpress WPF Tree List组件是一个功能齐全、数据感知的TreeView-ListView混合体&#xff0c;可以把数据信息显示为REE、GRID或两者的组合&#xff0c;在数据绑定或非绑定模式下&#xff0c;具有完整的数据编辑支持。 在上文中&#xff08;点击这里回顾DevExpress WPF Tree …

中介者模式——协调多个对象之间的交互

1、简介 1.1、概述 如果在一个系统中对象之间的联系呈现为网状结构&#xff0c;如下图所示&#xff1a; 对象之间存在大量的多对多联系&#xff0c;将导致系统非常复杂&#xff0c;这些对象既会影响别的对象&#xff0c;也会被别的对象所影响&#xff0c;这些对象称为同事对…

LeetCode--HOT100题(21)

目录 题目描述&#xff1a;240. 搜索二维矩阵 II&#xff08;中等&#xff09;题目接口解题思路代码 PS: 题目描述&#xff1a;240. 搜索二维矩阵 II&#xff08;中等&#xff09; 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性&am…