Puo's 菜园子 学习园地 http://puo.cn
易记网址: http://wordpress.cn.com

小内存vps如何安装面板(1h1g)

购买了几个1H1G之类的vps,例如bmit ,按照我的使用场景,就会面临一个问题:
内存过小!

必须使用通用的有群体基础的一些方案或者软件,这样有了问题好搜索询问,相关优化的一些问题:

 

安装宝塔手动勾选(推荐配置)

  • Web服务器Nginx (选择 1.24 或稳定版本,不要选太新的)。
  • 数据库MariaDB (选择 10.2 或 10.3 版本,千万不要选 MySQL 8.0,它太吃内存了)。
  • PHPPHP 7.4 (性能与资源占用的平衡点,比 PHP 8.x 更轻量)。
  • FTP:不需要,不勾选。
  • phpMyAdmin:建议安装(方便管理数据库),但用完可以关闭

 

wordpress避坑指南:
即使使用 1Panel,在 1h1g 的机器上运行 WordPress 也要注意:
  • 数据库:建议使用 MariaDB 10.6 以下版本,比 MySQL 8.0 更省内存。
  • 缓存:务必安装 Redis 缓存插件,减少数据库查询,这是低配机器流畅运行的秘诀。
  • Swap:在 1Panel 或系统设置里,务必分配 512MB – 1GB 的 Swap 虚拟内存,作为物理内存不足时的“救命稻草”。
  • 如果是测试或者不常用网站,网站“关闭”或“停止”,这样做也能显著降低内存占用

    停止站点 + 停止数据库服务 (最省资源)

  • 宝塔面板上-数据库配置优化 (my.cnf)

    你需要调整数据库的配置文件,防止它因为“缓存太大”而导致内存溢出。
    • 操作路径:宝塔面板 -> 软件商店 -> MySQL -> 配置修改。
    • 关键参数调整(将以下数值调低):
      ini

      # 缓冲池大小 (这是最大的内存占用项)
      # 原值可能为 128M 或更高,改为:
      innodb_buffer_pool_size = 64M

      # 禁用查询缓存 (在低配机器上,查询缓存反而可能成为负担)
      query_cache_type = 0
      query_cache_size = 0

      # 临时表大小
      tmp_table_size = 32M
      max_heap_table_size = 32M        效果:通过限制数据库的缓存大小,强制它少占用内存,虽然极少数高并发场景下速度会慢一点,但对于你的“测试”用途完全无感,却能换来系统的稳定。

1. 宝塔下,优化源码 PHP 设置(省内存核心)

  • 路径:宝塔面板 -> 软件商店 -> 找到 PHP 7.4 -> 设置。
  • 性能调整
    • 进程管理器:改为 static(静态)。
    • 最大子进程数 (Max children)必须调低! 默认可能是 50,建议改为 5 – 10。这能防止 PHP 疯狂占用内存导致服务器死机。
    • 内存限制 (memory_limit):改为 128M 即可。

2. 优化数据库,例如 MariaDB (数据库)

  • 路径:宝塔面板 -> 软件商店 -> MariaDB -> 设置 -> 配置修改。
  • 修改参数:找到 innodb_buffer_pool_size,将其改为 64M(默认可能很高,1G 内存下必须降低)。

3. 站点配置优化

  • 伪静态:在「网站」设置里,选择「伪静态」,填入 wordpress(例如),这有助于 Nginx 更高效地处理请求。
  • 禁用 Pingbacks/Trackbacks:在 WordPress 后台设置中关闭这些功能,减少数据库查询负担。

 

总结:1h1g 宝塔部署清单

表格

项目 推荐配置 (1h1g) 避坑指南
操作系统 Debian 12 / Ubuntu 22.04 避免使用 Windows Server
Web服务器 Nginx 1.24 保持默认配置即可
数据库 MariaDB 10.2/10.3 严禁使用 MySQL 8.0
PHP版本 PHP 7.4 避免使用 PHP 8.x (内存占用高)
PHP进程数 Max children = 5-10 默认50会直接撑爆1G内存
数据库缓存 innodb_buffer_pool_size = 64M 默认值过高,必须手动调低

 

 

