• windows平台编译PHP及扩展 和 踩过的坑


    因为近期在公司的业务上,可能会写一些PHP扩展,然后需要研究PHP内核以及编译(扩展)。

    但是windows上关于php7.x源码编译安装的资料比较少,所以就把这两天看到的资料和踩过的坑记录一下。

    首先先把官方文档的地址贴出来:

    PHP 5.4 - 7.0+版本的(以下称 旧文档),参考这篇文档: https://wiki.php.net/internals/windows/stepbystepbuild

    PHP 7.1 及以后的版本(以下称 新文档),请参考这篇文档: https://wiki.php.net/internals/windows/stepbystepbuild_sdk_2

    然后我主要做的是7.1的版本,所以参考的是新文档,这两篇文档的结构路子都差不多,看明白其中一个,另一个照葫芦画瓢就可以了。

    但是切忌,一开始不要看混淆了,要不然会很痛苦。

    原文档是英文,然后我找到一篇翻译的文章:https://blog.csdn.net/xiaoxiong_web/article/details/102701343

    然后说一下我目前踩过的坑:

    1、下载 二进制工具包和PHP依赖库 踩过的坑(严格来说,这不能叫坑,只能说自己不小心看错了文档)

      在下载要求那里,不管新旧版本,都需要三样东西(源代码、二进制工具包和PHP依赖库)。

          下载源代码这一块,应该都没有什么问题,下载对应的版本就可以了。

      但是后面两个,在新旧版本文档中,操作是不一样的(我就是在这个地方看混淆了,导致在这方面浪费大量的时间)

      在旧版本中,下载 二进制工具包和PHP依赖库 都是有明确的 链接,直接点击进去就能找到。

      在新版本中,先要去 github 把 二进制工具包 down 下来,然后通过命令行,执行 "phpsdk_deps -u" 命令来自动获取依赖。

    2、执行相关脚命令的坑

      按照官方文档中的描述,在构建目录以后。

      执行一些命令之前(比如:phpsdk_buildtree phpdev ),

      你要将 php-sdk/bin/ 目录添加到 环境变量 PATH 中,否则在执行的时候,它可能会提示找不到。

    3、 执行 phpsdk_deps -u 下载依赖非常慢

      在 PHP 源码目录下 执行 "phpsdk_deps -u" 获取依赖的时候,速度非常慢。执行了2个多小时,才下载了4个包。

      为了找出问题,就直接通过浏览器去下载相关包的时候,发现打开VPN会快很多。

      然后就顺着 phpsdk_deps.php 这个脚本,找到在 php-sdk/lib/php/libsdk/SDK/FileOps.php:116行的download 方法,整个开发工具依赖包都是通过这个地方下载的。

      最后,在 140 行加入ip代理,下载就非常快。

      但是需要注意的是,在139行要加一个判断 ,只有下载地址没有 series 关键字目录的时候,才走代理。

      因为 所有的要下载的依赖包,是通过这个列表中的文件去决定的。https://windows.php.net/downloads/php-sdk/deps/series/  

      而phpsdk_deps 命令在获取这个列表里文件内容的时候,如果走代理,它可能会获取不到,从而会抛出一个异常。

      

    ============  后续更新  ============

      

    Talk is cheap, show me the code.
  • 相关阅读:
    CSS
    前端初识
    JQuery实现前端增删上下移文字计数
    jq实现去底部去顶部功能
    JQuery选择器,一篇博客就够(非原创)
    input,textarea,select设置默认字体样式
    图片-定义select向下箭头样式
    自定义单选框,复选框样式
    HTML(多行)文本超过部分隐藏,末尾显示(...)
    ZooKeeper可以用来做什么
  • 原文地址:https://www.cnblogs.com/cidgur/p/12680778.html
Copyright © 2020-2023  润新知