WEB技術日記

perlとPHPでの環境変数を伴うexecの違い

今日、半日くらい悩んだ出来事です。 とある仕様書を見て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でもうまくいきました。 ふぅ。  

namazu

namazuのindex作成方法 env LANG=ja_JP.EUC PERL_BADLANG=0 mknmz –exclude=’/除外フォルダA | 除外フォルダB/’ -O 出力先フォルダ 作成対象フォルダ  

perlで証明書つきhttps通信

perlで証明書つきhttps通信を行う方法です。 LWPモジュールが必要です。 use LWP::UserAgent; $ENV{HTTPS_PKCS12_FILE} = ‘証明書ファイル名.p12′; $ENV{HTTPS_PKCS12_PASSWORD} = ‘証明書パスワード’; my $ua = new LWP::UserAgent; my $head = new HTTP::Headers(); my $req = new HTTP::Request(‘POST’, ‘https://アドレス’,$head,”POSTで送る値&で区切り”); my $res = $ua->request($req); $sample = $res->content();  

 

WEB技術日記

 
 
page top