首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用PHP-Windows-Builder 构建PHP和扩展入门指南

使用PHP-Windows-Builder 构建PHP和扩展入门指南

作者头像
Tinywan
发布于 2024-03-20 13:15:36
发布于 2024-03-20 13:15:36
18600
代码可运行
举报
文章被收录于专栏:开源技术小栈开源技术小栈
运行总次数:0
代码可运行

上一章节大概介绍了一下 是什么?了解更多请点击一下链接查看。这篇着重强调一下怎么正确使用。

Fork 官方仓库

官方仓库地址:https://github.com/php/php-windows-builder

流水线配置

官方默认配置位于你的Github项目仓库.github/workflows/php.yml,这里我们直接新建一个 https://github.com/Tinywan/php-windows-builder/actions

php8.3.2.yml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
name: Build PHP 8.3.2
on:
  release:
    types: [published]
jobs:
  php:
    strategy:
      matrix:
        arch: x64
        ts: nts
    runs-on: windows-2019
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Build
        uses: ./php
        with:
          php-version: ${{ github.event.inputs.php-version }}
          arch: ${{ matrix.arch }}
          ts: ${{ matrix.ts }}

  release:
    runs-on: ubuntu-latest
    steps:
      - name: Upload artifact to the release
        uses: php/php-windows-builder/release@v1
        with:
          release: 8.3.2
          token: ${{ secrets.PHP_TOKEN }}

注意配置:

  • PHP 版本:8.3.2
  • 架构arch:x64
  • 线程安全:nts

构建PHP

运行流水线

环境监测

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Run actions/checkout@v4
  with:
    repository: Tinywan/php-windows-builder
    token: ***
    ssh-strict: true
    persist-credentials: true
    clean: true
    sparse-checkout-cone-mode: true
    fetch-depth: 1
    fetch-tags: false
    show-progress: true
    lfs: false
    submodules: false
    set-safe-directory: true
Syncing repository: Tinywan/php-windows-builder
Getting Git version info
Temporarily overriding HOME='D:\a\_temp\f932e9ec-2aae-4f93-a890-821934d7acaa' before making global git config changes
Adding repository directory to the temporary git global config as a safe directory
"C:\Program Files\Git\bin\git.exe" config --global --add safe.directory D:\a\php-windows-builder\php-windows-builder
Deleting the contents of 'D:\a\php-windows-builder\php-windows-builder'
Initializing the repository
Disabling automatic garbage collection
Setting up auth
Fetching the repository
Determining the checkout info
Checking out the ref
"C:\Program Files\Git\bin\git.exe" log -1 --format='%H'
'120c092ef7c71be9ecca3a5f79c2ae5d659ca0d0'

正式构建

这里比较漫长,请耐心等待哦!

终于构建结束啦!

下载构建好的包

下载地址:https://github.com/Tinywan/php-windows-builder/actions/runs/8282409968

解压:php-8.3.2-nts-Win32-vs16-x64.zip

查看PHP版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ ./php.exe -v
PHP 8.3.2 (cli) (built: Mar 14 2024 14:42:01) (NTS Visual C++ 2019 x64)
Copyright (c) The PHP Group
Zend Engine v4.3.2, Copyright (c) Zend Technologies

查看PHP扩展

构建PHP扩展

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
name: Build PHP Extension
on:
  workflow_dispatch:
    inputs:
      extension_url:
        description: 'Extension URL'
        required: true
      extension_ref:
        description: 'Extension ref'
        required: true
jobs:
  get-extension-matrix:
    runs-on: ubuntu-latest
    outputs:
      matrix: ${{ steps.extension-matrix.outputs.matrix }}
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Get the extension matrix
        id: extension-matrix
        uses: ./extension-matrix
        with:
          extension-url: ${{ inputs.extension_url }}
          extension-ref: ${{ inputs.extension_ref }}
          arch-list: 'x64, x86'
          ts-list: 'nts, ts'

  extension:
    needs: get-extension-matrix
    runs-on: ${{ matrix.os }}
    strategy:
      matrix: ${{fromJson(needs.get-extension-matrix.outputs.matrix)}}
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Build the extension
        uses: ./extension
        with:
          extension-url: ${{ inputs.extension_url }}
          extension-ref: ${{ inputs.extension_ref }}
          php-version: ${{ matrix.php-version }}
          arch: ${{ matrix.arch }}
          ts: ${{ matrix.ts }}

  artifacts:
    runs-on: ubuntu-latest
    needs: extension
    steps:
      - name: Upload artifacts
        uses: actions/upload-artifact/merge@v4
        with:
          name: artifacts
          delete-merged: true

