“LNMP环境搭建实战指南:从零开始配置CentOS 7下的Nginx、MySQL与PHP“
目录
1.前言
2.准备工作
2.1.环境信息
2.2.关闭SELinux和firewalld
3.安装Nginx
3.1.运行以下命令,安装Nginx
3.2.运行以下命令,查看Nginx版本
4.安装MySQL
4.1.更新秘钥
4.2.配置MySQL的YUM仓库
4.3.安装MySQL
4.4.查看MySQL版本
4.5.启动MySQL
4.6.登陆MySQL后创建wordpress数据库
5.安装PHP
5.1.配置remi仓库
5.2.执行命令安装PHP以及相关的库
5.3.安装PHP环境
5.4.查看PHP版本
6.修改Nginx配置文件以支持PHP
6.1.运行以下命令,备份Nginx配置文件
6.2.打开Nginx配置文件
6.3.添加配置信息
6.4.启动Nginx服务
7.配置PHP
7.1.配置php测试文件
7.2.启动php-fpm
8.测试访问LNMP配置信息页面
9.总结
1.前言
在当今快速发展的互联网时代,高性能、高效率的网站部署环境成为了开发者和运维人员不可或缺的工具。LNMP(Linux, Nginx, MySQL, PHP)栈,作为一种流行且强大的Web服务解决方案,凭借其卓越的并发处理能力、资源高效利用以及灵活的可扩展性,成为众多企业和开发者的首选平台。
本实战指南旨在手把手教你如何在CentOS 7操作系统下从零开始搭建LNMP环境。我们将深入浅出地介绍每一个组件——稳定高效的Nginx作为HTTP和反向代理服务器,强大的MySQL数据库管理系统存储与管理数据,以及动态网页开发的核心——PHP语言引擎。通过本教程,你不仅能学会如何安装和配置这些组件,还能了解到如何优化它们以达到最佳性能,确保你的Web应用能够迅速响应、安全可靠地运行。
无论你是刚踏入Web开发领域的新人,还是寻求升级现有技术栈的资深开发者,本指南都将为你铺设一条清晰的学习路径,让你在实战中掌握LNMP环境搭建的艺术,为你的项目部署打下坚实的基础。让我们一起启程,构建属于你自己的高性能Web服务环境吧!
2.准备工作
2.1.环境信息
| Centos | NGINX | MySQL | PHP |
| CentOS Stream release 9 | nginx/1.20.1 | 3.0.37 | 8.0.30 |
2.2.关闭SELinux和firewalld
sudo systemctl stop firewalld
sudo setenforce 0
3.安装Nginx
3.1.运行以下命令,安装Nginx
sudo yum -y install nginx
3.2.运行以下命令,查看Nginx版本
nginx -v
4.安装MySQL
4.1.更新秘钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023
4.2.配置MySQL的YUM仓库
rpm -Uvh http://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
4.3.安装MySQL
yum -y install mysql-community-server
4.4.查看MySQL版本
mysql -V
4.5.启动MySQL
sudo systemctl start mysqld
4.6.登陆MySQL后创建wordpress数据库
create database wordpress;
这里采用的YUM仓库安装,如果有不懂的地方可以看这篇文章MySQL RPM包安装
5.安装PHP
5.1.配置remi仓库
sudo rpm -ivh https://rpms.remirepo.net/enterprise/remi-release-9.rpm --nodeps
5.2.执行命令安装PHP以及相关的库
sudo dnf update -y dnf libdnf
sudo sed -i 's/PLATFORM_ID="platform:al9"/PLATFORM_ID="platform:el9"/g' /etc/os-release
sudo yum -y module install php:remi-8.0
sudo sed -i 's/PLATFORM_ID="platform:el9"/PLATFORM_ID="platform:al9"/g' /etc/os-release
5.3.安装PHP环境
yum -y install php-mysql gd php-gd gd-devel php-xml php-common php-mbstring php-ldap php-pear php-xmlrpc php-imap
5.4.查看PHP版本
php -v
6.修改Nginx配置文件以支持PHP
6.1.运行以下命令,备份Nginx配置文件
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
6.2.打开Nginx配置文件
sudo vim /etc/nginx/nginx.conf
6.3.添加配置信息
location / {index index.php index.html index.htm;
}location ~ .php$ {root /usr/share/nginx/html; #将/usr/share/nginx/html替换为您的网站根目录,本文使用/usr/share/nginx/html作为网站根目录。fastcgi_pass 127.0.0.1:9000; #Nginx通过本机的9000端口将PHP请求转发给PHP-FPM进行处理。fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params; #Nginx调用fastcgi接口处理PHP请求。
}

