570
文章
·
28623
阅读
570
文章
·
28623
阅读

有40人阅读过 在飞牛系统上一键部署网站
发布于2025/03/08 更新于2025/03/08
[ 教程仅保证更新时有效,请自行测试。]

不想用1panel部署网站,可以使用以下脚本手动部署网站。

一键在飞牛上部署网站.rar

代码如下:

#!/bin/bash

# 脚本名称: nginx.sh
# 作者: Brian
# 版本: 1.1
# 描述: 此脚本用于在飞牛系统上快速配置Nginx网站服务,支持PHP和MySQL。
# 使用方法:将脚本文件放在网站根目录,运行bash nginx.sh,根据提示设置网站名称和端口即可

# 网站配置模块
configure_website() {
    # 配置网站 #
    WebLocal=$PWD  # 网站根目录

    # 请求用户输入
    read -p "请输入网站名称(建议英文,例如:test):" WebName
	while true; do
		read -p "请输入网站端口(例如:8091):" Web_PORT

		# 检查端口是否为数字
		if ! [[ "$Web_PORT" =~ ^[0-9]+$ ]]; then
			echo "错误:端口号必须为数字,请重新输入。"
			continue
		fi

		# 检查端口范围
		if [ "$Web_PORT" -lt 1 ] || [ "$Web_PORT" -gt 65535 ]; then
			echo "错误:端口号必须在 1 到 65535 之间,请重新输入。"
			continue
		fi

		# 检查端口是否被占用
		if ss -tuln | grep -q ":$Web_PORT"; then
			echo "错误:端口 $Web_PORT 已被占用,请选择其他端口。"
			continue
		fi

		# 如果所有检查通过,退出循环
		break
	done

    # 修改权限
    sudo chown -R www-data:www-data $WebLocal
    sudo chmod -R 755 $WebLocal

    # 创建Nginx配置文件
    cat > /etc/nginx/sites-available/$WebName <<EOF
server {
    listen $Web_PORT default_server;
    listen [::]:$Web_PORT default_server;

    root $WebLocal;
    index index.php index.html index.htm;

    server_name _;

    location / {
        try_files \$uri \$uri/ =404;
    }
	
	# 配置 PHP 支持
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
        include fastcgi_params;
    }

    # 禁止访问 .htaccess 文件
    location ~ /\.ht {
        deny all;
    }
}
EOF

    # 创建符号链接
    sudo rm -f /etc/nginx/sites-enabled/$WebName  # 删除已存在的符号链接
    sudo ln -s /etc/nginx/sites-available/$WebName /etc/nginx/sites-enabled/

    # 检查Nginx配置
    sudo nginx -t
    if [ $? -ne 0 ]; then
        echo "错误:Nginx 配置检查失败,请检查配置文件。"
        exit 1
    fi

    # 重启Nginx
    sudo systemctl restart nginx

    echo "配置完成,网站已启动。"
    echo "访问地址:http://<服务器IP>:$Web_PORT"
}

# 检查 Nginx 是否已经在运行
if systemctl is-active --quiet nginx; then
    echo "Nginx 已经在运行,跳过更新和升级步骤,直接配置网站。"
    configure_website
    exit 0
else
    echo "Nginx 未运行,开始检查和安装..."
    # 更新系统包列表
    echo "正在更新系统包列表..."
    sudo apt update

    # 升级已安装的包
    echo "正在升级已安装的包..."
    sudo apt upgrade -y

    # 检查是否已安装 nginx
    if ! command -v nginx &> /dev/null; then
        echo "Nginx 未安装,正在安装 Nginx..."
		
		while true; do
			read -p "请输入 Nginx 监听端口(例如:8090):" Nginx_PORT

			# 检查端口是否为数字
			if ! [[ "$Nginx_PORT" =~ ^[0-9]+$ ]]; then
				echo "错误:端口号必须为数字,请重新输入。"
				continue
			fi

			# 检查端口范围
			if [ "$Nginx_PORT" -lt 1 ] || [ "$Nginx_PORT" -gt 65535 ]; then
				echo "错误:端口号必须在 1 到 65535 之间,请重新输入。"
				continue
			fi

			# 检查端口是否被占用
			if ss -tuln | grep -q ":$Nginx_PORT"; then
				echo "错误:端口 $Nginx_PORT 已被占用,请选择其他端口。"
				continue
			fi

			# 如果所有检查通过,退出循环
			break
		done

echo "端口 $Nginx_PORT 可用,继续配置 Nginx..."
	
        sudo apt install nginx -y
	
	# 修改 Nginx 配置文件监听端口
		NGINX_CONF="/etc/nginx/sites-available/default"
		if [ -f "$NGINX_CONF" ]; then
			echo "修改 Nginx 配置文件以监听 $Nginx_PORT 端口..."
			sudo sed -i "s/80 default_server/$Nginx_PORT default_server/g" "$NGINX_CONF"
		else
			echo "Nginx 配置文件 $NGINX_CONF 不存在,请检查路径。"
			exit 1
		fi
    else
        echo "Nginx 已安装,跳过安装。"
    fi

    # 检查是否已安装 php-fpm
    if ! dpkg -l | grep -q php8.2-fpm; then
        echo "php8.2-fpm 未安装,正在安装 php8.2-fpm..."
        sudo apt install php8.2-fpm -y
    else
        echo "php8.2-fpm 已安装,跳过安装。"
    fi

    # 检查是否已安装 php-mysql
    if ! dpkg -l | grep -q php-mysql; then
        echo "php-mysql 未安装,正在安装 php-mysql..."
        sudo apt install php-mysql -y
    else
        echo "php-mysql 已安装,跳过安装。"
    fi

    # 启动 Nginx 和 php8.2-fpm
    sudo systemctl start nginx
    sudo systemctl start php8.2-fpm

    # 设置 Nginx 和 php8.2-fpm 开机自启
    sudo systemctl enable nginx
    sudo systemctl enable php8.2-fpm

    # 查询 Nginx 和 php8.2-fpm 状态
    echo "Nginx 状态:"
    sudo systemctl status nginx --no-pager

    echo "php8.2-fpm 状态:"
    sudo systemctl status php8.2-fpm --no-pager

    # 配置网站
    configure_website
fi


文章对你有帮助吗?
  • 一般[0]
  • 很赞[0]
  • 没用[0]
  • 垃圾[0]
  • 无语[0]
扫一扫,手机浏览手机访问本站