低内存VPS安装网站服务器-alpine
一、更换alpine系统
openvz的VPS一键更换成alpine
wget https://www.moerats.com/usr/shell/alpine.sh && bash alpine.sh
其他虚拟化或者物理机更换alpine
sh <(curl -k 'https://raw.githubusercontent.com/unknwon0054/NetInstallAlpine/main/alpine.sh')
使用key进行ssh登录后,对系统进行配置有写入硬盘。
XML/HTML代码
- sed -i "s/#PermitRootLogin.*/PermitRootLogin yes/g" /etc/ssh/sshd_config
-
sed -i "s/#PasswordAuthentication.*/PasswordAuthentication yes/g" /etc/ssh/sshd_config
- passwd
- setup-interfaces
- setup-keymap us us
- setup-hostname -n alpine
- setup-dns -d -n 8.8.8.8 -n 8.8.4.4
- /etc/init.d/hostname --quiet restart
- rc-update add networking boot
- rc-update add urandom boot
- rc-update add acpid
- rc-update add crond
- setup-ntp chrony
- setup-sshd -c openssh
- setup-disk -s 512 -m sys /dev/vda
注意:fdisk -l 命令可以查看硬盘,根据实际情况修改vda或者sda。没有最后一步写入硬盘,下次重启不能进入alpine系统。
另外一个支持一键重装Alpine脚本(不支持openvz)
XML/HTML代码
- 下载
- curl -O https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh
- 下载 (国内)
- curl -O https://ghps.cc/https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh
XML/HTML代码
- bash reinstall.sh alpine 3.16|3.17|3.18
- 不输入版本号,则安装最新版
二、配置网站基础环境
安装 Lighttpd,别试 Caddy 了,虽然 Caddy 配置 SSL 方便,但是实际没有 Lighttpd 省资源
XML/HTML代码
- apk add lighttpd
- rc-update add lighttpd default
- rc-service lighttpd restart
首先修改Alpine的软件源,默认的源没有开启community,是没有PHP的。
修改 /etc/apk/repositories
XML/HTML代码
- https://mirrors.ustc.edu.cn/alpine/latest-stable/main
- https://mirrors.ustc.edu.cn/alpine/latest-stable/community
XML/HTML代码
- apk add php83 php83-ctype php83-curl php83-dom php83-fpm php83-cgi php83-iconv php83-gd php83-json php83-openssl php83-pdo php83-pdo_sqlite php83-sqlite3 php83-xml php83-xmlreader php83-phar php83-posix php83-ftp php83-session php83-bcmath php83-pecl-apcu php83-pecl-imagick php83-sockets php83-mbstring php83-tokenizer php83-zip php83-opcache php83-simplexml php83-fileinfo php83-snmp
- # 修改 PHP 配置
- sed -i 's@^;date.timezone.*@date.timezone = Asia/Shanghai@' /etc/php83/php.ini
- sed -i "s@^memory_limit.*@memory_limit = 12M@" /etc/php83/php.ini
- sed -i "s|;*cgi.fix_pathinfo=.*|cgi.fix_pathinfo=1|i" /etc/php83/php.ini
- # 修改 Lighttpd 配置,启用 FastCGI、SSL、rewrite、redirect
- sed -i 's/# include "mod_fastcgi.conf"/ include "mod_fastcgi.conf"\ninclude "mod_ssl.conf"/g' /etc/lighttpd/lighttpd.conf
- sed -i 's/# "mod_rewrite","/ "mod_rewrite","/g' /etc/lighttpd/lighttpd.conf
- sed -i 's/# "mod_redirect","/ "mod_redirect","/g' /etc/lighttpd/lighttpd.conf
- sed -i 's/php-cgi/php-cgi83/g' /etc/lighttpd/mod_fastcgi.conf
- rc-service lighttpd restart
- cat > /etc/lighttpd/mod_ssl.conf <<EOF
- server.modules += ("mod_openssl")
- server.modules += ("mod_setenv")
- \$HTTP["scheme"] == "https" {
- setenv.add-response-header = ( "Strict-Transport-Security" => "max-age=63072000; includeSubdomains; ")
- }
- EOF
如果启动lighttpd出现错误,可以编辑/etc/lighttpd/mod_ssl.conf文件,重新粘贴以下代码,保存,启动。
XML/HTML代码
- server.modules += ("mod_openssl")
- server.modules += ("mod_setenv")
- $HTTP["scheme"] == "https" {
- setenv.add-response-header = ( "Strict-Transport-Security" => "max-age=63072000; includeSubdomains; ")
- }
记得修改网站目录属性777
XML/HTML代码
- chmod -R 777 /var/www
XML/HTML代码
- apk search php83
- apk add php83-*
- rc-service lighttpd restart
- rc-service php-fpm83 restart
三、配置虚拟主机
先使用acme.sh申请SSL证书,Lighttpd要求SSL证书和私钥放在一个文件里
XML/HTML代码
- mkdir -p /web/32mb.cc
- chown -R lighttpd.lighttpd /web/32mb.cc
- export DP_Id=xxx
- export DP_Key=xxx
- acme.sh --issue --dns dns_dp -d 32mb.cc -d *.32mb.cc
- acme.sh --install-cert -d 32mb.cc \
- --key-file /web/32mb.cc.key \
- --fullchain-file /web/32mb.cc.crt \
- --reloadcmd "cat /web/32mb.cc.key /web/32mb.cc.crt > /web/32mb.cc.pem; service lighttpd restart"
XML/HTML代码
- # virtual host
- $HTTP["host"] =~ "^(www.)?32mb.cc" {
- server.document-root = "/web/32mb.cc"
- accesslog.filename = "/web/32mb.cc.log"
- $HTTP["scheme"] == "http" {
- # redirect to https, port 443:
- url.redirect = (".*" => "https://%0$0")
- }
- }
- $SERVER["socket"] == ":443" {
- ssl.engine = "enable"
- ssl.pemfile = "/web/32mb.cc.pem"
- $HTTP["host"] =~ "(^|www\.)32mb.cc" {
- ssl.pemfile = "/web/32mb.cc.pem"
- # 这是 typecho 的伪静态规则,其他程序自行修改
- url.rewrite-if-not-file = (
- "^/(admin|usr)/(.*)" => "/$1/$2",
- "^/(.*)$" => "/index.php/$1"
- )
- }
- }
如果需要mysql数据库,可以手动安装:
XML/HTML代码
- #安装mysql数据库与插件
- apk add mariadb mariadb-client php83-mysqli php83-pdo_mysql
- #将 mariadb 注册为服务
- rc-update add mariadb default
- #创建数据库
- /etc/init.d/mariadb setup
- #启动 mariadb 服务
- rc-service mariadb start
- #设置账户密码
- mysqladmin -u root password "123456"
- #登录并创建数据库
- mysql -u root -p123456
- CREATE DATABASE typecho;
如果使用过程中出现文件权限问题,可以修改目录可写,缺少的php组件可以使用 apk search php83- 搜索,然后apk add安装对应组件,然后重启Lighttpd即可。
数据库管理可以使用使用以下程序管理:phpMyAdmin以及其他php管理mysql的代码
Adminer一个类似于phpMyAdmin的单文件MySQL管理客户端
phpminiadmin – 非常轻量级的 phpMyAdmin 替代品, 大小只有30kb左右( 简洁版的 phpMyAdmin ),可快速轻松地访问 MySQL 数据库。
AMYSQL - 易用安全高效的MySQL管理客户端