I'm trying to run a file with heroku run path/to/file.php
and I get a reponse:
bash: path/to/file.php: Permission denied
I've tried chmod 755 on the file and directory, but it seems that heroku changes it back to 600... After running chmod 755 it shows 755, but then when I exit bash and then come back the permissions are reset to 600.
What am I missing?
Also some people have suggested heroku run php path/to/file.php
but I get an error saying bash: php: command not found
There are a couple of things you need to do.
index.php
file (which is how PHP is detected) or hard-code it like this: heroku config:add BUILDPACK_URL=https://github.com/heroku/heroku-buildpack-php.git
heroku run ./php/bin/php --version
To sum up:
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
A useful way to debug this is to bash into the running Heroku dyno: heroku run bash
. That will let you poke around, see where things are at and experiment.
Have you tried running the command with sudo
privileges:
sudo heroku run path/to/file.php
If your shell can't use the php
command (i.e. its alias), you will need to provide the absolute path:
sudo /usr/bin/php path/to/file.php
That's where it's usually located. To find your PHP bin location, try:
whereis php