Rat's

小内存VPS安装Caddy+PHP 7+Sqlite 3环境,并快速搭建Typecho博客
说明:我们一般搭建博客的方法就是使用lnmp、lamp等一键包,或者宝塔等面板来搭建Web环境,不过都只适合大点内...
扫描右侧二维码阅读全文
15
2018/06

小内存VPS安装Caddy+PHP 7+Sqlite 3环境,并快速搭建Typecho博客

说明:我们一般搭建博客的方法就是使用lnmplamp等一键包,或者宝塔等面板来搭建Web环境,不过都只适合大点内存的VPS服务器,小点的比如96M128M服务器就不行了,这时候我们就可以通过安装其它环境来搭建网站环境了,这里博主就说下Caddy+PHP7+Sqlite3安装教程,3分钟就可以搭建一个Typecho博客,并成功运行在96MVPS服务器上,至于96M以下的服务器就不测试了,毕竟很少见了。

安装

教程只写Debian 8、9,建议选择mini版。如果你是96M或者128MKVM建议增加点Swap,教程查看:VPS添加Swap虚拟内存

1、安装PHP 7和Sqlite 3

#Debian 8系统
#添加源
echo "deb http://packages.dotdeb.org jessie all" | tee --append /etc/apt/sources.list
echo "deb-src http://packages.dotdeb.org jessie all" | tee --append /etc/apt/sources.list
#添加key
wget --no-check-certificate https://www.dotdeb.org/dotdeb.gpg
apt-key add dotdeb.gpg
#更新系统
apt-get update -y
#安装PHP 7和Sqlite 3
apt-get install php7.0-cgi php7.0-fpm php7.0-curl php7.0-gd php7.0-mbstring php7.0-xml php7.0-sqlite3 sqlite3 -y

#Debian 9系统
#更新系统
apt-get update -y
#安装PHP 7和Sqlite 3
apt-get install php7.0-cgi php7.0-fpm php7.0-curl php7.0-gd php7.0-mbstring php7.0-xml php7.0-sqlite3 sqlite3 -y

2、安装Caddy
这里直接使用逗比的一键脚本。

wget -N --no-check-certificate https://raw.githubusercontent.com/iiiiiii1/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh
#备用地址
wget -N --no-check-certificate https://www.moerats.com/usr/shell/Caddy/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh

3、下载Typecho