针对你的 DMIT VPS (1h1g),如果目标是安装 Typecho,在 1Panel 和 kejilion.sh 这两者之间做选择,我的结论是:
kejilion.sh 的内存占用会更小。
虽然 1Panel 是现代化的优秀面板,但在极致的“轻量化”和“资源占用”比拼上,命令行脚本 (kejilion.sh) 依然是无可争议的王者。
以下是详细的对比分析,帮你做出最终决定:

📊 核心对比:1Panel vs kejilion.sh

表格

维度 kejilion.sh (一键包) 1Panel (面板) 胜出者
内存占用 极低 (约 200-300MB 空闲占用) 较低 (约 400-500MB 空闲占用) kejilion.sh
运行机制 直接在系统上安装软件 (LNMPT),无中间层。 基于 Docker 容器运行,有容器引擎的开销。
操作难度 中等 (全靠命令行输入数字选择)。 简单 (可视化 Web 界面,点点点)。 1Panel
环境管理 简单粗暴,卸载困难,容易有残留。 隔离性好,应用可以一键启停、迁移。 1Panel
适用场景 纯粹为了跑 Typecho,追求极致性能。 想要管理方便,或者以后可能跑其他应用。

💡 1panel和kejilion如何选择?

1. 为什么 kejilion.sh 更省内存?

  • 无面板开销:kejilion.sh 是一个纯脚本,它安装完 Nginx、MySQL、PHP 后,系统里没有“面板后台”这个常驻内存的进程。
  • 无 Docker 开销:它使用传统的物理机部署(Native),没有 Docker 守护进程(Dockerd)和容器隔离层的内存消耗。
  • 组件精简:这类脚本通常针对低配机器优化,编译安装时会去掉很多不必要的模块。

2. 为什么 1Panel 会稍占内存?

  • 容器化代价:1Panel 默认推荐使用 Docker 部署应用。Docker 本身需要占用一部分内存,且每个应用(Nginx、MySQL)都在容器里运行,会有额外的进程隔离开销。
  • 面板后台:1Panel 自身的后台服务(基于 Golang)虽然比宝塔轻,但依然会常驻内存(约 100MB+)。
  • 资源隔离:虽然占内存,但换来的好处是环境隔离。如果你在 1Panel 里把 MySQL 删了,不会影响面板本身;而在 kejilion.sh 里,如果操作失误可能会影响整个环境。

📝 最终建议

既然你的 VPS 只有 1GB 内存,我建议你根据你的动手能力来做选择:

选项 A:【最稳妥推荐】继续用 1Panel

  • 理由:虽然它比脚本多占 100-200MB 内存,但对于 1G 机器来说,只要开启 zRAM,依然是够用的。
  • 优势
    • 可视化管理:Typecho 需要创建数据库,用 1Panel 点几下鼠标就能搞定;用脚本你得记命令或者进 phpMyAdmin。
    • 伪静态配置:Typecho 需要配置 Nginx 伪静态,1Panel 里直接选“typecho”就行;脚本需要手动编辑配置文件。
    • 风险低:不容易因为误操作导致环境崩塌。

选项 B:【极致性能】使用 kejilion.sh

  • 理由:如果你是“折腾型”选手,追求服务器每一滴性能,且只打算在这台机器上跑这一个 Typecho 博客,不想以后再改配置。
  • 操作:运行脚本 -> 选择 LNMP (Nginx1.21, MySQL5.6, PHP7.4) -> 部署完成 -> 上传 Typecho 文件。
  • 注意:一旦装好,尽量别动环境,因为卸载重装比较麻烦。

