CakePHP§
要使用 Unit 运行基于 CakePHP 框架的应用
使用 PHP 7.2+ 语言模块安装 Unit。
安装 CakePHP 并创建或部署你的应用。在此,我们使用 CakePHP 的 基本模板 和 Composer
$ cd /path/to/ $ composer create-project --prefer-dist cakephp/app:4.* app
这将在 /path/to/app/ 创建应用的目录树。其 webroot/ 子目录包含根 index.php 和静态文件;如果你的应用需要额外的 .php 脚本,也将其存储在此处。
运行以下命令,以便 Unit 可以访问 应用程序目录
# chown -R unit:unit /path/to/app/
有关更多详细信息,包括权限,请参阅 安全检查清单。
接下来,为 Unit 准备应用 配置(对 share 和 root 使用实际值)
{ "listeners": { "*:80": { "pass": "routes" } }, "routes": [ { "match": { "uri": [ "*.php", "*.php/*" ] }, "action": { "pass": "applications/cakephp/direct" } }, { "action": { "share": "/path/to/app/webroot$uri", "fallback": { "pass": "applications/cakephp/index" } } } ], "applications": { "cakephp": { "type": "php", "targets": { "direct": { "root": "/path/to/app/webroot/" }, "index": { "root": "/path/to/app/webroot/", "script": "index.php" } } } } }
注意
pass 目标之间的区别在于它们对 script 设置 的使用
direct 目标从 URI 运行 .php 脚本,如果 URI 省略该脚本,则默认为 index.php。
index 目标指定 Unit 为目标接收的任何 URI 运行的 script。
有关详细讨论,请参阅 CakePHP 文档中的 Fire It Up。
上传更新后的配置。假设上述 JSON 已添加到
config.json
# curl -X PUT --data-binary @config.json --unix-socket \ /path/to/control.unit.sock http://localhost/config/
成功更新后,您的应用应可在侦听器的 IP 地址和端口上使用