折腾笔记:用Caddy服务器运行PHP
文章目录
前言
这是一篇折腾笔记,主要是记录自己使用Caddy服务器运行php项目的过程(特别是在Windows系统上),欢迎指正本文中的不当之处。
背景信息
Caddy服务器是一个用Go语言编写的开源Web服务器(官网链接),而PHP是世界上最好的语言Web开发的一种语言。本文说明了如何在Caddy服务器上运行php程序。
0.Caddyfile的配置
Caddy 服务器有多种配置方法,从最简单的用CLI参数到可配置性高的Caddyfile再到复杂一点的json配置。本文主要探讨使用Caddyfile的情况。
我们需要用到Caddy的php_fastcgi部分(https://caddyserver.com/docs/caddyfile/directives/php_fastcgi)
注意:Caddy不像Apache的PHP扩展那样能够自动拉起php-cgi,因此你需要先找到php-cgi存放的目录然后输入
|
|
主动拉起php-cgi,并让其在9000端口上运行FastCGI服务器。然后在caddy服务器所在目录创建一个文件名为caddyfile
的文件,填入以下内容
|
|
将path\to\you替换为存放有你php的目录。完成,此时浏览器打开localhost,应该就能自动访问index.php了。如果你的入口文件不是index.php,请看进阶1.2。
1.进阶
1.1.加个HTTP BasicAuth
官方文档:https://caddyserver.com/docs/caddyfile/directives/basicauth#basicauth
有时直接将一些服务暴露在公网上也不好,加个BasicAuth就能解决一些问题。但需要注意的是,HTTP BasicAuth是明文发送的用户名密码(其实有经过base64,但问题是base64不是加密,只是编码),因此不适宜用于有高安全性用途的场景。
注意:Caddy默认使用的是bCrypt算法,并且需要再经过一层base64,伪代码为base64(bcrypt(Your Password))。需要注意防止填入错误格式的密码。
在Caddyfile于网站同级(花括号)内填入
|
|
YOUR_NAME替换为你的用户名,YOUR_PASSWORD替换为经过bcrypt和base64后的密码,即可实现HTTP BasicAuth。
正确填写后应该像这样
1.2.修改默认入口php文件
只需将原来php_fastcgi的那行换成
|
|
其中yourname.php改成你的入口文件就行了。
参考文档
Caddyfile: https://caddyserver.com/docs/caddyfile
文章作者 Gulut
上次更新 2022-03-15