【网络】Caddy + PHP7.3

0x00
Caddy是一个使用Go编写的开源的支持HTTP / 2的Web服务器。 Caddy可以运行在各种系统上,包括运行Linux,Windows,Mac OS,Android和BSD操作系统的系统。 Caddy有很多功能,可以作为Web服务器安装,也可以作为应用程序的反向代理。 最显着的Caddy网络服务器功能是默认启用的自动HTTPS,无需额外配置。
0x01 Caddy
安装
使用一键安装脚本,如果想要安装其他扩展可以把名字加到命令后面(bash caddy_install.sh install xxx,xxx,xxx,扩展列表点击查看)
wget -N --no-check-certificate https://www.moerats.com/usr/shell/Caddy/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh使用说明
启动:/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/caddyCaddy配置文件位置:/usr/local/caddy/CaddyfileCaddy自动申请SSL证书位置:/.caddy/acme/acme-v01.api.letsencrypt.org/sites/xxx.xxx(域名)/升级Caddy或更新扩展
只需要重新执行你当初安装时候用的命令即可,会覆盖安装最新的Caddy+扩展。
卸载
卸载不会删除虚拟主机的内容,只会删除Caddy自身和配置文件。
wget -N --no-check-certificate https://www.moerats.com/usr/shell/Caddy/caddy_install.sh && bash caddy_install.sh uninstall网站配置文件
配置文件为Caddyfile,列举几种caddy的conf的写法
1、本地访问80
:802、单网站访问
example.comroot /usr/local/caddy/www//更多模块2、多网站
example.com { gzip root /usr/local/caddy/www //更多模块}常用基本组成模块,均写入到conf站点配置中。
#log日志log /usr/local/caddy/www/example.log
#目录访问browse
#gzip压缩gzip
#自主ssl证书tls /path/ssl/example.com.crt /path/ssl/example.com.key
#访问口令认证(用户emiria,密码abc123)basicauth / emiria abc123
#跳转功能redir http://example.com{url}
#自定义错误页面errors { 404 404.html 500 /usr/local/caddy/www/500.html}例如,通过IP即80端口访问目录:
:80 { root /usr/local/caddy/www gzip browse }也可以直接执行命令写入,以下是一个命令,直接复制粘贴即可。
echo ":80 { root /usr/local/caddy/www gzip browse}" > /usr/local/caddy/Caddyfile更多配置参考:https://caddyserver.com/tutorial/caddyfile 设置文档参考:https://caddyserver.com/docs
常见问题
1、Caddy启动失败,打开ip访问地址显示的是 It works ! 一些系统会自带apache2,而apache2会占用80端口,导致Caddy无法绑定端口,所以只要关掉就好了。
netstat -lntp
# 我们可以通过这个命令查看是不是被其他软件占用了80端口。不过apache2会默认开机自启动,如果不需要可以关闭自启动或者卸载apache2。
停止Apache2
# CentOS系统/etc/init.d/httpd stop# Debian/Ubuntu系统/etc/init.d/apache2 stop
# 尝试使用上面代码关闭,如果没效果或者提示什么错误无法关闭,那就用下面这个强行关闭进程。kill -9 $(ps -ef|grep "apache2"|grep -v "grep"|awk '{print $2}')取消开机自启动
# CentOS 系统chkconfig --del httpd# Debian/Ubuntu 系统update-rc.d -f apache2 remove卸载Apache2
# CentOS 系统yum remove httpd# Debian/Ubuntu 系统apt-get remove --purge apache2关闭Apache2后,就可以尝试启动Caddy,并试试能不能打开网页。
/etc/init.d/caddy start2、启动Caddy后,无法访问 这个可能是防火墙的问题,开放防火墙端口即可。
iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 端口 -j ACCEPTiptables -I INPUT -m state --state NEW -m udp -p udp --dport 端口 -j ACCEPT
# 删除防火墙规则,内容一样把 -I 换成 -D 就行了:iptables -D INPUT -m state --state NEW -m tcp -p tcp --dport 端口 -j ACCEPTiptables -D INPUT -m state --state NEW -m udp -p udp --dport 端口 -j ACCEPT3、SSL证书签发失败
比如报错acme: error: 400 :: urn:ietf:params:acme:error:connection :: Error getting validation data, url:,检查下防火墙端口,需要开启80和443端口,然后重启即可。
0x02 PHP
安装
sudo apt install -y php7.3 php7.3-fpm php7.3-cli配置
编辑www.conf文件
sudo nano /etc/php/7.3/fpm/pool.d/www.conf取消下面的注释。
listen.owner = www-datalisten.group = www-datalisten.mode = 0660保存并退出
将caddy添加至www-data组
usermod -a -G www-data caddy开机启动
systemctl start php7.3-fpmsystemctl enable php7.3-fpm配置Caddyfilephp
#添加语句fastcgi / /run/php/php7.3-fpm.sock php { ext .php split .php index index.php}例如:
http://example.com { root /var/www/html log /var/log/caddy/hakase-labs.log errors /var/log/caddy/errors.log tls off gzip
# PHP-FPM Configuration for Caddy fastcgi / /run/php/php7.0-fpm.sock php { ext .php split .php index index.php }}重启Caddy和php-fpm即可。
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!















加载更多…