155 lines
3.2 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# 设置错误时立即退出
set -e
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 日志函数
log_info() {
echo -e "${GREEN}[INFO]${NC} $1"
}
log_warn() {
echo -e "${YELLOW}[WARN]${NC} $1"
}
log_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
# 安装Docker和Docker Compose
install_docker() {
log_info "安装Docker和Docker Compose..."
# 安装Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
rm get-docker.sh
# 安装Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# 将当前用户添加到docker组
sudo usermod -aG docker $USER
log_info "Docker和Docker Compose安装完成"
}
# 克隆DNMP仓库
clone_dnmp() {
log_info "克隆DNMP仓库..."
# 创建项目目录
mkdir -p ~/projects
cd ~/projects
# 克隆DNMP仓库
git clone https://github.com/yeszao/dnmp.git
cd dnmp
# 复制环境配置文件
cp env.sample .env
log_info "DNMP仓库克隆完成"
}
# 配置DNMP
configure_dnmp() {
log_info "配置DNMP..."
cd ~/projects/dnmp
# 修改.env文件
sed -i 's/PHP_VERSION=7.4/PHP_VERSION=8.2/' .env
sed -i 's/MYSQL_VERSION=5.7/MYSQL_VERSION=8.0/' .env
sed -i 's/REDIS_VERSION=4.0/REDIS_VERSION=7.0/' .env
# 创建网站目录
mkdir -p www
# 创建默认网站
cat > www/index.php << EOF
<?php
phpinfo();
EOF
log_info "DNMP配置完成"
}
# 启动DNMP
start_dnmp() {
log_info "启动DNMP..."
cd ~/projects/dnmp
# 启动服务
docker-compose up -d
# 等待服务启动
sleep 10
# 检查服务状态
docker-compose ps
log_info "DNMP启动完成"
}
# 配置PHP开发环境
configure_php_dev() {
log_info "配置PHP开发环境..."
# 安装Composer
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
# 配置Composer镜像
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
# 安装PHP开发工具
composer global require phpunit/phpunit
composer global require squizlabs/php_codesniffer
composer global require friendsofphp/php-cs-fixer
# 添加Composer全局bin目录到PATH
cat >> ~/.zshrc << EOF
# Composer配置
export PATH="\$HOME/.composer/vendor/bin:\$PATH"
EOF
log_info "PHP开发环境配置完成"
}
# 主函数
main() {
log_info "开始安装PHP开发环境..."
# 安装Docker和Docker Compose
install_docker
# 克隆DNMP仓库
clone_dnmp
# 配置DNMP
configure_dnmp
# 启动DNMP
start_dnmp
# 配置PHP开发环境
configure_php_dev
log_info "PHP开发环境安装完成"
log_info "请运行 'source ~/.zshrc' 或重新打开终端以使环境变量生效。"
log_info "访问 http://localhost 查看PHP信息页面。"
log_info "默认MySQL密码123456"
log_info "默认Redis密码123456"
}
# 执行主函数
main