155 lines
3.2 KiB
Bash
155 lines
3.2 KiB
Bash
#!/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 |