试图运行php文件使用"heroku运行"我得到了“bash许可被拒绝”


Trying to run php file using "heroku run" and I get "bash permission denied"

我试图运行一个文件与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

您需要做几件事。

  • 创建Heroku应用程序时,必须确保使用了PHP构建包。这将把PHP运行时注入到应用程序块中。添加一个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。这将让你四处看看,看看东西在哪里,并进行实验。

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

sudo heroku run path/to/file.php

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

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

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

whereis php
相关文章: