crazywhalecc / static-php-cli

Build standalone PHP binary on Linux, macOS, FreeBSD, Windows, with PHP project together, with popular extensions included.
https://static-php.dev
MIT License
1.34k stars 233 forks source link

SAPI embed Support on Windows #442

Open TenHian opened 6 months ago

TenHian commented 6 months ago

I've noticed that embed SAPI on Win is on TODO list. However, its 4 mouths ago. What are the current bottlenecks encountered with this feature? What is the current implementation plan? What attempts have been made? Any guidance information beyond that?

crazywhalecc commented 6 months ago

The main reason is that I'm not very good at Windows OS build and Visual Studio and currently I mainly update Linux and macOS. Windows maintenance will be slower. For embed SAPI on Windows, it would be great if someone could initiate a PR or guidance for us to start.

jingjingxyk commented 6 months ago

可以借助 MSYS2 环境 和 CMD 环境 进行构建

  1. MSYS2 环境 用于下载软件 (msys2 集成了 Mingw 和 Cygwin ,同时还提供了包管理工具 pacman)
  2. CMD 环境 安装Visual Studio
  3. CMD 环境 执行编译

msys2 环境下载软件

  1. 下载 msys2 msys2

    浏览器打开,自动给下载 msys2: https://mirror.msys2.org/distrib/x86_64/msys2-x86_64-20240507.exe

  2. 安装 msys2

    双击 msys2-x86_64-20240507.exe 进行安装

  3. msys2安装软件

     pacman -Syy --noconfirm git curl
    1. msys2 环境下使用curl 下载软件
      
      # 下载 vs2022 

    方式一

    curl -Lo VisualStudioSetup.exe 'https://c2rsetup.officeapps.live.com/c2r/downloadVS.aspx?sku=community&channel=Release&version=VS2022'

    方式二

    curl -Lo VisualStudioSetup.exe 'https://aka.ms/vs/17/release/vs_community.exe'

    
    ```shell
    # 下载 php 源码
    git clone -b php-8.3.6     --depth=1 https://github.com/php/php-src.git
    
    # 下载 php-sdk for windows 
    # git clone -b php-sdk-2.2.0 --depth=1 https://github.com/php/php-sdk-binary-tools.git
    git clone -b master --depth=1 https://github.com/php/php-sdk-binary-tools.git
    

CMD 环境 安装VisualStudio

  1. 使用命令行参数安装、更新和管理 Visual Studio
  2. Visual Studio 生成工具组件目录

使用命令行快速安装 VisualStudio 组件


cd c:\msys64\home\Administrator\

VisualStudioSetup.exe ^ --locale en-US ^ --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 ^ --add Microsoft.Component.MSBuild ^ --add Microsoft.VisualStudio.Component.Roslyn.Compiler ^ --add Microsoft.Component.MSBuild ^ --add Microsoft.VisualStudio.Component.CoreBuildTools ^ --add Microsoft.VisualStudio.Workload.MSBuildTools ^ --add Microsoft.VisualStudio.Component.Windows11SDK.22000 ^ --add Microsoft.VisualStudio.Component.Windows10SDK.20348 ^ --add Microsoft.VisualStudio.Component.Windows10SDK ^ --passive --force --norestart

## CMD 环境 编译构建
```bat
cd c:\msys64\home\Administrator\php-sdk-binary-tools
phpsdk-vs17-x64.bat

cd c:\msys64\home\Administrator\php-src
buildconf
configure --help 
configure --disable-all --enable-cli --enable-static=yes --enable-shared=no 
nmake

x64\Release_TS\php.exe -v
x64\Release_TS\php.exe -m

参考文档

  1. 通过命令行使用 MSVC 工具集
  2. 通过命令行使用 MSBuild
  3. Windows SDK
  4. windows 环境下 构建 php 步骤
  5. VisualStudio 导入或导出安装配置
  6. Visual Studio 2019 版本 16.11 发行说明
  7. Visual Studio 2022 版本 17.9 发行说明