修改文件权限:描述权限变更的原因
This commit is contained in:
@@ -1,18 +1,100 @@
|
||||
# 检查 Nginx 是否已安装
|
||||
if command -v nginx &> /dev/null; then
|
||||
echo "✅ Nginx 已安装,跳过安装步骤"
|
||||
else
|
||||
echo "🚀 安装 Nginx"
|
||||
apt install -y nginx
|
||||
# 检测系统类型
|
||||
if command -v apt &> /dev/null; then
|
||||
# Debian/Ubuntu 系统
|
||||
apt install -y nginx
|
||||
elif command -v yum &> /dev/null; then
|
||||
# CentOS/RHEL 系统
|
||||
yum install -y nginx
|
||||
elif command -v dnf &> /dev/null; then
|
||||
# 较新版本的 Fedora/RHEL 系统
|
||||
dnf install -y nginx
|
||||
else
|
||||
echo "❌ 不支持的操作系统:未找到支持的包管理器"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# 函数:尝试使用指定的包管理器安装
|
||||
try_install() {
|
||||
local cmd=$1
|
||||
if command -v "$cmd" &> /dev/null; then
|
||||
echo "📦 尝试使用 $cmd 安装 snapd..."
|
||||
if sudo "$cmd" install -y snapd; then
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
return 1
|
||||
}
|
||||
|
||||
# 检查 Certbot 是否已安装
|
||||
if command -v certbot &> /dev/null; then
|
||||
echo "✅ Certbot 已安装,跳过安装步骤"
|
||||
else
|
||||
echo "🚀 安装 Certbot"
|
||||
sudo apt install -y certbot
|
||||
sudo apt install -y python3-certbot-nginx
|
||||
|
||||
# 检测系统类型
|
||||
if [ -f /etc/debian_version ]; then
|
||||
# Ubuntu/Debian 系统
|
||||
apt install -y certbot python3-certbot-nginx
|
||||
elif [ -f /etc/redhat-release ]; then
|
||||
# CentOS/RHEL 系统
|
||||
# 首先安装 EPEL 仓库
|
||||
yum install -y epel-release
|
||||
# 安装 snapd
|
||||
# 检查是否已安装
|
||||
if command -v snap &> /dev/null; then
|
||||
echo "✅ snapd 已经安装"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "🔍 检测系统包管理器..."
|
||||
|
||||
# 尝试使用 dnf 安装
|
||||
if try_install "dnf"; then
|
||||
echo "✅ 使用 dnf 安装 snapd 成功"
|
||||
|
||||
# 尝试使用 yum 安装
|
||||
elif try_install "yum"; then
|
||||
echo "✅ 使用 yum 安装 snapd 成功"
|
||||
|
||||
# 尝试使用 apt-get 安装(适用于 Debian/Ubuntu)
|
||||
elif try_install "apt-get"; then
|
||||
echo "✅ 使用 apt-get 安装 snapd 成功"
|
||||
|
||||
else
|
||||
echo "❌ 无法安装 snapd,未找到支持的包管理器"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 启用 snapd 服务
|
||||
systemctl enable --now snapd.socket
|
||||
|
||||
# 创建符号链接
|
||||
ln -s /var/lib/snapd/snap /snap
|
||||
|
||||
# 安装 certbot
|
||||
snap install --classic certbot
|
||||
# Prepare the Certbot command
|
||||
sudo ln -s /snap/bin/certbot /usr/bin/certbot
|
||||
else
|
||||
echo "❌ 不支持的操作系统"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# 验证安装
|
||||
echo "🔍 验证安装"
|
||||
if command -v nginx &> /dev/null && command -v certbot &> /dev/null; then
|
||||
echo "✅ Nginx 和 Certbot 安装成功"
|
||||
nginx -v
|
||||
certbot --version
|
||||
else
|
||||
echo "❌ 安装验证失败"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "🚀 复制当前目录的配置文件到nginx配置文件目录"
|
||||
|
||||
Reference in New Issue
Block a user