构建结果

点击下载artifacts构建好的扩展包Xdebug,解压后

随便解压一个php_xdebug-3.3.1-8.1-nts-vs16-x64.zip 看看,你想要的php_xdebug.dll就已经在里面啦!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-03-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源技术小栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用 mitmproxy 做拦截代理
mitmproxy 就是用于 MITM 的 proxy,MITM 即中间人攻击(Man-in-the-middle attack)。用于中间人攻击的代理首先会向正常的代理一样转发请求,保障服务端与客户端的通信,其次,会适时的查、记录其截获的数据,或篡改数据,引发服务端或客户端特定的行为。
赵云龙龙
2020/02/24
3.8K0
安装mitmproxy以及遇到的坑和简单用法
mitmproxy 是一款工具,也可以说是 python 的一个包,在命令行操作的工具。
sergiojune
2019/09/25
2.2K0
安装mitmproxy以及遇到的坑和简单用法
APP爬虫-mitmproxy安装与简单使用
我们通常使用的抓包工具就是Fiddler和Charles这种图形化的,Charles的优点是跨平台,Windows和Mac都可以使用,Fiddler的优点是功能“极其”强大,不仅拥有抓包功能,还拥有中间人攻击的功能,但是使用成本太高了,我们做爬虫开发,使用到Fiddler的功能不过十之二三罢了。今天我们主要讲的是mitmproxy这款工具,这是一款专业的中间人攻击工具,mitmproxy 不仅可以截获请求帮助开发者查看、分析,最最重要的是支持Python进行定制化二次开发。例如:截获浏览器的请求内容,并将数据处理后存储到数据库,再将内容交给浏览器;如果出现异常时,发出邮件通知,并返回给浏览器一个空的页面。 mitmproxy有以下几个特点:
星星在线
2020/05/22
2.3K0
Python3网络爬虫实战-7、APP爬
MitmProxy 是一个支持 HTTP 和 HTTPS 的抓包程序,类似 Fiddler、Charles 的功能,只不过它是一个控制台的形式操作。 同时 MitmProxy 还有两个关联组件,一个是 MitmDump,它是 MitmProxy 的命令行接口,利用它我们可以对接 Python 脚本,用 Python 实现监听后的处理。另一个是 MitmWeb,它是一个 Web 程序,通过它我们可以清楚地观察到 MitmProxy 捕获的请求。 本节我们来了解一下 MitmProxy、MitmDump、MitmWeb 的安装方式。
py3study
2020/01/03
7260
Python3网络爬虫实战-7、APP爬
以羊了个羊为例,浅谈小程序抓包与响应报文篡改
本来是想以天眼查小程序作为抓包主体的,但是这两天羊了个羊实在是太火了,没办法,咱们也来追一追热点,今天我们的目标程序就是羊了个羊了!
可以叫我才哥
2022/11/11
1K0
以羊了个羊为例,浅谈小程序抓包与响应报文篡改
Mitmproxy 抓包工具安装使用
Mitmproxy是一个使用python编写的中间人代理工具,跟Fiddle、Charles等等的抓包工具是差不多的,同样可以用于拦截、修改、保存http/https请求。比起Fiddle、Charles,mitmproxy有一个最大的特点是支持python自定义脚本。
清风穆云
2021/10/18
1.6K0
Mitmproxy 抓包工具安装使用
面试官问我会不会APP抓包,我..
App抓包应该是每个爬虫工程师都避不开的话题,在之前我也写过关于自动参与「抽奖助手」 抽奖的文章,当时使用的抓包工具是Charles,有需要的朋友可以翻下之前的文章。
猴哥yuri
2019/04/25
1.3K0
面试官问我会不会APP抓包,我..
「docker实战篇」python的docker-抖音分析接口数据分析(21)
PS:找到项目的目录,执行mitmdump -s python文件 -p指定端口。然后就可以将对应的代理吐出来的数据获取到。 流程fildder就是获取url地址,mitmdump出去response吐出来的数据。然后进行处理在存储到mongodb中。技术目标就是不需要人的参与!慢慢的获取完数据后下一步使用appium来进行机器模拟人来点击滑动!
IT架构圈
2019/04/26
1.2K0
「docker实战篇」python的docker-抖音分析接口数据分析(21)
[602]app抓包之mitmproxy的安装和使用
mitmproxy是一个支持HTTP和HTTPS的抓包程序,类似Fiddler、Charles的功能,只不过它通过控制台的形式操作。
周小董
2022/04/13
5.5K0
[602]app抓包之mitmproxy的安装和使用
App爬虫神器mitmproxy和mitmdump的使用
mitmproxy是一个支持HTTP和HTTPS的抓包程序,有类似Fiddler、Charles的功能,只不过它是一个控制台的形式操作。 mitmproxy还有两个关联组件。一个是mitmdump,它是mitmproxy的命令行接口,利用它我们可以对接Python脚本,用Python实现监听后的处理。另一个是mitmweb,它是一个Web程序,通过它我们可以清楚观察mitmproxy捕获的请求。 下面我们来了解它们的用法。 一、准备工作 请确保已经正确安装好了mitmproxy,并且手机和PC处于同一个
崔庆才
2018/06/25
13.2K0
关于手机App的Https抓包
我喜欢用 Mitmproxy 来处理手机 App 抓包之类的工作,本来用它来抓 Https 包是很容易的一件事,只要设置好代理,浏览 mitm.it 按提示安装证书即可,可是当 Android 版本升
LA0WAN9
2021/12/14
1.6K0
关于手机App的Https抓包
mitmproxy 抓包神器-1.环境准备与抓取浏览器请求
常见的抓包工具有fiddler 和 charles, 这些工具都是需要安装本地客户端,python 版的抓包工具可以用 mitmproxy。 mitmproxy 相比Charles、fiddler的优点在于,它可以命令行方式或脚本的方式进行mock
上海-悠悠
2023/01/03
1.6K0
mitmproxy 抓包神器-1.环境准备与抓取浏览器请求
一篇文章教会你用Python抓取抖音app热点数据
今天给大家分享一篇简单的安卓app数据分析及抓取方法。以抖音为例,我们想要抓取抖音的热点榜数据。
Python进阶者
2020/03/26
1.2K0
一篇文章教会你用Python抓取抖音app热点数据
[601]app抓包Charles安装之爬取微信小程序
Charles,一个HTTP代理服务器,HTTP监视器,反转代理服务器,当程序连接Charles的代理访问互联网时,Charles可以监控这个程序发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request, response和HTTP headers (包含cookies与caching信息)。
周小董
2022/04/13
3.3K0
[601]app抓包Charles安装之爬取微信小程序
Python|MitmProxy代理抓包工具实践难点
最近小编利用MitmProxy代理抓包所遇到了一些实践难点,因为看过一些介绍MitmProxy代理抓包的博客,故如何安装MitmProxy的步骤不做介绍,我只将自己遇到的实践问题介绍并解决,希望对读者有所帮助。
算法与编程之美
2020/08/12
1.3K0
Python|MitmProxy代理抓包工具实践难点
实战|手把手教你如何使用抓包神器MitmProxy
玩爬虫的小伙伴都知道,抓包工具除了MitmProxy外,还有Fiddler、Charles以及浏览器netwrok等
Python研究者
2021/05/13
5K0
实战|手把手教你如何使用抓包神器MitmProxy
Mock 工具与定制化
mitmproxy 是一款开源、免费的代理工具,支持 mac、windows、linux。相比于其他代理工具,可以通过 python 和 mitmproxy 工具本身的插件机制实现通过脚本对 mitmproxy 的完全控制。强大的可拓展性和可定制性,可以让测试工程师以 mitmproxy 工具为基础,进行二次开发,打造更适合自己业务的 mock 工具。
霍格沃兹测试开发Muller老师
2024/06/27
2350
python轻松抓取app接口
我们使用代理软件拦截 http 或者 https 请求常见的有 Fiddler 和 Charles。这两款软件虽然比较强大,但是如果我们想实现 python 抓取一些 app 数据进行分析的话,今天介绍一款更方便的工具 mitmproxy
赵云龙龙
2019/11/28
2.4K0
【原创】mitmdump 安装证书至手机系统证书
雷电模拟器从4.X版本之后设置代理是不起作用的,可以通过Postern之类的VPN代理来做中转
拉灯的小手
2022/12/05
2.1K0
【保姆级教程】万字详解App定向爬虫
‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍
857技术社区
2022/05/17
3K0
【保姆级教程】万字详解App定向爬虫
推荐阅读
相关推荐
使用 mitmproxy 做拦截代理
更多 >
LV.1
这个人很懒,什么都没有留下~
交个朋友
加入HAI高性能应用服务器交流群
探索HAI应用新境界 共享实践心得
加入前端学习入门群
前端基础系统教学 经验分享避坑指南
加入腾讯云技术交流站
前端技术前沿探索 云开发实战案例分享
换一批
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验