前言
之前部署服务器都是在Linux环境下自己一点一点安装软件,听说用宝塔傻瓜式部署更快,这次浅浅尝试了一把。
确实简单!
1、 买服务器
咋买服务器略,记得服务器装系统就装 Cent OS 7系列即可,我装的7.6。
2、创建宝塔Linux面板
然后就是百度搜索宝塔:
进去之后点击立即免费安装:
然后进入面板选择,我们用的是Linux服务器,所以选择Linux在线安装:
下面就是正常的输入密码IP什么的就可以了:
然后会出现一个模板选项,看看和你自己的项目匹不匹配,我的是匹配的,选择了它推荐的,版本可以自己根据自己的需要进行更改:
然后就是等着安装就完事儿了。
(下一步和上一步我忘记顺序了,不过你遇到的是哪种情况就对应看哪种情况的操作就好了)
安装完成之后会弹一个宝塔的应用面板,并附带有登录名称和密码,这个要自己记下来的嗷。
然后我们在浏览器打开这个面板,输入刚刚的名称和密码就能登录到该管理界面了。
3、部署Linux项目运行环境
然后除了上面已经安装的内容,因为项目是Java写的,我们还需要去安装一个Java项目一键部署:
安装完成之后我们点击Java项目一键部署的设置,点击spring boot它会让我们安装一个Tom Cat,我们安装一个,其实spring boot项目是不需要额外安装tomcat的,但是安装该tomcat我们可以得到一个JDK,就不需要自己去额外下载JDK了,所以安装一个,我安装的8。
4、配置MySQL
这里设置的密码千万记得要改自己项目后端里的数据库配置文件中的密码与其相同,还有数据库名称嗷,然后后端项目中配置文件里的数据库地址用localhost别用服务器IP地址,不然会报无法查询到数据库的错,具体是为什么我也不知道,就是经验是这样。
然后导入SQL文件:
下面这里记得还要导入一下嗷:
点击工具就能看见自己的数据都导入了没:
下面的这个“添加数据库”旁边的“root密码”记得也要改!
4.1 项目中用到了别的数据库(或者组件)怎么办
比如我的项目中用到了Redis,那就对应的再安装一个Redis就行了呀,然后进行配置就可以,我的项目中因为配置文件中没有设置Redis的密码和IP什么的,所以项目默认就会采用本机的Redis,其他的需要配置就配置没有配置就用默认的配置就可以。
5、上传程序文件
在www下面创建个新文件夹,将所有文件都传上来即可:
这里注意后端程序打包,如果出现包非常小的情况那么大概率是有jar包没跟着一起导进去,在后端的pom文件里加上下面这段重新打包,就算是多模块项目也是一样的,父模块(即)公共模块的代码相当于是jar包依赖被导入了子模块中,所以父模块不需要一起被放到服务器上:
......<build><plugins>...<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><!--项目的启动类--><mainClass>cn.akioyuan.springdemo.SpringDemoApplication</mainClass><layout>ZIP</layout></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build>
....
6、启动后端程序
然后在命令行终端(记得要在后端jar包所在文件目录下),使用如下命令,启动后端程序:
nohup java -jar xxxxxxxx.jar
有几个后端程序启动几个后端程序即可,另外这里不需要指定端口是因为我在项目的配置文件中已经配置好了。项目的运行日志都会被输入到nohup.out文件当中。
7、启动前端程序
我们查看nginx配置文件,进入Linux默认的安装Nginx位置:
cd /www/server/nginx/conf/nginx.conf
进来之后会发现,上图标亮的位置,就是指只要在这个文件目录下采用.conf文件后缀名的文件,就可以成为nginx的配置文件,那我们就进入这个文件中去配置我们的前端程序:
cd /www/server/panel/vhost/nginx/
在这个目录中创建我们的nginx配置文件:
然后将我们前端程序的地址配置文件全部写进去就可以:
直接贴个模板:
server { ##定义虚拟主机listen 80; ##设置监听端口,默认为80端口server_name localhost; ##域名charset utf-8;location / { ##定义请求匹配规则alias /www/bishe/distOfFront/; ##文件的存放目录try_files $uri $uri/ /index.html;index index.html index.htm; ##设置默认的索引文件}location = /api {proxy_pass http://localhost:7777/;proxy_set_header x-forwarded-for $remote_addr;}
}server { ##定义虚拟主机listen 8080; ##设置监听端口,默认为80端口server_name localhost; ##域名charset utf-8;location / { ##定义请求匹配规则alias /www/bishe/distOfAdmin/; ##文件的存放目录try_files $uri $uri/ /index.html;index index.html index.htm; ##设置默认的索引文件}location = /api {proxy_pass http://localhost:8989/;proxy_set_header x-forwarded-for $remote_addr;}
}
注意这里要将上面的server_name改成你自己的服务器的主机IP,然后esc+冒号wq保存退出以后,将nginx重新执行一下:
cd /www/server/nginx/sbin/
./nginx -s reload
一般情况下到这里就成功啦。
8、访问项目失败情况总结
8.1 项目端口没有开放
这个一定一定要去检查一下你的云服务器有没有开启你对应的端口规则,不光云服务器要检查,你的宝塔面板安全那一块也要检查端口有无开放!
8.2 项目防火墙没有关闭
宝塔面板安全那一块一定要关闭防火墙,不然也会出现连接不上的问题。
8.3 前端项目里的访问地址
前端项目里访问后端的接口地址必须全用服务器的IP地址嗷,不然访问就会失败。
8.4 如果上面的配置都想到了还有问题
那就关机重启一下服务器或者是宝塔,重启项目也试试。
总结
其实总的来说宝塔部署还是很方便的,但是因为自己的经验不足还是跳进了很多坑,我有印象的都记录在上面了。因为我是已经部署完了之后才写的这篇经验总结文,所以只能把自己能记起来的部分写在上面,照着上面做应该就能部署成功,如果遇到了什么新的问题那么再去百度一下应该就差不多了,其他的以后想起来了或者是又有新的坑了俺再回来补充~~