Open jingjingxyk opened 1 year ago
--with-libavif=1
--with-php-version=8.2.11
--with-c-compiler=gcc
--with-build-type=dev
--with-http-proxy=http://192.168.3.26:8015
php prepare.php -swoole +swow
(只启用redis 扩展 和 默认扩展)
要添加扩展,你只要依照添加redis 方式添加即可(过程中,你会发现需要解决很多很多静态链接库问题)
解决静态链接库问题,并且把解决步骤固定下来,也就是swoole-cli 项目做的事情
运行容器,并将自动进入容器终端
docker run --rm -ti --init -w /work alpine:3.17
安装构建环境必要软件包
apk update
apk add vim alpine-sdk xz autoconf automake linux-headers clang-dev clang lld libtool cmake bison re2c gettext coreutils gcc g++
apk add bash p7zip zip unzip flex pkgconf ca-certificates
apk add wget git curl
apk add libc++-static libltdl-static
apk add vim
vi build-static-php.sh
#!/bin/env bash
set -uex
PHP_VERSION=8.1.21
test -f php-${PHP_VERSION}.tar.gz || wget -O php-${PHP_VERSION}.tar.gz https://github.com/php/php-src/archive/refs/tags/php-${PHP_VERSION}.tar.gz
test -d php-src && rm -rf php-src
mkdir -p php-src
tar --strip-components=1 -C php-src -xf php-${PHP_VERSION}.tar.gz
test -f redis-5.3.7.tgz || wget -O redis-5.3.7.tgz https://pecl.php.net/get/redis-5.3.7.tgz
mkdir -p redis
tar --strip-components=1 -C redis -xf redis-5.3.7.tgz
test -d php-src/ext/redis && rm -rf php-src/ext/redis
mv mongodb php-src/ext/
export CC=clang
export CXX=clang++
export LD=ld.lld
cd php-src
./buildconf --force
./configure \
--disable-all \
--disable-cgi \
--enable-shared=no \
--enable-static=yes \
--enable-cli \
--disable-phpdbg \
--without-valgrind \
--enable-session \
--enable-redis
make -j $(nproc)
file sapi/cli/php
readelf -h sapi/cli/php
bash build-static-php.sh
# 构建完毕 ,生成的如下文件,就是希望得到的二进制文件
sapi/cli/php
sapi/cli/php -m
sapi/cli/php -v
sapi/cli/php --ri redis
swoole-cli 就是在上述基础之上,做了进行裁剪 、优化、整合 、打包 等,并默认启用了swoole 扩展。
一句命令即可 为 linux 、macOS 准备 PHP 运行环境 (依赖 curl 、wget 、bash 、xz)
curl https://github.com/swoole/swoole-cli/blob/main/setup-php-runtime.sh?raw=true -sSfL | bash -s -- --mirror china
curl https://swoole-cli.jingjingxyk.com/setup-php-runtime.sh -sSf | bash -s -- --mirror china
swoole-cli 各分支功能区别
swoole版本固定为v4.8.x,
openssl版本为 V1,
curl库不启用 http2、http3支持
build-static-php
用于构建原生的PHP版本,
可构建生成包含swow扩展的二进制文件 ,PHP源码未裁剪
不包含swoole扩展 ,
启用PHP FastCGI
用于构建原生的PHP-FPM
只构建 phpmicro 版本
swoole版本固定为v4.8.x,
openssl版本为 V1,
curl库不启用 http2、http3支持
不包含swoole 扩展
openssl版本为 V1,
curl库不启用 http2、http3支持
启用PHP FastCGI,
用于构建原生的PHP-FPM
gd、zip、imagick扩展 未能启用 ,
swoole版本固定为v4.8.x,
openssl版本为 V1,
curl库不启用 http2、http3支持 ,