有40人阅读过
在飞牛系统上一键部署网站
发布于2025/03/08 更新于2025/03/08
[ 教程仅保证更新时有效,请自行测试。]
发布于2025/03/08 更新于2025/03/08
[ 教程仅保证更新时有效,请自行测试。]
[ 教程仅保证更新时有效,请自行测试。]
不想用1panel部署网站,可以使用以下脚本手动部署网站。
代码如下:
#!/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]