From fe06a0c42ad4e3b4c58e3714c20d3f96d4a993f7 Mon Sep 17 00:00:00 2001 From: ivampiresp Date: Sun, 27 Jul 2025 05:11:12 +0000 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20setup.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup.sh | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 setup.sh diff --git a/setup.sh b/setup.sh new file mode 100644 index 0000000..71d3be7 --- /dev/null +++ b/setup.sh @@ -0,0 +1,57 @@ +#!/bin/bash +set -eux + +# 创建快捷命令 +echo '#!/bin/bash\nphp artisan "$@"' > /usr/bin/art +chmod +x /usr/bin/art + +# 更新系统并安装基础工具 +apt update +apt install -y --no-install-recommends wget unzip ca-certificates + +# 添加 PHP 仓库 +wget --no-check-certificate -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg +echo "deb https://packages.sury.org/php/ bookworm main" > /etc/apt/sources.list.d/php.list + +# 安装 PHP 及运行时依赖 +apt update +apt install -y --no-install-recommends \ + php8.4-cli \ + php8.4-bcmath \ + php8.4-curl \ + php8.4-mbstring \ + php8.4-zip \ + php8.4-dom \ + php8.4-mysql \ + php8.4-sqlite3 \ + php8.4-redis \ + php8.4-pgsql \ + php8.4-gd \ + php8.4-intl \ + php8.4-bz2 \ + php8.4-mongodb \ + php8.4-memcached \ + php8.4-imap \ + php8.4-exif \ + php8.4-fileinfo \ + php8.4-apcu \ + php8.4-gmp \ + libz-dev \ + libbrotli-dev + +# 安装构建依赖 (仅编译时使用) +apt install -y --no-install-recommends php8.4-dev build-essential php-pear libgmp-dev libicu-dev + +# 安装 PECL 扩展 +pecl channel-update pecl.php.net +MAKEFLAGS="-j $(nproc)" pecl install grpc swoole + +# 移除构建依赖和缓存 +strip --strip-debug /usr/lib/php/*/*.so +apt purge -y --auto-remove php8.4-dev build-essential php-pear +rm -rf /var/lib/apt/lists/* /tmp/pear /usr/share/man/* + +# 安装 Composer +wget -qO /usr/bin/composer https://mirrors.aliyun.com/composer/composer.phar +chmod +x /usr/bin/composer +composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ \ No newline at end of file