Alpine Linux 初玩-小内存、小硬盘VPS的福音

Alpine Linux是一个社区开发的面向安全应用的轻量级Linux发行版操作系统,占用资源很少,初始状态基本只占用几M内存和几十M硬盘,而且还很稳定,适合很多小型服务器和设备使用。

【安装】
你可以通过如下脚本将VPS上现有的linux系统一键转换为Alpine Linux
注:如下脚本只支持Openvz系统,并且VPS上原有数据会全部丢失,安装成功后ssh端口号会变为22,密码不变
wget http://iytc.net/alpine.sh && bash alpine.sh
安装完成后ssh会断开,重新登录会变为Alpine Linux系统

开源地址:
https://gist.github.com/trimsj/c1fefd650b5f49ceb8f3efc1b6a1404d

安装后磁盘和内存占用(内存占用7M,硬盘占用21M)

如果服务器不停的修改/etc/inittab并添加一堆重新生成的getty,可运行命令:
apk add e2fsprogs-extra
chattr +i /etc/inittab

【重新安装】
如果想恢复初始状态(相当于重装),在Alpine下运行下面的命令
wget -O unalpine.sh http://iytc.net/unalpine.sh && chmod 755 unalpine.sh &&./unalpine.sh &

【常用命令】
apk update //更新最新镜像源列表
apk search //查找所以可用软件包
apk add //安装软件
apk del //删除软件
apk upgrade //升级软件

【安装python】
apk add py3-lxml
apk add python3
pip3 install pip==10.0.0
pip3 freeze
apk add --no-cache --virtual .build-deps wget
apk add --no-cache --virtual .build-deps openssl
apk add --no-cache --virtual .build-depslibsodium-dev

使用python3调用

【自启动任务】
Alpine Linux 的开机自启目录在/etc/local.d下,在此目录下建立已.start为后缀的文件,如ss.start
vi ss.start
chmod 755 ss.start
rc-update add local

ss.start中写入需要开机执行的脚本即可
rc-update主要用于不同运行级增加或者删除服务
其他服务相关的命令:
rc-status //主要用于运行级的状态管理
rc-service //主用于管理服务的状态
rc-status -a //列出系统所有服务

【安装lnmp】
1、安装、启动、开机自启nginx
apk add nginx
/etc/init.d/nginx restart
rc-update add nginx


编辑nginx配置文件:
vi /etc/nginx/conf.d/default.conf

根目录设置为/www,新建/www目录,然后建立一个静态网页index.html,重启nginx
mkdir /www
/etc/init.d/nginx restart

就可以用浏览器看到此页面
2、安装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
rc-update add php-fpm7

编辑nginx配置,加入php文件的处理
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;

}

重启服务
/etc/init.d/php-fpm7 restart
/etc/init.d/nginx restart

【安装博客】
已安装typecho为例,数据库用sqlite文件型数据库
apk add php7-pdo_sqlite
apk add php7-tokenizer
apk add php7-ctype

下载typecho,安装
cd /www
wget http://typecho.org/downloads/1.1-17.10.30-release.tar.gz
tar xzf 1.1-17.10.30-release.tar.gz

把build目录改成你想要的名字,比如blog
mv build blog
然后浏览器访问"http://vps的ip/blog"安装即可,安装前要重启web服务,否则无法看到如下的sqlite插件:

如果安装出错,将所有目录设置设置权限为777即可
chmod -R 777 blog
安装成功

加了博客重启后的内存占用才26M,硬盘占用86M:

实测在64M内存的OpenVZ机器上也能够运行:

128M的跑v2没有问题:

【VPS备份、恢复】
1、备份

cd /
tar czf all.tar.gz * --exclude dev --exclude proc --exclude sys
mv all.tar.gz /www

浏览器访问“http://vps的ip/all.tar.gz”下载备份到本地

2、恢复
下载脚本
wget http://iytc.net/restore_alpine.sh && chmod 755 restore_alpine.sh
winscp上传备份到服务器,比如/root/all.tar.gz,执行脚本
./restore_alpine.sh /root/all.tar.gz

更加厉害的是,支持在不同的vps直接恢复备份,比如在A备份的文件,可以直接在B机器恢复!!并且可以直接在各种linux(如centos、debian)下进行恢复!!!

【设置时区】
apk add -u tzdata
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

点赞