OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

system関数

  • すぐに回答を!
  • 質問No.216500
  • 閲覧数246
  • ありがとう数3
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 50% (1/2)

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

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

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

質問者が選んだベストアンサー

  • 回答No.2
レベル9

ベストアンサー率 47% (30/63)

はじめまして、info_wolfさん。

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

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

であるならば・・・、

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

上記の事で実行は可能かと思いますが、一応試しにやってみては。
では。
お礼コメント
info_wolf

お礼率 50% (1/2)

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

#!/フルパス/php

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

助かりました。
ありがとうございました。
投稿日時 - 2002-02-13 14:37:49
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル13

ベストアンサー率 33% (427/1283)

 権限が変わっただけなら、権限をつけてあげれば??  そのコマンドが誰の持ち物で、どんな権限になっているのか調べて、apacheの実行ユーザと同じにしてあげればOKです。 ls -la  で権限をみて、 chown  で持ち主を変えるか chmod  で権限を変えるか  を試してみて下さい。 ...続きを読む
 権限が変わっただけなら、権限をつけてあげれば??

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

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

 を試してみて下さい。
補足コメント
info_wolf

お礼率 50% (1/2)

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

ありがとうございました。
投稿日時 - 2002-02-12 20:34:23
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