说明:当初我遇到的问题是,通过PHP调用Python,在终端命令行下可以执行,在浏览器上不能运行,返回的状态码是127。最后通过输出log信息发现问题是
/opt/lampp/lib/libstdc++.so.6: version `GLIBCXX_3.4.14' not found
转载自: http://www.lai18.com/content/8979210.html
大概的错误提示:
/opt/lampp/lib/libstdc++.so.6: version `GLIBCXX_3.4.13' not found
解决方案:
cd /opt/lampp/lib/
strings /opt/lampp/lib/libstdc++.so.6 | grep -i glic
发现确实是缺少了GLIBCXX_3.4.13
locate libstdc++.so #查找系统里面的文件
输出:
/opt/lampp/lib/libstdc++.so.6
/opt/lampp/lib/libstdc++.so.6.0.8
/usr/lib/gcc/x86_64-redhat-linux/4.4.4/libstdc++.so
/usr/lib/gcc/x86_64-redhat-linux/4.4.4/32/libstdc++.so
/usr/lib64/libstdc++.so.6
/usr/lib64/libstdc++.so.6.0.13
/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.13-gdb.py
/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.13-gdb.pyc
/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.13-gdb.pyo
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.13-gdb.py
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.13-gdb.pyc
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.13-gdb.pyo
strings /usr/lib64/libstdc++.so.6 | grep -i glic输出:
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBC_2.2.5
GLIBC_2.3
GLIBC_2.4
GLIBC_2.3.2
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH
发现有我要的版本,因为libstdc++.so.6是向下兼容,所有拷贝文件到/opt/lampp/lib/中覆盖下(备份先)
mv libstdc++.so.6 libstdc++x.so.6.back
mv libstdc++.so.6.0.8 libstdc++x.so.6.0.8.back
建立连接:
ln -s /usr/lib64/libstdc++.so.6 libstdc++.so.6
cp /usr/lib64/libstdc++.so.6.0.13 libstdc++.so.6.0.13
然后,就发现php的exec可以执行程序了~