文章目录
内容还没整理全 . . .持续更新中
前提
到阿里云官网购买服务器和域名
-
服务器:我买的是阿里云轻量应用服务器(Linux),是学生机来的,9.5/月,需要是学生或24岁一下的才能购买。不然没有优惠哦
-
域名:我购买的是.top类型的,便宜(3元/年)
安装putty
- 进👉 putty官网 下载putty.exe可执行程序
安装BT-Panel宝塔面板
安装JDK并配置环境变量
-
到官网中下在jdk-8u231-linux-x64.tar.gz,然后通过BT-Panel宝塔面板上传并解压到指定目录中。
-
使用putty远程连接工具连接到阿里云的Linux服务器主机。
-
使用用户名(root用户)和服务器远程连接密码进行登陆,注意:输入的密码是不显示的。
-
使用
cd
命令进入安装jdk的目录,比如安装再/usr/local/java目录中,那么进cd
进/usr/local/java
目录
-
🆗,到重点咯!也就是设置java环境变量的环节。
-
首先输入
vi /etc/profile
命令,然后紧跟着在键盘上按 i 键,进入编辑模式,以便添加环境变量。
-
将光标移动到底部,然后复制java环境变量,按鼠标右键粘贴进去(当然你手写也没有问题)
#java环境变量 export JAVA_HOME=/usr/local/java/jdk1.8.0_231 export JRE_HOME=/usr/local/java/jdk1.8.0_231/jre export CLASSPATH=.:$JAVA_HOME/lib$:JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin/$JAVA_HOME:$PATH
-
添加了java环境变量后,按esc键退出编辑模式,然后输入
:wq
命令保存编辑内容
-
在我们输入
:wq
命令回车后,就会恢复成这样
-
接着,输入
source /etc/profile
命令让环境变量生效。然后输入java -version
查看jdk版本。如果显示jdk版本则证明java环境变量配置成功咯
-
🆗,至此,阿里云Linux服务器配置java环境变量圆满成功!接下来我们到了tomcat配置环节!
安装Tomcat并开放端口后
-
到官网中下在apache-tomcat-9.0.29.tar.gz,然后通过宝塔面板上传并解压到指定目录中。
-
使用putty远程连接工具连接到阿里云的Linux服务器主机。
-
使用用户名(root用户)和服务器远程连接密码进行登陆,注意:输入的密码是不显示的。
-
使用
cd
命令进入tomcat安装的bin目录。使用ls
命令显示bin目录下的所有指令。通过./startup.sh
命令启动tomcat服务器
-
🆗,tomcat启动后,就到我们的重点咯!👉tomcat启用成功后,是不是就可以使用阿里云服务器的公网IP+8080进行访问啦?答案是否定的,启动tomcat服务器后,还需要完成两步操作:1. 在阿里云服务器中添加安全组开放8080端口 2. 开放Lunix防火墙的8080端口
-
在阿里云服务器中添加安全组开放8080端口
-
开放Lunix防火墙的8080端口
-
🆗,现在我们就可以通过阿里云服务器公网IP+8080来访问tomcat服务器啦
-
防火墙相关命令(参考内容)
systemctl status firewalld
查看防火墙的状态(开启状态还是关闭状态)systemctl start firewalld
开启防火墙systemctl stop firewalld
关闭防火墙service firewalld restart
重启防火墙firewall-cmd --zone=public --list-ports
查看防火墙开放的端口firewall-cmd --zone=public --add-port=8001-8999/udp --permanen
指定udp的端口范围为8001-8999的可以通过防火墙,即开放范围为8001-8999的端口firewall-cmd --zone=public --add-port=80/udp --permanen
开放udp的80端口firewall-cmd --zone=public --add-port=80/tcp --permanen
开放tcp的80端口firewall-cmd --zone=public --add-port=3306/udp --permanen
开放udp的3306端口firewall-cmd --zone=public --add-port=3306/tcp --permanent
开放tcp的3306端口firewall-cmd --zone=public --add-port=8848/tcp --permanent
开放tcp的8848端口firewall-cmd --zone=public --add-port=8847/tcp --permanent
开放tcp的8847端口firewall-cmd --zone=public --remove-port=8080/tcp --permanent
关闭tcp的8080端口firewall-cmd --zone=public --remove-port=3306/tcp --permanent
关闭tcp的3306端口firewall-cmd --reload
刷新防火墙Warning: ALREADY_ENABLED: 3306:tcp
注意这不是一个命令,这是一个提示,意思是tcp的3306端口已经开放了
阿里云服务器地址端口不能公网访问的问题,及让端口通过防火墙的命令
安装MySQL
- 后期继续更新. . .
- 阿里云远程linux服务器的MySQL数据存储在
/www/server/data/
目录下。
- 首先,将本地导出的sql文件通过BT-Panel宝塔面板上传到服务器云盘的随便一个目录上(这里我上传到
/home/caidong/
目录下)
本地Navicat管理远程MySQL
- MySQL服务没有开启。
- 使用putty远程连接工具,进入远程MySQL。然后使用
grant all privileges on *.* to 'root'@'%' identified by '远程数据库的密码' with grant option;
命令开放远程MySQL的访问权限,然后使用flush privileges;
命令刷新访问权限。
- 开放MySQL访问权限后,就可以使用本地Navicat来管理远程mysql咯(对了,别忘了看一下远程Linux服务器又没有开放3306端口以及Linux防火墙有没有放行3306端口)
购买域名并解析域名及站点备案
-
在阿里云购买了域名后,到控制台中查看我们购买的域名
-
进入控制台后,就可以看到我们的域名咯!
-
点击解析后就会进入该界面,然后我们点击添加记录来解析域名。
-
其中,记录类型、解析路线和TTL都使用默认值即可。
👉主机记录填@
或www
,那它们是什么意思呢?👉例如填了www
,那我们就可以通过www.caidong4356.com
来访问我们的网站。如果填的是@
,那我们就则是通过caidong4356.top
来访问我们的网站
👉记录值填我们购买的阿里云服务器的公网IP
-
前面我添加了两个记录,一个主机记录填了@,另一个主机记录填了www。这样它就会给我们解析出两个域名,其中一个作为第二域名。
-
接下来看一下新手指导,里面有一些解释。
-
解析完域名之后,我们来测试一下解析的域名是否有生效。
-
对我们解析后的域名(caidong4356.top 或 www.caidong4356.top)进行检测
-
🆗,我们的域名解析已完成。当然我们还没有给站点备案噢,在没有备案之前域名好像只能用两天!
-
站点备案根据要求填写资料即可,不过阿里云服务器好像要购买三个月以上才能备案哦!
解决无需端口号访问Tomcat
- 我们在配置Tomcat的时候,需要通过阿里云服务器的公网IP+8080端口或者域名+8080端口才能访问到,但这样会显得很麻烦。
解决无需端口号访问问题:
原理:
- 80端口是http协议的默认端口,(注意咯,http协议默认使用的端口是80端口,但它并不会占用80端口。所以不要觉得http协议的端口是80,tomcat的端口也该为80,会发生冲突! 80端口访问体现在:在浏览器中输入url,然后会根据IP(或域名)找到具体的服务器,根据端口找到具体的应用程序,但如果你没有写端口号,则会去访问http协议默认的80端口号。所以如果tomcat端口修改为80后,就会默认去访问tomcat。)所以个人觉得http协议默认的80端口可以这样理解:如果有写端口,我就去访问该端口;如果没有写端口,我就默认去访问80端口
方法1:
- 通过宝塔面板,到Tomcat安装目录下的conf目录下找到server.xml文件,将tomcat默认的8080端口修改成80端口。
方法1:
-
如果你不想通过宝塔面板修改,那么可以通过putty远程连接工具来修改。
-
输入root用户和服务器密码后连接上阿里云服务器。
cd
进tomcat安装的conf目录,使用vim server.xml
命令打开server.xml文件
-
向下移动光标找到8080端口,键盘中按下
i
键进入编辑模式,将8080端口修改成80端口
-
修改后,按
esc
键退出编辑模式,然后输入:wq
命令保存修改(不用管光标在哪,直接输入:wq
命令即可),按回车键
-
🆗,至此,我们的80端口就修改成功咯!
-
重点,我在修改了tomcat的端口为80并重启tomcat后,输入公网IP却访问不了tomcat。(这里是真的香菇男瘦)
思考:
- (一):回去看了阿里云服务器的安全组,有填加80端口规则(即放行80端口)。所以不是阿里云服务器安全组的问题,排除掉这一可能。
(二):使用systemctl status firewalld
命令查看Linux防火墙状态,防火墙是启动状态。然后通过firewall-cmd --zone=public --list-ports
命令查看Linux防火墙开放的所以端口,发现80端口有开放(即防火墙不拦截80端口)。所以也不是Linux防火墙拦截了80端口。所以这个可能也可排除咯。
(三): 使用netstat -apn|grep 80
命令查看80端口的占用情况,发现80端口被一个名为httpd的进程占用了(由于我已经修改过来了,没改之前占用80端口的进程是httpd而不是java),所以我就使用kill -9 httpd进程的PID
命令来杀死httpd进程(进程的PID就是进程名前面的哪个数字,比如下图中的java进程的PID是3648)。然后我就天真的认为这次应该没有问题了吧,然后通过公网IP去访问tomcat。现实是残酷的,该男瘦的时候还是得男瘦!!!,再一次使用netstat -apn|grep 80
命令查看80端口的占用情况,fuck咯,怎么httpd进程又把我的80端口给占用,奔溃呀!!。
这时候除了一句fuck,我都无话可说咯。好吧,还是不能放弃的,于是问了下度娘httpd是什么?原来httpd.exe是Apache的一个应用程序,好吧,我记起来了,原来在我安装宝塔面板的时候,顺便一键安装了Apache,好吧,即然是Apache把我的80端口给占了,那我就把Apache给删除掉
- 接着在浏览器输入公网IP,看到了吗,看到了没有,成功了、成功了。
IDEA打包SSM项目成war并部署到服务器上
-
指定项目打包成war包
-
点击右侧的Maven Project打开选框,clean清楚target目录,然后package打包成war包。
-
到项目的target目录下找到打包好的war包
-
将打包好的war包上传至云服务器中tomcat的webapps目录下,并改名为o2o(o2o是我的本地项目名称)
-
🆗,这样就可以咯,现在我们就可以通过公网IP+项目名+项目路由地址(@Mapping注解指定的地址)。其中项目名可理解为项目中的应用上下文路径
-
配置图片虚拟路径,让图片可以在前端页面中正常显示。进入tomcat的conf目录下,编辑server.xml文件(也可通过putty远程连接工具进入tomcat的conf目录后,使用
vim
命令编辑)。
-
在server.xml文件中的标签内添加
<Context docBase="/home/shop/image/upload" path="/upload" debug="0" reloadable="true"/>
,它的意思是,当访问路径中遇到/upload
就会自动解析成/home/shop/image/upload
,这里的/home/shop/image/upload
是图片的物理路径(真实路径)
解决无需项目名访问项目问题
- 我们在本地访问我们的web项目的时候,一般是在浏览器中输入本地IP+8080端口+项目名+路由地址。当然我们前面说了,将Tomcat的8080端口改为80端口后,访问时就可以不用加上端口号。那么是不是也可以不用项目相关路由就可以访问到项目呢?当然可以啦,看下面看下面👇👇👇
- 省略. . . 我也还没搞懂 . . .
项目只输入公网IP/域名就可访问无需输入端口号和项目名的实现方法
部署spring boot项目到阿里云服务器
1. 以前部署其它Java web项目到阿里云服务器时,直接将项目打包成war包,放到阿里云服务器中tomcat的webapps目录下。就可以咯
2. 但前几天,搞了个spring boot项目到阿里云服务器上,然后就出现了大麻烦!不管怎么尝试都访问不了项目。后来无意间才想起来,spring boot内置了tomcat,而云服务器上又安装了tomcat,起了冲突。所以我们需要排除掉spring boot的内置tomcat,在打包即可。
spring boot (2):spring boot 打包tomcat、tomcat 部署多个项目、服务器部署项目SSL 设置(阿里云)