php 正在我的服务器上运行,但我无法让它运行命令行。我正在运行此文件:
<?php
echo "done";
?>
使用此命令:
php test.php
当我这样做时,我收到此错误:
php: /usr/lib64/libssl.so.10: no version information available (required by php)
知道为什么会这样吗?服务器处于活动状态,因此我希望在进行任何可能破坏我的设置的更改之前了解这里发生了什么。我需要 php 来运行命令行,这样我才能让电子邮件接收脚本正常工作。我在 nginx 上运行 php-fpm。
谢谢您的指点 -
答案1
这意味着共享对象上的库版本号较低。
也许您的系统上有两个不同的 openssl 库。您可能链接了其中一个,但 php 正在使用另一个。
尝试:
$ find / -name libssl.so*
并查看已安装的版本。还可以查看
$ ldd `which nginx` | grep ssl
找到 nginx 使用的库。
并检查
$ ldd `which php` | grep libssl
找出 php 正在使用什么库。
您使用的是什么操作系统?
您可以尝试升级到您的操作系统供应商提供的最新 openssl 包并重新启动 nginx 以便它使用更新的库吗?
如果您自己编译了 NGINX,则可能已静态链接了 openssl 库。ldd 测试将显示对操作系统 libssl.so 库没有依赖关系。nginx -V 将为您提供编译时选项,这些选项应会显示您使用的选项。
答案2
这是我在测试系统中所做的,它运行良好。从上面的输出来看,你似乎使用了多个版本的 openssl。请尝试找出你正在使用的版本,同时删除未使用的版本,并确保它不会破坏其他功能
php test.php
done
ldd `which php`|grep -i libssl
libssl.so.10 => /usr/lib64/libssl.so.10 (0x0000003edcc00000)
rpm -qf /usr/lib64/libssl.so.10
openssl-1.0.0-27.el6_4.2.x86_64