php网站出现Don't know how to get public key from this private警告提示

php网站出现以下错误提示:

Warning: openssl_verify(): Don't know how to get public key from this private key in...
Warning: openssl_verify(): supplied key param cannot be coerced into a public key in...
Warning: openssl_public_decrypt(): Don't know how to get public key from this private key in...
Warning: openssl_public_decrypt(): key parameter is not a valid public key in...

原因是apache和php的openssl版本不一致导致的。

apache和php的openssl功能都依赖于libeay32.dll和 ssleay32.dll这两个库,但是这两个文件并非被apache和php共用,而是各用各的。比如apache中这两个文件一般在bin目录,而php中就在php目录中。仔细看他们的信息会发现,这些文件都有版本信息,关键就是这个版本不一致导致。

有人说将php中的这两个文件直接复制到apache的bin目录中可以解决问题,但是不推荐这样做,因为也许在其他地方会出现错误。如果是自己配置,就下载apache和php中这两个文件版本一致的。

关键词: php php教程