带有 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远程运行查询?
无法在 Google Cloud Composer 上安装新的 pipy 包