本文可能包含联盟链接——如果您通过这些链接购买,我们会获得佣金,您无需支付额外费用。编辑政策

VPS 与服务器指南

在VPS上安装LEMP Stack完整指南[2026]
Linux + Nginx + MariaDB + PHP

作者:CloudPicked编辑团队  ·  最后更新:2026年10月

在VPS上安装LEMP Stack — Linux Nginx MariaDB PHP配置指南

LEMP Stack是一套广泛使用的开源Web服务器软件组合,专为在Linux VPS上部署动态网站和Web应用程序而设计。它由四个核心组件构成:Linux(操作系统)、Enginx(Web服务器)、MariaDB/MySQL(数据库)和PHP(服务器端编程语言)。

2026年,LEMP Stack仍然是开发者在VPS上搭建Web环境的首选方案。Nginx的事件驱动架构使其在处理高并发连接时内存占用极低,特别适合配置有限的VPS实例。

目录

  1. 什么是LEMP Stack?
  2. LEMP vs LAMP对比
  3. VPS要求与准备工作
  4. 步骤1:更新Ubuntu系统
  5. 步骤2:安装Nginx
  6. 步骤3:安装MariaDB
  7. 步骤4:安装PHP-FPM
  8. 步骤5:配置Nginx虚拟主机
  9. 步骤6:测试PHP和数据库
  10. 步骤7:在LEMP上安装WordPress
  11. 安全加固
  12. 常见问题解答

什么是LEMP Stack?

LEMP是四个核心组件的首字母缩写:

每个组件独立运行,便于单独升级或替换。Nginx接收浏览器的HTTP请求,直接提供静态文件,并将PHP请求转发给PHP-FPM(独立的进程管理器)。PHP-FPM执行PHP代码(可能查询MariaDB),将结果返回给Nginx,再发送到浏览器。

LEMP vs LAMP对比

LEMP和LAMP的唯一区别在于Web服务器组件:

特性 LEMP (Nginx) LAMP (Apache)
架构模式事件驱动(异步)进程/线程模式
内存使用较低,高并发效率高每连接消耗更多
并发连接极高(少量内存处理数千连接)受进程数量限制
静态文件服务非常快良好
.htaccess支持不支持(需用nginx.conf)支持
PHP执行方式仅通过PHP-FPMmod_php或PHP-FPM
适用场景高流量、内存有限的VPS共享主机、简单网站

数据截至2026年10月 — 实际性能因版本和工作负载而异

VPS要求与准备工作

1

更新Ubuntu系统

通过SSH连接VPS,首先更新所有软件包,确保安装最新版本并修复已知安全漏洞:

sudo apt update && sudo apt upgrade -y
2

安装Nginx

Nginx在Ubuntu默认仓库中可用,直接安装:

sudo apt install nginx -y

设置开机自启并启动Nginx:

sudo systemctl enable nginx
sudo systemctl start nginx
sudo systemctl status nginx

状态显示 Active: active (running) 则Nginx运行正常。在浏览器访问 http://服务器IP,应看到"Welcome to nginx!"页面。

配置UFW防火墙

sudo ufw allow 'Nginx Full'
sudo ufw status
3

安装MariaDB

MariaDB是MySQL的完全兼容替代品,推荐使用MariaDB 10.11 LTS(长期支持至2028年):

sudo apt install mariadb-server mariadb-client -y
sudo systemctl enable mariadb
sudo systemctl start mariadb

运行安全加固脚本

sudo mysql_secure_installation

按提示操作:设置root密码、移除匿名用户、禁止root远程登录、删除测试数据库,均选择Y。

创建数据库和用户

sudo mysql -u root -p
CREATE DATABASE mywebsite_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'mywebsite_user'@'localhost' IDENTIFIED BY '强密码123!';
GRANT ALL PRIVILEGES ON mywebsite_db.* TO 'mywebsite_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
4

安装PHP-FPM

Nginx没有内置PHP支持,需要使用PHP-FPM(FastCGI进程管理器)作为独立服务运行PHP,通过Unix socket与Nginx通信。

2026年PHP版本推荐

请在 php.net 查看最新支持时间表

安装PHP 8.3

Ubuntu 22.04需先添加PPA:

