common-nginx-fpm/tools/test-extensions.sh
Caijinglong 13612d1724
构建
Signed-off-by: Caijinglong <cjl_spy@163.com>
2025-06-25 17:38:29 +08:00

115 lines
2.4 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# 测试PHP扩展安装脚本
echo "🔍 测试PHP扩展安装..."
# 构建镜像
echo "📦 构建Docker镜像..."
docker build -t common-nginx-fpm:test . || {
echo "❌ 镜像构建失败"
exit 1
}
echo "✅ 镜像构建成功"
# 运行容器并测试扩展
echo "🧪 测试PHP扩展..."
docker run --rm common-nginx-fpm:test php -m > /tmp/php_modules.txt
echo "📋 已安装的PHP扩展"
cat /tmp/php_modules.txt
echo ""
echo "🔍 检查关键扩展:"
# 检查关键扩展
extensions=(
"bcmath"
"bz2"
"curl"
"dom"
"exif"
"fileinfo"
"ftp"
"gd"
"gettext"
"iconv"
"ldap"
"mbstring"
"mysqli"
"opcache"
"pcntl"
"pdo"
"pdo_mysql"
"pdo_pgsql"
"pdo_sqlite"
"pgsql"
"posix"
"redis"
"shmop"
"simplexml"
"soap"
"sockets"
"sqlite3"
"xml"
"xmlreader"
"xmlwriter"
"xsl"
"zip"
)
missing_extensions=()
for ext in "${extensions[@]}"; do
# 特殊处理一些扩展名称的变体
case $ext in
"opcache")
if grep -q "^Zend OPcache$" /tmp/php_modules.txt; then
echo "$ext"
else
echo "$ext (缺失)"
missing_extensions+=("$ext")
fi
;;
"pdo")
if grep -q "^PDO$" /tmp/php_modules.txt; then
echo "$ext"
else
echo "$ext (缺失)"
missing_extensions+=("$ext")
fi
;;
"simplexml")
if grep -q "^SimpleXML$" /tmp/php_modules.txt; then
echo "$ext"
else
echo "$ext (缺失)"
missing_extensions+=("$ext")
fi
;;
*)
if grep -q "^$ext$" /tmp/php_modules.txt; then
echo "$ext"
else
echo "$ext (缺失)"
missing_extensions+=("$ext")
fi
;;
esac
done
if [ ${#missing_extensions[@]} -eq 0 ]; then
echo ""
echo "🎉 所有扩展安装成功!"
else
echo ""
echo "⚠️ 缺失的扩展: ${missing_extensions[*]}"
fi
# 清理临时文件
rm -f /tmp/php_modules.txt
echo ""
echo "📊 镜像信息:"
docker images common-nginx-fpm:test --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}\t{{.CreatedAt}}"