update to 1.1.0 version

add curl bcmath extension
This commit is contained in:
Whale 2021-04-28 01:31:50 +08:00 committed by GitHub
parent bb7339298d
commit b0376ecbfb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,4 +1,4 @@
#!/bin/sh #!/bin/bash
function downloadIt() { function downloadIt() {
downloader="wget" downloader="wget"
@ -23,10 +23,13 @@ function downloadIt() {
return 0 return 0
} }
_script_ver="1.1.0"
_php_ver="7.4.16" _php_ver="7.4.16"
_swoole_ver="4.6.6" _swoole_ver="4.6.6"
_redis_ver="5.3.4" _redis_ver="5.3.4"
_libxml2_ver="2.9.10" _libxml2_ver="2.9.10"
_curl_ver="7.76.1"
# 默认编译在脚本当前目录 # 默认编译在脚本当前目录
_home_dir=$(pwd)"/" _home_dir=$(pwd)"/"
@ -42,52 +45,107 @@ _redis_down_link_bak="https://pecl.php.net/get/redis-$_redis_ver.tgz"
# libxml2也使用自建的服务器 # libxml2也使用自建的服务器
_libxml2_down_link="https://dl.zhamao.me/libxml2/libxml2-$_libxml2_ver.tar.gz" _libxml2_down_link="https://dl.zhamao.me/libxml2/libxml2-$_libxml2_ver.tar.gz"
_libxml2_down_link_bak="http://xmlsoft.org/sources/libxml2-$_libxml2_ver.tar.gz" _libxml2_down_link_bak="http://xmlsoft.org/sources/libxml2-$_libxml2_ver.tar.gz"
# liblzma是自建的服务器如果需要找原始位置在GitHub搜索liblzma即可
_liblzma_down_link="https://dl.zhamao.me/liblzma/liblzma.tar.gz" _liblzma_down_link="https://dl.zhamao.me/liblzma/liblzma.tar.gz"
# curl/libcurl使用自建的服务器bak是源地址
_curl_down_link="https://dl.zhamao.me/curl/curl-$_curl_ver.tar.gz"
_curl_down_link_bak="https://curl.haxx.se/download/curl-$_curl_ver.tar.gz"
_curl_override_1='
AC_DEFUN([PHP_CHECK_LIBRARY], [
$3
])
'
_curl_override_2='
AC_DEFUN([PHP_CHECK_LIBRARY], [
save_old_LDFLAGS=$LDFLAGS
ac_stuff="$5"
save_ext_shared=$ext_shared
ext_shared=yes
PHP_EVAL_LIBLINE([$]ac_stuff, LDFLAGS)
AC_CHECK_LIB([$1],[$2],[
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
$3
],[
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
unset ac_cv_lib_$1[]_$2
$4
])dnl
])
'
function downloadAll() { function downloadAll() {
mkdir "$_home_dir""source" > /dev/null 2>&1 mkdir "$_home_dir""source" > /dev/null 2>&1
echo "正在下载 php 源码 "$_php_down_link" ..." echo "正在下载 php 源码 "$_php_down_link" ..."
downloadIt $_php_down_link "$_home_dir""source/php.tar.gz" || { exit; } & downloadIt $_php_down_link "$_home_dir""source/php.tar.gz" || { exit 1; } &
#echo "正在下载 openssl 源码 "$_openssl_down_link" ..." #echo "正在下载 openssl 源码 "$_openssl_down_link" ..."
#downloadIt $_openssl_down_link "$_home_dir""source/openssl.tar.gz" || { exit; } & #downloadIt $_openssl_down_link "$_home_dir""source/openssl.tar.gz" || { exit; } &
echo "正在下载 swoole 源码 "$_swoole_down_link" ..." echo "正在下载 swoole 源码 "$_swoole_down_link" ..."
downloadIt $_swoole_down_link "$_home_dir""source/swoole.tar.gz" || { exit; } & downloadIt $_swoole_down_link "$_home_dir""source/swoole.tar.gz" || { exit 1; } &
echo "正在下载 redis 源码 "$_redis_down_link" ..." echo "正在下载 redis 源码 "$_redis_down_link" ..."
downloadIt $_redis_down_link "$_home_dir""source/redis.tar.gz" || { exit; } & downloadIt $_redis_down_link "$_home_dir""source/redis.tar.gz" || { exit 1; } &
echo "正在下载 libxml2 源码 ..." echo "正在下载 libxml2 源码 ..."
downloadIt $_libxml2_down_link "$_home_dir""source/libxml2.tar.gz" || { exit; } & downloadIt $_libxml2_down_link "$_home_dir""source/libxml2.tar.gz" || { exit 1; } &
echo "正在下载 liblzma 源码 ..." echo "正在下载 liblzma 源码 ..."
downloadIt $_liblzma_down_link "$_home_dir""source/liblzma.tar.gz" || { exit; } & downloadIt $_liblzma_down_link "$_home_dir""source/liblzma.tar.gz" || { exit 1; } &
echo "正在下载 curl 源码 ..."
downloadIt $_curl_down_link "$_home_dir""source/curl.tar.gz" || { exit 1; } &
wait wait
} }
function compileLiblzma() { function compileLiblzma() {
if [ -f "/usr/lib/liblzma.so" ]; then if [ -f "$_home_dir""opt/liblzma/lib/liblzma.so" ]; then
echo "已编译 liblzma" && return echo "已编译 liblzma" && return
fi fi
tar -xf "$_home_dir""source/liblzma.tar.gz" -C "$_home_dir""source/" && \ tar -xf "$_home_dir""source/liblzma.tar.gz" -C "$_home_dir""source/" && \
cd "$_home_dir""source/liblzma" && \ cd "$_home_dir""source/liblzma" && \
./configure --prefix="/usr" && \ ./configure --prefix="$_home_dir""opt/liblzma" && \
make -j4 && \ make -j4 && \
make install && \ make install && \
echo "编译 liblzma 完成!" echo "编译 liblzma 完成!"
} }
function compileCurl() {
if [ -f "$_home_dir""opt/curl/bin/curl" ]; then
echo "已编译 curl" && return
fi
tar -xf "$_home_dir""source/curl.tar.gz" -C "$_home_dir""source/" && \
cd "$_home_dir""source/curl-""$_curl_ver" && \
CC=gcc CXX=g++ CFLAGS=-fPIC CPPFLAGS=-fPIC ./configure --prefix="$_home_dir""opt/curl" \
--without-nghttp2 \
--with-ssl=/usr \
--with-pic=pic \
--enable-ipv6 \
--enable-shared=no \
--without-libidn2 \
--disable-ldap \
--without-libpsl \
--without-lber \
--enable-ares && \
make -j4 && \
make install && \
echo "编译 curl 完成!"
}
function compileLibxml2() { function compileLibxml2() {
if [ -f "/usr/lib/libxml2.so" ]; then if [ -f "$_home_dir""opt/libxml2/lib/libxml2.so" ]; then
echo "已编译 libxml2" && return echo "已编译 libxml2" && return
fi fi
tar -xf "$_home_dir""source/libxml2.tar.gz" -C "$_home_dir""source/" && \ tar -xf "$_home_dir""source/libxml2.tar.gz" -C "$_home_dir""source/" && \
cd "$_home_dir""source/libxml2-""$_libxml2_ver" && \ cd "$_home_dir""source/libxml2-""$_libxml2_ver" && \
./configure --with-lzma=/usr --prefix="/usr" --exec-prefix="/usr" --without-python && \ ./configure --with-lzma="$_home_dir""opt/liblzma" --prefix="$_home_dir""opt/libxml2" --exec-prefix="$_home_dir""opt/libxml2" --without-python && \
make -j4 && \ make -j4 && \
make install && \ make install && \
echo "编译 libxml2 完成!" echo "编译 libxml2 完成!"
@ -104,8 +162,12 @@ function compilePHPWithSwoole() {
tar -xf "$_home_dir""source/redis.tar.gz" -C "$_home_dir""source/" && \ tar -xf "$_home_dir""source/redis.tar.gz" -C "$_home_dir""source/" && \
mv "$_home_dir""source/redis-""$_redis_ver" "$_home_dir""source/php-""$_php_ver/ext/redis" && \ mv "$_home_dir""source/redis-""$_redis_ver" "$_home_dir""source/php-""$_php_ver/ext/redis" && \
cd "$_home_dir""source/php-""$_php_ver/" && \ cd "$_home_dir""source/php-""$_php_ver/" && \
echo "$_curl_override_1" > "$_home_dir""ac_override_1" && \
echo "$_curl_override_2" > "$_home_dir""ac_override_2" && \
cat "$_home_dir""ac_override_1" "$_home_dir""source/php-""$_php_ver/ext/curl/config.m4" "$_home_dir""ac_override_2" > /tmp/aa && \
mv /tmp/aa "$_home_dir""source/php-""$_php_ver/ext/curl/config.m4" && \
./buildconf --force && \ ./buildconf --force && \
./configure LDFLAGS=-static \ PKG_CONFIG_PATH="$PKG_CONFIG_PATH:""$_home_dir""opt/curl/lib/pkgconfig" ./configure LDFLAGS=-static \
--prefix="$_home_dir""php-dist" \ --prefix="$_home_dir""php-dist" \
--disable-all \ --disable-all \
--enable-shared=no \ --enable-shared=no \
@ -116,6 +178,7 @@ function compilePHPWithSwoole() {
--enable-ctype \ --enable-ctype \
--enable-filter \ --enable-filter \
--enable-openssl \ --enable-openssl \
--enable-bcmath \
--with-openssl-dir="/usr" \ --with-openssl-dir="/usr" \
--enable-pcntl \ --enable-pcntl \
--enable-openssl \ --enable-openssl \
@ -133,7 +196,7 @@ function compilePHPWithSwoole() {
--disable-redis-session \ --disable-redis-session \
--enable-simplexml \ --enable-simplexml \
--enable-dom \ --enable-dom \
--with-libxml \ --with-libxml="$_home_dir""opt/libxml2" \
--enable-xml \ --enable-xml \
--enable-xmlwriter \ --enable-xmlwriter \
--enable-xmlreader \ --enable-xmlreader \
@ -141,12 +204,15 @@ function compilePHPWithSwoole() {
--enable-posix \ --enable-posix \
--enable-mysqlnd \ --enable-mysqlnd \
--enable-tokenizer \ --enable-tokenizer \
--with-curl="$_home_dir""opt/curl" \
--with-pear=no \
--disable-pear \
--disable-cgi \ --disable-cgi \
--disable-phpdbg && \ --disable-phpdbg && \
sed -ie 's/-export-dynamic//g' "$_home_dir""source/php-""$_php_ver/Makefile" && \ sed -ie 's/-export-dynamic//g' "$_home_dir""source/php-""$_php_ver/Makefile" && \
sed -ie 's/-o $(SAPI_CLI_PATH)/-all-static -o $(SAPI_CLI_PATH)/g' "$_home_dir""source/php-""$_php_ver/Makefile" && \ sed -ie 's/-o $(SAPI_CLI_PATH)/-all-static -o $(SAPI_CLI_PATH)/g' "$_home_dir""source/php-""$_php_ver/Makefile" && \
sed -ie 's/swoole_clock_gettime(CLOCK_REALTIME/clock_gettime(CLOCK_REALTIME/g' "$_home_dir""source/php-""$_php_ver/ext/swoole/include/swoole.h" && \ sed -ie 's/swoole_clock_gettime(CLOCK_REALTIME/clock_gettime(CLOCK_REALTIME/g' "$_home_dir""source/php-""$_php_ver/ext/swoole/include/swoole.h" && \
make LDFLAGS=-ldl -j8 && \ make LDFLAGS=-ldl -j4 && \
make install && \ make install && \
strip "$_home_dir""php-dist/bin/php" strip "$_home_dir""php-dist/bin/php"
} }
@ -155,7 +221,6 @@ function compilePHPWithSwoole() {
# git gcc zlib-dev libstdc++ ncurses zlib linux-headers \ # git gcc zlib-dev libstdc++ ncurses zlib linux-headers \
# readline make libssl1.1 libxml2 m4 libgcc vim binutils \ # readline make libssl1.1 libxml2 m4 libgcc vim binutils \
# oniguruma-dev openssl openssl-dev # oniguruma-dev openssl openssl-dev
# 编译必需的 # 编译必需的
apk add gcc g++ autoconf libstdc++ linux-headers make m4 libgcc binutils ncurses apk add gcc g++ autoconf libstdc++ linux-headers make m4 libgcc binutils ncurses
# php的zlib支持 # php的zlib支持
@ -167,7 +232,10 @@ apk add openssl-libs-static openssl-dev openssl
# php的gd支持如果不需要gd则去掉--enable-gd和下面的依赖 # php的gd支持如果不需要gd则去掉--enable-gd和下面的依赖
apk add libpng-dev libpng-static apk add libpng-dev libpng-static
downloadAll && \
downloadAll && compileLiblzma && compileLibxml2 && \ compileLiblzma && \
compileLibxml2 && \
compileCurl && \
compilePHPWithSwoole && \ compilePHPWithSwoole && \
echo "完成!见 php-dist/bin/php" echo "完成!见 php-dist/bin/php"