2012-01-14 18 views
0

これは簡単な質問ですが、私の人生はそれを働かせることができません。 SSH(Linux)経由でサーバにログインして入力した場合:/home/username/public_html/x/foo.cgi f=subscribe l=list [email protected]スクリプトは完全に実行されます。しかし、私がPHP経由でスクリプトを実行しようとすると、shell_exec("/home/username/public_html/x/foo.cgi f=subscribe l=list [email protected]");のようなものは何も起こりません。PHPスクリプトからlinuxコマンドを実行していますか?

誰でも正しい方向に向けることができますか?

ありがとうございます!

トレ

+0

は 'foo.cgi' a PHPスクリプトですか?または単に実行可能なバイナリですか? –

+0

ウェブサーバーはあなたのホームディレクトリへのアクセス権を持つことはほとんどありません。自分のアカウントとはまったく異なるユーザーIDで実行されます。 –

+0

CGIスクリプトです。正確には、ダダのメール。私はちょっと新しいので、私は何をする必要があるのか​​分からない – tr3online

答えて

1

非常にわかりやすいエラーメッセージではありません「何も起こりません」。それにもかかわらず、3つの可能性が考えられます。

  1. サーバーホスト環境とシェル環境の違い。
  2. サーバーまたはホスティングサイトでshell_execやその他の機能が無効になっている可能性があります。
  3. SSHで使用したのと同じユーザとしてPHPを実行する必要があるかもしれません。
  4. 誤った設定や誤用のため、スタックの他の部分が乱れることがあります。

ログを確認してください。

0

サーバーを管理している場合は、ほとんどがアクセス許可の問題である可能性があります。あなたのWebサーバーはwww-dataまたは同様のユーザーとして実行されています。それを実行するには、スクリプトファイルに対して実行権限が必要です。 chmodコマンドでスクリプトの所有者を変更するか、chownコマンドでより自由なアクセス許可を実行しようとしているファイルを与えてください。

もう1つ考慮すべきことは、PHP is running in safe modeの場合、shell_execが無効になる可能性があることです。

関連する問題