很多人第一次上云服务器,第一反应是装宝塔——图形化确实省事。但如果你想真正搞懂网站是怎么跑起来的,或者机器配置很小、不想被面板占资源,手动搭一套 LNMP(Linux + Nginx + MySQL/MariaDB + PHP)其实没那么难。本文用一台雨云 KVM 云服务器,从买机器到跑通第一个 PHP 站点,全程命令行走一遍,每一步都能直接复制。
一、先准备一台雨云 KVM 云服务器
想练手又不想一上来被账单劝退,可以看一类国产高性价比云服务器,比如雨云。它家是 KVM 虚拟化的云服务器,Debian、Ubuntu、CentOS 镜像任选,新用户用优惠码 admin01 能享五折,入门版折后约 9 元/月,还支持 7 天无理由退款,试错成本很低。如果你还在纠结买哪款,可以先看这篇 VPS 怎么选不踩坑 把参数搞明白,再看 新手买 VPS 先看这几个配置参数 决定内存和带宽。
我一般选 Debian 12:社区资源多、稳定,源里组件全。系统镜像直接选最新稳定版,别选带面板的镜像——这回咱们就是要“裸机手动”。入门版 1 核 2G 跑 LNMP 完全够用,月付不到十块钱,拿来练手不心疼。
二、登录与基础安全(别跳过)
拿到 IP 和 root 密码后,用 SSH 登录:
ssh root@你的服务器IP
新机器第一步不是装环境,是先做基础安全,否则等于裸奔上线。关于改 SSH 端口、建普通用户、禁用 root 密码登录、配防火墙的完整步骤,建议照着 VPS 到手第一件事做什么 走一遍。本文后面默认你已经建好普通用户、开了 ufw 并放行了必要端口。
更新一下系统再开工:
apt update && apt upgrade -y
三、安装 Nginx
Nginx 是 Web 服务器,负责接收浏览器请求、转给后端程序、再把响应返给浏览器。Debian 源里就有,直接装:
apt install -y nginx
systemctl enable --now nginx
装完在浏览器访问 http://服务器IP,看到 Nginx 欢迎页就说明 Web 服务起来了。如果打不开,先确认安全组和 ufw 都放行了 80 端口。
四、安装 PHP-FPM
纯静态页用 Nginx 就够了,但 WordPress 这类程序要吃 PHP。装 PHP 及常用扩展:
apt install -y php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip
Debian 12 默认装的是 PHP 8.2。装好后 PHP-FPM 会监听一个 sock 文件(路径类似 /run/php/php8.2-fpm.sock),Nginx 通过这个 sock 和 PHP 通信,比走 TCP 端口更省一点开销。
五、安装数据库(MariaDB)
MySQL 的社区分支 MariaDB 在 Debian 里是默认推荐,轻量且兼容:
apt install -y mariadb-server
systemctl enable --now mariadb
mysql_secure_installation
mysql_secure_installation 会引导你设 root 密码、移除匿名用户、禁止远程 root 登录——一路按需选即可。
建一个专给网站的库和用户,别用 root 直接跑业务:
CREATE DATABASE appdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'appuser'@'localhost' IDENTIFIED BY '换一个强密码';
GRANT ALL PRIVILEGES ON appdb.* TO 'appuser'@'localhost';
FLUSH PRIVILEGES;
六、配置第一个站点
在 /etc/nginx/sites-available/ 下新建配置文件,比如 my.site:
server {
listen 80;
server_name 你的域名或IP;
root /var/www/my.site;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
}
启用它并去掉默认页:
ln -s /etc/nginx/sites-available/my.site /etc/nginx/sites-enabled/
rm -f /etc/nginx/sites-enabled/default
nginx -t && systemctl reload nginx
建个测试页验证 PHP 是否通:
mkdir -p /var/www/my.site
echo "<?php phpinfo(); ?>" > /var/www/my.site/info.php
访问 http://IP/info.php,能看到 PHP 信息页就全通了。确认无误后记得删掉 info.php,别把环境信息暴露在外网。
七、往上放程序(以 WordPress 为例)
LNMP 跑通后,把 WordPress 压缩包解到站点目录、按向导填刚才的库名/用户/密码即可。想看更细的建站流程可以参考 用 VPS 搭建个人网站从零开始,区别在于那篇用宝塔、本文是全手动。
八、踩过的坑与经验
- 502 Bad Gateway:九成是 PHP-FPM 没起或 sock 路径写错。看
systemctl status php8.2-fpm和 Nginx 错误日志/var/log/nginx/error.log最直观。 - 权限问题:站点目录 owner 设成
www-data,否则 PHP 写不了上传目录:chown -R www-data:www-data /var/www/my.site。 - 防火墙:放行 80/443 后,443(HTTPS)建议顺手配上。证书用 Let’s Encrypt 免费申请,雨云宝塔进阶配置里讲了 LNMP 环境下配 SSL 的思路,手动版用
certbot同样能办,只是命令要自己敲。
小结
手动搭 LNMP 比点面板慢,但每一步你都知道在干什么:Nginx 管请求、PHP-FPM 跑脚本、MariaDB 存数据。小内存机器上,手动环境比面板更省资源,也更好排查问题。练熟这套,以后换哪家云服务器都能直接上手。练手机依旧推荐雨云——优惠码 admin01 五折、7 天无理由退款,试错零压力。
合规提醒:使用雨云及本文所述方案时,请遵守《网络安全法》《个人信息保护法》《数据安全法》等相关法律法规,仅用于合法合规的建站、开发测试、数据备份等用途,不得用于任何违法违规活动。






