前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >使用PHP-Windows-Builder 构建PHP和扩展入门指南

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

作者头像
Tinywan
发布于 2024-03-20 13:15:36
发布于 2024-03-20 13:15:36
12700
代码可运行
举报
文章被收录于专栏:开源技术小栈开源技术小栈
运行总次数: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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
全流程 Chrome 扩展开发之按键提示
key-prompt 是一个基于 Extension.js 开发工具和其提供的 vue-typescript 模板开发的 Chrome 扩展程序,可以在任意网页的左下方位置显示你对当前页面的键盘操作,其实这是一个无聊的扩展程序,只当图一乐儿 😁
前端小鑫同学
2024/08/06
980
全流程 Chrome 扩展开发之按键提示
NPM 包开发与优化全面指南
package.json文件是 NPM 包的中央配置,定义了包的各个方面,从基本元数据到复杂的发布配置。
沉浸式趣谈
2024/10/28
1450
NPM 包开发与优化全面指南
Argo CD系列视频图文版之Github 实现全自动化 CICD
配套视频 http://mpvideo.qpic.cn/0bc3oiaawaaa7mac2jveojqva4wdbnzaacya.f10002.mp4?dis_k=0377bc3b10a320fa1c
LinuxSuRen
2022/03/31
7820
Argo CD系列视频图文版之Github 实现全自动化 CICD
聊聊使用Docker自动化构建及部署测试环境
使用Docker实现自动化构建及部署,需要配置GitHub仓库,设置Secrets,编写CI/CD工作流文件,处理构建、测试、推送、部署的各个阶段,最后验证自动化流程是否生效。还有需要考虑到GitHub Actions的YAML文件格式是否正确,命令是否正确,比如在部署阶段使用ssh连接到服务器执行命令是否正确,是否需要安装特定插件或配置免密登录等。
漫谈测试
2025/03/27
1140
聊聊使用Docker自动化构建及部署测试环境
试用clusterfuzzlite
clusterfuzzlite是是一种持续的模糊测试解决方案,作为持续集成 (CI) 工作流的一部分运行,比如我们一旦push代码,便可以自动build,之后自动fuzz。
用户1423082
2024/12/31
540
试用clusterfuzzlite
GitHub Actions 真香系列之文档自动简繁体转换
这篇文章说一下自动翻译简体中文文档到繁体中文问题的 action,基于 opencc 实现的简繁体转换。
沈唁
2020/12/25
1.3K0
一文了解 Github Actions
服务,它允许开发者直接在 GitHub 仓库中自动执行构建、测试和部署等任务。GitHub Actions 通过
陈明勇
2025/02/06
18612
HEXO系列教程 | 使用GitHub Actions部署Hexo / GitHub Pages | 全流程详细介绍
夜梦敢说这篇文章和HEXO系列教程 | 使用GitHub部署静态博客HEXO | 小白向教程是全网最详细的Hexo部署教程之二了!如果遇到问题你可以通过邮箱联系夜梦,夜梦看到了就会回复的!当然,再详细的文章也可能有错误,大家如果发现文章有问题的话请联系夜梦哦!
夜梦星尘
2024/08/20
3670
HEXO系列教程 | 使用GitHub Actions部署Hexo / GitHub Pages | 全流程详细介绍
GitHub Action 自动构建 并release
项目的构建流程是在项目git push --tags的时候,触发 workflow,通过Github Actions编译出来Windows、Linux、macOS三个操作系统对应的 64 位可执行文件,再根据tag name和tag message来创建对应的Github Release,并将编译好的文件上传
yiyun
2022/04/01
11.9K0
GitHub Action 自动构建 并release
零基础入门 GitHub/Gitea Actions 流程自动化
几年前开始,为了将自己的杂七杂八的代码托管起来,自己建了代码私服,当时综合调研了下选择了比较轻量的Gitea,一是防止github、gitee、coding等产品托管的代码审查,二是为了应对墙,不然推送代码真吃力,Gitea1.19 版本之前不支持内置的CI/CD解决方案,所以是我自己使用的Gitea+Drone实现流程自动化。
Lcry
2024/07/17
5650
零基础入门 GitHub/Gitea Actions 流程自动化
GitHub Actions,卧槽!牛批!
前段时间我更新了我的分布式爬虫管理框架—— Gerapy(话都说到这儿了打个广告,跟繁琐的命令行说拜拜!Gerapy分布式爬虫管理框架来袭!,哇,哇,就是,哇!)
崔庆才
2019/12/11
1.5K0
github actions 入门指南及实践
自从 github 提供了 github actions 后,个人或者依赖于 github 的公司可以考虑把持续集成方案迁到 github actions。
山月
2020/12/16
9980
github actions 入门指南及实践
🐳 从 Flask 项目打包为多平台 Docker 镜像并上传 Docker Hub(含 GitHub Actions)
用户3347017
2025/03/27
1250
手把手教你如何巧用Github的Action功能
GitHub Actions 是 GitHub 于2018年10月推出的持续集成服务。
xuexiangjys
2022/04/18
2.4K0
手把手教你如何巧用Github的Action功能
如何利用github action实现自动构建、打包部署
持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天,点击查看活动详情
鳄鱼儿
2024/05/22
1.4K0
利用 Github Action 自动发布 Chart 并托管到 Github Pages
在仓库根目录下创建 charts 目录,然后在该目录下开发所需要的 chart,如:
imroc
2024/05/03
1450
利用 Github Action 自动发布 Chart 并托管到 Github Pages
趣玩Github Action
https://github.com/laowang/zhangshan/settings/secrets/actions
XRSec
2022/03/15
6280
GitHub——自动发布NPM包
?> 主要分为两个步骤: 1. 在NPM平台生成token 2. github配置secrets/actions
思索
2024/08/15
770
GitHub——自动发布NPM包
NPM 包开发与优化全面指南
package.json文件是 NPM 包的中央配置,定义了包的各个方面,从基本元数据到复杂的发布配置。
沉浸式趣谈
2024/10/28
1650
NPM 包开发与优化全面指南
GitHub Actions 自动构建 并发布到 NPM
在 Settings->Secrets 配置 GITEE_RSA_PRIVATE_KEY, 内容为私钥文件内容,
yiyun
2022/04/01
8110
GitHub Actions 自动构建 并发布到 NPM
相关推荐
全流程 Chrome 扩展开发之按键提示
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文