2020-8-27 1,337
两个多月前,在某商家处看到了个 32M 内存的 NAT VPS 小鸡,价格仅为 5 元人民币一季度,遂下了一单。然而下单后等了好几天迟迟没有开通,又加上购买时提示低价机子没有售后支持,以为又是个跑路商家,过了一段时间基本就把这机子给忘了。
半个月前突然想起来了这回事,登上后台一看居然发现机子开通了,不过尴尬的是开通邮件又没收到,SolusVM 这系统开出来的机子所有信息全在邮件里,于是又只好发了个工单,今天登上去一看居然收到商家回复了,总算是拿到了管理后台信息,实在是多灾多难的一台机。
既然机子可以用了,那就来建个站玩玩。
登陆管理面板,显示为 OpenVZ 虚拟化,系统给装了 64 位 Debian7 minimal,默认分了 32M 的 swap,硬盘仅有 1G,不过对 linux 来说倒是绰绰有余了:
查看 CPU 型号发现还是个二代 i3,挺少见:
SSH 登陆查看下内存,商家默认装的系统吃了 9M 内存,其实已经非常少了,奈何我这总共才 32M,9M 占用还是有点多
好在网上早就有大佬搞出来了 OpenVZ 架构的 VPS 一键更换系统为 Alpine Linux 的脚本,系统直接先 apt-get update 和 upgrade 一波,然后直接运行:
wget https://lishuma.com/shell/alpine.sh && bash alpine.sh
脚本几秒就运行完成,然后重新用原来的 root 密码登陆即可进入 alpine,安装的系统版本为 3.9。
再来看一下内存占用,alpine 的资源占用就相当小了,只吃了 5M 内存和 43M 硬盘:
如果服务器不停的修改/etc/inittab
并添加一堆重新生成的 getty
,可运行命令:
apk add e2fsprogs-extra
chattr +i /etc/inittab
装好 alpine 了就准备开工,首先来安装 php,运行:
apk add php7 php7-mysqli php7-pdo_mysql php7-mbstring php7-json php7-zlib php7-gd php7-intl php7-session php7-fpm php7-memcached php7-curl php7-sqlite3
默认装的是 php7.2,然后添加开机启动:
rc-update add php-fpm7
接着安装 nginx 和 sqlite,运行:
apk add nginx
apk add sqlite
启动 nginx:
/etc/init.d/nginx start
为 nginx 添加开机自启:
rc-update add nginx
然后简单编辑一下/etc/nginx/conf.d/default.conf
里的 nginx 配置文件,设定根目录下的 wwwroot 为网站目录,并加上 php 相关内容:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /wwwroot;
index index.php index.html index.htm;
location ~ [^/]\.php(/|$) {
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# Everything is a 404
#location / {
# return 404;
#}
# You may need this to prevent return 404 recursion.
location = /404.html {
internal;
}
}
这么小的内存,数据库肯定就不能用 mysql 这种了,直接用 sqlite。
运行以下三句命令安装 sqlite:
apk add php7-pdo_sqlite
apk add php7-tokenizer
apk add php7-ctype
重启一下 nginx 和 php 服务:
/etc/init.d/nginx restart
/etc/init.d/php-fpm7 restart
网站程序的选择 typecho,wordpress 这类妥妥的是吃不消,就算跑起来效果也很差。
typecho 直接下载解压,安装时选择 sqlite 数据库,创建数据库时可能报错,把 usr 目录权限改为 777 即可。
最后打开网站看到 tyepcho 首页就是成功了,查看下内存,在运行单个网站时内存也仅仅吃了 16M,可以说是相当省资源了:
附上我搭建的 32M 内存测试网站地址,因为是 NAT 机子,所以端口不是标准的 80,访问时要加端口:http://8008.club:11029/
探针地址为:http://8008.club:11029/tz.php
当然了,本文仅供娱乐,没啥实用价值,现实中是绝对不推荐拿如此小内存的机子跑网站的。况且这年头除了一些多年前的传家宝,低于 128M 内存的小鸡现在都很难买到了,实在没必要拿小内存憋屈自己。
这种超小内存的玩法也只有在 OpenVZ 虚拟化的机子上才能玩,因为 OVZ 的虚拟化不完全,可以共享母机内核等,资源消耗更低。本地虚拟机的话 32M 内存连系统都装不进去,安装程序压根就启动不了,就算成功装个特别老掉牙的版本进去,各种软件源也都挂的差不多了,实用价值很低。
- 瀚存 见方 L 8 盘位 NAS 机箱开箱 - 2024 年 10 月 24 日
- 你这学习机正经么,开箱个联想天骄 16 AIO 一体机 - 2024 年 10 月 1 日
- 【捡垃圾】技嘉 G+ Pixer 墨水屏相框体验 - 2024 年 9 月 22 日