linux已经安装openssl,如何重新编译php支持openssl模块

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux已经安装openssl,如何重新编译php支持openssl模块相关的知识,希望对你有一定的参考价值。

重新编译加上参数 --with-openssl ,就OK,如果本地没有openssl支持,在config的checker阶段会过不去的
===================
相关过程如下

# 下载到/var/www/php5目录下
cd /var/www/php5
wget http://mirrors.sohu.com/php/php-5.2.14.tar.gz
# 解压
tar zxvf php-5.2.14.tar.gz
# 进入PHP的openssl扩展模块目录
cd php-5.2.14/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

参考资料
http://www.jb51.net/article/50173.htm
参考技术A 下载php的源代码,执行三步安装就行了:
./configure
make && sudo make install
sudo make clean
就可以了,然后编辑php.ini文件加入模块支持:
extensions=openssl.so
好了。大工告成~~~本回答被提问者和网友采纳
参考技术B yum search php | grep -i openssl
查找到对应的组件后
yum Install 相应的组件

php添加openssl扩展

在一次使用composer安装laravel框架时,系统提示没有开启openssl支持,
之后再php.ini中开启了openssl但是还是不行,后来运行phpinfo()才发现
根本就没有安装openssl扩展,使用php -i查看编译php时的选项,确实没有
添加--with-openssl,如果重新编译php又觉得很麻烦,后来网上找资料,发现
可以不用重新编译php也能添加扩展模块。

以下就是这次为php添加openssl模块的笔记,觉得这个方法确实很方便,所以有必要
记录一下

系统环境:
php 7.1.9

php安装路径:
/usr/local/php


第一步:找到与已安装php版本相同的源代码包,(使用php --version查看php版本)
如果之前有源代码包,直接解压,没有网上下载相同版本后再解压。
使用命令:tar -zxvf xxxx.tar.gz

第二步:进入解压后的目录,会看到一个ext的目录,进入该目录,其中有一个openssl目录,如下图所示

第三步:进入openssl目录,执行如下命令

 1 [root@localhost openssl]# /usr/local/php/bin/phpize   //视自己的安装环境而定,找到自己已安装php中的phpize
 2 Cannot find config.m4.                               //提示找不到config.m4文件,执行如下mv操作
 3 Make sure that you run \'/usr/local/php/bin/phpize\' in the top level source directory of the module
 4 
 5 [root@localhost openssl]# ls
 6 config0.m4  config.w32  CREDITS  openssl.c  openssl.mak  php_openssl.h  README  tests  xp_ssl.c
 7 [root@localhost openssl]# mv config0.m4 config.m4       //将目录中的config0.m4直接改名为config.m4
 8 [root@localhost openssl]# /usr/local/php/bin/phpize     //再执行一次
 9 Configuring for:
10 PHP Api Version:         20160303
11 Zend Module Api No:      20160303
12 Zend Extension Api No:   320160303

第四步:执行完上面的步骤后,会看到openssl目录中生成了configure文件,如下图

接着执行如下命令即可:

 1 [root@localhost openssl]# ./configure --with-openssl --with-php-config=/usr/local/php/bin/php-config
 2 checking for grep that handles long lines and -e... /bin/grep
 3 checking for egrep... /bin/grep -E
 4 checking for a sed that does not truncate output... /bin/sed
 5 checking for cc... cc
 6 checking for C compiler default output file name... a.out
 7 ...
 8 ...     //此处省略部分执行过程
 9 
10 
11 //configure完后,接着make编译,部分代码如下:
12 [root@localhost openssl]# make
13 /bin/sh /usr/src/lamp/php-7.1.9/ext/openssl/libtool --mode=compile cc  -I. -I/usr/src/lamp/php-7.1.9/ext/openssl -DPHP_ATOM_INC -I/usr/src/lamp/php-7.1.9/ext/openssl/include -I/usr/src/lamp/php-7.1.9/ext/openssl/main -I/usr/src/lamp/php-7.1.9/ext/openssl -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib  -DHAVE_CONFIG_H  -g -O2   -c /usr/src/lamp/php-7.1.9/ext/openssl/openssl.c -o openssl.lo
14 mkdir .libs
15  cc -I. -I/usr/src/lamp/php-7.1.9/ext/openssl -DP
16 ...
17 ...    //此处省略部分执行过程
18 
19 //make编译过程完后,执行make install 安装过程
20 [root@localhost openssl]# make install
21 Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20160303/    //生成的openssl.so文件的目录位置,视自己php环境而定

第五步:编辑php.ini文件

vim /usr/local/php/etc/php.ini
//开启extension_dir选项,并指定扩展文件存放目录
//配置文件中默认如下所示
;extension_dir=\'./\'
//开启并配置如下所示
extension_dir=\'/usr/local/php/etc/extension\'   //自己指定

如下图所示

第六步:将第四步中openssl.so文件拷贝到第五步中extension_dir指定的目录中,如下图所示

第七步:编辑php.ini文件,开启openssl扩展,在php.ini文件末尾添加如下代码

1 extension=openssl.so

保存并退出,重启apache,测试如下图所示表示成功

以上是关于linux已经安装openssl,如何重新编译php支持openssl模块的主要内容,如果未能解决你的问题,请参考以下文章

linux环境php.ini已开启openssl但phpinfo里没有

UBUNTU如何编译安装??

如何知道 php zip 扩展是不是已经安装?如何在 Linux 中重新编译 PHP? [关闭]

linux下如何编译安装openssl模块?请高手详细解答一下。。。。。。。。。。【】【】

OpenSSL的编译和使用

Linux软件安装调试 源代码包编译安装和 二进制包配置