在本教程中,我们将采用一种更现代和高效的组合:Nginx + PHP-FPM + MySQL,这是一个经典的“LNMP”架构,性能优异,是目前最流行的 Web 服务器环境之一。

- Nginx: 作为反向代理和静态文件服务器,处理高并发请求。
- PHP-FPM: 一个 PHP 的 FastCGI 进程管理器,专门处理 PHP 动态请求。
- MySQL: 作为数据库服务器,存储网站数据。
第一部分:环境准备
选择操作系统
我们推荐使用 Ubuntu 22.04 LTS 或 CentOS 7/8,本教程将以 Ubuntu 22.04 为例,因为它对新手友好,软件包更新及时,对于 CentOS/RHEL,核心命令类似,只是包管理器从 apt 换成了 yum 或 dnf。
更新系统
在开始安装前,请确保你的系统是最新的。
# 对于 Ubuntu/Debian sudo apt update && sudo apt upgrade -y # 对于 CentOS/RHEL # sudo yum update -y (CentOS 7) # sudo dnf update -y (CentOS 8/9)
设置主机名和域名解析(可选但推荐)
为了方便管理,建议设置一个主机名,并在本地 /etc/hosts 文件中添加解析。
# 设置主机名 sudo hostnamectl set-hostname your-server-name # 编辑 hosts 文件 sudo nano /etc/hosts
在文件中添加以下内容(将 your_server_ip 替换为你的服务器公网或内网 IP,your-domain.com 替换为你的域名):

0.0.1 localhost
your_server_ip your-server-name your-domain.com
保存并退出 (Ctrl+X, 然后按 Y, 最后按 Enter)。
第二部分:安装 Nginx
Nginx 是一个轻量级、高性能的 Web 服务器和反向代理。
# 安装 Nginx sudo apt install nginx -y # 启动 Nginx 并设置为开机自启 sudo systemctl start nginx sudo systemctl enable nginx # 检查 Nginx 状态 sudo systemctl status nginx
验证安装: 在浏览器中输入你的服务器 IP 地址,如果看到 "Welcome to nginx!" 页面,说明 Nginx 安装成功。
配置防火墙(如果使用了 UFW):

