feat: 调整扩展安装脚本
This commit is contained in:
@@ -1,17 +1,14 @@
|
|||||||
#!/bin/sh
|
#!/bin/bash
|
||||||
|
|
||||||
export MC="-j$(nproc)"
|
export MC="-j$(nproc)"
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "============================================"
|
echo "============================================"
|
||||||
echo "Install extensions from : install-ext"
|
|
||||||
echo "PHP version : ${PHP_VERSION}"
|
echo "PHP version : ${PHP_VERSION}"
|
||||||
echo "Extra Extensions : ${PHP_EXTENSIONS}"
|
echo "Install extensions : $1"
|
||||||
echo "Container package url : ${CONTAINER_PACKAGE_URL}"
|
|
||||||
echo "============================================"
|
echo "============================================"
|
||||||
echo
|
echo
|
||||||
|
|
||||||
|
|
||||||
isPhpVersionGreaterOrEqual() {
|
isPhpVersionGreaterOrEqual() {
|
||||||
local PHP_MAJOR_VERSION=$(php -r "echo PHP_MAJOR_VERSION;")
|
local PHP_MAJOR_VERSION=$(php -r "echo PHP_MAJOR_VERSION;")
|
||||||
local PHP_MINOR_VERSION=$(php -r "echo PHP_MINOR_VERSION;")
|
local PHP_MINOR_VERSION=$(php -r "echo PHP_MINOR_VERSION;")
|
||||||
@@ -23,35 +20,47 @@ isPhpVersionGreaterOrEqual() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
install_php_extensions() {
|
is_extension_installed() {
|
||||||
local extension=$1
|
local extension=$1
|
||||||
|
if php -m | grep -q "^$extension$"; then
|
||||||
|
echo "------ $extension is already installed ------"
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
install_php_extensions() {
|
||||||
|
local extension=$1
|
||||||
install-php-extensions $extension
|
install-php-extensions $extension
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
echo "------ install-php-extensions $extension succeeded ------"
|
if is_extension_installed "$extension"; then
|
||||||
else
|
echo "------ install-php-extensions $extension succeeded ------"
|
||||||
echo "------ install-php-extensions $extension failed ------"
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
echo "------ install-php-extensions $extension failed ------"
|
||||||
}
|
}
|
||||||
|
|
||||||
pecl_install() {
|
pecl_install() {
|
||||||
local extension=$1
|
local extension=$1
|
||||||
printf "\n" | pecl install $extension
|
printf "\n" | pecl install $extension
|
||||||
if [ $? -eq 0 ]; then
|
docker-php-ext-enable $extension
|
||||||
docker-php-ext-enable $extension
|
if is_extension_installed "$extension"; then
|
||||||
echo "------ pecl install $extension succeeded ------"
|
echo "------ pecl install $extension succeeded ------"
|
||||||
else
|
return
|
||||||
echo "------ pecl install $extension failed ------"
|
|
||||||
fi
|
fi
|
||||||
|
echo "------ pecl install $extension failed ------"
|
||||||
}
|
}
|
||||||
|
|
||||||
docker_php_ext_install() {
|
docker_php_ext_install() {
|
||||||
local extension=$1
|
local extension=$1
|
||||||
docker-php-ext-install ${MC} $extension
|
docker-php-ext-install $extension
|
||||||
if [ $? -eq 0 ]; then
|
if is_extension_installed "$extension"; then
|
||||||
echo "------ docker-php-ext-install install $extension succeeded ------"
|
echo "------ docker-php-ext-install install $extension succeeded ------"
|
||||||
else
|
return
|
||||||
echo "------ docker-php-ext-install install $extension failed------"
|
fi
|
||||||
fi
|
echo "------ docker-php-ext-install install $extension failed------"
|
||||||
}
|
}
|
||||||
|
|
||||||
install_extension_default() {
|
install_extension_default() {
|
||||||
@@ -102,23 +111,6 @@ install_gd() {
|
|||||||
&& apt-get autoremove -y
|
&& apt-get autoremove -y
|
||||||
}
|
}
|
||||||
|
|
||||||
install_event() {
|
|
||||||
apt-get install -y libevent-dev
|
|
||||||
apt-get install libssl-dev
|
|
||||||
export is_sockets_installed=$(php -r "echo extension_loaded('sockets');")
|
|
||||||
|
|
||||||
if [ "${is_sockets_installed}" = "" ]; then
|
|
||||||
echo "---------- event is depend on sockets, install sockets first ----------"
|
|
||||||
docker-php-ext-install sockets
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkdir event
|
|
||||||
tar -xf event-3.1.3.tgz -C event --strip-components=1
|
|
||||||
cd event && phpize && ./configure && make && make install
|
|
||||||
|
|
||||||
docker-php-ext-enable --ini-name event.ini event
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
install_msg() {
|
install_msg() {
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
@@ -129,7 +121,7 @@ install_msg() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
install_memcache() {
|
install_memcache() {
|
||||||
pecl install memcache
|
printf "\n" | pecl install memcache
|
||||||
install_msg memcache
|
install_msg memcache
|
||||||
docker-php-ext-enable memcache
|
docker-php-ext-enable memcache
|
||||||
}
|
}
|
||||||
@@ -137,11 +129,11 @@ install_memcache() {
|
|||||||
install_pdo_pgsql() {
|
install_pdo_pgsql() {
|
||||||
apt-get update && apt-get install -y libpq-dev
|
apt-get update && apt-get install -y libpq-dev
|
||||||
install_msg pdo_pgsql
|
install_msg pdo_pgsql
|
||||||
docker-php-ext-install ${MC} pdo_pgsql
|
docker-php-ext-install pdo_pgsql
|
||||||
}
|
}
|
||||||
|
|
||||||
install_pdo_mysql() {
|
install_pdo_mysql() {
|
||||||
docker-php-ext-install ${MC} pdo_mysql
|
docker-php-ext-install pdo_mysql
|
||||||
install_msg pdo_mysql
|
install_msg pdo_mysql
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -153,7 +145,11 @@ install_yaf() {
|
|||||||
|
|
||||||
install_extension() {
|
install_extension() {
|
||||||
local extension=$1
|
local extension=$1
|
||||||
echo "------ install extension: $extension ------"
|
if is_extension_installed "$extension"; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "------ install extension: $extension ------"
|
||||||
|
|
||||||
if [ "$extension" = "gd" ]; then
|
if [ "$extension" = "gd" ]; then
|
||||||
install_gd
|
install_gd
|
||||||
@@ -165,8 +161,6 @@ install_extension() {
|
|||||||
install_pdo_pgsql
|
install_pdo_pgsql
|
||||||
elif [ "$extension" = "pdo_mysql" ]; then
|
elif [ "$extension" = "pdo_mysql" ]; then
|
||||||
install_pdo_mysql
|
install_pdo_mysql
|
||||||
elif [ "$extension" = "event" ]; then
|
|
||||||
install_event
|
|
||||||
elif [ "$extension" = "yaml" ]; then
|
elif [ "$extension" = "yaml" ]; then
|
||||||
apt-get install -y libyaml-dev
|
apt-get install -y libyaml-dev
|
||||||
pecl_install yaml
|
pecl_install yaml
|
||||||
@@ -197,10 +191,18 @@ install_extension() {
|
|||||||
docker_php_ext_install sockets
|
docker_php_ext_install sockets
|
||||||
elif [ "$extension" = "sysvsem" ]; then
|
elif [ "$extension" = "sysvsem" ]; then
|
||||||
docker_php_ext_install sysvsem
|
docker_php_ext_install sysvsem
|
||||||
|
elif [ "$extension" = "sysvmsg" ]; then
|
||||||
|
docker_php_ext_install sysvmsg
|
||||||
elif [ "$extension" = "opcache" ]; then
|
elif [ "$extension" = "opcache" ]; then
|
||||||
docker_php_ext_install opcache
|
docker_php_ext_install opcache
|
||||||
elif [ "$extension" = "mysqli" ]; then
|
elif [ "$extension" = "mysqli" ]; then
|
||||||
docker_php_ext_install mysqli
|
docker_php_ext_install mysqli
|
||||||
|
elif [ "$extension" = "sysvshm" ]; then
|
||||||
|
docker_php_ext_install sysvshm
|
||||||
|
elif [ "$extension" = "calendar" ]; then
|
||||||
|
docker_php_ext_install calendar
|
||||||
|
elif [ "$extension" = "zmq" ]; then
|
||||||
|
docker_php_ext_install zmq
|
||||||
elif [ "$extension" = "sodium" ]; then
|
elif [ "$extension" = "sodium" ]; then
|
||||||
apt-get install -y libsodium-dev
|
apt-get install -y libsodium-dev
|
||||||
docker_php_ext_install sodium
|
docker_php_ext_install sodium
|
||||||
@@ -263,20 +265,39 @@ install_extension() {
|
|||||||
install_php_extensions amqp
|
install_php_extensions amqp
|
||||||
elif [ "$extension" = "zookeeper" ]; then
|
elif [ "$extension" = "zookeeper" ]; then
|
||||||
install_php_extensions zookeeper
|
install_php_extensions zookeeper
|
||||||
|
elif [ "$extension" = "ioncube_loader" ]; then
|
||||||
|
install_php_extensions ioncube_loader
|
||||||
|
elif [ "$extension" = "pdo_sqlsrv" ]; then
|
||||||
|
install_php_extensions pdo_sqlsrv
|
||||||
|
elif [ "$extension" = "sqlsrv" ]; then
|
||||||
|
install_php_extensions sqlsrv
|
||||||
|
elif [ "$extension" = "enchant" ]; then
|
||||||
|
install_php_extensions enchant
|
||||||
|
elif [ "$extension" = "pspell" ]; then
|
||||||
|
install_php_extensions pspell
|
||||||
|
elif [ "$extension" = "bz2" ]; then
|
||||||
|
install_php_extensions bz2
|
||||||
|
elif [ "$extension" = "zmq" ]; then
|
||||||
|
install_php_extensions zmq
|
||||||
|
elif [ "$extension" = "smbclient" ]; then
|
||||||
|
install_php_extensions smbclient
|
||||||
|
elif [ "$extension" = "event" ]; then
|
||||||
|
install_php_extensions event
|
||||||
else
|
else
|
||||||
install_extension_default $extension
|
install_extension_default $extension
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ $# -eq 1 ]; then
|
extension=$1
|
||||||
extension=$1
|
|
||||||
apt-get update
|
if [[ $extension == *,* ]]; then
|
||||||
install_extension $extension
|
echo "${extension}" | tr ',' '\n' | while read -r extension; do
|
||||||
else
|
|
||||||
echo "${PHP_EXTENSIONS}" | tr ',' '\n' | while read -r extension; do
|
|
||||||
apt-get update
|
apt-get update
|
||||||
install_extension $extension
|
install_extension $extension
|
||||||
done
|
done
|
||||||
|
else
|
||||||
|
apt-get update
|
||||||
|
install_extension $extension
|
||||||
fi
|
fi
|
||||||
|
|
||||||
docker-php-source delete
|
docker-php-source delete
|
||||||
|
|||||||
Reference in New Issue
Block a user