尝试使用“heroku run”运行php文件,我得到“bash权限被拒绝”

时间:2013-01-17 22:15:54

标签: php bash heroku chmod

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

bash: path/to/file.php: Permission denied

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

我错过了什么?

也有人建议heroku run php path/to/file.php,但我收到错误bash: php: command not found

2 个答案:

答案 0 :(得分:7)

您需要做几件事。

  • 创建Heroku应用程序时,必须确保使用PHP buildpack。这将PHP运行时注入您的应用程序slug。添加index.php文件(检测到PHP的方式)或硬编码如下:heroku config:add BUILDPACK_URL=https://github.com/heroku/heroku-buildpack-php.git
  • 按照this question中的详细说明设置库路径: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

调试此方法的有效方法是打入正在运行的Heroku dyno:heroku run bash。这将让你四处寻找,看看事情的进展和实验。

答案 1 :(得分:0)

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

sudo heroku run path/to/file.php

如果您的shell无法使用php命令(即其别名),则需要提供绝对路径:

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

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

whereis php