阿里云服务器如何部署安装LNMP程序环境?超简单,看完就能上手!

简介: 本文详解阿里云ECS部署LNMP环境的两种方式:一是通过系统运维管理控制台“一键安装”扩展程序,快速完成部署;二是手动安装Linux+Nginx+MySQL+PHP,支持Alibaba Cloud Linux/CentOS/Ubuntu,满足WordPress等对配置与安全的定制化需求。含完整步骤、命令及验证方法。

阿里云服务器如何部署安装LNMP程序环境?超简单,看完就能上手!阿小云整理阿里云官方关于LNMP的两种部署方式,一个是快捷部署,一个是手动部署。LNMP架构是一种流行的网站服务器解决方案,它结合了Linux操作系统、Nginx Web服务器、MySQL数据库和PHP编程语言。本文介绍部署LNMP环境的几种方式,以及各自的适用场景,您可以按需选择任意一种部署LNMP环境的方式。


本文是以云服务器ECS为例:https://www.aliyun.com/product/ecs  如下:

ecs.jpg


快速部署:扩展程序部署LNMP环境

本文介绍利用扩展程序快速部署LNMP环境的方法。您无需了解安装细节,因为系统运维管理提供的扩展程序将自动执行安装过程。

说明

如果需要批量安装,您可以登录系统运维管理控制台,左侧菜单选择服务器管理 > 扩展程序,选择LNMP一键安装

前提条件

  • 安全组入方向规则已放行80端口。具体操作,请参见添加安全组规则
  • 使用本功能时,您的实例需满足以下条件。
  • ECS实例必须处于运行中状态。
  • 实例已分配固定公网IP地址或绑定弹性公网IP(EIP)。如您不清楚如何开通公网,请参见开通公网
  • ECS实例已安装云助手,并且云助手状态为正常
  • 如果使用RAM用户,请根据以下自定义权限策略,为RAM用户配置最小必要权限,以确保遵循最小权限原则。
    自定义权限JSON

操作步骤

  1. 登录ECS控制台-实例,点击目标ECS实例的ID,打开其详情页面。
  2. ECS实例详情页面,选择定时与自动化任务 > 安装/卸载扩展程序 > 安装扩展程序

  3. 安装扩展程序对话框,要安装的扩展程序选择公共扩展程序,在下拉搜索框中找到并选择LNMP一键安装,然后单击下一步,按照界面提示完成操作。
    当任务状态为已完成时,说明LNMP已部署。
    说明
    MySQL root用户密码请查看扩展程序的任务详情,扩展信息内容。

  4. 在本地物理机上使用浏览器访问http://ECS实例公网IP/phpinfo.php,验证LNMP是否已成功安装。
    说明
    外部访问ECS实例,安全组入方向规则需要放行80端口。


手动部署:LNMP环境

在ECS实例上通过包管理器构建LNMP环境,支持 Alibaba Cloud Linux、CentOS 及 Ubuntu 多系统。采用手动部署方式,解决镜像环境难以定制配置文件的痛点,满足 WordPress、Magento 等动态网站对底层环境完全控制与安全加固的生产需求。

实施步骤

为保证流畅体验,建议ECS实例内存不低于2 GiB。

一、准备工作

配置公网IP与安全组以确保实例可被外部访问,并更新系统组件以修复潜在安全漏洞。

  1. 配置公网访问。
    确保ECS实例已分配公网IP或已绑定弹性公网IP(EIP),以允许公网访问。具体操作,请参见开通公网
  2. 添加安全组放行规则。
    在ECS实例关联的安全组中添加入方向规则,放行 TCP 协议的 80 端口(用于HTTP访问)。具体操作,请参见添加安全组规则
  3. 更新系统及软件包。


阿小云以Alibaba Cloud Linux 3 / CentOS 8操作系统为例,

  1. 登录ECS实例。
  1. 访问ECS控制台-实例。在页面左侧顶部,选择目标资源所在的资源组和地域。
  2. 进入目标实例详情页,单击远程连接,选择通过Workbench远程连接。根据页面提示登录,进入终端页面。
  1. 将系统已有的软件包列表和软件更新到最新版本。
sudo dnf update -y


二、安装并配置Nginx

添加Nginx官方源并安装。

#添加Nginx官方源
sudo tee /etc/yum.repos.d/nginx.repo <<-'EOF'
[nginx-stable]
name=nginx stable repo
baseurl=https://nginx.org/packages/centos/8/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF
#安装Nginx
sudo dnf -y install nginx
  1. 启动并设置开机自启。
