最近开发的项目中使用了php版本的支付宝sdk,在我自己的wamp的开发电脑上运行正常,部署到公司的lnmp环境上支付宝sdk报错openssl_get_privatekey函数找不到,用phpinfo一看lnmp环境没有开启openssl扩展。下面是安装扩展的步骤:
1、用phpinfo查看了下当前php的版本为5.4.7
2、下载相应的源码包上传到服务器、并解压源码包
3、进入源码包的/ext/openssl目录,会发现目录下面有个config0.m4文件,将其重命名为config.m4文件
4、执行/usr/local/php/bin/phpize (这个要根据php的安装路径来设置),执行好了之后openssl目录下面会多出个 configure 文件
5、执行 ./configure --with-openssl --with-php-config=/usr/local/php/bin/php-config (这个要根据php的安装路径来设置),这个执行成功之后openssl目录下面就多出了个make文件
6、执行make
7、执行make install,安装成功之后会返回一个openssl.so文件的路径,比如我这边返回的是
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/
幸运的是这个目录和我php.ini 中指定的 extension_dir指定的目录是一样的,不然要把openssl文件拷贝到合适的目录
8、在php.ini 里面加入extension=openssl.so 重启php-fpm 服务,大工告成