diff --git a/wordpress.sh b/wordpress.sh new file mode 100644 index 0000000..19fc0e9 --- /dev/null +++ b/wordpress.sh @@ -0,0 +1,234 @@ +#!/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 <