先吐槽,微信公众平台授权出问题了,尽然访问不了

一、问题描述:

 使用PHP中的库函数file_get_contents时出现Unable to find the wrapper "https"错误解决

  出现这个错误的原因很简单,因为你php配置出了问题,先说一下为什么会出现这个问题,原因是你的URL地址的前缀是https;在URL前加https前缀表明是用SSL加密的。 你的电脑与服务器之间收发的信息传输将更加安全。Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。

  http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。http的连接很简单,是无状态的。HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议要比http协议安全。读完这段话你也应该知道原因了。因为你的php配置中的加密模块并没有打开。

二、问题解决方案

(1)重新编译openssl扩展

(2)php7 源码目录路径:/home/www/demo/php-7.0.22/

(3)进入openssl的扩展目录:/home/www/demo/php-7.0.22/ext/openssl

(4)运行phpize生成编译的配置文件,可能会出现以下错误

Cannot find config.m4. 
Make sure that you run '/usr/bin/phpize' in the top level source directory of the module

解决办法:在当前目录复制一份编译需要的文件,执行命令: cp ./config0.m4 ./config.m4  即可,继续以上的操作,生成通过

www@tinywan:~/demo/php-7.0./ext/openssl$ /opt/php7.0.22/bin/phpize
Configuring for:
PHP Api Version:
Zend Module Api No:
Zend Extension Api No:

(5)检测编译文件是否通过

sudo ./configure --with-openssl --with-php-config=/opt/php7.0.22/bin/php-config

(6)开始编译

遇到以下错误

/usr/include/openssl/conf.h::: note: expected 'struct lhash_st_CONF_VALUE *' but argument is of type 'int *' make: *** [ext/openssl/openssl.lo] Error 

注意:我踩的一个坑,安装的是php7.0.22的版本,结果我下载的7.0.9的版本,这样子也会提示以下错误信息

Make sure that you run '/opt/php7.0.22/bin/phpize' in the top level source directory of the module

安装以下扩展

sudo apt-get install openssl
sudo apt-get install libssl-dev

继续编译

make

cp ./.libs/openssl.so /home/www/demo/php-7.0./ext/openssl/modules/openssl.so
cp ./.libs/openssl.lai /home/www/demo/php-7.0./ext/openssl/modules/openssl.la
PATH="$PATH:/sbin" ldconfig -n /home/www/demo/php-7.0./ext/openssl/modules
----------------------------------------------------------------------
Libraries have been installed in:
/home/www/demo/php-7.0./ext/openssl/modules If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,--rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for
more information, such as the ld() and ld.so() manual pages.
---------------------------------------------------------------------- Build complete.
Don't forget to run 'make test'.

安装

www@ubuntu1:~/demo/php-7.0./ext/openssl$ sudo make install
[sudo] password for www:
Installing shared extensions: /opt/php7.0.22/lib/php/extensions/no-debug-non-zts-/

(7)修改配置php.ini文件:sudo vim /opt/php7.0.22/etc/php.ini 添加以下代码

extension=/opt/php7.0.22/lib/php/extensions/no-debug-non-zts-/openssl.so

(8)重启服务器,查看扩展是否安装成功

(9)安装结束