enable --now参数会同时完成启动服务和设置开机自启两个操作。
sudo systemctl enable --now nginx
  1. 验证Nginx服务。
    执行curl http://127.0.0.1,如果终端输出了Nginx的欢迎页HTML代码,说明安装成功。

三、安装并加固MySQL

  1. 安装并启动MySQL。
# Alibaba Cloud Linux 3 需要安装compat-openssl10以兼容旧版OpenSSL
if [ -f /etc/os-release ]; then
    . /etc/os-release
    if [ "$ID" = "alinux" ] && [ "$VERSION_ID" = "3" ]; then
        sudo yum install -y compat-openssl10
    fi
fi
# 添加MySQL 8.4的YUM仓库
sudo rpm -Uvh https://repo.mysql.com/mysql84-community-release-el8-1.noarch.rpm
# 安装MySQL服务
sudo dnf install -y mysql-server

启动并设置开机自启。

sudo systemctl enable --now mysqld
  1. 设置安全加固。MySQL默认配置存在安全风险(如允许匿名登录、允许root远程登录),需运行其自带的安全加固脚本。
  1. 获取初始root密码。
    仅适用于Alibaba Cloud Linux/CentOS(Ubuntu默认使用免密登录),获取的密码用于后续步骤重置密码。
# 从日志中提取并显示临时密码
sudo grep 'temporary password' /var/log/mysqld.log
  1. 运行加固脚本。执行命令 sudo mysql_secure_installation,并根据提示完成以下建议配置:
  1. 重置root账号密码:使用上一步获取的临时密码登录并设置新密码。
建议设置一个包含大小写字母、数字和特殊符号,且长度不低于12位的强密码。
  1. 移除匿名用户:输入Y。
  2. 禁止root远程登录:输入Y。
  3. 删除测试库:输入 Y。
  4. 重载权限表:输入 Y。


四、安装并配置PHP

安装PHP、PHP-FPM(用于处理Web请求)以及连接MySQL的扩展组件。


# 添加PHP源
cat > /etc/yum.repos.d/remi.repo << 'EOF'
[remi]
name=Remi\'s RPM Repository for Enterprise Linux 8 - x86_64
baseurl=https://rpms.remirepo.net/enterprise/8/remi/x86_64/
enabled=1
gpgcheck=1
gpgkey=https://rpms.remirepo.net/RPM-GPG-KEY-remi2024
[remi-safe]
name=Remi Safe Repository
baseurl=https://rpms.remirepo.net/enterprise/8/safe/x86_64/
enabled=1
gpgcheck=1
gpgkey=https://rpms.remirepo.net/RPM-GPG-KEY-remi2024
EOF
# 导入 GPG Key
rpm --import https://rpms.remirepo.net/RPM-GPG-KEY-remi2024
# 安装工具并启用模块
dnf install -y yum-utils
# 安装 PHP
dnf install -y php php-fpm php-mysqlnd


  1. 添加PHP源并安装。
  2. 启动并设置PHP-FPM开机自启。
sudo systemctl enable --now php-fpm

五、配置Nginx支持PHP解析

默认情况下,Nginx 仅能处理静态网页(如 HTML、图片)。为支持动态网站(如WordPress),需配置Nginx将.php文件的请求转发至PHP-FPM进行处理。否则,访问PHP页面时会出现文件被直接下载或无法显示的问题。

备份Nginx配置文件。

sudo cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak

获取PHP服务的通信地址。
Nginx通过该通信地址将PHP请求转发至PHP-FPM进行处理。

PHP_FPM_LISTEN=$(sudo sed -n 's/^\s*listen\s*=\s*//p' /etc/php-fpm.d/www.conf | head -n 1)
echo "$PHP_FPM_LISTEN"

配置Nginx转发规则,将.php请求正确转发至PHP服务。

根据上一步的输出结果,将下方命令中的 <PHP通信地址> 替换为实际的通信地址后执行:

  • 若输出为文件路径(如 /run/php-fpm/www.sock):使用的通信方式为Unix Socket(仅限本地通信,性能更好且更安全),PHP通信地址格式为unix:文件路径,例如 unix:/run/php-fpm/www.sock
  • 若输出为 IP:端口(如 127.0.0.1:9000):通信方式为TCP(支持跨主机通信,适用于PHP-FPM与Nginx分离部署的场景),可以直接作为PHP通信地址。
