在 Ubuntu 上从零搭建 LNMP 环境:一份保姆级教程

举报
Chocola 发表于 2026/09/16 09:15:46 2026/09/16
【摘要】 拿到一台崭新的 Ubuntu 服务器,就像拿到了一块充满无限可能的"数字画布"。要在这块画布上搭建网站或应用,首先需要准备好一个稳定高效的 Web 服务器运行环境。而在 Linux 世界里,LNMP(Linux + Nginx + MySQL + PHP)技术栈无疑是最受欢迎、性能也最出色的组合之一。这篇教程将带你从零开始,一步一步完成整个 LNMP 环境的搭建和基础配置。不需要高深的技术背...

拿到一台崭新的 Ubuntu 服务器,就像拿到了一块充满无限可能的"数字画布"。要在这块画布上搭建网站或应用,首先需要准备好一个稳定高效的 Web 服务器运行环境。而在 Linux 世界里,LNMP(Linux + Nginx + MySQL + PHP)技术栈无疑是最受欢迎、性能也最出色的组合之一。

这篇教程将带你从零开始,一步一步完成整个 LNMP 环境的搭建和基础配置。不需要高深的技术背景,只要跟着操作,就能成功!


准备工作

在开始之前,请确保:

  • 一台运行 Ubuntu 22.04/24.04 的服务器(云服务器、VPS 或本地虚拟机均可)
  • 拥有 sudo 或 root 权限
  • 能通过 SSH 远程登录到服务器F
  • (可选)已准备好域名,并将 DNS A 记录指向服务器公网 IP

第一步:更新系统软件包

拿到新服务器后,第一件事就是把所有软件包更新到最新版本,获取最新的安全补丁,确保后续安装的软件基于一个稳定基础。

sudo apt update
sudo apt upgrade -y

第二步:安装 Nginx

Nginx 是一个高性能、轻量级的 Web 服务器,负责接收用户的访问请求并将他们引导到正确的内容。

sudo apt install -y nginx

安装完成后,启动 Nginx 并设置开机自启:

sudo systemctl start nginx
sudo systemctl enable nginx

验证安装是否成功:

sudo systemctl status nginx

看到 active (running) 即表示启动成功。此时在浏览器中访问服务器 IP 地址,应该能看到 Nginx 的欢迎页面(Welcome to nginx!)。


第三步:安装 MySQL

MySQL 是强大的关系型数据库,用来存储网站的各类动态数据,比如用户信息、文章内容等。

sudo apt install -y mysql-server

安装完成后,启动 MySQL 并设置开机自启:

sudo systemctl start mysql
sudo systemctl enable mysql

接下来执行安全初始化配置,这是非常重要的一步:

sudo mysql_secure_installation

按照提示依次完成以下设置:

  • 设置 root 密码(Ubuntu 默认使用 auth_socket 认证,可选是否改为密码登录)
  • 移除匿名用户
  • 禁止 root 远程登录
  • 删除测试数据库
  • 刷新权限表

一般全部选 Y 即可。


第四步:安装 PHP 及扩展

PHP 是服务器端脚本语言,用来处理动态逻辑、与数据库交互、生成最终展示给用户的网页内容。我们通常使用 PHP-FPM(FastCGI Process Manager)来让 Nginx 和 PHP 高效协作。

sudo apt install -y php-fpm php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip

提示:如果你的 Ubuntu 版本默认 PHP 版本较低,可以通过添加 ppa:ondrej/php 源来安装更新的 PHP 版本:

sudo apt install -y software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update

安装完成后,启动 PHP-FPM 并设置开机自启:

sudo systemctl start php8.1-fpm    # 根据实际安装的版本号调整
sudo systemctl enable php8.1-fpm

查看 PHP 版本确认安装成功:

php -v

第五步:配置 Nginx 支持 PHP

这是整个搭建过程中最关键的一步——让 Nginx 能够正确解析 PHP 文件。

编辑 Nginx 默认站点配置文件:

sudo nano /etc/nginx/sites-available/default

找到 server { ... } 块,将其修改为以下内容:

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;
    index index.php index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}

注意:fastcgi_pass 中的 PHP 版本号需要与你实际安装的版本一致(如 php8.1-fpm.sock、php8.2-fpm.sock 等)。如果不确定,可以查看 /run/php/ 目录下的 sock 文件名称。

保存文件后,测试配置是否正确并重载 Nginx:

sudo nginx -t
sudo systemctl reload nginx

第六步:测试 LNMP 环境

在网站根目录创建一个 PHP 测试文件:

sudo nano /var/www/html/info.php

写入以下内容:

<?php phpinfo(); ?>

保存后,在浏览器中访问 服务器IP/info.php。如果能看到 PHP 信息页面,说明 LNMP 环境已经搭建成功!

安全提醒:测试完成后,建议删除 info.php 文件,避免泄露服务器信息:

sudo rm /var/www/html/info.php

第七步:配置防火墙(如有)

如果服务器开启了 UFW 防火墙,需要放行 HTTP 和 HTTPS 端口:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

进阶:开启 HTTPS(推荐)

如果你的服务器绑定了域名,强烈建议配置 HTTPS。使用 Let’s Encrypt 可以免费获取 SSL 证书:

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

证书会自动续期,无需手动维护。


常见问题排查

问题 可能原因 解决方法
502 Bad Gateway PHP-FPM 未启动或 sock 路径错误 sudo systemctl status php*-fpm 检查服务状态
403 Forbidden 目录权限问题或 index 文件缺失 检查 root 路径和文件权限
Nginx 无法解析 PHP 配置文件有误 sudo nginx -t 检查配置语法

总结

至此,你已经在 Ubuntu 上成功搭建了一个完整的 LNMP 环境。无论是部署 WordPress 博客、Discuz! 论坛,还是自己开发的 PHP 应用,这个环境都能胜任。

如果你觉得手动配置太繁琐,也可以考虑使用 LNMP 一键安装包来快速部署。

祝你建站顺利!

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。