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

一、问题描述:

 使用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. Tools (StExBar vs Cmder)which can switch to command line window on context menu in windows OS

    https://tools.stefankueng.com/StExBar.html https://github.com/cmderdev/cmder

  2. Linux技巧汇总

    Linux改变用户登录的Shell: usermod -s /bin/zsh 用户名 改变文件夹.文件的所属用户组和用户 chown root:root testfile

  3. 关于splice()方法,slice() 、split()方法讲解,reverse()方法、replace()方法

    1.slice() 方法可从已有的数组中返回选定的元素. 语法 arrayObject.slice(start,end) 参数 描述 start 必需.规定从何处开始选取.如果是负数,那么它规定从数组 ...

  4. python学习笔记三——控制语句

    2.5 运算符与表达式 2.5.1 算术运算符和算术表达式 算术运算符包括四则运算符.求模运算符和求幂运算符. 算术运算符 加减乘除:+ - * / 表达式:x+y   x-y   x*y  x/y ...

  5. 使用pygal_maps_world展示世界地图

    pygal.i18n在2.0版本以后改为pygal_maps_world.i18n获取国家码和国家名对应关系下载安装包:pygal_maps_world-1.0.2.tar.gz解压后命令行安装: p ...

  6. MySQL将一张表的某些列数据,复制到另外一张表,并且修改某些内容

    MySQL将一张表的某些列数据,复制到另外一张表 INSERT INTO t_topic_content(content,topicId) SELECT content,id FROM t_topi ...

  7. day31 logging 日志模块

    # logging 日志模块 ****** # 记录用户行为或者代码执行过程 # print 来回注释比较麻烦的 # logging # 我能够“一键”控制 # 排错的时候需要打印很多细节来帮助我排错 ...

  8. 【题解】 bzoj3956: Count (ST表+单调栈)

    题面 Solution 看了一点点题解,自己又刚了\(2h30min\),刚了出来qwq,我好菜啊qwq 貌似这道题是BZOJ 4826的弱化,弱化都不会qwq凉凉 Solution 首先你可以考虑, ...

  9. 自学Linux Shell3.1-帮助命令man

    点击返回 自学Linux命令行与Shell脚本之路 3.1-帮助命令man 1.man命令概述 默认bash shell提示符是美元符号($),这个符号表明shell在等待用户输入. Linux ma ...

  10. pyinstaller模块使用

    目前pip install pyinstaller已经成熟 但是还是有一些坑,郁闷了好久,记一下注意点吧. 将py脚本打包成exe文件时,如果导入了非python自带库,则需要将导入的库从site-p ...