低内存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系统。
二、配置网站基础环境
安装 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 php82 php82-ctype php82-curl php82-dom php82-fpm php82-cgi php82-iconv php82-gd php82-json php82-openssl php82-pdo php82-pdo_sqlite php82-sqlite3 php82-xml php82-xmlreader php82-phar php82-posix php82-ftp php82-session php82-bcmath php82-pecl-apcu php82-pecl-imagick php82-sockets php82-mbstring php82-tokenizer
- # 修改 PHP 配置
- sed -i 's@^;date.timezone.*@date.timezone = Asia/Shanghai@' /etc/php82/php.ini
- sed -i "s@^memory_limit.*@memory_limit = 12M@" /etc/php82/php.ini
- sed -i "s|;*cgi.fix_pathinfo=.*|cgi.fix_pathinfo=1|i" /etc/php82/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-cgi82/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 php82
- apk add php82-*
- rc-service lighttpd 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"
- )
- }
- }
然后就是安装 Typecho啦。
如果需要mysql数据库,可以手动安装:
XML/HTML代码
- #安装mysql数据库与插件
- apk add mariadb mariadb-client php82-mysqli php82-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;
phpMyAdmin以及其他php管理mysql的代码
Adminer一个类似于phpMyAdmin的单文件MySQL管理客户端
phpminiadmin – 非常轻量级的 phpMyAdmin 替代品, 大小只有30kb左右( 简洁版的 phpMyAdmin ),可快速轻松地访问 MySQL 数据库。
AMYSQL - 易用安全高效的MySQL管理客户端