首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在swisscomdev/cloudfoundry php_buildback上为CLI使用/启用?

如何在swisscomdev/cloudfoundry php_buildback上为CLI使用/启用?
EN

Stack Overflow用户
提问于 2016-12-06 15:30:55
回答 2查看 754关注 0票数 1

** 编辑 **

对于一些情况,我们需要在部署的CloudFoundry应用程序上调用Symfony命令。Symfony命令是用php调用的PHP脚本。

一个例子是bin/console doctrine:schema:update (但可以是用户生成、缓存清除等)。

因此,对于我们的应用程序,我们需要两者,fpm和cli启用。这是通过以下方式完成的:

代码语言:javascript
复制
  "PHP_MODULES": [
"fpm",
"cli"]

在options.json中。

在用cf ssh连接到应用程序之后,我将更改为app目录,并将其称为php/bin/php doctrine:schema:update,这将导致ClassNotFound: PDO问题。

在暂存过程中,成功地调用了这些命令。

我检查了PHP的PDO扩展是不可用的(通过检查php -i),尽管我在options.json中提到过它。

代码语言:javascript
复制
"PHP_EXTENSIONS": [
 ...
 "pdo",
 "pdo_mysql",
 ...]

如何在一个应用程序上启用CLI和FPM的扩展?理论上,是否有可能对CLI和FPM有不同的扩展,以及不同的用户php.ini来完全/特别地覆盖CLI和FPM的php.ini?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-08 18:12:27

因此,对于我们的应用程序,我们需要两者,fpm和cli启用。这是通过以下方式完成的: "PHP_MODULES":"fpm","cli“ 在options.json中。

这是我们应该在构建包中清理的东西。我不相信它(PHP_MODULES)真的被使用了。

也许一年多以前,构建包改变了它下载PHP的方式。它以前会下载各个组件模块和扩展。现在它只是一次下载所有的东西。这实际上是更快的结果,因为它是一个更大的下载和许多较小的下载,而且带宽通常是非常快的构建包下载。

值得一提的是,虽然PHP_EXTENSIONS不再触发下载内容,但它仍然用于在php.ini中启用哪些扩展。因此,您仍然需要通过composer设置或指示扩展。

在用cf ssh连接到应用程序之后

我相信这就是问题所在。您需要源build变量,以便正确配置env。

例如:

代码语言:javascript
复制
vcap@359b74ff-686c-494e-4a1e-46a9c420f262:~$ php
bash: php: command not found

vcap@359b74ff-686c-494e-4a1e-46a9c420f262:~$ HOME=$HOME/app source app/.profile.d/bp_env_vars.sh
vcap@359b74ff-686c-494e-4a1e-46a9c420f262:~$ php -v
PHP 5.6.26 (cli) (built: Oct 28 2016 22:24:22)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

暂存是自动完成的,就像应用程序的运行时一样。不幸的是,cf ssh没有。

更新:

要做到这一点,一个稍微简单的方法是运行cf ssh myapp -t -c "/tmp/lifecycle/launcher /home/vcap/app bash ''"。这将打开bash,并让生命周期启动程序处理资源&设置环境。

理论上,是否有可能对CLI和FPM有不同的扩展,以及不同的用户php.ini来完全/特别地覆盖CLI和FPM的php.ini?

好的。默认情况下,我们下载并安装所有扩展。因此,您只需要一个不同的php.ini (或其他一些设置来启用该扩展),在其中您可以启用您的备用扩展集。

当您将cf ssh放入容器中时,您可以将现有的php.ini复制到其他地方,并根据您的CLI需要对其进行编辑。然后在运行CLI命令时引用php-alt.ini。

票数 2
EN

Stack Overflow用户

发布于 2016-12-07 15:46:43

从来没有这样做过,但是启用PHP_MODULES (https://docs.developer.swisscom.com/buildpacks/php/gsg-php-config.html)中的php会有帮助吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40999038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档