1

でファイルを実行しようとするとheroku run path/to/file.php、応答が返されます。

bash:path / to / 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ビルドパックが使用されていることを確認する必要があります。これは、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

これをデバッグするための便利な方法は、実行中のHerokudynoにbashすることですheroku run bash。それはあなたが周りを突いて、物事がどこにあるかを見て、実験することを可能にします。

于 2013-01-18T00:17:46.750 に答える
-1

sudo特権を使用してコマンドを実行してみましたか?

sudo heroku run path/to/file.php

シェルがphpコマンド(つまりそのエイリアス)を使用できない場合は、絶対パスを指定する必要があります。

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

それは通常それが置かれている場所です。PHPビンの場所を見つけるには、次のことを試してください。

whereis php
于 2013-01-17T22:20:01.347 に答える