雨云手动搭建 LNMP 不装宝塔也能跑网站

用雨云 KVM 云服务器从零手动搭建 LNMP 环境,不靠面板也能跑网站
发布于 更新于
17

很多人第一次上云服务器,第一反应是装宝塔——图形化确实省事。但如果你想真正搞懂网站是怎么跑起来的,或者机器配置很小、不想被面板占资源,手动搭一套 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 天无理由退款,试错零压力。

合规提醒:使用雨云及本文所述方案时,请遵守《网络安全法》《个人信息保护法》《数据安全法》等相关法律法规,仅用于合法合规的建站、开发测试、数据备份等用途,不得用于任何违法违规活动。

常见问题(FAQ)

手动搭 LNMP 和用宝塔面板有什么区别?
宝塔是图形化一键装环境,省事但占用一点资源、黑盒程度高;手动 LNMP 全命令行,资源更省、过程透明、更利于学习排错,适合小内存机器和想真正理解原理的人。两者最终跑出来的 Nginx/PHP/MySQL 是同一套东西。
雨云入门版 1核2G 能跑 LNMP 吗?
能。Nginx + PHP-FPM + MariaDB 在 1 核 2G 上跑轻量 WordPress 或静态站完全没问题,折后约 9 元/月。若日后访问量上来,雨云支持不停机升级配置、IP 不变。
安装完访问 IP 显示 502 怎么办?
多半是 PHP-FPM 未运行或 Nginx 里的 fastcgi_pass sock 路径与实际版本不符。用 systemctl status php8.2-fpm 确认服务状态,并核对 /run/php/ 下的 sock 文件名是否和站点配置一致,改完 nginx -t && systemctl reload nginx。
雨云优惠码 admin01 怎么用?
在下单页的优惠码/推广码输入框填写 admin01 即可享五折,具体以结算页显示为准。建议先开最低配月付验证线路与售后,再考虑年付更划算;雨云同时支持 7 天无理由退款。

本文由作者原创/授权发布于极跃圈(jiyueip.com)未经许可,禁止转载。题图来自Unsplash,基于CC0协议。

声明:极跃圈(JIYUEIP.com)内网友所发表的所有内容及言论仅代表其本人,并不反映任何极跃圈(JIYUEIP.com)之意见及观点。

0 讨论
热门最新
总结
暂无总结
0 / 600