2012/04/26

CentOS 64bit で /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory って怒られた際にやったこと

CentOS 6.2 の 64bit で、PHP からとある 32bit のコマンドを叩いた。
resourse は返るけれども null っぽいとか、よくわからん事になってた。



こんなカンジ


なんで空なのかさっぱりわからず、実際にはコマンドの引数がいろいろついてるんだけど、
それが正しくないせいでうまく言ってないもんだと思ってた。
今までもプログラムで動いていたし。
いろいろ修正してもわからず。
基本に戻って PHP マニュアルを確認。

http://php.net/manual/ja/function.popen.php
/* リダイレクトにより、標準エラー出力を取得します */
$handle popen('/path/to/executable 2>&1''r');
echo 
"'$handle'; " gettype($handle) . "\n";
$read fread($handle2096);
echo 
$read;pclose($handle);
お?と思い修正。



そしたらこんなエラーが出てました
/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
あ、 /lib/ld-linux.so.2 が無いんだと思って。おもむろに
yum install ld-linux.so.2

Installing:
glibc i686
Installing for dependencies:
nss-softokn-freebl i686
これで、32bit のコマンドも動きました。