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