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

LNMP安装部署

目录

一、Nginx安装部署

1.安装包下载

2.下载相关依赖工具

3. 创建运行用户

4.编译安装

5.优化路径

6.将nginx添加至系统服务

7.文件赋权

二、MySQL部署安装

1.解压

2.安装相关工具

3.创建运行用户

4.编译安装

5.修改配置文件

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

7.设置环境变量

8.初始化数据库

9. 添加mysqld系统服务

10.设置 mysql登陆密码

11. 登录

三、PHP安装部署

1.下载安装包

2.安装相关依赖包工具等

3.编译

4.修改配置文件

5.配置Nginx 支持php


本篇为纯安装教程

在部署之前,需要对系统进行一些必要的操作,关闭防火墙、关闭增强功能等,L和LAMP一样是Linux操作系统,我们默认在Linux操作系统上进行

一、Nginx安装部署

1.安装包下载

进入Nginx官网,找到需要安装的版本,复制链接或者下载到本机然后上传至服务端

如果选择链接下载,输入命令

wegt https://nginx.org/download/nginx-1.12.2.tar.gz

2.下载相关依赖工具

yum -y install pcre-devel zlib-devel gcc gcc-c++ make

3. 创建运行用户

useradd -M -s /sbin/nologin nginx

4.编译安装

cd /下载安装包的目录(我这里是放在了/opt下)

解压刚才下载的压缩包

tar zxvf nginx-1.12.2.tar.gz  (我的版本与你的或许不一致,直接打一个ng然后补全就好)

进入到解压后的目录

进行编译

./configure \

--prefix=/usr/local/nginx \

--user=nginx \

--group=nginx \

--with-http_stub_status_module

完成后 make && make install

5.优化路径

设置一个软链接,方便系统识别

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

6.将nginx添加至系统服务

vim /lib/systemd/system/nginx.service

输入如下内容:

[Unit]

Description=nginx

After=network.target

[Service]

Type=forking

PIDFile=/usr/local/nginx/logs/nginx.pid

ExecStart=/usr/local/nginx/sbin/nginx

ExecReload=/bin/kill -s HUP $MAINPID

ExecStop=/bin/kill -s QUIT $MAINPID

PrivateTmp=true

[Install]

WantedBy=multi-user.target

7.文件赋权

chmod 754 /lib/systemd/system/nginx.service

都完成后我们可以nginx -t 查看有无语法错误

一个ok 一个successful  ,成功了,现在可以启动服务了

systemctl start nginx.service

systemctl enable nginx.service

如果启动不成功可以看看80 端口是否被 httpd 占用了

我就遇到过这种情况,直接关闭httpd服务

Nginx部署安装成功了

二、MySQL部署安装

和nginx部署安装一样,先下载安装包,mysql官网可能有点复杂,可以看我之前的一篇博客,虽然是讲的LAMP部署,但包含了MySQL:

https://blog.csdn.net/qq_59677536/article/details/141129859?spm=1001.2014.3001.5501

我这里还是直接用我之前用的版本压缩包了 mysql-5.7.20.tar.gz

如果有什么问题或者需要我发送压缩包的请私信我,

1.解压

老样子,还是先解压缩

tar zxvf mysql—5.7.20.tar.gz

2.安装相关工具

yum -y install ncurses ncurses-devel bison cmake

3.创建运行用户

useradd -M -s /sbin/nologin  mysql

4.编译安装

cmake \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \

-DSYSCONFDIR=/etc \

-DSYSTEMD_PID_DIR=/usr/local/mysql \

-DDEFAULT_CHARSET=utf8  \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_EXTRA_CHARSETS=all \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \

-DMYSQL_DATADIR=/usr/local/mysql/data \

-DWITH_BOOST=boost \

-DWITH_SYSTEMD=1

完成后

make && make install

这个过程需要一些时间,如果服务器内存大、处理器核数多的话,需要的时间会相应短一些

完成

5.修改配置文件

vim /etc/my.cnf

[client]

port = 3306

