Web技術日記
ホームページ制作の小技を紹介します。
perlとPHPでの環境変数を伴うexecの違い 2008年12月 5日
![]()
今日、半日くらい悩んだ出来事です。
とある仕様書を見てPHPでexecを利用して外部コマンドを実行するのですが、仕様書どおりなのになぜかうまくいかない。
環境変数が必要とあったので、$_SERVER['REQUEST_METHOD']や$_SERVER[QUERY_STRING']などにきちんと値が入っているか確認した上で試してみてもうまくいかない。
数時間後、しようがないのでperlに書き直して試した・・・なぜかうまくいく。
どうもperlでは、環境変数が渡されているがPHPだと渡されてないようだ。
そこでやっとこさ辿りついたのが、putenv。
putenv('REQUEST_METHOD='.$_SERVER['REQUEST_METHOD']);
putenv('QUERY_STRING='.$_SERVER['QUERY_STRING']);
した後、execするとやっとこさPHPでもうまくいきました。
ふぅ。