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