57 lines
1.5 KiB
Bash
57 lines
1.5 KiB
Bash
#!/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 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/ |