mkdir /typecho && cd /typecho
#以下为最新稳定版
wget http://typecho.org/downloads/1.1-17.10.30-release.tar.gz
tar zxvf 1.1*
mv ./build/* ./
rm -rf 1.1* buil*
chmod -R 755 ./*
chown www-data:www-data -R ./*

4、配置Caddy

#以下全部内容是一个整体,是一个命令,修改示例域名后全部复制粘贴到SSH软件中并一起执行
echo "http://moerats.com {
    redir https://www.moerats.com{uri}
    }
    https://www.moerats.com {
    gzip
    tls admin@moerats.com
    root /typecho
    fastcgi / /run/php/php7.0-fpm.sock php
    rewrite {
        if {path} not_match ^\/admin
        to {path} {path}/ /index.php?{query}
     }
}" > /usr/local/caddy/Caddyfile

参数说明:

#第一个{}参数为重定向,将http://moerats.com重定向到了https://www.moerats.com,根据实际情况修改
#tls为自动签发Let's证书,邮箱随便填,使用自签发证书的请先解析好域名,如果想使用自己的证书,则将tls一行改成tls
/root/xxx.crt /root/xxx.key即可,后面为证书路径。

最后启动Caddy

#如果启动失败,请查看下系统是否自带Apache2,然后运行apt remove apache2卸载掉
/etc/init.d/caddy start

然后可以访问域名进行安装了。
请输入图片描述

数据库文件在/typecho/usr文件夹,记得随时备份。

Caddy说明

启动:/etc/init.d/caddy start
停止:/etc/init.d/caddy stop
重启:/etc/init.d/caddy restart
查看状态:/etc/init.d/caddy status
查看Caddy启动日志:tail -f /tmp/caddy.log
安装目录:/usr/local/caddy
Caddy配置文件位置:/usr/local/caddy/Caddyfile
Caddy自动申请SSL证书位置:/.caddy/acme/acme-v01.api.letsencrypt.org/sites/xxx.xxx(域名)/
Vultr新用户注册送100美元/16个机房按小时计费,支持支付宝,【点击查看】。
最后修改:2020 年 12 月 23 日 04 : 46 PM

发表评论

48 条评论

  1. TzuHsing

    老哥,想问下 表情怎么弄这种百度贴吧的

    1. Rat's
      @TzuHsing

      就是我博客这种泡泡?

  2. 大神求助

    caddy脚本好像不能用了,caddy 启动正常后.
    tail -f /tmp/caddy.log显示
    Your sites will be served over HTTPS automatically using Let's Encrypt.
    By continuing, you agree to the Let's Encrypt Subscriber Agreement at:
    https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf
    Do you agree to the terms? (y/n):

    1. Rat's
      @大神求助

      哪个?这个应该是申请ssl的时候,需要同意下

      1. 逃亡于1993
        @Rat's

        问题来了,怎么同意?

        1. Rat's
          @逃亡于1993

          不是给你选择y、n么,y就是同意

  3. 大神好

    看来博主这个教程,心里长草阿。
    博主为啥不写一个centos 或者ubuntu 的教程呢。那样就齐活了。

    1. Rat's
      @大神好

      因为最爱debian

      1. 向程序员致敬
        @Rat's

        我的vps没有debian 系统。悲催啊。

        1. Rat's
          @向程序员致敬

          是kvm吗?是的话,可以在博客找下linux安装教程,一个命令即可拥有debian系统

  4. dlyd

    博主 我照着教程一步步做完了 到最后还是无法访问 caddy已经重启很多次了 搞不懂什么问题

    1. Rat's
      @dlyd

      看下启动日志:tail -f /tmp/caddy.log

      1. dlyd
        @Rat's

        博主搞好了 防火墙的事情关闭了 正常,现在问题是我用的xxx.cf的域名貌似caddy不自动下发证书,求教!

        1. Rat's
          @dlyd

          把错误日志给我看看

          1. dlyd
            @Rat's

            root@oranme333:/dlyd# tail -f /tmp/caddy.log
            done.

            Serving HTTP on port 80
            http://dlyd.cf

            Serving HTTPS on port 443
            https://dlyd.cf

            WARNING: File descriptor limit 1024 is too low for production servers. At least 8192 is recommended. Fix with ulimit -n 8192.

            1. dlyd
              @dlyd

              tail -f /tmp/caddy.log
              Activating privacy features... 2019/09/03 03:50:06 [INFO] acme: Registering account for maiawpyg@gmail.com
              2019/09/03 03:50:07 [INFO] [dlyd.cf] acme: Obtaining bundled SAN certificate
              2019/09/03 03:50:08 [INFO] [dlyd.cf] acme: Obtaining bundled SAN certificate
              2019/09/03 03:50:09 [INFO] [dlyd.cf] acme: Obtaining bundled SAN certificate
              2019/09/03 03:50:11 [INFO] [dlyd.cf] acme: Obtaining bundled SAN certificate
              2019/09/03 03:50:12 [INFO] [dlyd.cf] acme: Obtaining bundled SAN certificate
              2019/09/03 03:50:13 [INFO] [dlyd.cf] acme: Obtaining bundled SAN certificate
              2019/09/03 03:50:14 failed to obtain certificate: acme: error: 429 :: POST :: https://acme-v02.api.letsencrypt.org/acme/new-order :: urn:ietf:params:acme:error:rateLimited :: Error creating new order :: too many certificates already issued for exact set of domains: dlyd.cf: see https://letsencrypt.org/docs/rate-limits/, url:

              1. Rat's
                @dlyd

                这是证书签发次数过多,你是不是80端口啥的没打开

                1. dlyd
                  @Rat's

                  打开了 就是不下发 用.com域名秒过 就免费域名不行

  5. LYM

    大佬求教下~我用您的脚本装了wp博客。用了一个月左右。。。准备搬迁到宝塔。。但是sqlite转mysql又不会。。求搬迁教程!

    1. Rat's
      @LYM

      我也不会,没试过sqlite转mysql,你谷歌下转换工具看看

      1. LYM
        @Rat's

        网上的都不能用。。。这样的话这个脚本的东西不就不能转出去了吗-_-||。。。好难受~。。。想搬数据到bt上。。

        1. Rat's
          @LYM

          宝塔默认安装sqlite,可以直接用。

          1. LYM
            @Rat's

            噗。。。吐血,,我手动搬了2个多小时。。。。

            1. Rat's
              @LYM

              熟能生巧,多折腾就会进步

  6. ksz

    我用caddy安装wordpress后 打开网页显示502

    1. Rat's
      @ksz

      这个我还没试过wp,502应该姿势有点瑕疵

  7. mjj

    博主泛域名 SSL应该怎么搞 证书加在哪里呀

    1. Rat's
      @mjj

      看这个教程https://www.moerats.com/archives/900/

  8. McWolf

    保存在usr/ 下面的数据库文件 *.db可以被下载,这个怎么破?

    1. Rat's
      @McWolf

      正常,我这个博客很多根目录都可以访问下载,大概就是只能在配置文件里设置访问某些文件时返回404了。

  9. pangyux

    大佬,申请ssl证书这个错误怎么解决
    {
    "type": "urn:ietf:params:acme:error:malformed",
    "detail": "Method not allowed",
    "status": 405
    }

    1. pangyux
      @pangyux

      应该说是用你的脚本申请的ssl证书会存放在vps根目录了,没有存在root的文件夹里。我把根目录caddy文件夹里的证书文件复制到root里就可以打开网页了。但是有个问题,这样我复制过来的证书会不会自己续期?

      1. Rat's
        @pangyux

        证书路径文章好像说明了,续期的话,路径还是和之前一样,所以需要你的路径一致。

  10. palesaint

    请教大佬这个 caddy配置和v2 websocket配置冲突怎么办?
    websocket配置:
    xxxx.xx {

    tls 119286005760@gmail.com

    timeouts none
    proxy / 127.0.0.1:8888 {
    websocket
    }
    }

    1. 臭蛋
      @palesaint

      同样的问题,还没找到解决办法

    2. 臭蛋
      @palesaint

      同样的问题,还没找到解决办法

    3. 臭蛋
      @palesaint

      同样的问题,还没找到解决办法

    4. Rat's
      @palesaint

      给个配置你参考吧:
      xx.com {
      tls xxx@qq.com
      proxy /ray 127.0.0.1:8080 {
      websocket
      header_upstream -Origin }
      }

      /ray就是V2配置文件path后面的参数,比如:"path": "/ray"。其它的你自己慢慢研究。

      1. yonheng
        @Rat's

        xx.com {
        tls xxx@qq.com
        proxy /ray 127.0.0.1:8080 {
        websocket
        header_upstream -Origin }
        }
        fastcgi / /run/php/php7.0-fpm.sock php

        rewrite { if {path} not_match ^\/admin to {path} {path}/ /index.php?{query} }

        }

        大佬,我这样配置,博客可以,但是v2的ws不行了怎么办

        1. Rat's
          @yonheng

          去掉伪静态就正常么?

          1. yonheng
            @Rat's

            嗯,去掉下面三行就能用