其实我是有博客的,一直安家在国外。最近几年国内的云服务越来越便宜,所以几年前就开始在国内包二奶:主要是折腾、学习国内的各种云服务,毕竟国内服务器访问速度要比境外的服务器速度快、而且体验也要好很多。

眼看着阿里云服务器马上就要到期了,所以这个国庆假期把以前阿里云服务器上的博客搬家到了轻量应用服务器上。轻量应用服务器比云服务器 ECS 用着更舒服,配置简单、维护方便,主要是价格便宜,性价比比 ECS 好。我买的这个上海2核1G峰值3M宽带月流量 400G 的方案一年 612 元,反正比我以前1核1G的方案续费便宜。

轻量应用服务器的优势是集成了 LAMP, LNMP, WordPress, 宝贴面板等各种应用镜像,装上这个应用镜像就算配置好了 Wordpress 或者 LAMP/LNMP 运行环境,看说明就能配置好服务器。由于这是个二奶,所以越轻量越好,由于 Typecho 支持 SQLite 文本数据库,我甚至连 MySQL/MariaDB 数据库都不需要安装。以后搬家直接把所有文件打个包即可带走。所以应用镜像就不需要了,直接装了个 Ubuntu 20.04 系统镜像。

如果您看到这篇文章,表示您的 blog 已经安装成功。下面我就记录下在 Ubuntu 20.04 下如何安装 Caddy2+PHP7.4+SQLite 并且安装 Typecho 博客程序。

截屏2021-10-03 上午1.11.34.png

安装 Ubuntu 20.04 ,添加 SSH 密钥对

如上图所示,安装好 Ubuntu 20.04 之后,把本地 ~/.ssh/id_rsa.pub 里面的内容添加到远程连接/密匙管理里面,之后就可以通过 SSH 免密码登录服务器了。

安装前的准备工作

升级系统到最新

sudo apt update && sudo apt upgrade

安装 Caddy2

Caddy2 是目前本人最喜欢的 Web 服务器,搭建一个网站超级简单,而且自动申请并部署免费的 SSL 证书,超级省心。

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo tee /etc/apt/trusted.gpg.d/caddy-stable.asc
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy

启动 Caddy2 并设置开机自启动

sudo systemctl start caddy
sudo systemctl enable caddy

安装 PHP7.4

sudo apt install php7.4-cgi php7.4-fpm php7.4-curl php7.4-gd php7.4-mbstring php7.4-xml

启动 PHP7.4 并设置开机启动

sudo systemctl start php7.4-fpm.service
sudo systemctl enable php7.4-fpm.service

安装 SQLite

安装 SQLite 和 PHP7.4 所需的库

sudo apt install php7.4-sqlite3 sqlite3

对了,貌似我安装 PHP 的时候安装上了 Apache2 ,执行下面的命令停止运行并禁用开机自启动

sudo systemctl stop apache2
sudo systemctl disable apache2

安装 Typecho

Typecho 所需的环境终于搭建好了,下一步就可以安装 Typecho 了。

#博客我打算安装在 /var/www/html 安装 PHP 的时候已经自动创建好了
sudo mkdir -p /var/www/html && cd /var/www/html
#以下为最新稳定版
sudo wget http://typecho.org/downloads/1.1-17.10.30-release.tar.gz
sudo tar zxvf 1.1*
sudo mv ./build/* ./
sudo rm -rf 1.1* buil*
sudo chown caddy:caddy -R /var/www/html
sudo chmod 755 -R /var/www/html
#Typecho下的/usr/uploads的权限需要设置成 777
sudo chmod 777 /usr/www/html/usr/uploads

配置 Caddy2

# 以下配置文件是基于默认的内容修改的
# The Caddyfile is an easy way to configure your Caddy web server.
#
# Unless the file starts with a global options block, the first
# uncommented line is always the address of your site.
#
# To use your own domain name (with automatic HTTPS), first make
# sure your domain's A/AAAA DNS records are properly pointed to
# this machine's public IP, then replace ":80" below with your
# domain name.

# Caddy2 支持 sni ,这里设置以下默认 sni 域名,要不然阿里云对象存储镜像回源访问不到,这是 Caddy2 的全局配置
{
  default_sni pengjiayou.cn
}

# Caddy2 默认的配置文件 /etc/caddy/Caddyfile 里面的一部分,保留可以用服务器的 ip 访问到 Caddy 的默认页
:80 {
    # Set this path to your site's directory.
    root * /usr/share/caddy

    # Enable the static file server.
    file_server

    # Another common task is to set up a reverse proxy:
    # reverse_proxy localhost:8080

    # Or serve a PHP site through php-fpm:
    # php_fastcgi localhost:9000
}

# Refer to the Caddy docs for more information:
# https://caddyserver.com/docs/caddyfile

# 将带 www 的域名转移到不带 www 的域名
www.pengjiayou.cn {
  redir https://pengjiayou.cn{uri}
}

pengjiayou.cn {
    log {
        output file /var/log/caddy/caddy.log
    }
    tls {
        protocols tls1.2 tls1.3
        ciphers TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
        curves x25519
    }
    root * /var/www/html
    encode zstd gzip
    file_server
    header Access-Control-Allow-Origin *
    php_fastcgi unix//run/php/php7.4-fpm.sock
}

好了!开启你的 Blog 之旅吧,如果你在折腾的过程中遇到任何问题,请在下方留言。

最后修改:2021 年 10 月 03 日
如果觉得我的文章对你有用,请随意赞赏