heroku/heroku-buildpack-php

本地启动PHP应用程序的工具包,可使用或无需foreman,使用与Heroku相同的配置,用于PHP和Apache2/Nginx

安装量: 1,047,914

依赖项: 17

建议者: 1

安全: 0

星标: 806

关注者: 123

分支: 1,585

开放性问题: 40

语言:Shell

v256 2024-08-30 22:25 UTC

This package is auto-updated.

Last update: 2024-09-10 17:33:54 UTC


README

php

这是PHP应用程序的官方Heroku构建包

它使用Composer进行依赖管理,支持所有最新的PHP版本作为运行时,并提供Apache2或Nginx网络服务器的选择。

用法

您需要至少在应用程序中使用一个空的composer.json

$ echo '{}' > composer.json
$ git add composer.json
$ git commit -m "add composer.json for PHP app detection"

如果您还有其他框架或语言的文件,这些文件可能会触发另一个构建包检测到您的应用程序为其之一,例如,一个可能将您的代码检测为Node.js应用程序的package.json,即使它是一个PHP应用程序,那么您需要手动设置应用程序使用此构建包

$ heroku buildpacks:set heroku/php

这将使用官方发布的版本。要使用GitHub的默认分支,请参考以下说明。

$ heroku buildpacks:set https://github.com/heroku/heroku-buildpack-php

有关进一步的使用说明,请参阅开发中心

自定义平台仓库

构建包使用Composer仓库来解决平台(phpext-something、...)依赖。

要使用自定义Composer仓库以及额外的或不同的平台包,请将它的packages.json的URL添加到HEROKU_PHP_PLATFORM_REPOSITORIES配置变量中

$ heroku config:set HEROKU_PHP_PLATFORM_REPOSITORIES="https://<your-bucket-name>.s3.<your-bucket-region>.amazonaws.com/heroku-20/packages.json"

为了允许使用多个自定义仓库,配置变量可以包含多个仓库URL列表,以空格字符分隔,按优先级升序排列(这意味着最后列出的仓库首先由Composer处理包查找)。

请注意,Heroku无法提供与自定义平台仓库和包相关的问题支持。

禁用默认仓库

如果列表中的第一个条目是"-"而不是URL,则完全禁用默认平台仓库。这可以在测试开发仓库或强制防止使用默认平台仓库中的任何包时很有用。

仓库优先级

可以控制自定义平台仓库的Composer仓库优先级:Composer是否

  • 将特定仓库视为规范;
  • 从仓库中排除特定包;
  • 仅允许从仓库中获取特定包。

这些仓库选项(canonicalexcludeonly)使用以下查询字符串在仓库URL中控制

  • composer-repository-canonicaltruefalse;默认为true
  • composer-repository-exclude(逗号分隔的排除包名称列表)
  • composer-repository-only(逗号分隔的允许包名称列表)

例如,以下配置变量将允许仅从customrepo.com获取ext-igbinaryext-redis包;所有其他包都在默认仓库中查找

$ heroku config:set HEROKU_PHP_PLATFORM_REPOSITORIES="https://customrepo.com/packages.json?composer-repository-only=ext-igbinary,ext-redis"

构建自定义仓库

有关如何构建自定义平台包(以及存放它们的仓库)的说明,请参阅以下说明

开发

以下信息仅适用于您出于自身目的对构建包进行分支和修改。

拉取请求

请将所有拉取请求提交到以 develop 作为基分支。

自定义平台包和仓库

请参阅位于 support/build/README文件中的说明。