zoukankan      html  css  js  c++  java
  • Centos7 下 PHP 添加缺少的组件 sockets 和 openssl

    环境是 centos7 + nginx 1.14 + php 7.2.18,由于新增邮件发送功能,使用的是 socket 通讯的方式,需要开启 php 的 sockes 和 openssl 扩展

    安装 sockets 组件

    进入源码目录中待操作的组件子目录,并执行 phpize 工具

    不删解压后的源码是个好事!使用 cd 命令进入源码目录/ext/sockets 目录,在该目录下运行命令

    $ /usr/local/php/bin/phpize
    

    注:/usr/local/php/bin 是php的安装目录,在该目录下应该有 phpize 可执行文件存在

    错误应对

    如果出现 "Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment vari",则执行以下命令补齐缺失的功能

    $ yum install m4
    $ yum install autoconf
    

    如果出现 "Cannot find config.m4." ,则将该目录下的 config0.m4 复制并改名到同目录内

    $ cp config0.m4 config.m4
    

    再重新运行 phpize

    使用 ./configure 进行具体配置

    使用命令对要安装的插件进行具体配置,以 sockets 安装为例,运行以下命令

    $ ./configure --prefix=/usr/local/php --with-php-config=/usr/local/php/bin/php-config --enable-sockets
    

    注:/usr/local/php是 PHP 安装后的默认目录,/usr/local/php/bin/php-config 也是默认

    运行 make && make install

    如无错误,继续运行

    $ make && make install
    

    如无错误,以下是部分输出结果

    Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/
    Installing header files:          /usr/local/php/include/php/
    

    说明 sockets 扩展源码经过编译编程扩展后,安装在了第一行的目录内

    修改 PHP.ini 配置,启用扩展

    修改 php.ini,默认可以不更改 extension_dir='./' 的值,而只是去掉 extension=sockets 前面的分号注释,使其生效。保存后,重新启动 php-fpm (假设php-fpm在安装后的默认路径下)

    $ /etc/init.d/php-fpm reload
    

    查看结果

    运行 phpinfo() 函数,在输出页面查看是否有 sockets 的独立显示,并且 Sockets Support 的值为 enabled

    安装 Openssl 组件

    与安装 sockets 步骤相同,区别是在使用 ./configure 时的语句,不完全一样,使用

    $ ./configure --with-openssl --with-php-config=/usr/local/php/bin/php-config
    

    其它步骤相同

  • 相关阅读:
    数据结构-二叉搜索树
    多任务处理方式之一:多进程
    TCP并发服务器
    REST是什么?RESTFul又是什么?这二者的关系是怎样的?
    Python中的深浅拷贝的区别
    查找算法之 '二分法查找'
    排序算法之 '快速排序'
    CCS
    CCS
    CCS
  • 原文地址:https://www.cnblogs.com/cinlap/p/10883133.html
Copyright © 2011-2022 走看看