6.4.启动Nginx服务
sudo systemctl start nginx
7.配置PHP
7.1.配置php测试文件
sudo vim /usr/share/nginx/html/phpinfo.php
#添加下面内容
<?php echo phpinfo(); ?>
7.2.启动php-fpm
sudo systemctl start php-fpm
8.测试访问LNMP配置信息页面
在浏览器的地址栏输入http://<ECS实例公网IP地址>/phpinfo.php进行访问

9.总结
在本实战指南中,我们详尽探讨了如何在CentOS 7系统上从头开始搭建LNMP环境,这一过程不仅加深了对Nginx、MySQL、及PHP各组件配置与协同工作的理解,还为高性能网站部署奠定了坚实基础。通过一步步实践,我们成功地配置了高效稳定的Nginx作为web服务器,设置了强大的MySQL数据库来支撑数据管理,以及部署了PHP环境,为动态网页开发铺平道路。
接下来的精彩篇章,我们将在此坚固的LNMP平台上进一步展开,聚焦于利用全球最受欢迎的内容管理系统——WordPress,来实现个人博客的快速搭建。从下载与安装WordPress源代码,到配置数据库连接,定制主题与插件的选择与安装,直至发布第一篇博客文章,每一步都将配以详细操作指导及常见问题解决策略。通过实战演练,即便是初学者也能轻松驾驭,将自己的想法和故事以个性化的博客形式展现给世界。敬请期待,让我们一同迈入个人博客搭建的新旅程!
相关文章:
“LNMP环境搭建实战指南:从零开始配置CentOS 7下的Nginx、MySQL与PHP“
目录 1.前言 2.准备工作 2.1.环境信息 2.2.关闭SELinux和firewalld 3.安装Nginx 3.1.运行以下命令,安装Nginx 3.2.运行以下命令,查看Nginx版本 4.安装MySQL 4.1.更新秘钥 4.2.配置MySQL的YUM仓库 4.3.安装MySQL 4.4.查看MySQL版本 4.5.启动…...
院内导航:如何用科技破解就医找路难题
自2019年开始“院内导航”被纳入医院智慧服务评估体系以来,到2023年改善就医服务升级的部署,每一步都见证了我国医疗卫生体系向智能化、人性化迈进的坚实步伐。 面对庞大复杂的医院环境与日益增长的就诊需求,如何让患者在茫茫人海中迅速找到就…...
C++基础篇(1)
目录 前言 1.第一个C程序 2.命名空间 2.1概念理解 2.2namespace 的价值 2.3 namespace的定义 3.命名空间的使用 4.C的输入输出 结束语 前言 本节我们将正式进入C基础的学习,话不多说,直接上货!!! 1.第一个C程…...
云视频监控中的高效视频转码策略:视频汇聚EasyCVR平台H.265自动转码H.264能力解析
随着科技的快速发展,视频监控技术已经广泛应用于各个领域,如公共安全、商业管理、教育医疗等。与此同时,视频转码技术作为视频处理的关键环节,也在不断提高视频的质量和传输效率。 一、视频监控技术的演进 视频监控技术的发展历…...
xcode配置swift使用自定义主题颜色或者使用RGB或者HEX颜色
要想在xcode中使用自定义颜色或者配置主题色,需要在Assets中配置,打开Assets文件,然后点击添加Color Set: 输入颜色的名称,然后选中这个颜色,会出现两个颜色: Any Appearance表示亮色模式下使用…...
相同含义但不同类型字段作为join条件时注意事项
假设表A和表B中都有表示学号的stu_id字段,但该字段在表A和表B中类型分别为bigint和string。当直接通过该字段进行join时,一般情况下可以得到我们预期的结果。 select a.stu_id from a as r join b as l on r.stu_id l.stu_id 但是如果学号长度较长的…...
数据结构(3.8)——栈的应用
栈在括号匹配中的应用 流程图 代码 #include <stdio.h> #include <stdlib.h> #define MaxSize 10typedef struct {char data[MaxSize];int top; } SqStack;// 初始化栈 void InitStack(SqStack* S) {S->top -1; // 初始化栈顶指针 }// 判空 bool StackEmpty(…...
前端面试题35(在iOS和Android平台上,实现WebSocket协议有哪些常见的库或框架?)
在iOS和Android平台上,实现WebSocket协议有许多成熟且被广泛使用的库和框架。下面是一些推荐的选项: iOS 平台 SocketRocket 简介:这是由Facebook开源的库,专门为iOS和Mac OS X设计,提供WebSocket连接的功能。它基于S…...
Mysql如何高效ALTER TABL
ALTER TABLE 缺点 MySQL 的ALTER TABLE 操作的性能对大表来说是个大问题。 MySQL MySQL 执行大部分修改表结构操作的方法是用新结构的 创建一个,空表从旧表中查出所有数据插入,新表然后删除旧。表这样操作可能需要花费很长,时间 如内果存不…...
vue3+vite搭建第一个cesium项目详细步骤及环境配置(附源码)
文章目录 1.创建vuevite项目2.安装 Cesium2.1 安装cesium2.2 安装vite-plugin-cesium插件(非必选)2.3 新建组件页面map.vue2.4 加载地图 3.完成效果图 1.创建vuevite项目 打开cmd窗口执行以下命令:cesium-vue-app是你的项目名称 npm create…...
LiteOS增加执行自定义源码
开发过程注意事项: 源码工程路径不能太长 源码工程路径不能有中文 一定要关闭360等杀毒软件,否则编译的打包阶段会出错 增加自定义源码的步骤: 1.创建源码目录 2. 创建源文件 新建myhello目录后,再此目录下再新建源文件myhello_demo.c 3. 编…...
《Nature》文章:ChatGPT帮助我学术写作的三种方式
图片翻译 ** 文章内容** 忏悔时间:我使用生成式人工智能(AI)。尽管在学术界关于聊天机器人是积极力量还是消极力量的争论不休,但我几乎每天都使用这些工具来完善我所写论文中的措辞,并寻求对我被要求评估的工作进行替…...
防火墙安全策略与用户认证综合实验
一、实验拓扑 二、实验需求 1.DMZ区内的服务器,办公区仅能在办公时间内<9:00-18:00>可以访问,生产区的设备全天可以访问 2.办公区不允许访问互联网,办公区和游客区允许访问互联网 3.办公区设备10.0.2.10不充许访问DMZ区的FTP服务器和HT…...
vue学习day05-watch侦听器(监视器)、Vue生命周期和生命周期的四个阶段、、工程化开发和脚手架Vue cli
13、watch侦听器(监视器) (1)作用:监视数据变化,执行一些业务逻辑或异步操作 (2)语法: 1)简写语法——简单数据类型,直接监视 ① Watch:{ 数…...
数字人+展厅互动体验方案:多元化互动方式,拓宽文化文娱新体验
数字化创新已成为推动展厅可持续发展,创造全新消费体验,满足游客多元化需求的关键力量。 “数字人数字互动展厅”可以适应年轻一代的文化传播与多媒体互动新体验趋势,打造新生代潮玩聚集地,促进文化创意传播与互动体验场景创新&a…...
在Spring Boot项目中集成监控与报警
在Spring Boot项目中集成监控与报警 大家好,我是微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 1. 引言 在当今的软件开发中,监控和报警系统是保证系统稳定性和可靠性的重要组成部分。Spring Boot…...
opencv实现目标检测功能----20240704
早在 2017 年 8 月,OpenCV 3.3 正式发布,带来了高度改进的“深度神经网络”(dnn)模块。 该模块支持多种深度学习框架,包括 Caffe、TensorFlow 和 Torch/PyTorch。这次我们使用Opencv深度学习的功能实现目标检测的功能,模型选用MobileNetSSD_deploy.caffemodel。 模型加载…...
音视频解封装demo:使用libmp4v2解封装(demux)出mp4文件中的h264视频数据和aac语音数据
1、README 前言 本demo是使用的mp4v2来将mp4文件解封装得到h264、aac的,目前demo提供的.a静态库文件是在x86_64架构的Ubuntu16.04编译得到的,如果想在其他环境下测试demo,可以自行编译mp4v2并替换相应的库文件(libmp4v2.a&#…...
手撸俄罗斯方块(一)——简单介绍
手撸俄罗斯方块 简单介绍 《俄罗斯方块》(俄语:Тетрис,英语:Tetris),是1980年末期至1990年代初期风靡全世界的电脑游戏,是落下型益智游戏的始祖,电子游戏领域的代表作之一&a…...
构建LangChain应用程序的示例代码:61、如何使用 LangChain 和 LangSmith 优化链
本示例介绍如何使用 LangChain 和 LangSmith 优化链。 设置 我们将为 LangSmith 设置环境变量,并加载相关数据 import osos.environ["LANGCHAIN_PROJECT"] "movie-qa" # 设置 LANGCHAIN_PROJECT 环境变量为 "movie-qa"import pan…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
音视频——I2S 协议详解
I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...
Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...
Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案
在大数据时代,海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构,在处理大规模数据抓取任务时展现出强大的能力。然而,随着业务规模的不断扩大和数据抓取需求的日益复杂,传统…...
Python实现简单音频数据压缩与解压算法
Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中,压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言,提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...
