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

CentOS 7 环境中部署 LNMP(Linux + Nginx + MySQL 5.7 + PHP)

在 CentOS 7 环境中部署 LNMP(Linux + Nginx + MySQL 5.7 + PHP) 环境的详细步骤如下。此方案确保各组件版本兼容,并提供完整的配置验证流程。


1. 更新系统

 sudo yum update -y

2. 安装 MySQL 5.7

2.1 添加 MySQL 官方 YUM 仓库

由于MySQL并不在CentOS的官方仓库中,所以我们通过上述rpm命令:


  • 导入MySQL仓库的密钥

  • 配置MySQLQ的yum仓库


# 更新密钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022# 安装Mysql yum库
rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm
2.2 安装 MySQL 5.7
sudo yum install mysql-community-server -y
2.3 启动 MySQL 服务
systemctl start mysqld		# 启动
systemctl enable mysqld		# 开机自启
2.4 获取初始密码并修改
 # 查看初始密码grep 'temporary password' /var/log/mysqld.log​# 登录 MySQLmysql -u root -p

设置密码:

# 在MySQL控制台内执行
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Tang@123';	
# 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc

 [扩展],配置root的简单密码

# 如果你想设置简单密码,需要降低Mysql的密码安全级别
set global validate_password_policy=LOW; # 密码安全级别低
set global validate_password_length=4;	 # 密码长度最低4位即可# 然后就可以用简单密码了(课程中使用简单密码,为了方便,生产中不要这样)
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

 [扩展],配置root运行远程登录

# 授权root远程登录
grant all privileges on *.* to root@"%" identified by '123456' with grant option;  
# IP地址即允许登陆的IP地址,也可以填写%,表示允许任何地址
# 密码表示给远程登录独立设置密码,和本地登陆的密码可以不同# 刷新权限,生效
flush privileges;# 退出命令
exit
2.5 检查端口

MySQL默认绑定了3306端口,可以通过端口占用检查MySQL的网络状态

netstat -anp | grep 3306

3. 安装 Nginx

3.1 添加 EPEL 和 Nginx 官方仓库
sudo yum install epel-release -y
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
3.2 安装 Nginx
sudo yum install nginx -y
3.3 启动 Nginx 服务
sudo systemctl start nginx
sudo systemctl enable nginx
3.4 验证 Nginx
curl http://localhost

 或者在浏览器输入服务器地址看到以下页面,默认监听端口80

如果看到 Welcome to nginx! 页面,说明安装成功。


4. 安装 PHP 7.2(兼容 MySQL 5.7)

4.1 添加 Remi 仓库
sudo yum install yum-utils -y
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
4.2 启用 PHP 7.2 仓库
sudo yum-config-manager --enable remi-php72
4.3 安装 PHP 及常用扩展
sudo yum install php php-fpm php-mysqlnd php-mbstring php-xml php-cli php-gd php-json -y
4.4 启动 PHP-FPM 服务
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
4.5 配置 PHP-FPM
#编辑vim /etc/php-fpm.d/www.conf,修改以下参数:
user = nginx
group = nginx
listen = /var/run/php-fpm/www.sock
listen.owner = nginx
listen.group = nginx#重启 PHP-FPM:
sudo systemctl restart php-fpm

5. 配置 Nginx 支持 PHP

5.1 修改 Nginx 默认配置

编辑 Nginx 配置文件vim /etc/nginx/conf.d/default.conf(或 /etc/nginx/nginx.conf):

server {listen 80;server_name your_domain_or_ip;root /usr/share/nginx/html;index index.php index.html index.htm;location / {try_files $uri $uri/ =404;}location ~ \.php$ {include fastcgi_params;fastcgi_pass unix:/var/run/php-fpm/www.sock;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;}
}
5.2 重启 Nginx
sudo systemctl restart nginx

6. 验证 LNMP 环境

6.1 创建 PHP 测试文件
echo "<?php phpinfo(); ?>" | sudo tee /usr/share/nginx/html/info.php
6.2 访问测试页面

在浏览器中访问:

 http://your_server_ip/info.php

如果看到 PHP 信息页面,说明 LNMP 环境配置成功。


7. 常见问题排查

7.1 权限问题

确保 Nginx 用户(nginx)有权限访问网站目录:

 sudo chown -R nginx:nginx /usr/share/nginx/htmlsudo chmod -R 755 /usr/share/nginx/html
