说明:我们一般搭建博客的方法就是使用lnmp
、lamp
等一键包,或者宝塔等面板来搭建Web
环境,不过都只适合大点内存的VPS
服务器,小点的比如96M
、128M
服务器就不行了,这时候我们就可以通过安装其它环境来搭建网站环境了,这里博主就说下Caddy
+PHP7
+Sqlite3
安装教程,3
分钟就可以搭建一个Typecho
博客,并成功运行在96M
的VPS
服务器上,至于96M
以下的服务器就不测试了,毕竟很少见了。
安装
教程只写Debian 8、9
,建议选择mini
版。如果你是96M
或者128M
的KVM
建议增加点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(域名)/
老哥,想问下 表情怎么弄这种百度贴吧的
就是我博客这种泡泡?
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):
哪个?这个应该是申请ssl的时候,需要同意下
问题来了,怎么同意?
不是给你选择y、n么,y就是同意
看来博主这个教程,心里长草阿。
博主为啥不写一个centos 或者ubuntu 的教程呢。那样就齐活了。
因为最爱debian
我的vps没有debian 系统。悲催啊。
是kvm吗?是的话,可以在博客找下linux安装教程,一个命令即可拥有debian系统
博主 我照着教程一步步做完了 到最后还是无法访问 caddy已经重启很多次了 搞不懂什么问题
看下启动日志:tail -f /tmp/caddy.log
博主搞好了 防火墙的事情关闭了 正常,现在问题是我用的xxx.cf的域名貌似caddy不自动下发证书,求教!
把错误日志给我看看
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.
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:
这是证书签发次数过多,你是不是80端口啥的没打开
打开了 就是不下发 用.com域名秒过 就免费域名不行
大佬求教下~我用您的脚本装了wp博客。用了一个月左右。。。准备搬迁到宝塔。。但是sqlite转mysql又不会。。求搬迁教程!
我也不会,没试过sqlite转mysql,你谷歌下转换工具看看
网上的都不能用。。。这样的话这个脚本的东西不就不能转出去了吗-_-||。。。好难受~。。。想搬数据到bt上。。
宝塔默认安装sqlite,可以直接用。
噗。。。吐血,,我手动搬了2个多小时。。。。
熟能生巧,多折腾就会进步
我用caddy安装wordpress后 打开网页显示502
这个我还没试过wp,502应该姿势有点瑕疵
博主泛域名 SSL应该怎么搞 证书加在哪里呀
看这个教程https://www.moerats.com/archives/900/
保存在usr/ 下面的数据库文件 *.db可以被下载,这个怎么破?
正常,我这个博客很多根目录都可以访问下载,大概就是只能在配置文件里设置访问某些文件时返回404了。
大佬,申请ssl证书这个错误怎么解决
{
"type": "urn:ietf:params:acme:error:malformed",
"detail": "Method not allowed",
"status": 405
}
应该说是用你的脚本申请的ssl证书会存放在vps根目录了,没有存在root的文件夹里。我把根目录caddy文件夹里的证书文件复制到root里就可以打开网页了。但是有个问题,这样我复制过来的证书会不会自己续期?
证书路径文章好像说明了,续期的话,路径还是和之前一样,所以需要你的路径一致。
请教大佬这个 caddy配置和v2 websocket配置冲突怎么办?
tls 119286005760@gmail.comwebsocket配置:
xxxx.xx {
timeouts none
proxy / 127.0.0.1:8888 {
websocket
}
}
同样的问题,还没找到解决办法
同样的问题,还没找到解决办法
同样的问题,还没找到解决办法
给个配置你参考吧:
xx.com {
tls xxx@qq.com
proxy /ray 127.0.0.1:8080 {
websocket
header_upstream -Origin }
}
/ray就是V2配置文件path后面的参数,比如:"path": "/ray"。其它的你自己慢慢研究。
xx.com {
rewrite { if {path} not_match ^\/admin to {path} {path}/ /index.php?{query} }tls xxx@qq.com
proxy /ray 127.0.0.1:8080 {
websocket
header_upstream -Origin }
}
fastcgi / /run/php/php7.0-fpm.sock php
}
大佬,我这样配置,博客可以,但是v2的ws不行了怎么办
去掉伪静态就正常么?
嗯,去掉下面三行就能用