1
0

feat: 调整扩展安装脚本

This commit is contained in:
zhengkunwang223
2024-09-05 15:41:41 +08:00
committed by CityFun
parent d3c3738524
commit 1d17274db2

View File

@@ -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
} }
is_extension_installed() {
local extension=$1
if php -m | grep -q "^$extension$"; then
echo "------ $extension is already installed ------"
return 0
else
return 1
fi
}
install_php_extensions() { install_php_extensions() {
local extension=$1 local extension=$1
install-php-extensions $extension install-php-extensions $extension
if [ $? -eq 0 ]; then
if is_extension_installed "$extension"; then
echo "------ install-php-extensions $extension succeeded ------" echo "------ install-php-extensions $extension succeeded ------"
else return
echo "------ install-php-extensions $extension failed ------"
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,6 +145,10 @@ install_yaf() {
install_extension() { install_extension() {
local extension=$1 local extension=$1
if is_extension_installed "$extension"; then
return
fi
echo "------ install extension: $extension ------" echo "------ install extension: $extension ------"
if [ "$extension" = "gd" ]; then if [ "$extension" = "gd" ]; then
@@ -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