diff --git a/install-runtime.sh b/install-runtime.sh new file mode 100644 index 00000000..e5d92369 --- /dev/null +++ b/install-runtime.sh @@ -0,0 +1,69 @@ +#!/usr/bin/env bash + +function download_file() { + downloader="wget" + type wget >/dev/null 2>&1 || { downloader="curl"; } + if [ "$downloader" = "wget" ]; then + _down_prefix="O" + else + _down_prefix="o" + fi + _down_symbol=0 + if [ ! -f "$2" ]; then + echo $1 + $downloader "$1" -$_down_prefix "$2" >/dev/null 2>&1 && \ + echo "完成!" && _down_symbol=1 + else + echo "已存在!" && _down_symbol=1 + fi + if [ $_down_symbol == 0 ]; then + echo "失败!请检查网络连接!" + rm -rf "$2" + return 1 + fi + return 0 +} + +function test_composer_and_php() { + succ=$("$(pwd)/runtime/composer" -n about | grep Manage) + if [ "$succ" = "" ]; then + echo "Download PHP binary and composer failed!" + return 1 + fi + return 0 +} + +if [ "$(uname -s)" != "Linux" ]; then + echo "Only support Linux!!!" + exit 1 +fi + +ZM_PHP_VERSION="7.4" +if [ "$ZM_DOWN_PHP_VERSION" != "" ]; then + ZM_PHP_VERSION="$ZM_DOWN_PHP_VERSION" + echo "Using custom PHP version: $ZM_PHP_VERSION" +fi + +mkdir "$(pwd)/runtime" >/dev/null 2>&1 +if [ ! -f "$(pwd)/runtime/php" ]; then + download_file "https://dl.zhamao.xin/php-bin/down.php?php_ver=$ZM_PHP_VERSION&arch=$(uname -m)" "$(pwd)/runtime/php.tar.gz" + if [ $? -ne 0 ]; then + exit 1 + fi + tar -xf "$(pwd)/runtime/php.tar.gz" -C "$(pwd)/runtime/" +fi +if [ ! -f "$(pwd)/runtime/composer" ]; then + download_file "https://mirrors.aliyun.com/composer/composer.phar" "$(pwd)/runtime/composer.phar" + if [ $? -ne 0 ]; then + exit 1 + fi + echo '$(dirname $0)/php $(dirname $0)/composer.phar $@' > $(pwd)/runtime/composer + chmod +x $(pwd)/runtime/composer + test_composer_and_php +fi +if [ $? -ne 0 ]; then + exit 1 +fi +echo "成功下载!" && \ + echo -e "PHP使用:\truntime/php -v" && \ + echo -e "Composer使用:\truntime/composer"