VPS 与服务器指南
在VPS上安装LEMP Stack完整指南[2026]
Linux + Nginx + MariaDB + PHP
LEMP Stack是一套广泛使用的开源Web服务器软件组合,专为在Linux VPS上部署动态网站和Web应用程序而设计。它由四个核心组件构成:Linux(操作系统)、Enginx(Web服务器)、MariaDB/MySQL(数据库)和PHP(服务器端编程语言)。
2026年,LEMP Stack仍然是开发者在VPS上搭建Web环境的首选方案。Nginx的事件驱动架构使其在处理高并发连接时内存占用极低,特别适合配置有限的VPS实例。
目录
什么是LEMP Stack?
LEMP是四个核心组件的首字母缩写:
- L — Linux:开源操作系统(Ubuntu、Debian、CentOS等)
- E — Nginx(发音"Engine-X"):高性能Web服务器,以低内存占用和优秀的并发处理能力著称
- M — MariaDB或MySQL:关系型数据库管理系统,用于存储应用数据
- P — PHP:Web开发中使用最广泛的服务器端脚本语言
每个组件独立运行,便于单独升级或替换。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-FPM | mod_php或PHP-FPM |
| 适用场景 | 高流量、内存有限的VPS | 共享主机、简单网站 |
数据截至2026年10月 — 实际性能因版本和工作负载而异
VPS要求与准备工作
- VPS系统:Ubuntu 22.04 LTS或24.04 LTS(推荐)
- 内存:最低512MB,生产环境推荐1GB以上
- CPU:1核以上
- 存储:20GB SSD以上
- Root权限或sudo权限
- SSH客户端(Mac/Linux终端,Windows使用PuTTY或Windows Terminal)
- 域名(可选,SSL证书需要)
更新Ubuntu系统
通过SSH连接VPS,首先更新所有软件包,确保安装最新版本并修复已知安全漏洞:
sudo apt update && sudo apt upgrade -y
安装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
安装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;
安装PHP-FPM
Nginx没有内置PHP支持,需要使用PHP-FPM(FastCGI进程管理器)作为独立服务运行PHP,通过Unix socket与Nginx通信。
2026年PHP版本推荐
- PHP 8.3 — 安全支持至2027年12月31日,生产环境首选
- PHP 8.4 — 活跃支持至2026年12月,安全支持至2028年,适合新项目
- PHP 8.5 — 2025年11月发布的最新版本
- PHP 8.2 — 安全支持将于2026年12月结束,请尽快迁移
请在 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
配置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
测试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
在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上表现出色。