尝试在本地运行 heroku 并收到错误“供应商”不是命令
Posted
技术标签:
【中文标题】尝试在本地运行 heroku 并收到错误“供应商”不是命令【英文标题】:Trying to run heroku locally and get a error 'vendor' is not a command 【发布时间】:2016-12-25 16:33:10 【问题描述】:我正在尝试使用命令在本地运行 heroku
heroku local
但是,它返回:
[OKAY] Loaded ENV .env File as KEY=VALUE Format
'vendor' is not recognized as an internal or external command, operable program or batch file.
[DONE] Killing all proccess with signal null
Exited with exit code 1
我在 Windows 7 中使用 Heroku php
在我的PATH
环境变量中,我同时拥有:
./vendor/bin
和 C:\Users\user-name\AppData\Roaming\Composer\vendor\bin
(最后一个是空文件夹)
我搜索了类似的内容,但找不到。 有什么想法吗?
提前致谢
更新
错误出现在我的 Procfile 中:
web: vendor/bin/heroku-php-apache2 public/
然后我把所有的斜杠都改成反斜杠():
web: vendor\bin\heroku-php-apache2 public\
现在它可以工作了,但我收到了这个错误:
../heroku/heroku-buildpack-php/bin/heroku-php-apache2: line 196: php-fpm: command not found
This program requires PHP 5.5.11 or newer; check your 'php-fpm' command.
我认为我的作曲家出了点问题。
heroku-php-apache2
的源文件可以在here 找到。
第 196 行如下所示。
196: php-fpm -n -v | php -n -r 'exit((int)version_compare(preg_replace("#PHP (\S+) \(fpm-fcgi\).+$#sm", "\\1", file_get_contents("php://stdin")), "5.5.11", "<"));'; || echo "This program requires PHP 5.5.11 or newer; check your 'php-fpm' command." >&2; exit 1;
我的 composer.json 文件是:
"require" :
"ext-mcrypt": "*",
"facebook/php-sdk-v4" : "~5.0",
"google/apiclient": "2.0"
,
"require-dev":
"mashape/unirest-php": "3.*",
"heroku/heroku-buildpack-php": "*"
我尝试在 composer.json 中指定 require
php,但它没有改变。对此有什么想法吗?
提前谢谢你。
【问题讨论】:
vendor
不应该是一个命令。你知道为什么heroku local
试图运行它吗?您的问题中没有任何内容可以说明这一点。
你有Procfile
吗?
@Chris 刚刚检查了 Procfile,这正是您提到的:web: vendor/bin/heroku-php-apache2 public/
它正在尝试将第一行作为命令读取。我怎样才能改变它?正如你可以想象的那样,我对heroku和一般的开发都是新手。谢谢
澄清一下,这个 procfile 是根据 Heroku 网站上的教程生成的,目的是创建一个公共文件夹。
这对我来说实际上看起来不错,Jean Phelippe。它正在尝试运行位于vendor/bin/
目录中的heroku-php-apache2
。该行中没有空格,例如web: vendor /bin/heroku-php-apache2 public/
?
【参考方案1】:
多年后,我也遇到了同样的问题。
已通过删除 vendor/
并再次运行 composer install
进行修复。
然后我遇到了同样的php-fpm
错误,为了解决这个问题,我从/usr/sbin/php-fpm7.4 -> /usr/sbin/php-fpm
创建了一个符号链接。
希望以后对其他人有所帮助!
【讨论】:
以上是关于尝试在本地运行 heroku 并收到错误“供应商”不是命令的主要内容,如果未能解决你的问题,请参考以下文章
Knex 与 Heroku Postgres 连接出现错误?