プロが教える店舗&オフィスのセキュリティ対策術

以下のように、phpでsystem関数を用いて

$command = "php4 -q <ファイル名>.php";
system($command);

コマンドラインからプログラムを実行していたんですが、ファイルを別サーバに移動させたところ、
実行できなくなりました。
双方ともphpのバージョンは4.0.6、
コマンドラインからphpを実行できるように設定されています。
変わった点はapacheのuserがnobodyから
他の名前に変更されています。
やはり、実行できないのはapacheのuserが変更されたのが
原因なのでしょうか?
もし、そうならばどのように対処すればよいのでしょうか?よろしくお願いします。

A 回答 (2件)

はじめまして、info_wolfさん。



的を得ていないアドバイスになるかも・・ですが、参考までに。

"php4"としているのはいわゆるphpパーサの実行ですよね?
#ファイル名.phpを解析するために。

であるならば・・・、

・php4でなく、これをそのphpがインストールされているマシン(#)上での
 フルパス付きで指定
 (#)おそらくapacheをたてているのと同マシンかと思いますが。
・ブラウザからアクセスしたphpページからsystemやexec実行可能なように、
 全てに実行権限(xをたてる。 chmod a+x *****)をたててみる。
 #ページからのsystem,exec実行時はhttpdになったような気も・・(不明確)
・わざわざパーサ(php4)をコマンド文にかかず、ファイル名.php内で実行定義
 してしまうのも楽。
 ※ファイル名.phpの先頭に
  #!/フルパス/php (ここでは実行ファイルがphpとして書いてますが、実質にあわせて)

上記の事で実行は可能かと思いますが、一応試しにやってみては。
では。
    • good
    • 0
この回答へのお礼

Kizzさん、回答ありがとうございます。

#!/フルパス/php

で実行できるようになりました。
移動させる前のサーバでは、フルパスを
書かなくても実行できていたのですがねぇ。
気付きませんでした。

助かりました。
ありがとうございました。

お礼日時:2002/02/13 14:37

 権限が変わっただけなら、権限をつけてあげれば??



 そのコマンドが誰の持ち物で、どんな権限になっているのか調べて、apacheの実行ユーザと同じにしてあげればOKです。

ls -la
 で権限をみて、
chown
 で持ち主を変えるか
chmod
 で権限を変えるか

 を試してみて下さい。

この回答への補足

早速の回答ありがとうございます。
上記のように試してみたんですが、
だめでした。

ありがとうございました。

補足日時:2002/02/12 20:34
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!