Caddy是一个用golang编写的Web服务器,默认开启HTTPS与HTTP/2,自带https证书(来自let’s encrypt),配置简洁,这里简单记录下在服务器中安装配置Caddy+PHP7+Sqlite3的过程。
安装Caddy
访问官方网站下载,执行一键安装脚本并使用官方的服务配置文件。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# 下载安装
wget https://github.com/caddyserver/caddy/releases/download/v2.0.0/caddy_2.0.0_linux_amd64.deb
mv caddy /usr/bin/
# 查看版本
caddy version
# 设置文件权限
chown root:root /usr/bin/caddy
chmod 755 /usr/bin/caddy
# 添加用户和组
groupadd --system caddy
useradd --system --gid caddy --create-home --home-dir /var/lib/caddy --shell /usr/sbin/nologin --comment "Caddy web server" caddy
# 创建文件夹并设置权限
mkdir /etc/caddy
chown -R root:root /etc/caddy
mkdir /etc/ssl/caddy
chown -R root:caddy /etc/ssl/caddy
chmod 0770 /etc/ssl/caddy
# 创建配置文件并设置权限
touch /etc/caddy/Caddyfile
chown root:root /etc/caddy/Caddyfile
chmod 644 /etc/caddy/Caddyfile
# 创建主目录并设置权限
mkdir /var/www
chown -R caddy:caddy /var/www
chmod -R 555 /var/www
# 下载服务配置文件并加载systemd守护程序,然后启动caddy
wget https://github.com/caddyserver/dist/blob/master/init/caddy.service
# 修改caddy.service文件使非root用户使用1024以下端口
# CapabilityBoundingSet=CAP_NET_BIND_SERVICE
# AmbientCapabilities=CAP_NET_BIND_SERVICE
cp caddy.service /etc/systemd/system/
chown root:root /etc/systemd/system/caddy.service
chmod 644 /etc/systemd/system/caddy.service
systemctl daemon-reload
systemctl start caddy.service
# 开机自动启动caddy服务
systemctl enable caddy.service
# 查看启动日志
journalctl --boot -u caddy.service
# 查看最新日志
journalctl -f -u caddy.service
|
SSL证书
acme.sh实现了acme协议, 可以从Let’s Encrypt生成免费的证书。
1
2
3
4
5
6
7
8
9
10
11
12
|
# 安装,所有的修改都限制在安装目录中: ~/.acme.sh/
curl https://get.acme.sh | sh
source .bashrc
# 生成证书,dns用的CloudFlare
export CF_Key="1167f76592eb80c725a4669373b5d2ec44c90"
export CF_Email="xxxx@gmail.com"
acme.sh --issue --dns dns_cf -d *.qoant.com -d qoant.com
# 安装证书,证书在60天以后会自动更新
acme.sh --installcert -d 197774.xyz --key-file /etc/ssl/caddy/xxx.key --fullchain-file /etc/ssl/caddy/xxx.cer
# 更新acme.sh或自动更新
acme.sh --upgrade
acme.sh --upgrade --auto-upgrade
|
安装PHP7和Sqlite3
1
2
3
4
|
apt update
apt upgrade
apt install php7.0-cgi php7.0-fpm php7.0-curl php7.0-gd php7.0-mbstring php7.0-xml php7.0-sqlite3 sqlite3
systemctl start php7.0-fpm
|
配置Caddy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
# 以下全部内容是一个命令,修改示例域名后全部复制粘贴到SSH软件中并一起执行
echo "http://qoant.com, http://www.qoant.com {
redir https://qoant.com{url}
}
https://qoant.com, https://www.qoant.com {
gzip
timeouts none
root /var/www
tls /etc/ssl/caddy/xxx.cer /etc/ssl/caddy/xxx.key
fastcgi / /run/php/php7.0-fpm.sock php
# proxy / https://www.debian.org/
proxy /ws localhost:13000 {
websocket
header_upstream -Origin
}
}" > /etc/caddy/Caddyfile
# 重启caddy服务
systemctl restart caddy
|
创建phpinfo查看php详细信息。
1
2
3
|
echo "<?php
phpinfo();
?>" > /var/www/phpinfo.php
|
通过浏览器访问这个文件,如果显示PHP信息,则配置正确。
安装Typecho
1
2
3
4
5
6
7
|
mkdir /typecho && cd /typecho
wget http://typecho.org/downloads/1.1-17.10.30-release.tar.gz
tar zxvf 1.1*
mv build/* /var/www/
rm -rf 1.1* build
chown -R www-data:www-data /var/www
chmod -R 755 /var/www
|
然后就可以访问域名进行安装了。