[PHP-users 17398]execが動作しない。

Tatsuya Ueda tatsuya @ ps.sakura.ne.jp
2003年 8月 20日 (水) 22:51:16 JST


S-Lines Network Service の 上田 です。

FAQ的な質問でしたら申し訳ないのですが、MLの過去ログを参照してもどうにもならなかったため、
投稿させていただきます。

現在、PHPよりあるファイルのファイルサイズを取得するプログラムを作成しております。
本来なら、filesize,stat関数などを使って取得すべきなのですが、権限の問題からそれができません。

そのため、C言語にてファイルサイズを取得するプログラムを別途作成しそれをPHPからexec関数で
呼び出し変数に代入しようと考えていたのですがこちらもどういうわけかうまくいきません。

まず当方の環境なのですが、 FreeBSD 上で PHP4.3.2/Apache2.0.47 という環境にて作成をしております。
また複数のユーザが利用しているため safe_mode を有効にしてあります。


C言語にて作成したプログラムを実行すると
---
$ ./size
671490112
---
と出力がされるようになっております。

そのため、PHP側からは
---
$size = exec("/home/PATH/TO/size",$a,$b);
---
というようにしてあります。

print_r($a)としてみると、Array()といった感じで配列にはなにも入ってなく
$b には 127 というステータスコードが代入されていました。

MLの過去ログを参照した際には、パスが通っていないという投稿も見たのですが、
フルパスで指定しているためそれはないと思うのですが。

またsafe_modeの関係かと思い、php.iniでは
---
safe_mode_exec_dir = "/home/"
---
という風にしてあるのですが・・・

なお、Apacheはnobody権限で動作しており、sizeプログラムの所有者とは異なるため、
sizeプログラムに777の権限を与えてやっても見たのですがやはり状況は変わりませんでした。

この状況で他に確認すべき点などありましたら教えていただけないでしょうか?
よろしくお願いいたします。


---
 TATSUYA   E-Mail : tatsuya @ ps.sakura.ne.jp
           W e b  : http://TATSUYA.info/





PHP-users メーリングリストの案内