7.2 端口冲突

如果启动 Nginx 报错 Address already in use,检查占用 80 端口的进程并终止:

 sudo netstat -tuln | grep 80sudo kill -9 <PID>
7.3 SELinux 配置

如果 SELinux 未禁用,临时关闭或调整策略:

 sudo setenforce 0  # 临时关闭# 或永久禁用(不推荐):sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

8. 完成

至此,LNMP 环境(Linux + Nginx + MySQL 5.7 + PHP 7.2)已成功部署。你可以将 PHP 项目文件放置在 /usr/share/nginx/html 目录下运行。

相关文章:

CentOS 7 环境中部署 LNMP(Linux + Nginx + MySQL 5.7 + PHP)

在 CentOS 7 环境中部署 LNMP&#xff08;Linux Nginx MySQL 5.7 PHP&#xff09; 环境的详细步骤如下。此方案确保各组件版本兼容&#xff0c;并提供完整的配置验证流程。 1. 更新系统 sudo yum update -y 2. 安装 MySQL 5.7 2.1 添加 MySQL 官方 YUM 仓库 由于MySQL并不…...

NX811NX816美光颗粒固态NX840NX845

NX811NX816美光颗粒固态NX840NX845 美光NX系列固态硬盘颗粒深度解析&#xff1a;技术、性能与市场全景透视 一、技术架构与核心特性解析 1. NX811/NX816&#xff1a;入门级市场的平衡之选 技术定位&#xff1a;基于176层TLC&#xff08;Triple-Level Cell&#xff09;3D NAN…...

捋捋wireshark

本猿搬砖时会用到wireshark分析pcap包&#xff0c;但频率不高&#xff0c;记过一些笔记&#xff0c;今天捋捋&#xff0c;希望能给初学者节省一点时间。 wireshark是个网络封包分析软件&#xff08;network packet analyzer&#xff09;&#xff0c;可以用来抓流量包&#xff…...

c++学习之---模版

目录 一、函数模板&#xff1a; 1、基本定义格式&#xff1a; 2、模版函数的优先匹配原则&#xff1a; 二、类模板&#xff1a; 1、基本定义格式&#xff1a; 2、类模版的优先匹配原则&#xff08;有坑哦&#xff09;&#xff1a; 3、缺省值的设置&#xff1a; 4、ty…...

MyBatis-Flex 全面指南:下一代轻量级持久层框架实战入门

&#x1f680; MyBatis-Flex 全面指南&#xff1a;下一代轻量级持久层框架实战入门 本文将带你全面了解 MyBatis-Flex 的特性、常见用法、最佳实践&#xff0c;帮助你高效构建更简洁、更灵活的 Java 持久层代码。 &#x1f9e9; 什么是 MyBatis-Flex&#xff1f; MyBatis-Flex…...

第十六章 EMQX黑名单与连接抖动检测

系列文章目录 第一章 总体概述 第二章 在实体机上安装ubuntu 第三章 Windows远程连接ubuntu 第四章 使用Docker安装和运行EMQX 第五章 Docker卸载EMQX 第六章 EMQX客户端MQTTX Desktop的安装与使用 第七章 EMQX客户端MQTTX CLI的安装与使用 第八章 Wireshark工具的安装与使用 …...

WebSphere(WAS)

WebSphere &#xff08;WebSphere Application Server&#xff09;为 SOA 环境提供软件&#xff0c;以实现动态的、互联的业务流程&#xff0c;为所有业务情形提供高度有效的应用程序基础架构。WebSphere 是 IBM 的应用程序和集成软件平台&#xff0c;包含所有必要的中间件基础…...

新编辑器编写指南--给自己的备忘

欢迎使用Markdown编辑器 你好&#xff01; 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章&#xff0c;了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持&#x…...

xPSR

在 ARM Cortex-M3 中&#xff0c;​xPSR&#xff08;组合程序状态寄存器&#xff09;​​ 是核心的状态控制寄存器&#xff0c;由三个子状态寄存器合并而成&#xff0c;用于记录处理器的运算状态、中断状态和执行环境。以下是其深度解析&#xff1a; &#x1f50d; ​一、xPSR …...

鸿蒙网络数据传输案例实战

