记录我的一些生活写照、无聊的牢骚、内心世界的活动 注册 | 登陆

低内存VPS安装网站服务器-alpine

低内存VPS安装网站服务器-alpine

一、更换alpine系统
openvz的VPS一键更换成alpine
https://www.moerats.com/archives/688/
wget https://www.moerats.com/usr/shell/alpine.sh && bash alpine.sh
其他虚拟化或者物理机更换alpine
https://github.com/unknwon0054/NetInstallAlpine
sh <(curl -k 'https://raw.githubusercontent.com/unknwon0054/NetInstallAlpine/main/alpine.sh')
使用key进行ssh登录后,对系统进行配置有写入硬盘。
XML/HTML代码
  1. sed -i "s/#PermitRootLogin.*/PermitRootLogin yes/g" /etc/ssh/sshd_config
  2. sed -i "s/#PasswordAuthentication.*/PasswordAuthentication yes/g" /etc/ssh/sshd_config
  3. passwd
  4. setup-interfaces
  5. setup-keymap us us
  6. setup-hostname -n alpine
  7. setup-dns -d -n 8.8.8.8 -n 8.8.4.4
  8. /etc/init.d/hostname --quiet restart
  9. rc-update add networking boot
  10. rc-update add urandom boot
  11. rc-update add acpid
  12. rc-update add crond
  13. setup-ntp chrony
  14. setup-sshd -c openssh
  15. setup-disk -s 512 -m sys /dev/vda

注意:fdisk -l 命令可以查看硬盘,根据实际情况修改vda或者sda。没有最后一步写入硬盘,下次重启不能进入alpine系统。

另外一个支持一键重装Alpine脚本(不支持openvz)
GitHub:https://github.com/bin456789/reinstall
XML/HTML代码
  1. 下载
  2. curl -O https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh
  3. 下载 (国内)
  4. curl -O https://ghps.cc/https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh
XML/HTML代码
  1. bash reinstall.sh alpine  3.16|3.17|3.18
  2.                   不输入版本号,则安装最新版
二、配置网站基础环境
安装 Lighttpd,别试 Caddy 了,虽然 Caddy 配置 SSL 方便,但是实际没有 Lighttpd 省资源
XML/HTML代码
  1. apk add lighttpd
  2. rc-update add lighttpd default
  3. rc-service lighttpd restart
安装 PHP,这个年头了,当然要 PHP8啦,毕竟 Typecho 都迁移到 PHP 7.2 + 了
首先修改Alpine的软件源,默认的源没有开启community,是没有PHP的。
修改  /etc/apk/repositories 
XML/HTML代码
  1. https://mirrors.ustc.edu.cn/alpine/latest-stable/main
  2. https://mirrors.ustc.edu.cn/alpine/latest-stable/community
然后更新软件源  apk update
XML/HTML代码
  1. 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
  2.   
  3. # 修改 PHP 配置
  4. sed -i 's@^;date.timezone.*@date.timezone = Asia/Shanghai@' /etc/php83/php.ini
  5. sed -i "s@^memory_limit.*@memory_limit = 12M@" /etc/php83/php.ini
  6. sed -i "s|;*cgi.fix_pathinfo=.*|cgi.fix_pathinfo=1|i" /etc/php83/php.ini
  7.  
  8. # 修改 Lighttpd 配置,启用 FastCGI、SSL、rewrite、redirect
  9. sed -i 's/#   include "mod_fastcgi.conf"/   include "mod_fastcgi.conf"\ninclude "mod_ssl.conf"/g' /etc/lighttpd/lighttpd.conf
  10. sed -i 's/#    "mod_rewrite","/    "mod_rewrite","/g' /etc/lighttpd/lighttpd.conf
  11. sed -i 's/#    "mod_redirect","/    "mod_redirect","/g' /etc/lighttpd/lighttpd.conf
  12. sed -i 's/php-cgi/php-cgi83/g'  /etc/lighttpd/mod_fastcgi.conf
  13. rc-service lighttpd restart
  14. cat > /etc/lighttpd/mod_ssl.conf  <<EOF
  15. server.modules += ("mod_openssl")
  16. server.modules += ("mod_setenv")
  17. \$HTTP["scheme"] == "https" {
  18.     setenv.add-response-header  = ( "Strict-Transport-Security" => "max-age=63072000; includeSubdomains; ")
  19. }
  20. EOF
