diff --git a/ac.sh b/ac.sh new file mode 100644 index 0000000..984995d --- /dev/null +++ b/ac.sh @@ -0,0 +1,140 @@ +#!/bin/bash +# 一键部署异次元发卡脚本 + +# 检查是否已经安装 acgfaka +if [ -d "/var/www/html/acgfaka" ]; then + echo -e "\033[32m检测到 acgfaka 已经安装。\033[0m" + echo -e "\033[33m如需重新安装,请删除站点文件:/var/www/html/acgfaka 并做好相关备份。\033[0m" + exit 0 +fi + +# 获取用户输入的域名 +while true; do + echo -e "\033[33m请输入您的域名(确保已经解析到本机): \033[0m" + read DOMAIN + + echo -e "\033[32m您输入的域名是: $DOMAIN\033[0m" + echo -e "\033[33m请确认这个域名是否正确 (yes/no, 默认回车确认): \033[0m" + read CONFIRM + + if [[ -z "${CONFIRM// }" ]]; then + CONFIRM="yes" + fi + + if [[ "${CONFIRM,,}" == "yes" || "${CONFIRM,,}" == "y" ]]; then + echo -e "\033[32m域名确认成功: $DOMAIN\033[0m" + break + else + echo -e "\033[31m请重新输入域名。\033[0m" + fi +done + +# 安装必要的软件包 +echo -e "\033[32m安装必要的软件包...首次安装可能较慢...请耐心等待。。。\033[0m" +sudo apt update -q +sudo apt install -y -q mariadb-server php8.1 php8.1-mysql php8.1-fpm php8.1-curl php8.1-cgi php8.1-mbstring php8.1-xml php8.1-gd php8.1-xmlrpc php8.1-soap php8.1-intl php8.1-opcache php8.1-zip wget unzip socat curl debian-keyring debian-archive-keyring apt-transport-https software-properties-common caddy + +# 安装 Caddy +curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg +curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list + +# 更新源列表 +sudo apt update -q + +PHP_VERSION=$(php -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;') +PHP_INI_FILE="/etc/php/${PHP_VERSION}/fpm/php.ini" +OPCACHE_FILE_CACHE_DIR="/var/cache/opcache" + +# 确保 OPcache 配置存在 +if ! grep -q "^opcache.enable=1" "$PHP_INI_FILE"; then + echo -e "\033[32m启用 OPcache 扩展...请稍等...\033[0m" + + sudo mkdir -p "$OPCACHE_FILE_CACHE_DIR" + sudo chown -R www-data:www-data "$OPCACHE_FILE_CACHE_DIR" + + sudo tee -a "$PHP_INI_FILE" > /dev/null < /dev/null 2>&1 +sudo rm main.zip +sudo mv acg-faka-main acgfaka + +sudo chown -R www-data:www-data /var/www/html/acgfaka +sudo find /var/www/html/acgfaka/ -type d -exec chmod 750 {} \; +sudo find /var/www/html/acgfaka/ -type f -exec chmod 640 {} \; + +# 配置 Caddyfile +sudo tee /etc/caddy/Caddyfile > /dev/null <