一、案例效果截图 二、案例运用到的知识点 核心知识点 网络连接管理&#xff1a;connection模块HTTP数据请求&#xff1a;http模块RPC数据请求&#xff1a;rcp模块文件管理能力&#xff1a;fileIo模块、fileUri模块 其他知识点 ArkTS 语言基础V2版状态管理&#xff1a;Comp…...

【JavaEE】-- 网络原理

文章目录 1. 网络发展史1.1 广域网1.2 局域网 2. 网络通信基础2.1 IP地址2.2 端口号2.3 认识协议2.4 五元组2.5 协议分层2.5.1 分层的作用2.5.2 OSI七层模型&#xff08;教科书&#xff09;2.5.3 TCP/IP五层&#xff08;或四层&#xff09;模型&#xff08;工业中常用&#xff…...

1.RV1126-OPENCV 交叉编译

一.下载opencv-3.4.16.zip到自己想装的目录下 二.解压并且打开 opencv 目录 先用 unzip opencv-3.4.16.zip 来解压 opencv 的压缩包&#xff0c;并且进入 opencv 目录(cd opencv-3.4.16) 三. 修改 opencv 的 cmake 脚本的内容 先 cd platforms/linux 然后修改 arm-gnueabi.to…...

PySide6 GUI 学习笔记——常用类及控件使用方法(标签控件QLabel)

文章目录 标签控件QLabel及其应用举例标签控件QLabel的常用方法及信号应用举例Python 代码示例1Python 代码示例2 小结 标签控件QLabel及其应用举例 QLabel 是 PySide6.QtWidgets 模块中的一个控件&#xff0c;用于在界面上显示文本或图像。它常用于作为标签、提示信息或图片展…...

CSS (mask)实现服装动态换色:创意与技术的完美融合

在网页开发中&#xff0c;我们常常会遇到需要对图片元素进行个性化处理的需求&#xff0c;比如改变图片中特定部分的颜色。今天&#xff0c;我们就来探讨一种通过 CSS 和 JavaScript 结合&#xff0c;实现服装动态换色的有趣方法。 一、代码整体结构分析 上述代码构建了一个完…...

基于51单片机的音乐盒汽车喇叭调音量proteus仿真

地址&#xff1a; https://pan.baidu.com/s/1l3CSSMi4uMV5-XLefnKoSg 提取码&#xff1a;1234 仿真图&#xff1a; 芯片/模块的特点&#xff1a; AT89C52/AT89C51简介&#xff1a; AT89C51 是一款常用的 8 位单片机&#xff0c;由 Atmel 公司&#xff08;现已被 Microchip 收…...

彻底理解Spring三级缓存机制

文章目录 前言一、Spring解决循环依赖时&#xff0c;为什么要使用三级缓存&#xff1f; 前言 Spring解决循环依赖的手段&#xff0c;是通过三级缓存&#xff1a; singletonObjects&#xff1a;存放所有生命周期完整的单例对象。&#xff08;一级缓存&#xff09;earlySingleto…...

MacOs 安装局域网 gitlab 记录

1、安装git brew install git > Downloading https://homebrew.bintray.com/bottles/git-2.7.0.el_capitan.bottle ######################################################################## 100.0% > Pouring git-2.7.0.el_capitan.bottle.tar.gz > Caveats The O…...

Flutter 与 Android 原生布局组件对照表(完整版)

本对照表用于帮助 Android 开发者快速理解 Flutter 中的布局组件与原生布局的关系。 &#x1f4d8; Flutter ↔ Android 布局组件对照表 Flutter WidgetAndroid View/Layout说明ContainerFrameLayout / View通用容器&#xff0c;可设置背景、边距、对齐等RowLinearLayout (hor…...

【产品经理从0到1】自媒体端产品设计

后台的定义 “后台” 与“前台”都是相对独立的平台&#xff0c;前台是服务于互联网用户的平台 &#xff0c;后台主要是支撑前台页面内容、数据及对前台业务情况的统计分析的系统&#xff1b; 后台与前台的区别 第1&#xff1a;使用用户不同 前台用户&#xff1a;互联网用户…...

017搜索之深度优先DFS——算法备赛