sudo tee /etc/nginx/conf.d/default.conf <<-'EOF'
server {
    listen       80;
    server_name  localhost;
    root /usr/share/nginx/html;
    # 设置默认首页文件
    index index.php index.html index.htm;
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    # 将.php请求转发给PHP-FPM
    location ~ \.php$ {
        fastcgi_pass   <PHP通信地址>;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}
EOF

检查配置文件。

sudo nginx -t
  • 如果返回结果中包含关键字 successful,表示配置正确,可执行下一步。
  • 如果返回结果中包含 failed,表示配置错误。请检查命令中的路径是否替换正确,或执行以下命令从备份中恢复配置文件:
sudo mv /etc/nginx/conf.d/default.conf.bak /etc/nginx/conf.d/default.conf

重启Nginx使配置生效。

sudo systemctl restart nginx

六、验证LNMP环境

创建测试文件,验证Nginx能否解析PHP,以及PHP能否连接到MySQL数据库,以确保LNMP各组件协同工作正常。

验证Nginx解析。

  1. 创建测试文件:生成一个包含phpinfo() 函数的文件,用于输出当前PHP环境的详细配置。
echo "<?php phpinfo(); ?>" | sudo tee /usr/share/nginx/html/phpinfo.php
  1. 浏览器验证:访问 http://<ECS公网IP>/phpinfo.php
  • 成功标志:页面正常渲染并展示PHP环境配置信息。
  • 失败标志:显示 "File not found" 或直接下载了文件。
  1. 清理测试文件:验证成功后,必须删除该文件phpinfo页面包含敏感信息,暴露于公网会带来安全风险。

验证PHP与MySQL的连通性。创建一个PHP脚本,用于测试PHP能否通过mysqlnd扩展连接到数据库。

  1. 创建数据库和用户。
    使用root账户登录MySQL(输入步骤三中设置的root账号密码)。
sudo mysql -u root -p
  1. mysql>提示符下执行以下命令,创建名为 webapp 的库和 webuser 用户,并授予其对该数据库的所有权限。
CREATE DATABASE webapp;
/* 将<YourPassword>替换为一个强密码。*/
CREATE USER 'webuser'@'localhost' IDENTIFIED BY '<YourPassword>';
GRANT ALL PRIVILEGES ON webapp.* TO 'webuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
  1. 创建数据库连接测试文件。将下面命令中的 <YourPassword> 替换为上一步设置的用户密码后再执行。
sudo tee /usr/share/nginx/html/test.php <<-'EOF'
<?php
$servername = "localhost";
$username = "webuser";
$password = "<YourPassword>";
$dbname = "webapp";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检测连接
if ($conn->connect_error) {
    die("数据库连接失败: " . $conn->connect_error);
}
echo "数据库连接成功!";
?>
EOF
  • 浏览器验证:访问 http://<ECS公网IP>/test.php。当页面显示数据库连接成功!表示测试通过。
  • 清理测试文件:该脚本内包含明文的数据库账号密码,测试通过后必须立即删除,防止凭据泄露。


更多关于阿里云服务器实践教程,请移步到阿里云服务器ECS官方页面查看:https://www.aliyun.com/product/ecs

相关文章
|
21天前
|
监控 测试技术 持续交付
大模型测试怎么做?从模型评估、幻觉检测到 RAG 系统测试全指南
本指南系统讲解大模型测试全流程:涵盖多维度评估(私有评测集构建、指标选择)、幻觉检测(事实核查、一致性与对抗测试)、RAG分层验证(检索/生成/端到端),以及持续集成实践与避坑指南,助力团队落地可靠评估体系。
|
17天前
|
运维 监控 Linux
Finalshell远程管理软件安装步骤详解(附SSH连接与文件传输教程)
FinalShell是一款专为运维与开发者设计的国产远程管理工具,支持SSH/SFTP连接Linux服务器、VPS及云主机,集成终端、文件拖拽传输、实时资源监控(CPU/内存/磁盘)等功能,界面简洁易用,Win7–Win11全兼容。(239字)
|
18天前
|
人工智能 运维 API
2026年阿里云无影云电脑部署OpenClaw(Clawdbot)新手小白保姆级教程
在AI自动化办公飞速普及的2026年,OpenClaw(原Clawdbot、Moltbot)凭借“零编程门槛、自然语言驱动、主动执行任务”的核心优势,成为新手小白解锁AI效率的首选工具。作为GitHub星标量超19万的开源AI自动化代理工具,它能替代70%的重复性办公工作——从文档生成、日程提醒,到跨工具协同、简单代码生成,只需一句口语化指令,就能自动完成全流程操作。但此前,很多新手因本地设备配置不足、云环境搭建繁琐、依赖调试复杂等问题,对OpenClaw望而却步,即便有基础教程,也常常因专业术语晦涩、步骤不细致而半途而废。
462 7
|
25天前
|
人工智能 自然语言处理 安全
2026年阿里云无影云电脑OpenClaw(Clawdbot)一键部署全攻略,新手小白抄作业
2026年,OpenClaw(原Clawdbot、Moltbot)凭借“自然语言指令+主动执行任务”的核心能力,成为AI办公自动化的标杆工具,从文件管理、网页操作到多渠道联动,它能像“专属数字员工”一样,帮你搞定所有琐碎事务,彻底解放双手。但对零基础新手小白来说,传统部署方式中的环境配置、依赖安装、参数调试等操作,曾是难以跨越的门槛——直到阿里云无影云电脑推出OpenClaw(Clawdbot)专属一键部署方案,彻底打破了这一困境。
501 15
|
26天前
|
安全 Java 数据挖掘
高效转换Word表格为Excel:Python方案全解析
本文介绍如何用Python自动化将Word表格转为Excel,解决手动复制易出错、耗时长等问题。基于python-docx读取表格,结合openpyxl或pandas写入,支持多表合并、数字格式识别、合并单元格处理及大文件优化,30行代码即可实现高效精准转换。(239字)
210 13
|
2月前
|
人工智能 关系型数据库 Serverless
2 天,用函数计算 AgentRun 爆改一副赛博朋克眼镜
2 天将吃灰的 Meta 眼镜改造成“交警Copilot”:通过阿里云函数计算 AgentRun 实现端-管-云协同,利用 Prompt 驱动交通规则判断,结合 OCR 与数据库查询,打造可动态扩展的智能执法原型,展现 Agent 架构在真实场景中的灵活与高效。
377 45
|
21天前
|
安全 C++
关系记忆不是越完整越好:chunk size 的隐性代价
本文揭示关系型RAG(如祝福/道歉生成)中一个反直觉真相:关系信息并非越完整越好。大chunk会将“可引用的触发点”异化为“需总结的材料”,诱使模型转向安全、抽象、概括性表达,丧失走心感。核心原则是——切分重在“可被直接引用”,而非“逻辑完整”。
|
23天前
|
弹性计算 小程序 固态存储
云服务器租用价格多少钱一年?用于搭建小程序费用清单,2026最新整理
2026年阿里云小程序服务器最新报价:入门级2核2G轻量服务器低至38元/年(含200M峰值带宽、50G系统盘),99元/年ECS经济型实例续费同价;香港地域25元/月起。覆盖GPU、按量付费及带宽/云盘明细,性价比高,适合个人开发者与中小企业快速部署小程序。
377 17
|
18天前
|
人工智能 数据可视化 网络安全
2026年零基础安装OpenClaw(Clawdbot)接入Slack保姆级教程
在AI自动化协同办公需求爆发的2026年,OpenClaw(原Clawdbot、曾用名Moltbot)凭借“自然语言驱动、全场景任务自动化、多终端无缝适配”的核心优势,成为个人办公提效、轻量团队协同的优选工具。作为GitHub星标量超19万的开源AI自动化代理平台,它打破了传统AI仅能对话的局限,真正实现“能听指令、能做实事”——无论是文档生成、日程提醒、文件整理,还是联网搜索、简单代码开发、跨工具协同,只需一句口语化指令,就能自动完成全流程操作,无需手动干预,完美适配现代办公的高效协同需求。
299 21
|
18天前
|
人工智能 数据可视化 网络安全
2026年部署OpenClaw(Clawdbot)接入iMessage详细步骤(喂饭级,小白抄作业)
在AI自动化办公与多端协同需求爆发的2026年,OpenClaw(原Clawdbot、曾用名Moltbot)凭借“自然语言驱动、全场景任务自动化、多终端无缝适配”的核心优势,成为个人办公提效、轻量运营管理的优选工具。作为GitHub星标量超19万的开源AI自动化代理平台,它打破了传统AI仅能对话的局限,真正实现“能听指令、能做实事”——无论是文档生成、日程提醒、文件整理,还是联网搜索、简单代码开发、跨工具协同,只需一句口语化指令,就能自动完成全流程操作,无需手动干预。
784 21

热门文章

最新文章