🚀 我的决策辅助

  • 如果你怕麻烦,或者以后想在上面再开个别的小站,选 1Panel
  • 如果你追求极致速度,且只把它当作一个纯粹的博客机,选 kejilion.sh
补充建议
无论你选哪个,PHP 的进程数 (Max children) 都要记得调低(设为 5-10),这是 1G 内存不卡死的关键!

宝塔和1panel如何选择?

在 1核1G 的 VPS 上,宝塔面板是一个“庞然大物”。即使你把它的监控插件关掉、把数据库调到最低配,它依然有一个绕不开的“硬伤”:它必须常驻一个 Python 进程来维持面板运行
为了让你死心塌地(或者下定决心),我们来算一笔“残酷的内存账”,看看宝塔在你的 DMIT 机器上到底占了多少资源。

📉 宝塔面板的“内存硬伤”拆解

在 1G 内存的机器上,宝塔的资源占用是“固定成本”,不管你跑不跑网站,这部分内存都被吃掉了:
  1. 面板本体 (硬开销)
    • 宝塔的后台服务(Python + Nginx)至少要占 120MB – 150MB
    • 这就好比你买了一辆大卡车(宝塔),就算车斗里没装货(没跑网站),卡车本身的自重(内存占用)就在那里,而且它还必须一直发动着(常驻进程)。
  2. 基础环境 (必选开销)
    • 为了跑 Typecho,你必须装 Nginx、MySQL、PHP。
    • 在 1G 内存下,MySQL 如果不优化,很容易直接把内存撑爆。即使你优化了,Nginx + PHP-FPM 至少还要占 200MB – 300MB
  3. 总占用预估
    • 空闲状态(只开面板+基础环境):400MB – 500MB
    • 打开网页(有人访问 Typecho):瞬间飙升到 700MB – 900MB

⚖️ 宝塔 vs 1Panel/脚本 (在 1h1g 环境下的对比)

表格

维度 宝塔面板 (Baota) 1Panel / kejilion.sh 你的 DMIT 1G 现状
架构 传统架构,进程守护复杂 轻量级/容器化,进程管理更干净 内存捉襟见肘
PHP 进程控制 较死板,容易因为并发过高占满内存 相对灵活,资源限制更严格 宝塔容易导致 OOM (内存溢出)
数据库优化 图形界面方便,但默认配置吃内存 默认配置通常更适配低配机器 宝塔的 MySQL 在 1G 下很脆弱
操作体验 极好 (小白也能修服务器) 需要一点 Linux 基础 你想要 Typecho,不需要复杂操作

💡 为什么说“宝塔优化也没用”?

很多教程教你在宝塔里“关闭监控”、“编译安装”来省内存。
  • 关闭监控:只能省 20-30MB,杯水车薪。
  • 编译安装:通常比极速安装更占资源。
宝塔最大的问题不是功能多,而是它为了让你“点点鼠标就能操作”,在后台维持了大量的守护进程和服务。 在 2G 内存以上的机器上,这叫“方便”;但在 1G 内存的机器上,这叫“奢侈”。

🚀 最终建议:听从你的直觉

既然你觉得宝塔占内存,而且你的目标只是搭建一个 Typecho 博客,我建议你放弃宝塔
理由如下:
  1. Typecho 本身很轻:它只需要 Nginx + PHP + SQLite (或 MySQL) 就能跑。
  2. 1Panel 更适合:它有图形界面,比命令行好用,又比宝塔轻快。你可以在 1Panel 里把 Typecho 跑在 Docker 里,资源隔离做得好,就算网站挂了,面板也不受影响。
  3. kejilion.sh 极致省心:如果你不想折腾面板,直接用脚本装个 LNMP 环境,上传 Typecho,那是最稳的。
总结:
你的 DMIT 1h1g 是一台“小钢炮”,宝塔是“重型坦克”。小钢炮应该配轻机枪(1Panel/脚本),而不是扛大炮(宝塔)。

 

 

其他:

1.swap

