[컴] windows 에서 php interpreter 의 wasm build

php interpreter / web assembly build / wasmedge / 웹어셈블리 / php 스크립트 / script /

windows 에서 php interpreter 의 wasm build

  • OS: windows 10 + WSL2 ubuntu

WSL2 의 ubutu 내에서 작업했다. 직접 windows10 에서 가능하지 않을까 해봤지만, 기본적으로 build 에서 사용하는 여러 tool 들이 linux 를 기반으로 했다. 예를들면, shell script 나 make 등. container 에서 작업하는 것도 고려해 볼 수 있을 듯 한데, container 에서 다시 docker 를 설치하는 작업을 잘 몰라 하지 않았다.

그래서 wsl2 에 docker 를 설치하고 build 를 했다.

build 를 위해서는 linux 에 docker 도 설치되어 있어야 한다.

다음과 같은 절차를 거치면 된다.

  1. git clone
  2. sudo make php-7.4.32
  3. <proj_root>/php/build-output/php/php-7.4.32/bin/에서 php-cgi 라는 결과파일을 찾을 수 있다.

git clone:

git clone --depth=1 -b php-wasmedge-demo https://github.com/vmware-labs/webassembly-language-runtimes.git wlr-demo

build command:

cd wlr-demo
cd php
sudo make php-7.4.32

기타 :

  • Dockerfile.wasi-builder 파일은 sudo make php-7.4.32 를 하면 build 를 위해서 docker 를 사용하는데, 그때 사용되기 위한 파일이다. 필자는 처음에 Dockfile 로 container 를 만들어서 build 하려 했는데, 실패했다.

  • sudo make php-7.4.32 를 실행하면 아래와 같은 command 를 실행하게 된다.

    docker build -f <proj_root>\Dockerfile.wasi-builder -t ghcr.io/vmware-labs/wasi-builder:16 <proj_root>\
    docker build -f <proj_root>\php\Dockerfile --build-arg WASI_SDK_VERSION=16 -t ghcr.io/vmware-labs/php-builder:wasi-16 <proj_root>\php\
    
    mkdir -p build-output build-staging
    docker run --rm -v <proj_root>\php\build-output:/wlr/build-output -v <proj_root>\php\build-staging:/wlr/build-staging ghcr.io/vmware-labs/php-builder:wasi-16 ./wl-make.sh php/php-7.4.32
  • See Also 1.” 에서 이야기하는 것처럼 build 를 하려면, Dockerfile.wasi-builder 안에 ENV WASMLABS_RUNTIME=wasmedge 부분을 추가한후, sudo make php-7.4.32 를 실행하면 된다. 그러면, <proj_root>/php/build-output/php/php-7.4.32/binphp-cgi-wasmedge, php-cgi 2개 파일이 생성된다.

    ...
    ENV WASI_SDK=wasi-sdk-${WASI_SDK_VERSION}
    ENV WASI_SDK_ROOT=/wasi-sdk
    ENV WASMLABS_RUNTIME=wasmedge
    ...

See Also

  1. WebAssembly: Docker without containers!, 2022-12

댓글 없음:

댓글 쓰기