一份清晰的分步指南,教你在 Ubuntu 24.04 LTS 上安装并配置可用于生产环境的 LEMP 环境——Nginx、MySQL 与 PHP-FPM,并附带经过验证的服务器配置块和 PHP 测试页面。
简介
LEMP 环境是一组用于运行动态 Web 应用的开源软件。这个名称是 Linux、ENginx(读作 "Engine-X")、MySQL 与 PHP 的首字母缩写。它支撑着互联网上很大一部分站点,包括 WordPress、Laravel 和 Magento 站点。
在本教程中,你将在 Ubuntu 24.04 LTS 上安装并配置一套完整的 LEMP 环境:以 Nginx 作为 Web 服务器,以 MySQL 作为数据库,并使用 PHP-FPM 处理动态内容。完成后,你将拥有一个可正常运行、能够提供 PHP 页面的服务器配置块。
本指南适用于任何 Ubuntu 24.04 服务器。如果你是在沙特境内的 Skyline Cloud VPS 或云服务器上运行,你还将获得境内数据驻留、PDPL/NCA 合规对齐,以及本地阿拉伯语支持。
前置条件
开始之前,你应当具备:
- 一台 Ubuntu 24.04 服务器,并拥有一个具备
sudo权限的非 root 用户。 - 一个基础防火墙(UFW)——下文将介绍。
- (可选)一个通过
A记录指向服务器公网 IP 的域名。
如果你还没有服务器,可以在 Skyline Cloud 上几分钟内创建一台。
第 1 步——更新软件包索引
请始终从更新软件包索引开始,以确保安装的是最新版本:
sudo apt update
sudo apt upgrade -y
第 2 步——安装 Nginx
安装 Nginx Web 服务器:
sudo apt install nginx -y
如果 UFW 处于启用状态,请放行 HTTP 和 HTTPS 流量。Nginx Full 配置文件会同时开放 80 和 443 端口:
sudo ufw allow 'Nginx Full'
sudo ufw status
验证 Nginx 是否正在运行:
systemctl status nginx
在浏览器中访问 http://your_server_ip——你应当会看到默认的 Welcome to nginx! 页面。
第 3 步——安装 MySQL
安装 MySQL 数据库服务器:
sudo apt install mysql-server -y
MySQL 会自动启动。接下来,运行安全脚本以移除不安全的默认设置:
sudo mysql_secure_installation
系统会提示你配置 VALIDATE PASSWORD 组件、移除匿名用户、禁止 root 远程登录,以及删除测试数据库。请对这些加固步骤回答 Y。
在全新安装的 Ubuntu 上,MySQL 的 root 用户通过 auth_socket 插件进行身份验证,因此你可以在 shell 中无需密码即可连接:
sudo mysql
最佳实践是创建一个专用的应用程序用户,而不是使用 root。在 MySQL 提示符下:
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'a_strong_password';
CREATE DATABASE appdb;
GRANT ALL PRIVILEGES ON appdb.* TO 'appuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
第 4 步——安装 PHP
与 Apache 不同,Nginx 没有内置的 PHP 处理器。你需要安装 PHP-FPM(FastCGI 进程管理器)和 MySQL 扩展:
sudo apt install php-fpm php-mysql -y
Ubuntu 24.04 默认搭载 PHP 8.3。确认版本和 FPM 服务名称:
php -v
systemctl status php8.3-fpm
请记下套接字路径 /run/php/php8.3-fpm.sock——你将在 Nginx 配置中引用它。
第 5 步——配置 Nginx 使用 PHP-FPM
为你的站点创建一个网站根目录和一个服务器配置块。请将 your_domain 替换为你的域名或服务器 IP。
sudo mkdir -p /var/www/your_domain
sudo chown -R $USER:$USER /var/www/your_domain
创建服务器配置块文件:
sudo nano /etc/nginx/sites-available/your_domain
添加以下配置:
server {
listen 80;
server_name your_domain www.your_domain;
root /var/www/your_domain;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
通过将该文件链接到 sites-enabled 来启用站点,然后移除默认站点以免冲突:
sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
sudo unlink /etc/nginx/sites-enabled/default
测试配置是否存在语法错误,然后重新加载:
sudo nginx -t
sudo systemctl reload nginx
第 6 步——测试 PHP 处理
在网站根目录中创建一个 PHP 测试文件:
nano /var/www/your_domain/info.php
添加以下内容:
<?php
phpinfo();
在浏览器中访问 http://your_domain/info.php。你应当会看到一个详细的 PHP 信息页面,这表明 Nginx 已正确地将请求传递给 PHP-FPM。
完成后请立即删除该文件——它会暴露可被攻击者利用的服务器详细信息:
sudo rm /var/www/your_domain/info.php
第 7 步——使用 HTTPS 加强安全(推荐)
对于任何公开站点,你都应当通过 HTTPS 提供流量。如果你的域名已指向服务器,请安装 Certbot 并获取一份免费的 Let's Encrypt 证书:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your_domain -d www.your_domain
Certbot 会编辑你的服务器配置块、安装证书,并设置自动续期。你可以通过 systemctl status certbot.timer 来验证续期定时器。对于需要组织验证型(OV)或通配符证书的商业站点,请参阅 Skyline 的托管 SSL 方案。
服务一览
| 组件 | 软件包 | 服务 | 默认端口 / 套接字 |
|---|---|---|---|
| Web 服务器 | nginx |
nginx |
80 / 443 |
| 数据库 | mysql-server |
mysql |
3306(localhost) |
| PHP 处理器 | php-fpm |
php8.3-fpm |
/run/php/php8.3-fpm.sock |
结语
现在你已经在 Ubuntu 24.04 上拥有了一套可正常运行的 LEMP 环境——Nginx 负责处理请求,PHP-FPM 负责处理动态代码,MySQL 负责存储数据,并在 UFW 和 HTTPS 的保护之下运行。从这里开始,你可以将 WordPress、Laravel 应用或任何 PHP 项目部署到 /var/www/your_domain 中。
如果你不想自己管理操作系统,托管平台或企业邮箱托管可以为你分担这部分工作。要了解 VPS 规格、价格以及更广泛的产品系列,请访问 VPS 与云服务器中心。
准备好部署了吗?立即在 Skyline Cloud 上启动一台境内云服务器,让你的 LEMP 环境在几分钟内上线。
Comments
0 total · 0 threads