linux Gmssl
https://blog.csdn.net/u011132987/article/details/102719203
[root@localhost ~]# find / -name libssl.so.1.1
/usr/local/lib64/libssl.so.1.1
[root@localhost ~]# ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1
[root@localhost ~]# ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
[root@localhost ~]# openssl version
编译与安装
GmSSL的PHP扩展代码位于源代码中的的php/ext/openssl
目录,PHP扩展需要和PHP源代码目录树一起编译,过程如下:
- 下载并编译安装GmSSL;
- 下载最新的PHP源代码并解压;
- 用GmSSL的
php/ext/openssl
目录替代PHP源代码中的ext/openssl
目录; - 执行
./configure --with-openssl; make; sudo make install
编译和安装PHP; - 修改PHP配置文件
php.ini
启用openssl扩展,即取消php.ini
中extension=openssl
前面的注释。 - 可以通过PHP的
phpinfo()
函数确认openssl扩展已经启用,通过ldd
命令检查PHP的二进制程序调用了GmSSL的动态库而不是系统默认的OpenSSL动态库。
首先下载并编译安装GmSSL-2.0代码,在Linux操作系统中通常默认的编译选项为—prefix=/usr/local
和—openssldir=/usr/local/ssl
。然后从源代码编译PHP。PHP的默认配置不编译OpenSSL扩展,需要显式指定—with-openssl
才会编译OpenSSL扩展。可以通过ldd
检查安装好的php
可执行程序是否链接了预期的库。
cp php.ini-development /opt/php7/etc/php.ini
cp -pr sapi/fpm/ /opt/php7/
chmod -R 777 /opt/php7/fpm/
cp /opt/php7/etc/php-fpm.conf.default /opt/php7/etc/php-fpm.conf
mv /opt/php7/etc/php-fpm.d/www.conf.default /opt/php7/etc/php-fpm.d/www.conf
i、启动PHP
/opt/php7/sbin/php-fpm -t
/opt/php7/sbin/php-fpm
在安裝 PHP 到系统中时要是发生「undefined reference to libiconv_open'」之类的错误信息,那表示在「./configure 」沒抓好一些环境变数值。错误发生点在建立「-o sapi/cli/php」是出错,没給到要 link 的 iconv 函式库参数。 解决方法:编辑Makefile 大约77 行左右的地方: EXTRA_LIBS = ..... -lcrypt 在最后加上 -liconv,例如: EXTRA_LIBS = ..... -lcrypt -liconv 然后重新再次 make 即可。