Linux基础 - LNMP 架构部署动态网站环境

目录

零. 简介

一. 部署

二. 安装 Nginx

三. 安装MySQL

四. 安装PHP

五. 配置网站目录

六. 测试环境


零. 简介

LNMP 是指 Linux + Nginx + MySQL + PHP 这一组合架构,用于部署动态网站环境。

Linux 作为操作系统,提供了稳定、安全和高效的基础平台。

Nginx 是一款轻量级的高性能 Web 服务器和反向代理服务器。它具有处理高并发连接、低内存消耗和高效的负载均衡能力,能够快速地响应客户端请求,提升网站的访问速度和性能。

MySQL 是一种流行的关系型数据库管理系统,用于存储网站的各种数据,如用户信息、文章内容等。

PHP 是一种广泛使用的服务器端脚本语言,用于处理动态网页内容的生成和逻辑处理。它能够与 MySQL 数据库进行交互,实现数据的读取、写入和操作,从而为用户提供动态的网页内容。

总的来说,LNMP 架构具有高效、稳定、灵活和易于扩展的特点,能够满足各种规模的动态网站的部署需求

一. 部署

以下是 LNMP 架构部署动态网站环境的一般步骤:

  1. 准备服务器

    • 选择适合的 Linux 发行版,如 CentOS、Ubuntu 等。
    • 确保服务器具有足够的硬件资源,如内存、硬盘空间等。
  2. 安装 Nginx

    • 使用包管理工具(如 yum 或 apt-get )安装 Nginx 。
    • 配置 Nginx 服务器,包括设置虚拟主机、监听端口等。
  3. 安装 MySQL

    • 下载并安装 MySQL 服务器。
    • 进行安全设置,如设置 root 密码、限制远程访问等。
  4. 安装 PHP

    • 安装 PHP 及其相关扩展,如 PHP-FPM 。
    • 配置 PHP 与 Nginx 的集成,例如在 Nginx 配置文件中指定 PHP 处理程序。
  5. 配置网站目录

    • 在 Nginx 配置中指定网站的根目录。
    • 设置文件权限,确保 Nginx 和 PHP 进程有足够的权限访问网站文件。
  6. 测试环境

    • 创建一个简单的 PHP 测试文件,如 info.php ,包含 <?php phpinfo();?> ,通过浏览器访问该文件以验证 LNMP 环境是否正常工作。
  7. 部署网站

    • 将您的动态网站代码上传到服务器的指定目录。
  8. 优化和监控

    • 根据实际需求优化 Nginx、MySQL 和 PHP 的配置参数。
    • 安装监控工具,实时监测服务器的性能和资源使用情况。

需要注意的是,在实际部署过程中,可能会遇到各种问题,需要根据具体情况进行排查和解决。同时,确保及时更新软件版本以修复安全漏洞。

二. 安装 Nginx

以下是在 Ubuntu 系统上安装 Nginx 的步骤:

  1. 更新软件包列表
sudo apt update
  1. 安装 Nginx
sudo apt install nginx
  1. 安装完成后,检查 Nginx 服务状态
sudo systemctl status nginx
  1. 如果服务正在运行,您可以通过浏览器访问服务器的公网 IP 地址,应该能够看到 Nginx 的默认欢迎页面。

如果您希望对 Nginx 进行进一步的配置,可以通过修改 /etc/nginx/ 目录下的相关配置文件来实现。

更改端口

Nginx 默认使用 80 端口。但有时可能需要更改端口,具体步骤如下:

Nginx 的配置文件在 /etc/nginx 目录下的 nginx.conf。在 nginx.conf->http 选项末尾有引入两个目录下的文件,分别为:

