手动搭建 LNMP 环境(Ubuntu)

操作场景

LNMP 环境是指在 Linux 系统下,由 Nginx + MySQL/MariaDB + PHP 组成的网站服务器架构。本文档介绍如何在腾讯云云服务器(CVM)上手动搭建 LNMP 环境。 进行手动搭建 LNMP 环境,您需要熟悉 Linux 命令,并对所安装软件的使用及版本兼容性比较了解。

注意:

腾讯云建议您可以通过云市场的镜像环境部署 LNMP 环境,手动搭建 LNMP 环境可能需要较长的时间。具体步骤可参见 镜像部署 LNMP 环境。

示例软件版本

本文搭建的 LNMP 环境软件组成版本及说明如下:

Linux:Linux 系统,本文以 Ubuntu 22.04 为例。

Nginx:Web 服务器程序,用来解析 Web 程序,本文以 Nginx 1.18.0 为例。

MySQL:一个数据库管理系统,本文以 MySQL 8.0.39 为例。

PHP:Web 服务器生成网页的程序,本文以 PHP 8.1.2 为例。

前提条件

已购买 Linux 云服务器。如果您还未购买云服务器,请参见 快速配置 Linux 云服务器。

操作步骤

步骤1:登录 Linux 实例

使用标准方式登录 Linux 实例(推荐)。您也可以根据实际操作习惯,选择其他不同的登录方式:

使用远程登录软件登录 Linux 实例

使用 SSH 登录 Linux 实例

步骤2:安装配置 Nginx

运行以下命令,更新 Ubuntu 系统内的软件包。

 

sudo apt update

执行以下命令,安装 Nginx。

 

sudo apt -y install nginx

运行以下命令,查看 Nginx 版本。

 

sudo nginx -v

返回结果类似如下所示,表示 Nginx 已成功安装。

 

nginx version: nginx/1.18.0 (Ubuntu)

执行以下命令,修改 Nginx 默认配置文件。

 

sudo vim /etc/nginx/sites-enabled/default

i 切换至编辑模式。

找到 server{...} 并将其替换成以下内容。

 

server {

listen 80 default_server;

listen [::]:80 default_server;



root /var/www/html;



# Add index.php to the list if you are using PHP

index index.php index.html index.htm index.nginx-debian.html;



server_name _;



location / {

# First attempt to serve request as file, then

# as directory, then fall back to displaying a 404.

try_files $uri $uri/ =404;

}



# pass PHP scripts to FastCGI server

#

location ~ \.php$ {

include snippets/fastcgi-php.conf;

fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;

}

}

输入完成后,按 Esc,输入 :wq,保存文件并返回。

执行以下命令,重启 Nginx 服务。

 

sudo systemctl restart nginx

执行以下命令,新建 index.html 首页。

 

sudo vi /var/www/html/index.html

i 切换至编辑模式,输入以下内容:

 

<p> hello world!</p>

输入完成后,按 Esc,输入 :wq,保存文件并返回。

在浏览器中,访问 Ubuntu 云服务器实例公网 IP,查看 Nginx 服务是否正常运行。 如下图所示,则说明 Nginx 安装配置成功。





步骤3:安装配置 MySQL

执行以下命令,安装 MySQL。

 

sudo apt -y install mysql-server

运行以下命令,查看 MySQL 版本。

 

sudo mysql -V

返回结果类似如下所示,表示 MySQL 已成功安装。

 

mysql Ver 8.0.39-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))

执行以下命令,首次登录 MySQL。

说明:

首次登录 MySQL 时,系统将提示输入密码,若不进行输入密码的操作,可直接按 Enter 进入 MySQL。

 

sudo mysql -u root -p

成功进入 MySQL,如下图所示。





执行以下命令,修改 root 密码。

 

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

执行以下命令,使配置生效。

 

flush privileges;

执行以下命令,退出 MySQL。

 

\q

步骤5:安装配置 PHP

执行以下命令,安装 PHP。

 

sudo apt -y install php-fpm

运行以下命令,查看 PHP 版本。

 

sudo php -v

返回结果如下所示,表示 PHP 已成功安装。

 

PHP 8.1.2-1ubuntu2.19 (cli) (built: Sep 30 2024 16:25:25) (NTS)

Copyright (c) The PHP Group

Zend Engine v4.1.2, Copyright (c) Zend Technologies

with Zend OPcache v8.1.2-1ubuntu2.19, Copyright (c), by Zend Technologies

