PHP和OpenSSL在服务更改后停止工作

时间:2017-01-11 11:08:27

标签: php hosting php-openssl

最近我要求我的托管公司设置一个新软件包,从那时起,我现有的软件包现在给我提供了与使用openSSL有关的错误。

例如,我有一个生成GUID的函数:

function generateGUIDV4($data)
{
    assert(strlen($data) == 16);
    $data[6] = chr(ord($data[6]) & 0x0f | 0x40); // set version to 0100
    $data[8] = chr(ord($data[8]) & 0x3f | 0x80); // set bits 6-7 to 10
    return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
}

$newID = generateGUIDV4(openssl_random_pseudo_bytes(16));

现在抛出错误:Fatal error: Call to undefined function openssl_random_pseudo_bytes()。根据我的研究,这与Fatal error: Call to undefined function openssl_random_pseudo_bytes()有关。

现在,当我从我的应用程序调用任何再次指向openSSL的Web服务时,我现在也收到错误。

错误

Objectfaultcode: "WSDL"faultstring: "SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://*******'"__proto__: Object 

。我已隐藏网络服务,因为它不公开。从我研究过的这一点再次指向OpenSSL:SOAP-ERROR: Parsing WSDL: Couldn't load from <URL>

PHP Ini显示已安装openSSL IS

OpenSSL support enabled
OpenSSL Version OpenSSL 0.9.8b 04 May 2006

任何人都有任何想法或指出我正确的方向?我有托管公司对此进行调查。

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题,它与托管公司没有任何关系。

我发布了该网站的新版本,但在发布配置文件中,我告诉它删除所有删除包含PHP版本的.htaccess文件的文件。

不幸的是,我需要5.4或更高版本才能运行我的代码,但由于文件被删除,因此它下降到PHP的5.2。

所以我上传了一个新的.htaccess文件,其中包含正确的版本,一切正常。

希望如果他们像我一样愚蠢,这可能对某人有所帮助。