尝试在本地运行 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/binC:\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 -&gt; /usr/sbin/php-fpm 创建了一个符号链接。

希望以后对其他人有所帮助!

【讨论】:

以上是关于尝试在本地运行 heroku 并收到错误“供应商”不是命令的主要内容,如果未能解决你的问题,请参考以下文章

Knex 与 Heroku Postgres 连接出现错误?

播放框架重定向错误

Heroku 教程错误运行 python manage.py syncdb 更新本地数据库

heroku 连接超时(连接超时)

Heroku 推送被拒绝,无法与供应商沟通,请稍后再试

端口错误:heroku 中的 vue.js+node.js 项目