低内存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系统。

 
二、配置网站基础环境
安装 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 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  
  2.   
  3. # 修改 PHP 配置    
  4. sed -i 's@^;date.timezone.*@date.timezone = Asia/Shanghai@' /etc/php82/php.ini    
  5. sed -i "s@^memory_limit.*@memory_limit = 12M@" /etc/php82/php.ini    
  6. sed -i "s|;*cgi.fix_pathinfo=.*|cgi.fix_pathinfo=1|i" /etc/php82/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-cgi82/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 php82  
  2. apk add php82-*  
  3. rc-service lighttpd 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啦。
如果需要mysql数据库,可以手动安装:
XML/HTML代码
  1. #安装mysql数据库与插件  
  2. apk add mariadb mariadb-client php82-mysqli php82-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;  
数据库管理可以使用使用以下程序管理:
phpMyAdmin以及其他php管理mysql的代码
Adminer一个类似于phpMyAdmin的单文件MySQL管理客户端
phpminiadmin – 非常轻量级的 phpMyAdmin 替代品, 大小只有30kb左右( 简洁版的 phpMyAdmin ),可快速轻松地访问 MySQL 数据库。
AMYSQL - 易用安全高效的MySQL管理客户端

上一篇: naiveproxy一键脚本发布(无须编译caddy,支持多端口复用)
下一篇: 在Alpine Linux里安装Docker

访客评论
目前还没有人评论,您发表点看法?
发表评论

评论内容 (必填):