#!/bin/bash # 检查是否以 root 用户运行 if [ "$(id -u)" != "0" ]; then echo "请以 root 用户运行此脚本" exit 1 fi # 检测 Linux 发行版 DISTRO="" if [ -f /etc/os-release ]; then . /etc/os-release DISTRO=$ID fi if [ "$DISTRO" != "ubuntu" ] && [ "$DISTRO" != "debian" ]; then echo "此脚本仅支持 Ubuntu 和 Debian 发行版。" exit 1 fi PKG_MANAGER="apt-get" PHP_SERVICE="php7.4-fpm" install_dir="/var/www/html" db_name="wp$(date +%s)" db_user="$db_name" db_password=$(openssl rand -base64 12) mysqlrootpass=$(openssl rand -base64 12) # 检查并创建安装目录 if [ ! -d "$install_dir" ]; then echo "安装目录 $install_dir 不存在,正在创建..." mkdir -p "$install_dir" else echo "安装目录 $install_dir 已存在" fi # 询问用户输入域名和电子邮件地址 read -p "请输入您的域名: " domain_name read -p "请输入邮箱用于申请证书 : " user_email # 验证域名和电子邮件地址格式 if ! [[ $domain_name =~ ^[a-zA-Z0-9.-]+$ ]]; then echo "域名格式错误。" exit 1 fi if ! [[ $user_email =~ ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$ ]]; then echo "电子邮件地址格式错误。" exit 1 fi # 安装 Nginx install_nginx() { echo "正在安装 Nginx..." $PKG_MANAGER update -y $PKG_MANAGER install -y nginx systemctl enable nginx systemctl start nginx # 删除默认的 Nginx 站点配置 if [ -f /etc/nginx/sites-enabled/default ]; then echo "删除默认 Nginx 站点配置..." rm -f /etc/nginx/sites-enabled/default fi } # 安装 MySQL install_mysql() { echo "正在安装 MySQL..." $PKG_MANAGER install -y mysql-server mysql-client systemctl enable mysql systemctl start mysql # 配置 MySQL root 用户密码 mysql --user=root <<-EOF ALTER USER 'root'@'localhost' IDENTIFIED BY '$mysqlrootpass'; FLUSH PRIVILEGES; EOF # 检查 MySQL 是否成功启动 if ! systemctl is-active --quiet mysql; then echo "MySQL 服务启动失败。" exit 1 fi # 保存 MySQL root 密码 cat > /root/.my.cnf < /etc/nginx/sites-available/wordpress <> "$install_dir/wp-config.php" # 创建数据库和用户 mysql --user=root --password=$mysqlrootpass <