docker-php-image/setup.sh
2025-07-27 05:14:24 +00:00

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/