我们将使用目前最流行、性能最高的组合:Nginx + MySQL (MariaDB) + PHP,也就是常说的 LEMP 栈,它与传统的 LAMP (Apache) 栈相比,Nginx 在处理高并发静态资源请求时更具优势。

第一部分:环境准备与系统选择
选择合适的 Linux 发行版
对于服务器新手和专家来说,Ubuntu 和 CentOS/Rocky Linux 是最主流的选择。
- Ubuntu (推荐新手): 社区庞大,文档丰富,软件包更新快,命令相对直观,我们将以 Ubuntu 22.04 LTS 为例进行讲解。
- CentOS/Rocky Linux: 企业级稳定,默认软件包较旧,但极其稳定,适合对稳定性要求极高的生产环境。
准备服务器
你可以使用:
- 云服务器: 阿里云、腾讯云、AWS、Vultr、DigitalOcean 等,这是最常见的方式,按需付费,弹性伸缩。
- 物理机/虚拟机: 你自己的闲置电脑或虚拟机软件(如 VMware, VirtualBox)。
确保你的服务器拥有一个公网 IP 地址,并且已经开放了必要的端口:
- 22 (SSH): 用于远程连接服务器。
- 80 (HTTP): 用于网站访问。
- 443 (HTTPS): 用于加密的网站访问。
第二部分:基础系统配置
无论使用哪个发行版,第一步都是确保系统是最新的。

更新系统包
# 对于 Ubuntu/Debian sudo apt update && sudo apt upgrade -y # 对于 CentOS/Rocky Linux sudo dnf update -y
设置主机名
# 设置一个有意义的主机名,'web-server' sudo hostnamectl set-hostname web-server
配置防火墙
# 对于 Ubuntu (使用 UFW) sudo ufw allow 22/tcp sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable # 对于 CentOS/Rocky Linux (使用 firewalld) sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload
第三部分:安装 LEMP 核心组件
安装 Nginx Web 服务器
Nginx 是一个高性能的 HTTP 和反向代理服务器。
# Ubuntu sudo apt install nginx -y # CentOS/Rocky Linux sudo dnf install nginx -y
安装完成后,启动 Nginx 并设置为开机自启:
sudo systemctl start nginx sudo systemctl enable nginx
测试 Nginx: 在浏览器中输入你的服务器公网 IP 地址,如果看到 "Welcome to nginx!" 页面,说明 Nginx 安装成功。
安装数据库服务器 (MySQL / MariaDB)
我们将安装 MariaDB,它是 MySQL 的一个流行分支,完全兼容且开源。

# Ubuntu sudo apt install mariadb-server mariadb-client -y # CentOS/Rocky Linux sudo dnf install mariadb-server mariadb -y
启动并启用 MariaDB:
sudo systemctl start mariadb sudo systemctl enable mariadb
安全配置 MariaDB: 运行安全脚本,它会设置 root 密码、移除匿名用户、禁止远程 root 登录等。
sudo mysql_secure_installation
按照提示操作,建议:
- 为 root 设置一个强密码。
- 对于其他选项,直接按
Y(Yes) 确认即可。
安装 PHP (PHP-FPM)
PHP-FPM (FastCGI Process Manager) 是一种 PHP 的 FastCGI 实现,非常适合与 Nginx 配合使用。
# Ubuntu # 首先添加 PHP 仓库,以获得更新的版本 (PHP 8.2) sudo apt install software-properties-common -y sudo add-apt-repository ppa:ondrej/php -y sudo apt update # 安装 PHP 8.2 及常用扩展 sudo apt install php8.2-fpm php8.2-mysql php8.2-curl php8.2-gd php8.2-mbstring php8.2-xml php8.2-xmlrpc php8.2-zip php8.2-intl -y # CentOS/Rocky Linux # EPEL 仓库通常包含较新的 PHP sudo dnf install epel-release -y sudo dnf install php php-fpm php-mysqlnd php-curl php-gd php-mbstring php-xml php-xmlrpc php-zip php-intl -y
启动并启用 PHP-FPM:
# Ubuntu sudo systemctl start php8.2-fpm sudo systemctl enable php8.2-fpm # CentOS/Rocky Linux sudo systemctl start php-fpm sudo systemctl enable php-fpm
第四部分:配置 Nginx 与 PHP 协同工作
我们需要让 Nginx 将 PHP 请求转发给 PHP-FPM 处理。
创建网站配置文件
我们为你的网站创建一个新的 Nginx 配置文件,假设你的域名是 example.com。
# 使用你喜欢的编辑器,如 nano sudo nano /etc/nginx/sites-available/example.com
粘贴到文件中,并务必修改 server_name 和 root 路径:
server {
listen 80;
server_name example.com www.example.com; # 替换成你的域名
root /var/www/example.com/html; # 网站根目录
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
# 将 .php 结尾的请求转发给 PHP-FPM
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock; # Ubuntu 路径
# 如果是 CentOS,路径通常是:/var/run/php-fpm/www.sock
}
# 阻止访问隐藏文件
location ~ /\.ht {
deny all;
}
}
创建网站目录并设置权限
# 创建网站根目录 sudo mkdir -p /var/www/example.com/html # 设置目录所有者为当前用户,避免使用 sudo 编辑文件 sudo chown -R $USER:$USER /var/www/example.com/html # 设置正确的权限 sudo chmod -R 755 /var/www/example.com/html
启用网站配置
我们需要创建一个符号链接来激活站点配置。
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
为了防止配置文件名冲突,可以删除默认的站点配置:
sudo rm /etc/nginx/sites-enabled/default
测试 Nginx 配置并重启
# 测试配置文件语法是否正确 sudo nginx -t # 如果输出 successful,则重启 Nginx sudo systemctl restart nginx
第五部分:测试 PHP 和数据库连接
创建 PHP 测试页面
在网站根目录下创建一个 info.php 文件。
nano /var/www/example.com/html/info.php
<?php phpinfo(); ?>
保存文件后,在浏览器中访问 http://你的服务器IP/info.php 或 http://你的域名/info.php,如果看到 PHP 的详细信息页面,说明 Nginx 和 PHP 已经成功集成。
创建一个 WordPress 测试环境(可选,但强烈推荐)
WordPress 是最流行的 CMS,用它来测试非常合适。
a. 创建数据库和用户
# 登录 MariaDB sudo mysql # 在 MariaDB shell 中执行以下命令 CREATE DATABASE wordpress_db; CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'your_strong_password'; GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wordpress_user'@'localhost'; FLUSH PRIVILEGES; EXIT;
b. 下载并解压 WordPress
# 进入网站根目录 cd /var/www/example.com/html # 下载 WordPress (wget 没有安装,先 sudo apt install wget) wget https://wordpress.org/latest.tar.gz # 解压 tar -xzvf latest.tar.gz # 将 WordPress 文件移动到 html 目录下 mv wordpress/* . # 清理 rm -rf latest.tar.gz wordpress # 确保权限正确 sudo chown -R www-data:www-data /var/www/example.com/html # Ubuntu # sudo ch
