chore: add env deps isntall docs #91

This commit is contained in:
duorameng
2026-05-11 20:19:11 +08:00
parent 97ab8d8927
commit fb617ae24c
3 changed files with 76 additions and 0 deletions
+53
View File
@@ -0,0 +1,53 @@
#!/bin/bash
# ==============================================================================
# PHP 环境构建依赖安装脚本
# ==============================================================================
# 说明:
# 如果你需要使用 PHP 环境,由于 mise 安装某些 PHP 版本时需要从源码编译,
# 建议在面板的“任务训练”中创建一个“开机任务”,并关联此脚本,
# 以确保容器重启后依然具备编译 PHP 所需的系统依赖。
# ==============================================================================
set -e
echo "正在检测 PHP 编译依赖..."
# 根据系统定义包列表
if [ -f /etc/debian_version ]; then
PACKAGES="autoconf bison build-essential libssl-dev libxml2-dev pkg-config libsqlite3-dev zlib1g-dev libcurl4-openssl-dev libpng-dev libjpeg-dev libonig-dev libzip-dev"
CHECK_CMD="dpkg -l"
INSTALL_CMD="apt-get install -y"
UPDATE_CMD="apt-get update"
elif [ -f /etc/alpine-release ]; then
PACKAGES="autoconf bison build-base openssl-dev libxml2-dev pkgconfig sqlite-dev zlib-dev curl-dev libpng-dev libjpeg-turbo-dev oniguruma-dev libzip-dev"
CHECK_CMD="apk info -e"
INSTALL_CMD="apk add --no-cache"
UPDATE_CMD=""
else
echo "未检测到支持的包管理器 (APT/APK),请手动安装依赖。"
exit 1
fi
MISSING_PACKAGES=""
for pkg in $PACKAGES; do
if ! $CHECK_CMD "$pkg" >/dev/null 2>&1; then
MISSING_PACKAGES="$MISSING_PACKAGES $pkg"
fi
done
if [ -z "$MISSING_PACKAGES" ]; then
echo "所有依赖已就绪,跳过安装。"
exit 0
fi
echo "检测到缺失依赖: $MISSING_PACKAGES"
# 执行安装
if [ -n "$UPDATE_CMD" ]; then
$UPDATE_CMD
fi
$INSTALL_CMD $MISSING_PACKAGES
echo "PHP 编译依赖安装完成!"