• 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,测试如下图所示表示成功

  • 相关阅读:
    MySQL 初识别语句,数据库、表、行的增删改查
    mysql如何从全备文件中恢复单个库或者单个表
    Shell 同步时间脚本
    app手机端连接tomcat电脑端服务器
    大于号转义符>---小于号转义符<
    轻松实现页面提交中
    重复提交问题(一)
    json
    ExtJs 6.0+快速入门,ext-bootstrap.js文件的分析,各版本API下载(一)
    ExtJS 6 如何引入Dashboard模版
  • 原文地址:https://www.cnblogs.com/iaknehc/p/7628022.html
Copyright © 2020-2023  润新知