PHP7 学习笔记(九)phpsize动态编译openssl扩展 (微信公众平台)的更多相关文章

  1. PHP7 学习笔记(五)安装event扩展(libevent)

    一.描述:有效安排I/O,时间和信号的扩展 使用可用于特定平台的最佳I/O通知机制的事件,是PHP基础设施的libevent端口. 二.下载地址:http://pecl.php.net/package ...

  2. Java学习:注解,反射,动态编译

    狂神声明 : 文章均为自己的学习笔记 , 转载一定注明出处 ; 编辑不易 , 防君子不防小人~共勉 ! Java学习:注解,反射,动态编译 Annotation 注解  什么是注解 ? Annotat ...

  3. Spring学习笔记之aop动态代理(3)

    Spring学习笔记之aop动态代理(3) 1.0 静态代理模式的缺点: 1.在该系统中有多少的dao就的写多少的proxy,麻烦 2.如果目标接口有方法的改动,则proxy也需要改动. Person ...

  4. 多线程学习笔记九之ThreadLocal

    目录 多线程学习笔记九之ThreadLocal 简介 类结构 源码分析 ThreadLocalMap set(T value) get() remove() 为什么ThreadLocalMap的键是W ...

  5. MDX导航结构层次:《Microsoft SQL Server 2008 MDX Step by Step》学习笔记九

    <Microsoft SQL Server 2008 MDX Step by Step>学习笔记九:导航结构层次   SQL Server 2008中SQL应用系列及BI笔记系列--目录索 ...

  6. python3.4学习笔记(九) Python GUI桌面应用开发工具选择

    python3.4学习笔记(九) Python GUI桌面应用开发工具选择 Python GUI开发工具选择 - WEB开发者http://www.admin10000.com/document/96 ...

  7. Go语言学习笔记九: 指针

    Go语言学习笔记九: 指针 指针的概念是当时学C语言时了解的.Go语言的指针感觉与C语言的没啥不同. 指针定义与使用 指针变量是保存内存地址的变量.其他变量保存的是数值,而指针变量保存的是内存地址.这 ...

  8. go微服务框架kratos学习笔记九(kratos 全链路追踪 zipkin)

    目录 go微服务框架kratos学习笔记九(kratos 全链路追踪 zipkin) zipkin使用demo 数据持久化 go微服务框架kratos学习笔记九(kratos 全链路追踪 zipkin ...

  9. Java程序猿的JavaScript学习笔记(10—— jQuery-在“类”层面扩展)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

随机推荐

  1. [转帖] 读懂YML文件.. 书买了还没看完...

    Copy From https://www.cnblogs.com/CloudMan6/p/8370501.html   读懂 Deployment YAML - 每天5分钟玩转 Docker 容器技 ...

  2. Intel SP处理机以及AMD处理器的一些对比资料

    1. EPYC 与 intel的CPU对比 2. Intel SP处理器参数: 3. AMD处理器参数 4. Intel SP处理器部分参数2 5. Intel SP处理器简单说明 6. intel ...

  3. SAP顾问岗位要求

    岗位职责: 1.负责SAP系统各模块日常运维工作,解决用户在系统操作过程中遇到的问题: 2.评估用户需求(新需求.功能优化)的可实现性,完成SAP系统及相关系统的配置调整及功能实现: 3.负责CRM等 ...

  4. 使用 jstack 查询线程死锁错误日志 定位问题

    定位问题 (1) 首先 找到相应的进程 使用 ps -ef | grep 'com.sankuai.qcs.regulation.dispatch' 找到进程的ID;==>21980 (2) t ...

  5. D3.js & Data Visualization & SVG

    D3.js & Data Visualization & SVG https://davidwalsh.name/learning-d3 // import {scaleLinear} ...

  6. 深度学习中 Batch Normalization

    深度学习中 Batch Normalization为什么效果好?(知乎) https://www.zhihu.com/question/38102762

  7. hdu6165(拓扑排序+tarjan缩点)

    题意:就任意两个点能否到达: 解题思路:首先将图简化,比如假设图里有一个环,那么,这环内两个点肯定是能相互到达的,那么就不用考虑这环内的点了,很简单就想到用tarjan算法将环缩成一个点,然后就是判断 ...

  8. 退役前的记录(2018.10.14-NOIP2018)

    退役前的记录 诸位好,我是\(CJ\)最菜的\(Oier\),已经是\(G2\)的老年选手了,不知道什么时候就会退役了,总之\(G1\ double\)的机会已经没有了,去年因为联赛失利而止步,而今年 ...

  9. Network of Schools POJ - 1236(强连通+缩点)

    题目大意 有N个学校,这些学校之间用一些单向边连接,若学校A连接到学校B(B不一定连接到A),那么给学校A发一套软件,则学校B也可以获得.现给出学校之间的连接关系,求出至少给几个学校分发软件,才能使得 ...

  10. day22 collection 模块 (顺便对比queue也学习了一下队列)

    collection 定义命名元祖,让元祖的每个元素可以通过类似对象属性的方法用".属性"及其方便的取值. 定义可前后拿取值且可迭代的双端队列 定义有顺序的字典 定义有默认值的字典 ...