深度优先搜索 如果说广度优先搜索是逐层扩散&#xff0c;那深度优先搜索就是一条道走到黑。 深度优先遍历是用递归实现的&#xff0c;预定一条顺序规则&#xff08;如上下左右顺序&#xff09; &#xff0c;一直往第一个方向搜索直到走到尽头或不满足要求后返回上一个叉路口按…...

解决 maven编译项目-Fatal error compiling: 无效的目标发行版: 21 -> [Help 1]

目录 1. 问题描述 2. 排查思路 3. 设置-指定maven使用jdk21 4. 参考资料 1. 问题描述 在idea中使用maven编译时,在系统环境变量中已经设置了jdk为21,但是在执行mvn package时,确提示 Fatal error compiling: 无效的目标发行版: 21 -> [Help 1] [ERROR] Failed to e…...

Thinkphp6实现websocket

项目需要连接一台自动售货机&#xff0c;售货机要求两边用websocket连接,监听9997端口。本文实现了一个基于PHP的WebSocket服务器&#xff0c;用于连接自动售货机&#xff0c;支持start/stop/restart命令操作 1.新建文件 新建文件 /command/socket.php <?php namespace a…...

web-css

一.CSS选择器&#xff1a; 1.基础选择器 基本选择器&#xff1a; >.标签选择器 格式&#xff1a;标签名称{} >.类选择器&#xff08;重&#xff09; 格式&#xff1a;.class属性的值{} >.id选择器 格式&#xff1a;#id属性的值{} >.通配符&#xff08;表示所有&am…...

关于 smali:2. 从 Java 到 Smali 的映射

一、对照 Java 代码与 Smali 代码差异 1.1 方法调用差异&#xff1a;Java vs Smali Java 方法分类&#xff1a; 方法类型Java 示例Smali 指令特点说明静态方法Utils.print("hi")invoke-static没有 this 指针实例方法obj.show()invoke-virtual有 this&#xff0c;虚…...

三、zookeeper 常用shell命令

作者&#xff1a;IvanCodes 日期&#xff1a;2025年5月28日 专栏&#xff1a;Zookeeper教程 ZooKeeper Shell (zkCli.sh) 是与ZooKeeper服务器交互的核心工具。本教程将详细介绍常用命令&#xff0c;并重点解析ZooKeeper数据节点 (ZNode) 的特性与分类。 思维导图 一、连接 Zo…...

分布式流处理与消息传递——Paxos Stream 算法详解

Java 实现 Paxos Stream 算法详解 一、Paxos Stream 核心设计 #mermaid-svg-cEJcmpaQwLXpEbx9 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-cEJcmpaQwLXpEbx9 .error-icon{fill:#552222;}#mermaid-svg-cEJcmpaQw…...

智变与重构:AI 赋能基础教育教学的范式转型研究报告

一、研究背景与核心价值 &#xff08;一&#xff09;技术驱动下的教育转型浪潮 在全球数字化转型加速的背景下&#xff0c;人工智能作为核心技术力量&#xff0c;正重塑基础教育生态。据《人工智能赋能未来教育研究报告》指出&#xff0c;我国教育数字化战略行动已推动超 70…...

平衡三进制

平衡三进制 - OI Wiki https://oi-wiki.org/math/balanced-ternary/ 上海市计算机学会竞赛平台 | YACS 方法一&#xff0c;先分离后进位 #include <iostream> using namespace std; int n, a[100], cnt; bool flag; int main() {cin >> n;if(n0){cout <<…...

针对Python开发的工具推荐及分析,涵盖集成开发环境(IDE)、轻量级工具、在线开发平台、代码管理工具等)

以下是针对Python开发的工具推荐及全面分析&#xff0c;涵盖集成开发环境&#xff08;IDE&#xff09;、轻量级工具、在线开发平台、代码管理工具等&#xff0c;结合不同场景和需求进行分类说明&#xff1a; 目录 一、集成开发环境&#xff08;IDE&#xff09; 1. PyCharm 2…...

960g轻薄本,把科技塞进巧克力盒子

朋友们&#xff0c;谁懂啊 最近本打工人被同事疯狂种草了一款 “巧克力盒子” 华硕灵耀 14 Air 骁龙版&#xff01; 960g的重量比一瓶大可乐还轻 塞进通勤包毫无压力 连健身房的瑜伽垫都能多卷两圈 这台行走的生产力工具&#xff0c;到底有啥魔法&#xff1f; 今天就带…...