贝斯特专业网站,营销策划方案结构,wordpress搭建条件,做网站最省钱1. 环境准备#xff1a;从零开始的服务器与宝塔面板 大家好#xff0c;我是老张#xff0c;在互联网公司摸爬滚打了十来年#xff0c;从自己手动编译Nginx到后来用上各种面板#xff0c;踩过的坑比吃过的盐都多。今天咱们就来聊聊#xff0c;怎么用宝塔面板这个“懒人神器…1. 环境准备从零开始的服务器与宝塔面板大家好我是老张在互联网公司摸爬滚打了十来年从自己手动编译Nginx到后来用上各种面板踩过的坑比吃过的盐都多。今天咱们就来聊聊怎么用宝塔面板这个“懒人神器”把那个经典的SpringBoot后端Vue前端的若依RuoYi项目稳稳当当地部署上线。不管你是刚入行的运维新人还是想自己折腾点个人项目的开发者跟着这篇指南走保准你能避开我当年掉进去的那些“大坑”。首先你得有一台服务器。这就像你要开个店总得先有个门面房。国内主流的选择就那么几个云服务商挑个活动期的“轻量应用服务器”就行性价比高配置对于若依这种项目绰绰有余。买的时候操作系统我强烈推荐选择CentOS 7.x或者Ubuntu 20.04这类比较稳定、社区支持完善的Linux发行版宝塔面板对它们兼容性最好。服务器到手后第一件事不是急着装软件而是先去云服务商的控制台找到“安全组”或者“防火墙”设置。这里有个关键操作提前放行后续要用到的一系列端口。你可以先记下这几个8888宝塔面板默认端口、3306MySQL、6379Redis、8080后端SpringBoot应用常用端口、以及你打算给前端访问用的端口比如9999。提前开通能避免后面部署时出现“网络不通”的灵异事件。接下来就是安装宝塔面板了。这个过程其实官方文档写得很清楚但有几个细节新手容易忽略。用SSH工具比如FinalShell、XShell连接上你的服务器确保是以root用户登录。然后复制官方的安装命令。这里我多说一句不同Linux发行版的安装命令略有区别一定要去宝塔官网bt.cn复制对应你系统的命令。比如对于CentOS 7典型的命令长这样yum install -y wget wget -O install.sh http://download.bt.cn/install/install_6.0.sh sh install.sh执行后它会自动下载并安装。安装过程可能会持续几分钟期间会问你“是否同意用户协议”输入y回车就行。安装成功的标志是命令行最后会输出宝塔面板的访问地址、用户名和随机生成的密码。千万千万千万要把这一屏信息完整地保存下来最好是复制粘贴到本地的记事本里。虽然之后可以用bt default命令重新查看地址和用户名但初始密码是看不到了丢了就只能重置比较麻烦。保存好信息后打开浏览器输入那个外网面板地址格式如http://你的服务器IP:8888/xxxxxx就能看到登录页面了。用刚才记下的用户名和密码登录首次登录会弹出一个“推荐安装套件”的窗口。对于若依项目我建议在这里选择LNMP或LAMP环境即Nginx/Apache MySQL PHP。别担心我们虽然用JavaSpringBoot和Node.jsVue但Web服务器用Nginx做反向代理是标准操作PHP环境可以先装上不影响。勾选你需要的软件版本比如MySQL 5.7、Nginx 1.20然后点击一键安装。这个过程比较长可以去泡杯茶。安装完成后宝塔面板的主界面就清晰多了软件管理、文件管理、安全设置等功能一目了然这才是我们部署的“主战场”。2. 后端部署SpringBoot的稳如泰山之道后端是项目的核心部署SpringBoot的若依后台就像给发动机做调试每个螺丝都得拧到位。在宝塔面板的“软件商店”里确保我们已经安装了MySQL和Redis。安装后别急着去创建数据库先做两件事第一去云服务器控制台的安全组确认3306和6379端口已经放行第二回到宝塔面板的“安全”页面同样把这两个端口添加到防火墙放行列表里。这是双保险确保数据库和缓存服务能被你的应用访问到。2.1 数据库配置与导入现在来处理数据库。点击宝塔面板左侧的“数据库”添加一个MySQL数据库。数据库名、用户名、密码你都自己设定但强烈建议记录下来后面配置要用。创建成功后点击“导入”按钮。这里就是第一个容易踩坑的地方数据源文件。你本地开发时若依项目里应该有一个SQL脚本文件通常在sql目录下名字可能是ry_xxxx.sql或者quartz.sql。你需要先把这个文件上传到服务器。怎么上传呢在宝塔的“文件”管理器里找到一个合适的目录比如/www/backup点击上传选择本地的SQL文件。上传成功后再回到数据库的导入界面选择刚才上传的文件字符集通常选utf8mb4然后点击“导入”。导入成功后检查一下是否有错误。如果错误数为0恭喜你如果有错误通常是SQL语法或版本兼容问题需要你检查一下SQL文件内容或者尝试在本地用MySQL客户端先执行一遍看看。导入了数据库结构接下来要修改若依后端的配置文件让它们指向服务器的数据库和Redis。用你本地的IDE打开若依的后端项目找到ruoyi-admin模块下的resources目录里面有几个关键的YAML文件。首先是application-druid.yml这是数据源配置# 数据源配置 spring: datasource: druid: # 主库数据源 master: url: jdbc:mysql://localhost:3306/ry?useUnicodetruecharacterEncodingutf8zeroDateTimeBehaviorconvertToNulluseSSLtrueserverTimezoneGMT%2B8 username: root password: 你的数据库密码你需要把localhost改成你服务器的内网IP地址如果MySQL和SpringBoot应用在同一台服务器用127.0.0.1或localhost也行把ry改成你刚才在宝塔创建的数据库名username和password也要对应修改。记住这里填的是宝塔数据库管理里你创建的用户名和密码不是root用户的密码。然后是application.yml这里要改两个地方。一个是文件上传路径# 文件上传路径 file: path: /home/ruoyi/uploadPath prefix: http://你的服务器IP:8080file.path指的是服务器上存放上传文件的绝对路径这个目录需要你稍后在服务器上创建。file.prefix是文件访问的URL前缀用于前端显示图片先按这个格式写IP和端口换成你自己的。另一个是Redis配置# redis 配置 redis: host: 127.0.0.1 port: 6379 password: 你的Redis密码如果设置了的话 database: 0Redis如果没在宝塔里设置密码password就留空。但为了安全我建议在宝塔的Redis设置中设一个复杂密码然后在这里填上。2.2 日志路径与项目打包接下来是我踩过的一个大坑也是很多新手部署失败的原因日志路径。若依项目默认使用logback记录日志其配置在logback.xml文件中。默认的日志输出路径可能是logs/这样的相对路径或者像某些版本里写的/home/ruoyi/logs。问题来了当你把jar包扔到服务器上运行时它会在哪里创建这个logs目录如果路径不存在或没有写入权限应用就会启动失败报一堆找不到路径的错。所以在打包之前我强烈建议你检查并修改logback.xml文件将日志路径指向一个确定存在且有读写权限的绝对路径。比如property namelog.path value/www/wwwroot/logs/ruoyi /同时你需要在服务器上提前创建好这个目录。怎么创建很简单打开宝塔的“文件”管理器导航到/www/wwwroot目录右键新建一个文件夹叫logs再进入logs文件夹新建一个ruoyi文件夹。或者你也可以在终端里用命令创建mkdir -p /www/wwwroot/logs/ruoyi配置文件都改妥了现在可以打包了。在你的本地项目根目录有pom.xml的那个目录下打开命令行执行Maven打包命令mvn clean package -Dmaven.test.skiptrue-Dmaven.test.skiptrue是跳过测试加快打包速度。打包成功后在ruoyi-admin/target目录下你会找到那个宝贵的ruoyi-admin.jar文件。2.3 上传与启动宝塔的Java项目管理器打开宝塔面板进入“文件”管理器找一个地方存放你的jar包。我习惯放在/www/wwwroot/backend这样的目录下清晰好管理。在目标目录点击“上传”选择本地的ruoyi-admin.jar文件。同时别忘了我们之前在配置文件中提到的文件上传目录/home/ruoyi/uploadPath也需要在“文件”管理器中创建好如果不存在的话。重头戏来了使用宝塔的“Java项目”管理器。点击面板左侧的“软件商店”搜索“Java项目”安装这个插件如果还没安装的话。安装完成后在面板首页或“软件商店-已安装”里找到它并打开。点击“添加项目”会弹出一个配置窗口项目类型选择SpringBoot。项目jar路径点击右侧的文件夹图标找到你刚刚上传的ruoyi-admin.jar文件。项目名称起个容易识别的名字比如“RuoYi-Backend”。项目端口填写你在application.yml里配置的server.port默认是8080。确保这个端口在宝塔“安全”和云服务器安全组里都已放行。JDK版本推荐选择jdk1.8。虽然若依新版本可能支持更高JDK但1.8是最稳定的选择。如果列表里没有可以去“软件商店”搜索安装Tomcat它自带JDK环境或者手动安装JDK。项目执行命令这里一般会自动生成形如java -jar /www/wwwroot/backend/ruoyi-admin.jar不用动。开机自启务必勾选这样服务器重启后你的应用会自动启动。其他选项如JMX监控非必要可以不选。填写完毕点击“确定”。管理器会尝试启动你的应用。如果一切配置正确你会看到项目状态很快变成“运行中”。如果状态是“未启动”或者一直启动失败不要慌这是常态。点击项目名称进入详情页找到“项目日志”或“启动日志”标签点进去查看错误信息。常见的错误包括数据库连接失败检查用户名密码、地址端口、Redis连接失败、端口被占用、或者就是我们前面提到的日志路径无法创建。根据日志提示逐一排查问题都能解决。3. 前端部署Vue项目的华丽变身后端跑起来了接下来让Vue前端页面亮起来。前端部署的核心思想是把开发时动态编译的Vue项目打包成静态文件HTML、CSS、JS然后用一个Web服务器这里用Nginx来托管这些文件并配置反向代理把访问后端API的请求转发到我们刚刚启动的SpringBoot应用上。3.1 前端项目打包与Node.js版本坑首先在本地的Vue若依前端项目根目录下你需要先安装依赖如果没安装的话npm install安装完成后通常打包命令是npm run build:prod。但是这里有一个巨大的坑我敢说90%的人第一次部署都会遇到若依前端项目使用了某些加密算法在Node.js v17及以上版本中由于OpenSSL 3.0的兼容性问题直接运行npm run build:prod会报错错误信息可能包含digital envelope routines::unsupported或ERR_OSSL_EVP_UNSUPPORTED。解决方案有两种降级Node.js将你的本地Node.js版本切换到v16长期支持版LTS。可以用nvmNode Version Manager工具轻松切换。修改打包命令推荐如果不方便切换Node版本可以修改前端项目package.json文件中的scripts部分。找到build:prod这一行在命令前加上环境变量scripts: { dev: SET NODE_OPTIONS--openssl-legacy-provider vue-cli-service serve, build:prod: SET NODE_OPTIONS--openssl-legacy-provider vue-cli-service build }注意上面的SET命令是针对Windows系统的。如果你是在Linux或Mac系统下打包需要将SET改为exportbuild:prod: export NODE_OPTIONS--openssl-legacy-provider vue-cli-service build修改保存后再执行npm run build:prod命令。打包成功后会在项目根目录下生成一个dist文件夹里面就是我们要上传到服务器的所有静态文件。3.2 创建网站与上传文件回到宝塔面板。点击左侧“网站”然后点击“添加站点”。域名如果你有备案好的域名就填上去比如demo.yourdomain.com。如果暂时没有域名或者只想用IP访问这里可以填写你的服务器公网IP。根目录选择一个存放网站文件的目录宝塔会自动生成一个比如/www/wwwroot/demo.yourdomain.com。记住这个路径。FTP和数据库纯前端静态项目不需要可以不创建。PHP版本选择“纯静态”即可因为我们只用Nginx来服务HTML/JS/CSS文件。备注随便写比如“RuoYi前端”。点击“提交”站点就创建好了。创建完成后宝塔会自动为这个站点配置一个Nginx服务器块虚拟主机。接下来我们需要清空这个站点根目录下的默认文件比如宝塔生成的index.html等。进入“文件”管理器导航到刚才的网站根目录如/www/wwwroot/demo.yourdomain.com把里面的文件全部删除。然后将你本地打包好的dist文件夹里的所有内容注意是dist文件夹里面的所有文件和子文件夹而不是dist文件夹本身上传到这个网站根目录。你可以把dist文件夹里的内容压缩成ZIP包通过宝塔上传后再解压这样比一个个文件上传快得多。上传解压后确保网站根目录下直接就有index.html、css、js、fonts等文件。3.3 配置Nginx反向代理连接前后端的关键现在直接访问你的站点IP或域名你可能能看到页面但所有接口请求都会失败因为前端请求的API比如/prod-api/还不知道该发给谁。这就需要配置Nginx的反向代理。在宝塔的“网站”列表里找到你刚刚创建的站点点击右侧的“设置”。在弹出的菜单中选择“配置文件”。你会看到一个文本编辑器里面是Nginx的配置。我们需要在server { ... }这个大括号内找到location / { ... }的部分并在其后面添加一些新的配置。你需要添加或修改的主要是三个location块处理前端路由防止刷新404Vue等单页应用SPA使用history模式时需要这个配置。处理文件上传访问代理到我们后端指定的上传文件目录。代理后端API请求这是核心把前端发往/prod-api/的请求转发到后端的SpringBoot应用。一个完整的配置示例你需要修改其中的路径和IP端口如下server { listen 80; server_name 你的域名或IP; root /www/wwwroot/demo.yourdomain.com; # 你的网站根目录 index index.html index.htm; # 核心配置开始 location / { # 尝试直接访问文件如果找不到则重定向到index.html这是Vue Router history模式必需的 try_files $uri $uri/ /index.html; } location /profile/ { # 这个路径对应若依前端访问上传文件的路径将其映射到服务器上的实际存储目录 alias /home/ruoyi/uploadPath/; # 注意这里必须以斜杠结尾 # 如果图片无法显示可以尝试添加以下两行但通常不需要 # expires 30d; # add_header Cache-Control public, no-transform; } location /prod-api/ { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # 最重要的代理规则将 /prod-api/ 开头的请求转发到后端SpringBoot应用 proxy_pass http://127.0.0.1:8080/; # 这里改成你的后端服务器地址和端口 # 如果后端和Nginx在同一台机器就用127.0.0.1如果在不同机器就用内网IP。 # 末尾的斜杠很重要它会把 /prod-api/xxx 替换为 /xxx 传递给后端。 } # 核心配置结束 # 其他默认配置... access_log /www/wwwlogs/access.log; error_log /www/wwwlogs/error.log; }修改要点server_name和root根据你的实际情况修改。/profile/的alias路径必须和你后端application.yml中file.path配置的路径完全一致并且目录真实存在。/prod-api/的proxy_pass地址端口必须和后端SpringBoot应用启动的端口一致。如果都在同一台服务器用http://127.0.0.1:8080/是最安全的。配置修改完成后点击“保存”。然后在站点设置页面找到“重载配置”或“重启Nginx”的按钮点击它使新配置生效。4. 排坑指南与深度优化走到这一步理论上打开你的网站地址应该能看到若依的登录页面了。但如果没看到或者功能不正常别急我们来系统性地排坑。4.1 常见问题排查清单前端页面白屏或加载失败检查Nginx配置确认配置文件语法无误已重启Nginx。可以在宝塔的“软件商店”找到Nginx点“设置”-“配置修改”检查有无语法错误。检查静态文件路径确认网站根目录下确实有index.html等文件并且Nginx配置中的root指令指向了正确路径。检查端口放行确保服务器安全组和宝塔防火墙都放行了网站使用的端口默认80或你自定义的端口。前端能打开但登录时提示“网络错误”或“连接失败”检查反向代理配置这是最常见的原因。确认/prod-api/的proxy_pass地址和端口是否正确。可以尝试在服务器本地用curl http://127.0.0.1:8080测试后端服务是否真的在运行。检查后端服务状态去宝塔“Java项目”管理器确认你的SpringBoot应用是“运行中”状态。查看项目日志看是否有启动错误。检查API路径打开浏览器开发者工具F12切换到“网络(Network)”标签尝试登录看具体是哪个请求失败了。确认请求的URL是否匹配Nginx配置的/prod-api/。登录后图片不显示检查文件路径映射确认Nginx配置中/profile/的alias路径是否和后端file.path以及服务器上实际存在的目录一致。路径末尾的斜杠/很重要。检查文件权限确保/home/ruoyi/uploadPath目录或你自定义的目录对Nginx运行用户通常是www有读取权限。可以在宝塔“文件”管理器中右键该目录选择“权限”一般设置为755所有者读写执行组读执行其他读执行。尝试注释掉缓存头如配置示例中注释掉的那两行expires和add_header有时候缓存配置会导致新上传的图片不刷新可以先注释掉试试。后端启动失败日志报错数据库连接错误检查application-druid.yml中的数据库URL、用户名、密码。可以在服务器上用mysql -u用户名 -p密码 -h 127.0.0.1命令测试是否能连接。Redis连接错误检查application.yml中的Redis配置。可以在宝塔的Redis设置中查看或重置密码。端口被占用检查你配置的端口如8080是否已被其他程序占用。在服务器终端执行netstat -tlnp | grep 8080查看。日志路径权限错误确认logback.xml中配置的日志目录如/www/wwwroot/logs/ruoyi是否存在并且Java进程有写入权限。可以手动创建目录并赋予权限chmod -R 755 /www/wwwroot/logs。4.2 性能与安全优化建议当项目跑通后我们可以考虑一些优化让部署更专业。性能优化开启Gzip压缩在宝塔的网站设置中找到“配置文件”在http{...}块或server{...}块中添加或启用gzip压缩可以显著减小传输文件大小。gzip on; gzip_min_length 1k; gzip_comp_level 2; gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;配置静态资源缓存对于css、js、images、fonts这些静态资源可以设置较长的浏览器缓存时间减少重复请求。location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$ { expires 30d; access_log off; } location ~ .*\.(js|css)?$ { expires 7d; access_log off; }安全优化修改宝塔默认端口宝塔面板默认的8888端口是公开的容易被扫描。在宝塔面板“面板设置”中修改一个不常用的端口。禁用不必要服务如果不需要FTP、phpMyAdmin等服务可以在宝塔“软件商店”中将其卸载或停止。配置SSL证书HTTPS宝塔面板可以一键申请和部署Let‘s Encrypt的免费SSL证书。为你的域名开启HTTPS数据加密传输更安全也是现代网站的标配。定期备份利用宝塔的“计划任务”功能定期自动备份你的网站文件、数据库和项目配置。这是应对突发状况的最后防线。部署和运维是一个不断学习和解决问题的过程。这套基于宝塔面板的SpringBootVue若依部署流程是我经过多个项目实践总结下来的相对稳定和高效。每个项目、每台服务器环境都可能有些许差异遇到问题时耐心查看日志理解错误信息善用搜索引擎和社区大部分难题都能迎刃而解。记住把部署过程文档化记录下每一步的配置和遇到的坑下次再做就会轻松很多。