ZBlogPHP错误Call to undefined function openssl***解决办法

2019年01月09日 07:37:53益点益滴5966

由于较新版本ZBlogPHP程序和应用中心插件采用了新机制,最近有很多朋友在启用收费应用时出现openssl_public_encrypt(): Don't know how to get public key from this private key、Call to undefined function openssl_pkey_get_public()等包含openssl字样的错误,这种情况大家会直接怀疑是应用本身的问题,其实不是,今天益吾库就来讲一讲这其中的原因和解决方法。

出现这些错误提示其实就是PHP环境的OpenSSL扩展模块没有开启或本身存在问题,ZBlogPHP系统无法运行收费应用核验程序。实际上,大多主流服务器空间都默认开启了OpenSSL模块,少数未开启情况常见于自配环境(如phpstudy本地环境)。

OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。

在PHP环境中如何开启OpenSSL模块?

Windows操作系统开启方法:

1:首先在php目录中找到php.ini配置文件,搜索一下;extension=php_openssl.dll是否存在, 如果存在去掉前面的注释符‘;’即可, 如果不存在这行,那么添加extension=php_openssl.dll。

2:如果没有 php_openssl.dll 这个文件,则需要重新安装较新的完整版环境;

3:重启apache或iis;

Linux操作系统开启方法:

以PHP版本php-5.5.7为例,如果服务器上存在PHP安装包文件最好,如果已经删除,去下载和phpinfo页面显示版本一样的PHP安装文件,如 php-5.5.7.tar.gz,搜狐镜像下载地址为: http://mirrors.sohu.com/php/

用ssh工具连接到主机

# 下载到/var/www/php5目录下

cd /var/www/php5

wget http://mirrors.sohu.com/php/php-5.5.7.tar.gz

# 解压

tar zxvf php-5.5.7.tar.gz

# 进入PHP的openssl扩展模块目录

cd php-5.5.7/ext/openssl/

/var/www/php5/bin/phpize # 这里为你自己的phpize路径,如果找不到,使用whereis phpize查找

# 执行后,发现错误 无法找到config.m4 ,config0.m4就是config.m4。直接重命名

mv config0.m4 config.m4

/var/www/php5/bin/phpize

./configure --with-openssl --with-php-config=/var/www/php5/bin/php-config

make

make install

# 安装完成后,会返回一个.so文件(openssl.so)的目录。在此目录下把openssl.so 文件拷贝到你在php.ini 中指定的 extension_dir 下(在php.ini文件中查找:extension_dir =),我这里的目录是 var/www/php5/lib/php/extensions

# 编辑php.ini文件,在文件最后添加

extension=openssl.so

# 重启Apache即可

/usr/local/apache2/bin/apachectl restart

至此,已成功添加openssl支持。

当然,如果没有空间配置权限,则需要联系空间商处理,该模块开启是非常有必要和比较常见的配置。


超赞,真给力!嗯,必须鼓励~

打赏2
账号:mxy310@163.com[复制]
账号:77940140[复制]