# 允许 HTTP (80) 和 HTTPS (443) 端口 sudo ufw allow 'Nginx Full' sudo ufw reload
第三部分:安装 MySQL
MySQL 是世界上最流行的开源关系型数据库管理系统。
# 安装 MySQL 服务器 sudo apt install mysql-server -y # 启动 MySQL 并设置为开机自启 sudo systemctl start mysql sudo systemctl enable mysql # 安全配置 MySQL (强烈推荐!) sudo mysql_secure_installation
mysql_secure_installation 交互式配置说明:
Enter current password for root (enter for none):直接按Enter,因为初始 root 用户没有密码。Switch to unix_socket authentication [Y/n]输入n,我们希望使用密码登录。Set root password? [Y/n]输入Y并设置一个强密码。Remove anonymous users? [Y/n]输入Y移除匿名用户。Disallow root login remotely? [Y/n]输入Y禁止 root 远程登录,更安全。Remove test database and access to it? [Y/n]输入Y删除测试数据库。Reload privilege tables now? [Y/n]输入Y重新加载权限表。
第四部分:安装 PHP 和 PHP-FPM
PHP-FPM 是 Nginx 运行 PHP 的最佳搭档。
# 安装 PHP 和一些常用的扩展 # 你可以根据项目需要增减扩展,如 php-mysql, php-gd, php-curl 等 sudo apt install php-fpm php-mysql php-mbstring php-xml php-gd php-curl -y # 启动 PHP-FPM 并设置为开机自启 sudo systemctl start php8.1-fpm # 注意版本号,可能是 php8.0-fpm 或 php7.4-fpm sudo systemctl enable php8.1-fpm # 检查 PHP-FPM 状态 sudo systemctl status php8.1-fpm
注意:PHP 版本号 (如 php8.1-fpm) 可能因你的系统版本而异,你可以使用 apt search php-fpm 来查看可用的版本。
第五部分:配置 Nginx 支持 PHP
我们需要告诉 Nginx 如何将 .php 文件请求转发给 PHP-FPM 处理。
-
创建一个新的 Nginx 配置文件 我们为你的网站创建一个独立的配置文件。
sudo nano /etc/nginx/sites-available/your-domain.com
-
粘贴以下配置内容 将
your-domain.com和your_server_ip替换成你自己的信息。server { listen 80; server_name your-domain.com www.your-domain.com; root /var/www/your-domain.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; # 使用 unix socket 通信,性能更好 fastcgi_pass unix:/run/php/php8.1-fpm.sock; # 如果使用 TCP/IP 连接,则使用下面这行(取消注释并注释掉上面那行) # fastcgi_pass 127.0.0.1:9000; } # 禁止访问隐藏文件(如 .htaccess, .htpassword) location ~ /\.ht { deny all; } }配置解释:
server_name: 你的域名。root: 网站根目录,我们需要创建它。location ~ \.php$: 这是核心规则,匹配所有以.php结尾的请求。fastcgi_pass: 指向 PHP-FPM 的监听地址。务必确认这里的 socket 文件路径 (/run/php/php8.1-fpm.sock) 与你的 PHP-FPM 版本一致!
-
创建网站根目录并设置权限
# 创建目录 sudo mkdir -p /var/www/your-domain.com/html # 设置所有者 sudo chown -R $USER:$USER /var/www/your-domain.com/html # 设置权限 sudo chmod -R 755 /var/www/your-domain.com/html
-
启用站点配置 创建一个指向
sites-enabled目录的软链接。sudo ln -s /etc/nginx/sites-available/your-domain.com /etc/nginx/sites-enabled/
-
测试并重新加载 Nginx
# 测试 Nginx 配置文件语法 sudo nginx -t # 如果显示 syntax is ok 和 test is successful,则重新加载 Nginx sudo systemctl reload nginx
第六部分:测试 LNMP 环境
创建一个 info.php 文件来验证 PHP 是否能正常工作。
-
创建测试文件
sudo nano /var/www/your-domain.com/html/info.php
-
输入 PHP 代码 粘贴以下内容并保存:
<?php phpinfo(); ?>
-
在浏览器中访问 打开浏览器,访问
http://your-domain.com/info.php或http://your_server_ip/info.php。如果能看到一个详细的 PHP 信息页面,说明 LNMP 环境配置成功!
-
(安全起见)删除测试文件 出于安全考虑,测试成功后应立即删除此文件。
sudo rm /var/www/your-domain.com/html/info.php
第七部分:安装 phpMyAdmin(可选)
phpMyAdmin 是一个用 PHP 编写的,通过 Web 界面管理 MySQL 的工具。
-
安装 phpMyAdmin
sudo apt install phpmyadmin -y
在安装过程中,会弹出一些交互式界面:
- Web server to reconfigure automatically: 选择
apache2(即使我们用的是 Nginx,先选它,后面再手动配置),然后按Tab键选择OK并按Enter。 - Configure database for phpmyadmin with dbconfig-common?: 选择
<Yes>并按Enter。 - MySQL application password for phpmyadmin: 设置一个密码并确认。
- Web server to reconfigure automatically: 选择
-
为 phpMyAdmin 创建 Nginx 配置 phpMyAdmin 安装时会生成一个 Apache 的配置文件,我们需要将其改写为 Nginx 兼容的。
# 复制 Apache 配置文件 sudo cp /etc/phpmyadmin/apache.conf /etc/nginx/sites-available/phpmyadmin # 编辑新文件 sudo nano /etc/nginx/sites-available/phpmyadmin
-
修改配置文件 找到下面这一行:
Alias /phpmyadmin /usr/share/phpmyadmin
在它前面加上 注释掉,并替换为 Nginx 的
location块:# Alias /phpmyadmin /usr/share/phpmyadmin location /phpmyadmin { root /usr/share/; index index.php index.html index.htm; location ~ ^/phpmyadmin/(.+\.php)$ { try_files $uri =404; root /usr/share/; fastcgi_pass unix:/run/php/php8.1-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; } location ~* ^/phpmyadmin/(.+\.php)$ { deny all; } }同样,注意
fastcgi_pass中的 socket 路径要匹配你的 PHP 版本。 -
启用 phpMyAdmin 配置
# 创建软链接 sudo ln -s /etc/nginx/sites-available/phpmyadmin /etc/nginx/sites-enabled/ # 测试并重载 Nginx sudo nginx -t sudo systemctl reload nginx
-
访问 phpMyAdmin 在浏览器中访问
http://your-domain.com/phpmyadmin。 使用你在mysql_secure_installation中设置的 MySQL root 用户 和密码登录。
至此,你已经成功在 Linux (Ubuntu) 系统上安装并配置了完整的 LANMP (Nginx + MySQL + PHP) 环境,并可选地安装了 phpMyAdmin。
后续步骤:
- 部署你的网站代码到
/var/www/your-domain.com/html目录。 - 为你的网站配置 SSL 证书(推荐使用 Let's Encrypt + Certbot)。
- 定期备份你的网站文件和 MySQL 数据库。
希望这份教程对你有帮助!如果在过程中遇到问题,可以随时查询 /var/log/nginx/error.log 和 /var/log/mysql/error.log 等日志文件来定位问题。