硬盘虚拟成内存,一般为1-1.5X倍。cpu设置90%使用后,可以开启swap,速度没有物理内存运转快,但是应急可以了,不稳定

 

2.Zram

zram通过cpu转换成内存,内存提高运转快了,但是却消耗了cpu资源,一般swap file和zram swap同时使用,设置优先级,让系统优先使用zram swap

zRAM 其实是 Linux 系统里一种“用 CPU 换内存”的黑科技。
简单来说,它的作用就是:把一部分内存当作“压缩硬盘”来用,防止服务器因为内存不足而卡死。
为了让你更直观地理解,我把它和你刚才聊到的 Swap(交换分区) 做个对比:

🤔 1. 传统 Swap(虚拟内存)是怎样的?

你可能知道 Windows 有虚拟内存。在 Linux 里,当物理内存(RAM)用光了,系统会把一些暂时不用的数据“搬”到硬盘上腾出空间,这块硬盘区域就叫 Swap。
  • 缺点:硬盘(即使是 SSD)读写速度比内存慢成千上万倍。一旦开始使用 Swap,服务器就会变得非常卡顿,甚至假死。

✨ 2. zRAM 是怎样的?

zRAM 不一样,它完全不依赖硬盘
  • 原理:它在内存中划出一块区域,当内存不够用时,系统会把那些“暂时睡着”的程序数据压缩(就像打包成 zip 文件)存进这块区域。
  • 好处:因为数据还是存在内存里,所以读取速度极快(微秒级延迟),没有硬盘 I/O 延迟。
  • 代价:压缩和解压数据需要消耗 CPU 算力。

📊 一张表看懂区别

表格

特性 传统 Swap (硬盘) zRAM (内存压缩)
存储介质 硬盘/SSD 物理内存 (RAM)
读写速度 慢 (容易卡顿) 极快 (不卡顿)
占用资源 占用硬盘空间 占用少量 CPU
适用场景 内存严重不足 低配 VPS (如 1G 内存)

💡 为什么别人说“内存小要装 zRAM”?

在你的 1h1g VPS 场景下,zRAM 非常有用,原因如下:
  1. 防止 OOM (内存溢出)
    当你运行 WordPress 时,如果内存刚好用满 1G,系统可能会因为没有一点“喘息空间”而直接强制杀死 MySQL 或 Nginx 进程(报错 502)。zRAM 提供了一个缓冲区,让系统觉得“还有内存可用”,从而避免崩溃。
  2. 比硬盘 Swap 更聪明
    在 VPS 里,使用硬盘 Swap 不仅慢,而且频繁读写还可能影响 SSD 寿命(虽然现在 SSD 很耐用)。zRAM 利用了 CPU 的空闲算力(你的 VPS CPU 可能经常是空闲的),把内存“变大”了一点。
  3. 提升低配机器体验
    对于 1G 内存,开启 zRAM 后,系统会更积极地回收内存碎片,让前台运行的网站更流畅。

🛠️ 怎么用?(简单版)

如果你使用的是 Debian/Ubuntu 系统,通常不需要复杂安装,系统自带。你可以通过宝塔面板的“计划任务”或者 SSH 执行脚本来开启。
手动开启的极简命令(供参考):
bash

# 加载 zram 模块
modprobe zram
# 设置 zram 设备大小 (例如 512MB,压缩后实际能存更多数据)
echo 512M > /sys/block/zram0/disksize# 设置压缩算法 (推荐 lz4,速度快)
echo lz4 > /sys/block/zram0/comp_algorithm# 格式化为 swap
mkswap /dev/zram0

# 启用
swapon /dev/zram0

📌 总结

对于你的 1h1g VPS开启 zRAM 相当于给你的内存装了一个“涡轮增压器”。虽然它不能物理上增加内存容量,但它能让你的 1G 内存发挥出接近 1.5G 甚至 2G 的利用率,而且不会因为使用虚拟内存而变卡。这是低配服务器优化的必备手段。

