PHP built-in web server 支持自动查找入口
使用 php -s localhost:8080 可以快速启动一个开发服务器,非常方便,是我现在需要简单服务器支持时的首选。
不过我最初了解到这个功能的时候,它(可能)还不支持请求重写,也就是说,我们访问 /foo/bar,它就会去当前目录里查找 /foo/bar,找不到就 404。如果想要实现 index.php 重定向,必须手动编写路由文件,比较麻烦。我宁可用 nginx 实现,因为部署上线的时候早晚要用。
最近偶然发现,PHP built-in web server 已经支持请求重写了,如果命中,就会直接返回目标文件;如果没有命中,就会沿着目录往上找,直到找到 index.php 或者 index.html,或者到启动服务器的根目录,然后把请求地址放在 $_SERVER['PATH_INFO'] 里,留待 php 处理。
这样一来,无论是 WordPress,还是 Laravel,还是其它基于路由的单一入口项目,都可以直接使用 PHP built-in web server 开发了,简单方便快捷。甚至连纯前端项目,如果你不熟悉服务器端的配置,也可以简单的安装一个 PHP 来实现。
比如,在本地开发 WordPress,可以这样:
# 安装 php 和 mysql
brew install php
brew install mysql
# 配置 mysql root 用户密码,替换下面的 `NEWPASS`
$(brew --prefix mysql)/bin/mysqladmin -u root password NEWPASS
# 下载并解压 wordpress.zip,进入目录,启动服务器
php -S localhost:8080
# 完成!
参考文档:
相关文章
记一次 TiDB Cloud Serverless 超额导致的博客超时故障
一次真实故障复盘:TiDB Cloud Serverless 免费额度用尽导致博客 502 超时。记录从发现问题、定位到 RU 超额、上调预算恢复服务的全过程,以及后续降低数据库用量的思路,供使用 S
TiDB 账单爆炸之后:一次跌宕起伏的降本排查,从 Cloudflare 边缘到数据库计费内核,降本$30/月
博客的 TiDB 账单逼近限额,RU 基线常年 110+。我用两天逐层排查:边缘缓存、漏洞扫描器、WordPress 对象缓存、连接税、TiFlash 副本、演示数据……一个接一个假设被数据打脸。把能
测试使用 Notion 作为编辑器发布博客
测试用 Notion 作为编辑器发布 WordPress 博客:博客重构成 headless 架构后的内容工作流探索,记录 Notion 同步方案的配置过程与遇到的问题。


