云引擎 PHP 运行环境
这 篇文档是针对 PHP 运行环境的深入介绍,如希望快速地开始使用云引擎,请查看 快速开始部署云引擎应用。
所有 PHP 项目必须在根目录包含一个 composer.json 和 public/index.php 才会被云引擎正确识别。
如果你希望创建一个新的项目,推荐从我们的 PHP 示例项目 开始。
运行机制
云引擎会使用 Nginx 和 PHP-FPM 来运行你的应用,项目中的 public 目录会被映射为网站的根目录(document root),其中 .php 文件由 PHP-FPM 处理,其他静态文件由 Nginx 处理。如果被请求的路径不存在则会由 public/index.php 处理,这一点可以满足绝大部分框架对应用入口点的需求。
云引擎默认每 64 MB 内存分配一个 PHP-FPM Worker,如果希望自定义 Worker 数量,可以在云引擎设置页面的「自定义环境变量」中添加名为 PHP_WORKERS 的环境变量,值是一个数字。设置过低会导致收到新请求时无可用的 Worker;过高会导致内存不足、请求处理失败,建议谨慎调整。
配置 PHP 版本
在 composer.json 中可以指定 PHP 的版本:
"require": {
"php": "7.4.x"
}
目前云引擎支持的版本有:7.4.x。
如未设置 PHP 版本,云引擎会默认使用最新的稳定版本。
安装依赖(composer.json)
云引擎会自动安装 composer.json 中的依赖,目前云引擎云端使用的是 Composer 1.x 版本。
PHP 扩展
所有版本的 PHP 默认开启 fpm、curl、mysql、zip、xml、mbstring、gd、soap、sqlite3。
7.0 以上版本默认开启 mongodb。
在 PHP 7.2 中官方从核心中移除了 mcrypt 这个拓展,云引擎以选装的方式继续提供支持,在 composer.json 的 require 中加入 ext-mcrypt: * 即可,使用 mcrypt 会增加部署耗时,如果没有用到请不要加。
自定义构建过程
除了默认的构建过程和运行命令外,开发者还可以在 leanengine.yaml 中进一步地调整运行命令(run)、依赖安装命令(install)和构建命令(build),覆盖默认的行为:
run: echo 'run another command'
install:
- {use: 'default'}
- echo 'install additional dependencies here'
build:
- echo 'overwrite default build command here'
详细的说明见 Reference: leanengine.yaml
。