根据友佬@crzax的帖子 https://www.nodeseek.com/post-69126-1

制作的一键开启zram脚本

脚本

curl -sS -O https://raw.githubusercontent.com/woniu336/open_shell/main/zram_manager.sh && chmod +x zram_manager.sh && ./zram_manager.sh

3.面板

熟悉的宝塔面板是很耗费资源的,别人肯定推荐1panel,也有推荐amh,貌似没有1panel资源丰富,属于上一代的产品,当然也有推荐耗子面板的,这里就不尝试了,webmin似乎也有一些人推荐

4.stop bt

如果宝塔面板用的不多,平时可以ssh下service bt stop,偶尔使用的时候的 service bt start,当然也可以

5.修改bt设置

a.mysql改为MariaBd数据库,不安装mysql8.0,安装MariaBD 10.1
b.宝塔源码内存手动 innodb_buffer_pool_size 调整为32m-64m
c.php版本选择7.4,或者8.x的低版本
d.进程数也修改低一些

在 1h1g 的环境下,宝塔能不能活得好,关键在于数据库(MySQL)PHP的配置。

1. 必须关闭的功能(省出 100MB+ 内存)

  • 关闭“监控”插件
    • 宝塔自带的监控插件(CPU、内存、流量统计)非常吃资源。
    • 操作:在面板设置里把“面板消息通道”关闭,或者干脆卸载监控插件。你可以在 SSH 里用 htop 命令看内存,没必要在面板上盯着曲线图。
  • 不要装“防火墙”插件
    • 宝塔的付费防火墙插件(或免费版)会常驻进程。
    • 替代方案:直接用 DMIT 控制台的安全组,只开放 80 和 443 端口,服务器里装个 fail2ban 就够了。

2. 必须优化的配置(省出 200MB+ 内存)

  • MySQL/MariaDB 设置
    • 不要用 MySQL 8.0:如果你还没装环境,千万别选 MySQL 8.0,它在 1g 内存下启动都费劲。
    • 推荐:安装 MariaDB 10.1 或 5.6
    • 配置:安装完成后,点击数据库的“设置” -> “性能调整”,选择“极小内存占用”模式(或者手动将 innodb_buffer_pool_size 调整为 32M-64M)。
  • PHP 设置
    • 版本:推荐 PHP 7.4(Typecho 兼容性最好,且比 8.x 省资源)。
    • 进程数:这是爆内存的元凶!点击 PHP 的“设置” -> “性能调整”。
      • 运行模式:选择 static(静态)。
      • 最大子进程数必须调低! 默认是 50,建议改为 5 或 10。这能防止 PHP 疯狂开进程把内存撑爆。

 

如何“彻底关闭”宝塔面板

当你不需要使用宝塔时,可以通过以下命令停止所有宝塔相关进程,这样它就不会占用内存了。
  1. 连接 SSH:使用 Xshell、Putty 或者 FinalShell 连接到你的 VPS。
  2. 输入停止命令
    bash

    /etc/init.d/bt stop

    或者

    bash

    service bt stop

表格

功能 命令 说明
停止面板 service bt stop 最常用,彻底关掉,释放内存
启动面板 service bt start 重新激活面板
重启面板 service bt restart 修改配置后常用
查看状态 service bt status 看看它现在是开是关

6.系统的另外选择

 

alpine

Debian 系统 更换 cloud 内核

 

7.参考

 

https://www.nodeseek.com/post-1017-1

有什么支持alpine的一键脚本啊?

 

 

打赏
谢谢谅解上文的粗糙,允许转载,请注明转载地址:Puo's 菜园子 » 小内存vps如何安装面板(1h1g)
分享到

评论 抢沙发

做一个好的个人学习园地

主要网建,域名、集装箱物流、生活方法论的学习及研究,整理等内容

我的原创博客-忆秋年Puo's菜园子-我的学习园地

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册