sudo apt install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update
sudo apt install php8.3-fpm php8.3-mysql php8.3-xml php8.3-curl php8.3-mbstring php8.3-zip php8.3-intl php8.3-gd php8.3-bcmath php8.3-imagick -y
sudo systemctl enable php8.3-fpm
sudo systemctl start php8.3-fpm
5

配置Nginx虚拟主机

sudo nano /etc/nginx/sites-available/yourdomain.com

填入以下配置(将 yourdomain.com 替换为实际域名):

server {
    listen 80;
    listen [::]:80;
    server_name yourdomain.com www.yourdomain.com;
    root /var/www/yourdomain.com;
    index index.php index.html;

    location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff|woff2)$ {
        expires 30d;
        add_header Cache-Control "public, no-transform";
    }

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";
}

启用虚拟主机

sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

创建网站根目录

sudo mkdir -p /var/www/yourdomain.com
sudo chown -R www-data:www-data /var/www/yourdomain.com
sudo chmod -R 755 /var/www/yourdomain.com
6

测试PHP和数据库连接

sudo nano /var/www/yourdomain.com/info.php
<?php phpinfo(); ?>

访问 http://yourdomain.com/info.php,看到PHP信息页面说明安装成功。

安全提示:测试完成后立即删除info.php,该文件会暴露服务器配置信息。

sudo rm /var/www/yourdomain.com/info.php
7

在LEMP Stack上安装WordPress

下载并解压WordPress

cd /tmp
curl -O https://wordpress.org/latest.tar.gz
tar xzf latest.tar.gz
sudo cp -r wordpress/* /var/www/yourdomain.com/
sudo chown -R www-data:www-data /var/www/yourdomain.com/

配置wp-config.php

cd /var/www/yourdomain.com
sudo cp wp-config-sample.php wp-config.php
sudo nano wp-config.php
define('DB_NAME', 'mywebsite_db');
define('DB_USER', 'mywebsite_user');
define('DB_PASSWORD', '强密码123!');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8mb4');

WordPress专用Nginx配置

location / {
    try_files $uri $uri/ /index.php?$args;
}

location ~* /(?:uploads|files)/.*\.php$ {
    deny all;
}

安装Let's Encrypt SSL证书

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

安全加固

1. 禁用root SSH登录,使用密钥认证

sudo nano /etc/ssh/sshd_config
# 修改以下行:
Port 2222
PasswordAuthentication no
PermitRootLogin no

2. 安装Fail2Ban

sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

3. 隐藏Nginx版本信息

在 /etc/nginx/nginx.conf 的http块中添加:

server_tokens off;

4. 优化PHP安全设置

expose_php = Off
display_errors = Off
log_errors = On
upload_max_filesize = 32M
post_max_size = 32M
max_execution_time = 60

需要可靠的VPS来运行LEMP Stack?

查看AsiaGB VPS方案

常见问题解答

什么是LEMP Stack?

LEMP Stack是Linux + Nginx + MariaDB/MySQL + PHP的开源软件组合,用于在VPS上托管动态网站和Web应用程序。

LEMP和LAMP有什么区别?

唯一区别是Web服务器:LAMP用Apache,LEMP用Nginx。Nginx事件驱动架构内存占用更低,处理并发连接能力更强,特别适合内存有限的VPS。

2026年推荐使用哪个PHP版本?

推荐PHP 8.3(安全支持至2027年12月),适合生产环境。PHP 8.4适合需要最新特性的新项目。避免使用PHP 8.2,其安全支持将于2026年12月结束。

MariaDB与MySQL兼容吗?

是的,MariaDB与MySQL接近100%兼容。WordPress、Laravel等主流Web应用程序无需修改代码即可使用MariaDB,使用相同的PDO_MySQL和mysqli连接驱动。

WordPress可以在LEMP上运行吗?

完全可以。WordPress在LEMP Stack上运行良好。需要在Nginx配置中使用try_files指令处理WordPress固定链接,因为Nginx不支持.htaccess文件。

LEMP Stack需要什么VPS配置?

小型网站:1GB内存、1核CPU、20GB SSD。生产环境:2GB+内存、2核CPU、40GB+ SSD。由于Nginx比Apache更节省内存,LEMP在预算VPS上表现出色。