http {
    # 省略部分内容
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

查看 /etc/nginx/sites-enabled/ 目录,会找到一个 default 文件,在 server 选项下前两行就可以找到使用的 80 端口号:

server {
    listen 80 default_server;
    listen (::):80 default_server;
}

将 80 端口号改为你想使用的端口号,保存文件。如果 Nginx 没有启动,启动即可;如果 Nginx 已经在运行,重新加载即可。

重新加载 Nginx 配置的命令为:sudo nginx -s reload

请注意,如果启用了防火墙,则需开启对应端口;使用云服务器时可能需要更改服务器安全组,添加相应入站规则,开启对应端口。另外,不同版本的 Nginx 和系统配置文件可能略有差异。

要查看 Nginx 运行的端口,可以使用以下命令:sudo netstat -anp | grep nginx

三. 安装MySQL

也可以参考上一篇安装的  MariaDB 数据库

四. 安装PHP

在 Ubuntu 系统中安装 PHP 可以通过以下命令完成:

  1. 更新软件包列表:
sudo apt update
  1. 安装 PHP:
sudo apt install php

这将安装 PHP 的基本版本。如果您需要特定的 PHP 版本或扩展,可以进一步指定。

例如,如果您想安装 PHP 7.4 以及一些常见扩展,您可以使用以下命令:

sudo apt install php7.4 php7.4-fpm php7.4-mysql php7.4-curl php7.4-gd php7.4-intl php7.4-mbstring php7.4-opcache php7.4-xml php7.4-zip

安装完成后,您可以通过创建一个简单的 PHP 文件来测试 PHP 是否安装成功。例如,创建一个名为 info.php 的文件,内容为 <?php phpinfo();?> ,然后在浏览器中访问该文件,查看 PHP 相关信息。

五. 配置网站目录

在 Nginx 中配置网站目录,您可以按照以下步骤进行操作:

  1. 找到 Nginx 的配置文件:通常位于 /etc/nginx/sites-available/default 。
  2. 打开配置文件,在 server 块中找到或添加以下内容来指定网站根目录:
root /var/www/html/your_website;  # 将 `/var/www/html/your_website` 替换为您实际的网站目录路径
index index.html index.htm index.php;  # 指定默认的索引文件

保存配置文件。

检查配置文件是否正确:

sudo nginx -t

如果配置正确,将会显示 successful 等成功的提示信息。

  1. 重新加载 Nginx 配置以使更改生效:
sudo nginx -s reload

这样就完成了网站目录的配置。请注意,具体的目录路径和文件名可能因您的系统设置和需求而有所不同。

六. 测试环境

在 LNMP 环境部署完成后,测试环境可以通过以下几个方面进行:

  1. 网站访问测试

    • 在浏览器中输入服务器的 IP 地址或域名,检查是否能够正常显示 Nginx 的默认页面或您配置的网站首页。
  2. PHP 脚本测试

    • 创建一个简单的 PHP 测试文件,例如 test.php ,内容如下:
<?php
phpinfo();
?>
  • 将该文件放置在网站目录中,通过浏览器访问,检查是否能够正确显示 PHP 的相关信息,以确认 PHP 环境正常。

ps: 需要安装php-fpm

sudo apt install php-fpm

数据库连接测试

  • 如果您的网站涉及数据库操作,创建一个简单的 PHP 脚本连接数据库并进行简单的查询操作,例如:
  • ps: 需要启用了 mysqli 扩展
<?php
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database_name";

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接
if ($conn->connect_error) {
    die("连接失败: ". $conn->connect_error);
}
echo "连接成功";

$conn->close();
?>
  • 将上述代码中的数据库相关信息替换为您实际的配置,通过浏览器访问该文件,检查是否能够成功连接数据库。
  1. 性能测试

    • 可以使用一些工具如 ab(Apache Bench)来对网站进行压力测试,查看在高并发情况下网站的响应性能和稳定性。
  2. 错误日志检查

    • 查看 Nginx、PHP 和 MySQL 的错误日志,检查是否有异常错误信息。

通过以上多方面的测试,可以较为全面地了解 LNMP 环境的运行状况,确保其能够满足网站的正常运行需求。

效果图:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Swift 中强大的 Key Paths(键路径)机制趣谈(上)

概览 小伙伴们可能不知道&#xff1a;在 Swift 语言中隐藏着大量看似“其貌不扬”实则却让秃头码农们“高世骇俗”&#xff0c;堪称卧虎藏龙的各种秘技。 其中&#xff0c;有一枚“不起眼”的小家伙称之为键路径&#xff08;Key Paths&#xff09;。如若将其善加利用&#xff…

MYSQL函数进阶详解:案例解析(第19天)

系列文章目录 一、MySQL的函数&#xff08;重点&#xff09; 二、MySQL的窗口函数&#xff08;重点&#xff09; 三、MySQL的视图&#xff08;熟悉&#xff09; 四、MySQL的事务&#xff08;熟悉&#xff09; 文章目录 系列文章目录前言一、MySQL的函数1. 聚合函数2. group_c…

Linux基础 - MariaDB 数据库管理系统

目录 零. 简介 一. 安装 二. 基本使用 1. 设置root密码 2. 创建库 3. 创建表 4.添加数据 5. 查看数据 三. 管理表单及数据 四. 数据库的备份及恢复 零. 简介 MariaDB 是一种流行的开源数据库管理系统&#xff0c;它是 MySQL 的一个分支。 MariaDB 保留了与 MySQL 的…

HarmonyOS APP应用开发项目- MCA助手(Day01持续更新中~)

简言&#xff1a; gitee地址&#xff1a;https://gitee.com/whltaoin_admin/money-controller-app.git端云一体化开发在线文档&#xff1a;https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/agc-harmonyos-clouddev-view-0000001700053733-V5 注&#xff1…

激光粒度分析仪校准步骤详解:提升测量精度的秘诀

在材料科学、环境监测、医药研发等众多领域&#xff0c;激光粒度分析仪以其高精度、高效率的测量性能&#xff0c;成为了不可或缺的测试工具。然而&#xff0c;为了保持其测量结果的准确性和可靠性&#xff0c;定期校准是不可或缺的步骤。 接下来&#xff0c;佰德将为您详细介…

可视化低代码平台之:RayData光启元的震撼作品。

RayData家的可视化作品&#xff0c;贝格前端工场是经常碰到&#xff0c;制作十分的精良&#xff0c;业内很有影响力。他们也有自己的低代码平台&#xff0c;分为了桌面版和网页版&#xff0c;本期分享一下他们的作品。

【单片机毕业设计选题24043】-可旋转式电视支架控制系统设计与实现

系统功能: 系统操作说明&#xff1a; 上电后OLED显示 “欢迎使用电视支架系统请稍后”&#xff0c;两秒后进入正常界面显示 第一页面第一行显示 Mode:Key&#xff0c; 第二行显示 TV:Middle 短按B5按键可控制步进电机左转&#xff0c; 第二行显示 TV:Left 后正常显示 TV:…

六、资产安全—信息分级资产管理与隐私保护练习题(CISSP)

六、资产安全—信息分级资产管理与隐私保护(CISSP): 六、资产安全—信息分级资产管理与隐私保护(C

语义检索-BAAI Embedding语义向量模型深度解析:微调Cross-Encoder以提升语义检索精度

语义检索-BAAI Embedding语义向量模型深度解析:微调Cross-Encoder以提升语义检索精度 语义向量模型(Embedding Model)已经被广泛应用于搜索、推荐、数据挖掘等重要领域。在大模型时代,它更是用于解决幻觉问题、知识时效问题、超长文本问题等各种大模型本身制约或不足的必要…

【Python】已解决:ModuleNotFoundError: No module named ‘pyhanlp’

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例五、注意事项 已解决&#xff1a;ModuleNotFoundError: No module named ‘pyhanlp’ 一、分析问题背景 在使用Python进行自然语言处理时&#xff0c;有时我们可能会用到pyhanlp这个库&#xff0c;它是一个基于J…

煤矿安全大模型:微调internlm2模型实现针对煤矿事故和煤矿安全知识的智能问答

煤矿安全大模型————矿途智护者 使用煤矿历史事故案例,事故处理报告、安全规程规章制度、技术文档、煤矿从业人员入职考试题库等数据,微调internlm2模型实现针对煤矿事故和煤矿安全知识的智能问答。 本项目简介: 近年来,国家对煤矿安全生产的重视程度不断提升。为了确…

STM32 中断编程入门

目录 一、中断系统 1、中断的原理 2、中断类型 外部中断 定时器中断 DMA中断 3、中断处理函数 中断标志位清除 中断服务程序退出 二、实际应用 中断控制LED 任务要求 代码示例 中断控制串口通信 任务要求1 代码示例 任务要求2 代码示例 总结 学习目标&…

【第三版 系统集成项目管理工程师】第5 章 软件工程

持续更新。。。。。。。。。。。。。。。 【第三版】第五章 软件工程 5.1软件工程定义练习 5.2软件需求5.2.1雾求的层次1.业务需求-P2032.用户需求-P2033.系统需求-P203 5.2.2质量功能部署 P2035.2.3需求获取 P2045.2.4需求分析1.结构化分析-P2042.面向对象分析-P207 5.2.5号求…

第二证券:可转债基础知识?想玩可转债一定要搞懂的交易规则!

可转债&#xff0c;全称是“可转化公司债券”&#xff0c;是上市公司为了融资&#xff0c;向社会公众所发行的一种债券&#xff0c;具有股票和债券的双重特点&#xff0c;投资者可以选择按照发行时约定的价格将债券转化成公司一般股票&#xff0c;也可作为债券持有到期后收取本…

格式化选NTFS还是exFAT 格式化NTFS后Mac不能用怎么办 移动硬盘格式化ntfs和exfat的区别

面对硬盘、U盘或移动硬盘的格式化决策&#xff0c;NTFS与exFAT作为主流的文件系统&#xff0c;用户在选择时可以根据它们的不同特点来选择适用场景。下面我们来看看格式化选NTFS还是exFAT&#xff0c;格式化NTFS后Mac不能用怎么办的相关内容。 一、格式化选NTFS还是exFAT 在数…

DevOps认证是什么?DevOps工具介绍

DevOps 这个词是由Development&#xff08;开发&#xff09; 和 Operations&#xff08;运维&#xff09;组合起来的&#xff0c;你可以把它理解成为一种让开发团队和运维团队紧密合作的方法。 DevOps从2009年诞生到现在已经14年多了&#xff0c;一开始大家还在摸索&#xff0…

Webpack: 插件架构之Hook体系

概述 Webpack 之所以能够应对 Web 场景下极度复杂、多样的构建需求&#xff0c;关键就在于其健壮、扩展性极强的插件架构&#xff0c;而插件架构的精髓又在于其灵活多变的 Hook 体系&#xff0c;可以说&#xff0c;只有真正掌握 Hook 底层设计与实现逻辑&#xff0c;深入理解不…

Git新仓库创建流程

平时需要创建新仓库,老要去查代码特别烦&#xff0c;在此写下流程方便备用. 1.创建新的云仓库 无论使用GitHub还是Gitee,首先要创建一个云仓库&#xff0c;这里就直接用国内的gitee做演示了&#xff0c;githup老挂加速器太烦&#xff0c;偷个懒. 我这里创建的是一个空仓库&…

SAP 表字段调整,表维护生成器调整

表维护生成器->已生成的对象->更改->专家模式

【OceanBase】OBProxy 无状态的理解

SueWakeup 个人主页&#xff1a;SueWakeup 系列专栏&#xff1a;为祖国的科技进步添砖Java 个性签名&#xff1a;保留赤子之心也许是种幸运吧 本文封面由 凯楠&#x1f4f8;友情提供 目录 前言 OBProxy 无状态的概述 OBProxy 无状态特性带来的优点 1. 高可用 2. 负载均衡…