socket=/usr/local/mysql/mysql.sock

清空内容并输入如下内容:

[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

socket=/usr/local/mysql/mysql.sock

bind-address = 0.0.0.0

skip-name-resolve

max_connections=2048

default-storage-engine=INNODB

max_allowed_packet=16M

server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

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

chown -R mysql:mysql /usr/local/mysql/

chown mysql:mysql /etc/my.cnf

7.设置环境变量

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

source /etc/profile

8.初始化数据库

去到 /usr/local/mysql/bin   目录下

输入如下内容

./mysqld \

--initialize-insecure \

--user=mysql \

--basedir=/usr/local/mysql \

--datadir=/usr/local/mysql/data

9. 添加mysqld系统服务

讲 /usr local/mysql/usr/lib/systemcd/system/mysqld.service 文件复制到

/usr/lib/systemd/system/ 目录下

systemctl daemon-reload

systemctl start mysqld.service

systemctl enable mysqld

10.设置 mysql登陆密码

mysqladmin -u root -p password "123123"  (abc123是我自己设置的,可以根据自己的需求设置)

注意:输入mysqladmin -u root -p password "123123" 后,出现Enter password,不要输入密码,在按依次回车就可以了

11. 登录

mysql -u root -p

输入密码

Show databases;

出现如图所示,数据库安装完成

 

三、PHP安装部署

1.下载安装包

同样的去官网下载,我的LAMP 博客中也有下载的地址和方法

LAMP部署-CSDN博客

解压缩

tar zxvf php-7.1.24.tar.gz 

2.安装相关依赖包工具等

yum -y install gd libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel curl curl-devel openssl openssl-devel

3.编译

安装相关软件完成后,同样的我们进入解压后的文件目录,进行编译

./configure \

--prefix=/usr/local/php7 \

--with-apxs2=/usr/local/httpd/bin/apxs \

--with-mysql-sock=/usr/local/mysql/mysql.sock \

--with-config-file-path=/usr/local/php7 \

--with-mysqli \

--with-zlib \

--with-curl \

--with-gd \

--with-jpeg-dir \

--with-png-dir \

--with-freetype-dir \

--with-openssl \

--enable-mbstring \

--enable-xml \

--enable-session \

--enable-ftp \

--enable-pdo \

--enable-tokenizer

编译完成后

make && make install

顺便做一个路径优化,方便系统识别

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

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

4.修改配置文件

cp /opt/php-7.1.24/php.ini-development /usr/local/php/lib/php.ini     复制文件模板

vim /usr/local/php/lib/php.ini

--939行左右,取消注释并修改

date.timezone = Asia/Shanghai

--1170行左右

mysqli.default_socket = /usr/local/mysql/mysql.sock

保存并退出

接下来调整进程服务配置文件

cd /usr/local/php/etc/

cp  php-fpm.conf.default php-fpm.conf

vim /php-fpm.conf

去掉17行注释

将扩展配置文件稍作调整

cd /usr/local/php/etc/php-fpm.d/

cp www.conf.default www.conf

启动php-fpm

/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini

查看端口

netstat -anpt | grep 9000

启动成功

5.配置Nginx 支持php

到此php安装配置基本上就结束了,但是还没有算是完全部署成功,我们需要让我们的Nginx支持php

cd /opt/php-7.1.10/sapi/fpm

cp php-fpm.service /usr/lib/systemd/system/php-fpm.service

systemctl restart php-fpm.service

vim /usr/local/nginx/conf/nginx.conf

65行,取消注释,修改

将 /scripts 修改为nginx的工作目录

保存退出

重启Nginx 服务

创建php测试页面

vim /usr/local/nginx/html/index.php

<?php

phpinfo();

?>

浏览器输入 ip /index.php

LNMP搭建完成

相关文章:

LNMP安装部署

目录 一、Nginx安装部署 1.安装包下载 2.下载相关依赖工具 3. 创建运行用户 4.编译安装 5.优化路径 6.将nginx添加至系统服务 7.文件赋权 二、MySQL部署安装 1.解压 2.安装相关工具 3.创建运行用户 4.编译安装 5.修改配置文件 6.更改mysql安装目录和配置文件的属…...

django之自定义序列化器用法

在Django中&#xff0c;自定义序列化器方法通常用于处理复杂的数据转换逻辑&#xff0c;特别是在使用Django REST framework&#xff08;DRF&#xff09;时。自定义序列化器方法可以帮助你在序列化和反序列化过程中执行特定的逻辑&#xff0c;比如格式化日期、计算字段值、或者…...

20240821给飞凌OK3588-C的核心板刷Rockchip原厂的Buildroot并挂载1TB的exFAT格式的TF卡

fdisk -l df -h df -t df -T mount 20240821给飞凌OK3588-C的核心板刷Rockchip原厂的Buildroot并挂载1TB的exFAT格式的TF卡 2024/8/21 18:06 【切记&#xff0c;对于Rockchip原厂的Buildroot&#xff0c;如果你没有针对性的适配DTS&#xff1a;修改其中的GPIO口供电&#xff0c…...

多模态学习Multimodal Learning:人工智能中的多模态原理与技术介绍初步了解

多模态学习&#xff08;Multimodal Learning&#xff09;是机器学习中的一个前沿领域&#xff0c;旨在综合处理和理解来自不同模态的数据。模态可以包括文本、图像、音频、视频等。随着数据多样性和复杂性增加&#xff0c;多模态学习在自然语言处理、计算机视觉、语音识别等领域…...

外部环境连接kafka

修改配置文件外部环境连接kafka 1、kafka的docker官方镜像地址2、kafka官方介绍的三种连接方式3、方式一&#xff1a;Default configs默认配置4、方式二&#xff1a;File input&#xff08;文件输入&#xff1a;外部配置文件替换docker容器内的配置文件&#xff09;4.1、首先查…...

结合了MySQL数据库、Elasticsearch和Redis,构建一个产品搜索和推荐系统

1. 数据库设置&#xff08;MySQL&#xff09; 首先&#xff0c;我们需要创建两个表来存储产品信息和产品类别信息。 CREATE DATABASE product_system;USE product_system;CREATE TABLE categories (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(255) NOT NULL,created_at…...

白酒与素食:健康与美味的双重享受

在美食的世界里&#xff0c;白酒与素食的搭配仿佛是一场跨界的盛宴。豪迈白酒&#xff08;HOMANLISM&#xff09;的醇香与精致素食的清新&#xff0c;在不经意间交织出了一幅美妙的画卷&#xff0c;让人在品味中感受到健康与美味的双重享受。 素食&#xff0c;以其清淡、自然的…...

工厂现场多功能帮手,三防平板改善管理体验

随着制造业的智能化变革&#xff0c;信息化、自动化和智能化逐渐成为工厂管理的新常态。在这一波技术浪潮中&#xff0c;三防平板作为一种多功能的工作工具&#xff0c;正在逐步改善工厂现场的管理体验。 一、三防平板的定义与特点 三防平板&#xff0c;顾名思义&#xff0c;是…...

【git】问题解决---Failed to connect to github.com

场景 最近运行命令git push,git pull或者git clone的时候总会报如下错误 fatal: unable to access https://github.com/xxxxx/xxxxxx.git/: **Failed to connect to github.com** port 443 after 21052 ms: Couldnt connect to server原因 一般是网络配置原因造成的, 如果能…...

Java 中 String 类型的特点

在 Java 中&#xff0c;String 是一种常用且重要的数据类型&#xff0c;用于表示和处理字符序列。它有一些独特的特性和用法&#xff0c;使得它在开发中非常灵活和高效。以下是关于 String 类型的一些特点、特殊性、使用技巧以及注意事项。 1. String 的特点 1.1 不可变性 定…...

AddressUtils 、RegionUtils IP地址工具类

一、类展示 AddressUtils &#xff1a; /*** 获取地址类**/ Slf4j NoArgsConstructor(access AccessLevel.PRIVATE) public class AddressUtils {// 未知地址public static final String UNKNOWN "XX XX";public static String getRealAddressByIP(String ip) {i…...

牛客网SQL进阶134: 满足条件的用户的试卷总完成次数和题目总练习次数

满足条件的用户的试卷完成数和题目练习数_牛客题霸_牛客网 0 问题描述 基于用户信息表user_info、试卷信息表examination_info、试卷作答记录表exam_record、题目练习记录表practice_record&#xff0c;筛选出 高难度SQL试卷得分平均值大于80并且是7级的用户&#xff0c;统计他…...

机器学习:逻辑回归处理手写数字的识别

1、获取数据, 图像分割该数据有50行100列&#xff0c;每个数字占据20*20个像素点&#xff0c;可以进行切分,划分出训练集和测试集。 import numpy as np import pandas as pd import cv2 imgcv2.imread("digits.png")#读取文件 graycv2.cvtColor(img,cv2.COLOR_BGR2G…...

文件上传真hard

一、SpringMVC实现文件上传 1.1.项目结构 1.1.2 控制器方法 RequestMapping("/upload1.do")public ModelAndView upload1(RequestParam("file1") MultipartFile f1) throws IOException {//获取文件名称String originalFilename f1.getOriginalFilename(…...

精益管理|介绍一本专门研究防错法(Poka-Yoke)的书

在现代制造业中&#xff0c;如何确保产品在每个生产环节中不出现错误是企业追求的目标之一。而实现这一目标的关键技术之一就是防错法&#xff08;Poka-Yoke&#xff09;。作为一种简单而有效的精益管理、六西格玛管理工具&#xff0c;防错法帮助企业避免因人为错误或工艺不当导…...

面试题目:(4)给表达式添加运算符

目录 题目 代码 思路解析 例子 题目 题目 给定一个仅包含数字 0-9 的字符串 num 和一个目标值整数 target &#xff0c;在 num 的数字之间添加 二元 运算符&#xff08;不是一元&#xff09;、- 或 * &#xff0c;返回 所有能够得到 target 的表达式。1 < num.length &…...

[C#]将opencvsharp的Mat对象转成onnxruntime的inputtensor的3种方法

第一种方法&#xff1a;在创建tensor时候直接赋值改变每个tensor的值&#xff0c;以下是伪代码&#xff1a; var image new Mat(image_path);inpWidth image.Width;inpHeight image.Height;//将图片转为RGB通道Mat image_rgb new Mat();Cv2.CvtColor(image, image_rgb, Col…...

CTF入门教程(非常详细)从零基础入门到竞赛,看这一篇就够了!

一、CTF简介 CTF&#xff08;Capture The Flag&#xff09;中文一般译作夺旗赛&#xff0c;在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会&#xff0c;以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。…...

数据链路层 I(组帧、差错控制)【★★★★★】

&#xff08;★★&#xff09;代表非常重要的知识点&#xff0c;&#xff08;★&#xff09;代表重要的知识点。 为了把主要精力放在点对点信道的数据链路层协议上&#xff0c;可以采用下图&#xff08;a&#xff09;所示的三层模型。在这种三层模型中&#xff0c;不管在哪一段…...

悟空降世 撼动全球

文&#xff5c;琥珀食酒社 作者 | 积溪 一只猴子能值多少钱&#xff1f; 答案是&#xff1a;13个小目标 这两天 只要你家没有断网 一定会被这只猴子刷屏 它就是咱国产的3A游戏 《黑神话&#xff1a;悟空》 这只猴子到底有多火&#xff1f; 这么跟你说吧 茅台见了它都…...

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站&#xff0c;会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后&#xff0c;网站没有变化的情况。 不熟悉siteground主机的新手&#xff0c;遇到这个问题&#xff0c;就很抓狂&#xff0c;明明是哪都没操作错误&#x…...

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

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

css实现圆环展示百分比,根据值动态展示所占比例

代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

鱼香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…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...