如果启动lighttpd出现错误,可以编辑/etc/lighttpd/mod_ssl.conf文件,重新粘贴以下代码,保存,启动。
XML/HTML代码
  1. server.modules += ("mod_openssl")
  2. server.modules += ("mod_setenv")
  3. $HTTP["scheme"] == "https" {
  4.     setenv.add-response-header  = ( "Strict-Transport-Security" => "max-age=63072000; includeSubdomains; ")
  5. }
记得修改网站目录属性777
XML/HTML代码
  1. chmod -R 777 /var/www
需要安装什么插件可以使用命令搜索然后安装
XML/HTML代码
  1. apk search php83
  2. apk add php83-*
  3. rc-service lighttpd restart
  4. rc-service php-fpm83 restart
三、配置虚拟主机
先使用acme.sh申请SSL证书,Lighttpd要求SSL证书和私钥放在一个文件里
XML/HTML代码
  1. mkdir -p /web/32mb.cc
  2. chown -R lighttpd.lighttpd /web/32mb.cc
  3. export DP_Id=xxx
  4. export DP_Key=xxx
  5. acme.sh --issue --dns dns_dp -d 32mb.cc -d *.32mb.cc
  6. acme.sh --install-cert -d 32mb.cc \
  7. --key-file /web/32mb.cc.key \
  8. --fullchain-file /web/32mb.cc.crt \
  9. --reloadcmd "cat /web/32mb.cc.key /web/32mb.cc.crt > /web/32mb.cc.pem; service lighttpd restart"
新增虚拟主机,修改/etc/lighttpd/lighttpd.conf,在最后一行之前加入
XML/HTML代码
  1. # virtual host
  2. $HTTP["host"] =~ "^(www.)?32mb.cc" {
  3.     server.document-root = "/web/32mb.cc"
  4.     accesslog.filename = "/web/32mb.cc.log"
  5.     $HTTP["scheme"] == "http" {
  6.         # redirect to https, port 443:
  7.         url.redirect = (".*" => "https://%0$0")
  8.     }
  9. }
  10. $SERVER["socket"] == ":443" {
  11.     ssl.engine = "enable"
  12.     ssl.pemfile = "/web/32mb.cc.pem"
  13.     $HTTP["host"] =~ "(^|www\.)32mb.cc" {
  14.         ssl.pemfile = "/web/32mb.cc.pem"
  15.         # 这是 typecho 的伪静态规则,其他程序自行修改
  16.         url.rewrite-if-not-file = (
  17.             "^/(admin|usr)/(.*)" => "/$1/$2",
  18.             "^/(.*)$" => "/index.php/$1"
  19.         )
  20.     }
  21. }
然后就是安装 Typecho插件TeStore (解压放到plugins目录,设置写入权限)。
如果需要mysql数据库,可以手动安装:
XML/HTML代码
  1. #安装mysql数据库与插件
  2. apk add mariadb mariadb-client php83-mysqli php83-pdo_mysql
  3. #将 mariadb 注册为服务
  4. rc-update add mariadb default
  5. #创建数据库
  6. /etc/init.d/mariadb setup
  7. #启动 mariadb 服务
  8. rc-service mariadb start
  9. #设置账户密码
  10. mysqladmin -u root password "123456"
  11. #登录并创建数据库
  12. mysql -u root -p123456
  13. CREATE DATABASE typecho;
如果使用过程中出现文件权限问题,可以修改目录可写,缺少的php组件可以使用 apk search php83- 搜索,然后apk add安装对应组件,然后重启Lighttpd即可。
数据库管理可以使用使用以下程序管理:
phpMyAdmin以及其他php管理mysql的代码
Adminer一个类似于phpMyAdmin的单文件MySQL管理客户端
phpminiadmin – 非常轻量级的 phpMyAdmin 替代品, 大小只有30kb左右( 简洁版的 phpMyAdmin ),可快速轻松地访问 MySQL 数据库。
AMYSQL - 易用安全高效的MySQL管理客户端

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):