运行以下命令,在 Nginx 网站根目录中,新建 phpinfo.php 文件。

 

sudo vim <网站根目录>/phpinfo.php

<网站根目录>为变量,可通过 Nginx 配置文件查看。本教程中 Nginx 配置文件为默认文件 /etc/nginx/sites-enabled/default,您可以运行cat /etc/nginx/sites-enabled/default命令查看文件内容,其中如下图所示的 /var/www/html 部分即为网站根目录。







因此,对应的运行命令为:

 

sudo vim /var/www/html/phpinfo.php

i 进入编辑模式,添加以下配置信息。

phpinfo() 函数会展示 PHP 的所有配置信息。

 

<?php echo phpinfo(); ?>

输入完成后,按 Esc,输入 :wq,保存文件并返回。

运行以下命令,启动 PHP。

 

sudo systemctl start php8.1-fpm

验证环境配置

在浏览器中输入 http://<Ubuntu 实例公网 IP 地址 >/phpinfo.php 进行访问。 如下图所示,成功查看到 PHP 配置信息页面,则 LNMP 环境搭建成功。



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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

HTML静态网页成品作业(HTML+CSS)——花主题介绍网页设计制作(1个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有1个页面。 二、作品演示 三、代…

WinCC V7.5 SP1VBS全局变量的使用

1 <概述> 在 WinCC 使用过程中&#xff0c;有很多应用场合需要把获得的数据保存下来&#xff0c;在其它事件 中来使用&#xff0c;例如在 WinCC 运行后去读取自定义的配置文件中的参数&#xff0c;在控制相应设 备时需要根据这些参数来确定控制方式&#xff0c;那么就需…

Charles抓包_Android

1.下载地址 2.破解方法 3.安卓调试办法 查看官方文档&#xff0c;Android N之后抓包要声明App可用User目录下的CA证书 3.1.在Proxy下进行以下设置&#xff08;路径Proxy->Proxy Settings&#xff09; 3.1.1.不抓包Windows&#xff0c;即不勾选此项&#xff0c;免得打输出不…

微信小程序 高校教材征订系统

文章目录 项目介绍具体实现截图技术介绍mvc设计模式小程序框架以及目录结构介绍错误处理和异常处理java类核心代码部分展示详细视频演示源码获取 项目介绍 系统分为三个角色&#xff0c;分别是教材科、系教学秘书、教研室主任。系统主要完成功能是教材科要发布教材征订信息&am…

Rust 力扣 - 1343. 大小为 K 且平均值大于等于阈值的子数组数目

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 长度为k且平均值大于等于阈值的子数组数目 等于 长度为k且总和大于等于k * 阈值的子数组数目 我们遍历长度为k的窗口&#xff0c;我们只需要记录窗口内的总和即可&#xff0c;遍历过程中记录总和大于等于k * 阈…

3DMax使用 MCG实现简单克隆修改器

3DMax中的MCG工具集允许用户创建几种不同类型的插件。在这个例子中&#xff0c;我们正在创建一个简单的克隆修改器。 将修改器添加到对象时&#xff0c;将使用“数量”整数值克隆网格n次&#xff0c;并使用X、Y和Z中的“缩放”、“旋转”和“移动”微调器控制每个网格的偏移。…

收卷锥度张力控制(Simulink建模)

1、收卷锥度张力控制功能块(支持5种锥度曲线) 收卷锥度张力控制功能块(支持5种锥度曲线)-CSDN博客文章浏览阅读340次。1、锥度张力控制张力锥度控制(收卷应用)-CSDN博客文章浏览阅读2.2k次。收卷、放卷应用系列文章可以参看下面的文章链接:变频器简单张力控制(线缆收放卷…

【星闪EBM-H63开发板】小熊派固件中心的使用

目录 引言 固件中心 定制固件 创建配置 透传固件的配置信息 串口配置 SLE无线射频配置 SLE连接配置 硬件配置 生成固件 下载和烧录 结语 引言 前面几天介绍了星闪EBM-H63开发板的情况&#xff0c;今天来试试固件中心。 固件中心 固件中心是小熊派提供的用于生成固…

从《Mixtral of Experts》开始讲讲MoE

MoE 在讲这篇论文前先来说说什么是MoE MoE是什么&#xff1f; MoE&#xff0c;全称Mixture of Experts&#xff0c;混合专家模型。MoE是大模型架构的一种&#xff0c;其核心工作设计思路是“术业有专攻”&#xff0c;即将任务分门别类&#xff0c;然后分给多个“专家”进行解…

Java打造智能语音陪聊软件?提升用户体验的新路径

在现在的日常生活中&#xff0c;大家做什么都会寻找一个“搭子”&#xff0c;例如“游戏搭子”&#xff0c;很多时候一时半会找不到就会很苦恼&#xff0c;就因此诞生了语音陪聊软件。然而Java作为一种广泛使用的编程语言&#xff0c;在开发高效、稳定的应用程序方面具有显著优…

js.轮转数组和旋转链表

这是两个相似的题型&#xff0c;一个是数组&#xff0c;另一个是链表。 链接&#xff1a;189. 轮转数组 - 力扣&#xff08;LeetCode&#xff09; 题目&#xff1a; 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 示例 1:…

004-Kotlin界面开发快速入水之TicTacToe

程序界面和效果 快速入水 要学习一样跟程序设计有关的东西&#xff0c;最好的办法始终是把手打湿&#xff0c;整一个能够运行&#xff0c;可以实验的东西出来。 也只有在程序开发中&#xff0c;我们才能想一个魔法师而不是魔术师&#xff0c;我们真的能够创造一个东西。而且编…

Spring Boot——日志介绍和配置

1. 日志的介绍 在前面的学习中&#xff0c;控制台上打印出来的一大堆内容就是日志&#xff0c;可以帮助我们发现问题&#xff0c;分析问题&#xff0c;定位问题&#xff0c;除此之外&#xff0c;日志还可以进行系统的监控&#xff0c;数据采集等 2. 日志的使用 在程序中获取日…

python opencv2

二、图像预处理 1、图像翻转 cv2.flip(src, flipCode) &#xff1a;flipCode &#xff1a;0&#xff1a;沿 X 轴翻转&#xff08;垂直翻转&#xff09;&#xff1b;1&#xff1a;沿 Y 轴翻转&#xff08;水平翻转&#xff09;&#xff0c;-1&#xff1a;沿 X 轴和 Y 轴翻转&am…

文件夹0字节:原因、恢复方案与预防措施

一、文件夹0字节现象描述 在日常使用电脑的过程中&#xff0c;我们可能会遇到这样一个问题&#xff1a;某个文件夹突然变成了0字节&#xff0c;这意味着该文件夹中的所有文件似乎都不见了&#xff0c;但实际上可能并未被彻底删除。文件夹0字节的情况常常让人困惑不解&#xff…

不需要复制粘贴,重复内容如何使用Mac快速完成输入

在Mac的日常使用中&#xff0c;必然有着重复内容需要重复输入的需求&#xff0c;但是Mac的剪切板又不具备历史记录的功能&#xff0c;所以只能一次次的复制粘贴&#xff0c;费时费力&#xff0c;那么该如何才能不这么麻烦 快捷短语就是为了解决这一问题而存在的 提前在设置好…

Java 打印流:PrintStream 与 PrintWriter 详解

在 Java 编程中&#xff0c;System.out.println() 的使用频率恐怕不亚于 main 方法的使用频率。其中&#xff0c;System.out 返回的正是打印流 PrintStream。除此之外&#xff0c;Java 还提供了另一个打印流 PrintWriter&#xff0c;它们分别继承自 OutputStream 和 Writer&…

RESTful风格

目录 一、什么是RESTful 1.1 RESTFul对WEB服务接口的规定包括&#xff1a; 1.2 REST对请求方式的具体约束如下&#xff1a; 1.3 REST对URL的具体约束如下&#xff1a; 1.4 RESTFul的核心概念&#xff1a; 二、RESTful风格与传统方式对比 三、RESTful风格演示 3.1 查询所…

运维工具之docker入门

1.容器与docker 1.什么是容器&#xff1f; 容器是一种轻量级的&#xff0c;可移植的软件运行环境。它将软件程序本身及软件依赖库打包在一起。可以在不同平台和系统上运行。 2.什么是LXC LXC就是Linux container,。LXC是一种虚拟化技术&#xff0c;可以在操作系统层级上为应…

Ubuntu系统安装NVIDIA驱动、CUDA、PyTorch等GPU深度学习环境

学习目标&#xff1a; 在Ubuntu系统上安装CUDA、PyTorch等GPU深度学习环境&#xff0c;主要目标是为深入研究深度学习和深度强化学习提供高效的计算支持。通过构建GPU环境&#xff0c;计划掌握深度学习的基本概念和算法应用&#xff0c;提高模型训练效率&#xff0c;特别是在复…