带有 Composer 的 GCP 无法运行 PHP,无法识别“应用程序”

Posted

技术标签:

【中文标题】带有 Composer 的 GCP 无法运行 PHP,无法识别“应用程序”【英文标题】:GCP with Composer fails running PHP, 'app' is not recognized 【发布时间】:2019-03-14 21:38:56 【问题描述】:

使用 Google Cloud Platform 并尝试设置 Symfony Hello World on App Engine Standard Environment。在我尝试在本地环境中运行应用程序之前,部署一直很好。当我从项目的根目录运行此命令时,实例没有启动:

composer run-script server --timeout=0

相反,我收到一个错误,'app' is not recognized as an internal or external command, operable program or batch file.:

据我所知,composer 运行位于scripts/server.php 的脚本,但该脚本无法正常运行。当我查看server.php 脚本本身时,我看到app 出现在第一行代码中,我认为它与上面错误中提到的app 相同。我不知道这是否相关。

#!/usr/bin/env php
<?php
$cacheClearCmd = 'app/console cache:clear --no-debug --env=dev';
passthru($cacheClearCmd, $returnVar);

我想我现在的问题是:为什么我的 PHP 脚本在被 composer 以这种方式调用时不能正常运行?

【问题讨论】:

getcomposer.org/doc/00-intro.md#system-requirements,检查windows部分的安装。 composer -V 返回什么? 感谢@cske,composer -V 返回Composer version 1.7.2 2018-08-16 16:57:12。我知道 Composer 运行正常,因为当我运行此命令 composer create-project google/appengine-symfony-starter-project 时,它会从 GitHub 正确下载源代码。 【参考方案1】:

发生初始错误是由于它没有将命令视为 php,将“app/console cache”部分更改为“php app/console cache”会停止应用程序错误。

然后转到 appengine-symfony-starter-project\app\config 并将“parameters.yml.dist”重命名为“parameters.yml”。

对我来说解决了应用问题。

【讨论】:

这些更改部分解决了问题。现在,当 dev_appserver.py 开始运行时,我收到 memcache 错误:致命错误:未捕获的异常 'Symfony\Component\Cache\Exception\CacheException' 并在 C:\ 中显示消息 'Memcached >= 2.2.0 is required'程序文件 (x86)\Google\Cloud SDK\test2\vendor\symfony\symfony\src\Symfony\Component\Cache\Traits\MemcachedTrait.php:77 我也有同样的问题,仍在调查。我使用 php 7.2 的自定义 dll 安装了 memcache,但 symfony 无法识别它,或者它专门要求“memcached”并且不会除了 memcache,但是 GAE 上的部分 symfony 指定 memcache,有些指定 memcached,所以我不确定它想要哪个,并且在网上找到了相互矛盾的结果。 您是否为 php cli 启用了 memcached 扩展?

以上是关于带有 Composer 的 GCP 无法运行 PHP,无法识别“应用程序”的主要内容,如果未能解决你的问题,请参考以下文章

带有presto的GCP dataproc - 有没有办法使用pyhive通过python远程运行查询?

使用工作负载身份为 GKE 节点池绑定 GCP IAM

无法在 Google Cloud Composer 上安装新的 pipy 包

无法在带有 Tesla K80 GPU 的各种 GCP Ubuntu VM 上安装 NVIDIA 驱动程序

在 composer-php 安装中似乎不存在包含包

Composer 更新 codeception - phpunit 不更新