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

news2024/12/21 17:13:15

目录

零. 简介

一. 部署

二. 安装 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 环境的运行状况,确保其能够满足网站的正常运行需求。

效果图:

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

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

相关文章

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

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

学习笔记——动态路由——OSPF(工作原理)

九、OSPF协议的工作原理 1、原理概要 (1)相邻路由器之间周期性发送HELLO报文&#xff0c;以便建立和维护邻居关系。 (2)建立邻居关系后&#xff0c;给邻居路由器发送数据库描述报文(DD)&#xff0c;也就是将自己链路状态数据库中的所有链路状态项目的摘要信息发送给邻居路由器…

提高页面性能:懒加载和预加载都是啥原理。

懒加载&#xff08;Lazy Loading&#xff09;和预加载&#xff08;Preloading&#xff09;是在 Web 开发中常用的两种优化技术&#xff0c;用于提高页面性能和用户体验。那他们之间有什么不同&#xff0c;又有哪些应用场景呢&#xff0c;本文给小伙伴们分享下。 一、懒加载 懒…

【Python】已解决:ERROR: No matching distribution found for JPype1

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决&#xff1a;ERROR: No matching distribution found for JPype1 一、分析问题背景 在安装Python的第三方库时&#xff0c;有时会遇到“ERROR: No matching distribution fo…

three.js地理坐标系有哪些,和屏幕坐标系的转换。

坐标系很好理解&#xff0c;就是点线面体的位置&#xff0c;一个点是一个坐标&#xff0c;一条线段2个坐标&#xff0c;一个矩形四个坐标&#xff0c;一个立方体8个坐标&#xff0c;three.js面对的是三维空间&#xff0c;屏幕则是二维的&#xff0c;这就面临着转换问题&#xf…

文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《面向电网调峰的电动汽车聚合商多层级实时控制策略》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

从零开始使用 Docsify 搭建文档站点

引言 在当今的技术环境中&#xff0c;拥有一份易于访问和美观的文档是至关重要的。Docsify 是一个非常适合快速搭建文档站点的工具&#xff0c;它简单易用&#xff0c;且不需要生成静态文件。本文将带你一步步从零开始使用 Docsify 搭建一个文档站点。 1. 安装 Node.js 和 np…

【面试干货】值传递与引用传递:理解Java中的参数传递机制

【面试干货】值传递与引用传递&#xff1a;理解Java中的参数传递机制 1、值传递&#xff08;Call by Value&#xff09;2、引用传递&#xff08;Call by Reference&#xff09;3、总结 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 值传递…

O2OA(翱途)开发平台 V9.1 即将发布,更安全、更高效、更开放

尊敬的O2OA(翱途)平台合作伙伴、用户以及亲爱的开发小伙伴们&#xff0c;O2OA(翱途)平台 V9.1将于7月3日正式发布&#xff0c;届时欢迎大家到O2OA官网部署下载及体验最新版本。新版本我们在如下方面做了更大的努力&#xff1a; 1.扩展数据库兼容性和功能范围&#xff1a;在O2OA…

前端技术(说明篇)

Introduction ##编写内容&#xff1a;1.前端概念梳理 2.前端技术种类 3.前端学习方式 ##编写人&#xff1a;贾雯爽 ##最后更新时间&#xff1a;2024/07/01 Overview 最近在广州粤嵌进行实习&#xff0c;项目名称是”基于Node实现多人聊天室“&#xff0c;主要内容是对前端界…

libigl对matlab链接不成功问题的解决办法

libigl使用matlab时出现以下问题&#xff1a; 即使在头文件中添加了 #include <igl/matlab/matlabinterface.h>在cmakelists.txt中添加了 target_link_libraries(${PROJECT_NAME} "C:\\F\\matlab_install\\extern\\lib\\win64\\microsoft\\libeng.lib") t…

bash条件判断基础adsawq1`1nn

判断的作用 判断后续操作的提前条件是否满足如果满足执行一种命令不满足则执行另一种指令 条件测试类型&#xff1a; 整型测试字符测试文字测试 整数测试&#xff1a;比较两个整数谁大谁小&#xff0c;是否相等&#xff1b; 二元测试&#xff1a; num1 操作符 num2 -eq: 等于…

Spring boot 更改启动LOGO

在resources目录下创建banner.txt文件&#xff0c;然后编辑对应的图案即可 注释工具 Spring Boot Version: ${spring-boot.version},-.___,---.__ /|\ __,---,___,- \ -.____,- | -.____,- // -., | ~\ /~ | …

kafka 生产者 API 实践总结

文章目录 前言创建 kafka 生产者同步与异步发送消息同步发送异步发送 生产者参数配置client.idacks消息传递时间 序列化器在Kafka中使用Avro记录 分区标头拦截器配额和节流 前言 kafka 对外提供的 API 主要有两类&#xff1a;生产者 API 和 消费者 API&#xff0c;本文将从Kaf…

推荐 2 个本周 火火火火 的开源项目

01 微软新手课程&#xff1a;生成式AI入门 在人工智能的浪潮中&#xff0c;生成式AI&#xff08;Generative AI&#xff09;以其创造力和应用潜力成为焦点。微软推出的 “generative-ai-for-beginners” 课程&#xff0c;为初学者提供了一个全面了解和学习生成式AI的平台。 1️…

SpringBoot怎么单独关闭某个类打印出来的日志?

application.yml文件增加以下内容&#xff1a; logging:level:org.springframework.amgp.rabbit: OFF 配置logging:level是配置的什么&#xff1f; 在application.yml文件中配置logging.level是用来设置日志级别的。这是Spring Boot应用中的一个常用配置&#xff0c;它允许您…

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

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

SpringCloud基础篇

文章目录 创建新模块拷贝yml配置文件修改配置文件的信息修改pom.xml文件启动入口拷贝相关文件接口文档配置配置启动项注册中心原理Nacos注册中心创建nacos数据库存储数据部署nacos在docker容器中 服务注册引入依赖配置Nacos地址启动 服务发现(调用)引入依赖配置nacos地址发现并…

Webpack: 插件架构之Hook体系

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