两个多月前,在某商家处看到了个 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 内存连系统都装不进去,安装程序压根就启动不了,就算成功装个特别老掉牙的版本进去,各种软件源也都挂的差不多了,实用价值很低。

2222
Latest posts by 2222 (see all)

威联通 NAS 配置 NPS 内网穿透

上个礼拜看到威联通的 TS-453Bmin 在狗东又又又促销到了低价,索性入了一台来体验一下正经大厂的系统之类。之前 NAS 用的是捡来的矿渣播酷云,跑的 windows ...

阅读全文

Debian/Ubuntu/CentOS 的防火墙差异

写这篇文章的原因是之前和朋友讨论时,对 Linux 的防火墙问题产生了截然不同的观点,继续交流后才发现原来是各自常用的发行版不同,朋友日常都用 Ubuntu 居...

阅读全文

几种快速下载 VPS 文件的方法

日常在折腾 VPS 时,都会涉及到本地和服务器直接的文件传输,比如上传程序文件,或者拖几个文件回来修改之类。对于少量的小文件,那么 sftp 基本足够,但如...

阅读全文

欢迎留言