【发布时间】: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/?
标签: php heroku path composer-php vendor