お勉強 :  PHP バッチから起動するとExtensionを読み込み失敗 

WindowsのIIS環境にPHPをインストールしていて、Webページ内に
記載したPHPではきちんとエクステンション(mbstringとか)を使用
できていました。

加えて、コマンドプロンプトからphpコマンドを実行しても、
「php -ri mbstring」などするときちんと認識されていて、
意図したように動いている認識でした。

しかし、訳あってWebページの裏側でバッチファイルを起動して、
その中でphpコマンドを実行すると、なぜか mbstring はおろか
すべてのエクステンションが認識されない。
php-errors.log を見たら、こんなログがぞろぞろと出ていた…。

 PHP Warning:  PHP Startup: Unable to load dynamic library 'c:\php\ext\php_mbstring.dll' - %1 は有効な Win32 アプリケーションではありません。
 in Unknown on line 0

ネットで調べてみると、x64環境で32ビットプログラムを実行
しようとしたり、その逆を行った際にこんな感じでエクステン
ションの読み込みに失敗するらしい。
最たるものはOracle用のDLLのようでした。

確かにこのサーバは64bit環境で、たしかx64用のPHPをインス
トールしてあるはずだが、Webページでの使用やコマンド
プロンプトからの使用に問題がないところを見ると、バッチ
起動するときに「cmd /c 」しているのが何か影響しているん
だろうか?

今日はタイムアップになってしまったけど、また空き時間を
使って調べておこう。

さて、今晩の体重は 77.1kg でした。

[ 2016/09/05 21:57 ] お勉強 | TB(0) | CM(0)
コメントの投稿








管理者にだけ表示を許可する