1

我正在尝试运行一个文件,heroku run path/to/file.php但我得到了回复:

bash:路径/到/file.php:权限被拒绝

我已经尝试chmod 755过文件和目录,但似乎heroku将其更改回600 ...运行chmod 755后显示755,但是当我退出bash然后回来时,权限被重置为600。

我错过了什么?

也有人建议

heroku run php path/to/file.php

但我收到一条错误消息

bash:php:找不到命令

4

2 回答 2

7

您需要做几件事。

  • 创建 Heroku 应用程序时,您必须确保使用了 PHP buildpack。这就是将 PHP 运行时注入您的应用程序 slug 的内容。添加一个index.php文件(这是检测 PHP 的方式)或像这样对其进行硬编码:heroku config:add BUILDPACK_URL=https://github.com/heroku/heroku-buildpack-php.git
  • 按照这个问题的详细信息设置库路径:heroku config:add LD_LIBRARY_PATH=/app/php/ext:/app/apache/lib
  • 运行你的东西:heroku run ./php/bin/php --version

总结一下:

heroku config:add BUILDPACK_URL=https://github.com/heroku/heroku-buildpack-php.git
heroku config:add LD_LIBRARY_PATH=/app/php/ext:/app/apache/lib
heroku run ./php/bin/php --version

一个有用的调试方法是 bash 进入正在运行的 Heroku dyno: heroku run bash。这会让你四处闲逛,看看事情在哪里并进行实验。

于 2013-01-18T00:17:46.750 回答
-1

您是否尝试过使用sudo特权运行命令:

sudo heroku run path/to/file.php

如果您的 shell 不能使用该php命令(即它的别名),您将需要提供绝对路径:

sudo /usr/bin/php path/to/file.php 

这就是它通常所在的位置。要找到您的 PHP bin 位置,请尝试:

whereis php
于 2013-01-17T22:20:01.347 回答