這個(gè)腳本 http://www.wtbis.cn/install-php-and-composer 在Apple M2/Darwin
下的uname -m
和uname -s
如下圖:
請(qǐng)直接發(fā)出優(yōu)化后的install-php-and-composer結(jié)果吧, 我這沒(méi)有設(shè)備測(cè)試
還發(fā)現(xiàn)了個(gè)問(wèn)題,最后下載證書(shū)那一步,打開(kāi)證書(shū)后發(fā)現(xiàn)證書(shū)內(nèi)容 https://download.workerman.net/php/ca-certificates.crt 是下載記錄。
# 檢查并下載 CA 證書(shū)
if [ ! -f "/etc/ssl/certs/ca-certificates.crt" ]; then
echo "下載證書(shū)..."
sudo mkdir -p /etc/ssl/certs
sudo curl -#o /etc/ssl/certs/ca-certificates.crt https://download.workerman.net/php/ca-certificates.crt
if [ $? -eq 0 ]; then
echo "CA 證書(shū)已下載并保存到 /etc/ssl/certs/ca-certificates.crt"
else
echo "下載 CA 證書(shū)失敗"
exit 1
fi
fi
根據(jù)記錄,真正的文件應(yīng)該是 https://curl.se/ca/cacert-2024-09-24.pem 才對(duì)。
#!/bin/bash
# 檢查文件是否存在并提示覆蓋
check_and_prompt() {
local file_path=$1
local file_name=$2
if [ -f "$file_path" ]; then
read -p "$file_name 已存在。是否覆蓋?(y/n): " choice
if [ "$choice" != "y" ]; then
echo "跳過(guò) $file_name 安裝。"
return 1
fi
fi
return 0
}
# 檢查系統(tǒng)架構(gòu)
ARCH=$(uname -m)
OS=$(uname -s)
case "$ARCH" in
x86_64)
ARCH_SUFFIX="x86_64"
;;
aarch64)
ARCH_SUFFIX="aarch64"
;;
arm64)
ARCH_SUFFIX="aarch64"
;;
*)
echo "不支持的架構(gòu): $ARCH"
exit 1
;;
esac
case "$OS" in
Linux)
OS_SUFFIX="linux"
;;
Darwin)
OS_SUFFIX="mac"
;;
*)
echo "不支持的操作系統(tǒng): $OS"
exit 1
;;
esac
# 選擇PHP版本
echo "請(qǐng)輸入要安裝的PHP版本 (8.0-8.3):"
read PHP_VERSION
# 驗(yàn)證版本號(hào)
if [[ ! "$PHP_VERSION" =~ ^8\.[0-3]$ ]]; then
echo "無(wú)效的PHP版本: $PHP_VERSION"
exit 1
fi
# 構(gòu)造下載鏈接
PHP_FILENAME="php-$PHP_VERSION-$OS_SUFFIX-$ARCH_SUFFIX.tar.gz"
PHP_URL="https://download.workerman.net/php/$PHP_FILENAME"
# 檢查并提示覆蓋PHP
if check_and_prompt "/usr/local/bin/php" "PHP"; then
# 下載并安裝PHP
curl -# $PHP_URL -o $PHP_FILENAME
if [ $? -ne 0 ]; then
echo "下載失敗: $PHP_URL"
exit 1
fi
tar -xf $PHP_FILENAME
sudo mv ./php /usr/local/bin
fi
# 檢查并提示覆蓋Composer
if check_and_prompt "/usr/local/bin/composer" "Composer"; then
# 下載并安裝Composer
echo "安裝Composer..."
curl -# -O https://download.workerman.net/php/composer.phar
if [ $? -ne 0 ]; then
echo "下載Composer失敗"
exit 1
fi
sudo mv composer.phar /usr/local/bin/composer
sudo chmod a+x /usr/local/bin/composer
fi
# 檢查并下載 CA 證書(shū)
if [ ! -f "/etc/ssl/certs/ca-certificates.crt" ]; then
echo "下載證書(shū)..."
sudo mkdir -p /etc/ssl/certs
sudo curl -#o /etc/ssl/certs/ca-certificates.crt https://download.workerman.net/php/ca-certificates.crt
if [ $? -eq 0 ]; then
echo "CA 證書(shū)已下載并保存到 /etc/ssl/certs/ca-certificates.crt"
else
echo "下載 CA 證書(shū)失敗"
exit 1
fi
fi
echo "安裝完成。"