看看就好,我也是第一次部署网站,自己研究,各种踩坑,学习记录一下。
可以自己买一台服务器,但是价格不便宜,而且需要电信开放端口,每年宽带费都要好多,还不如租的划算。
登录阿里云:https://www.aliyun.com/activity/
如果是阿里云新用户,直接到活动页面买新人专享,也就70
几块一年,我不是新用户了,就按照下面的来吧,我买了70
块一个月的。
点击立即购买,然后在上面选购服务器,为了方便,我镜像选择的是镜像市场上jdk+mysql+tomcat
镜像(免费的那个)。没有选择这个镜像这几样东西就需要自己安装了。
买完后,在工作台->保有资源云产品->云服务器ESC
中找到自己的服务器,点击蓝色的服务器名进入服务器的配置页面,这里可以点击远程连接进入服务器,不过要先重置一下密码,点击重置实例密码来重置。然后再远程连接,使用重置的密码登录服务器:
回到服务器的配置页面,点击配置安全组规则,点快速添加将http
添加上去,端口范围可能是80
或8080
:
添加完以后就可以访问了,不过不是使用在服务器中ifconfig
查出来的ip
访问,在服务器的配置中有它的公网ip
,在浏览器中直接输入公网ip
即可看到提示信息了:
到这里为止,说起来其实总共就两步,租服务器改密码和添加http安全组规则
(如果服务器不是像我一样现成环境的,就还需要自己安装jdk
、mysql
等,centos
上用yum
安装应该也不麻烦)。如果不能访问,检查一下这两项吧。
接着就是把自己的项目部署到服务器上了。
服务器不一定需要选择阿里云,还可以看看腾讯云、华为云之类的,由于我在阿里云好像不是新用户,所以买的一个月的价钱都靠近新用户在其他云买一年的价钱了,而且好像域名也便宜,后面考虑再搬到腾讯云上去吧。搬到腾讯云上也一样使用,只要使用的系统镜像相同,配置起来差不多的。
本来想用tomcat
移植的,但是兜兜转转tomcat
总是配置不起来,还花费了我好多时间,直接用jdk
了。以下是在windows
上使用jdk运行的测试过程,测试没问题就可以拿到CentOS
系统上部署了。
先下载jdk
,下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
如果下载历史版本,地址:https://www.oracle.com/java/technologies/oracle-java-archive-downloads.html
也可以直接在idea
中项目结构中下载:
不过如果想要在windows
上脱离idea
进行项目测试,最好还是在官网上下吧。
服务器上和win
主机上jdk
版本要对应,对应关系参考:https://blog.csdn.net/qq_31587373/article/details/103744268
通过在服务器上执行alternatives --config java
发现服务器已安装了三个镜像,但是现在springboot
项目基本上都要jdk1.8
以上的支持,所以点击3
切换成1.8
版本,那么windows
上也要安装1.8
版本的jdk
。
windows
上,下载完以后,安装,记一下安装路径。然后配置jdk
的环境变量,把jre
或jdk
的目录添加到JAVA_HOME
就好了。填的没问题的话在cmd
直接输入java
就有东西输出出来。
打开idea->文件->项目结构->项目->项目sdk
,选择刚刚下好的jdk
:
右侧maven
中双击package
,打包成jar
,打包的jar
在target
文件夹下,拷贝出来:
把idea
上跑的的springboot
项目停掉,在cmd
进入到拷贝的jar
目录,然后执行java -jar 导出的包.jar
:
这里参考了:https://blog.csdn.net/qq_14959239/article/details/83653707
安装vsftpd
,服务器终端执行yum install vsftpd
。执行完发现我的服务器上已经安装好了的,真强啊,要啥都给我装好了,省的我再去配了。
开启服务:(如果开启失败可以参考上面链接,另外服务器上这个是开机自动启动这个服务的,所以再去启动也会失败)
#启动
service vsftpd start
#停止
service vsftpd stop
windows
上下载xftp
,下载地址:https://www.netsarang.com/zh/xftp-download/
装好后,新建会话,填写信息连接:(22
是ssh
和sftp
的端口,ftp
用21
)
连接上以后,就可以从左边(win
)把文件拖到右边传过去了
在服务器上新建一个目录,然后把jar
包传到服务器上:
然后先前已经切换了jdk 1.8
,那么就直接运行吧。运行的代码与windows
中一样,执行java -jar myblogweb-0.0.1-SNAPSHOT.jar
即可:
就运行起来了。
但是试验了一下,发现ip:8080
格式通过浏览器无法访问,一直试了好久都不行,无语。后来在服务器上乱点,突然想起来我的安全组规则里,http
开放的端口是80
,而非8080
。天哪噜,耿直的jdk
还在死守着8080
端口呢。
于是乎,回到windows
,打开idea
,在application.yml
中添加:
server:
#端口号
port: 80
然后就可以通过localhost:80
访问到项目的index.html
了。不过在windows
上运行时,发现80
端口已经被微软的广告给占用了(无语),将项目重新打成jar
包,发到服务器上。
然而在linux
上用jdk
跑起来时提示80
端口被占用,查了一下结果是被tomcat
占用的,但是运行shutdown.sh
报错,烦,直接把它的进程kill
掉了。
然后重新运行就成功了,此时在windows
上打开浏览器,输入服务器ip:80/
(默认页面)或 服务器ip:80/home
(我网站的主页)即可访问:
由于数据库还没同步上去,所以还有问题,不过项目已经运行起来并且可以远程访问了。
首先装好mysql
,yum
或者tar
安装。
启动mysql
:service mysqld start
使用root
登录:mysql -u root -p
停止mysql
:service mysqld stop
登录发现登不上去,没办法,改密码吧,参考这里:https://help.aliyun.com/knowledge_detail/42520.html
先使用vim
编辑mysql
的配置文件,执行vim /etc/my.cnf
,在[mysqld]
字段下添加skip-grant-tables
:(vim不会用的自行百度)
重启mysql
服务,/etc/init.d/mysqld restart
。
执行/usr/bin/mysql
登录数据库。
依次执行:
USE mysql;
--其中 [$Password] 是你要重设的密码,如 password ('123')
--注意,密码最好跟windows上mysql一致,否则还需要去spring项目里修改mybatis的配置
UPDATE user SET Password = password ('[$Password]') WHERE User = 'root';
flush privileges;
quit
再次执行vim /etc/my.cnf
,将之前添加的那句话删掉。
重启mysql
,/etc/init.d/mysqld restart
。
然后再使用mysql -u root -p
登录,并使用刚刚设置的密码进入mysql
。
进入以后,就只需要做一件事,就是把windows
上的数据同步过来。
首先是创建数据库:CREATE DATABASE mydatabase;
数据库名跟windows
中保持一样。
切换到新数据库:use mydatabase;
设置数据库编码:set names utf8;
然后回到windows
中,使用Navicat
将几张用到的表转储sql文件->数据和结构
,就导出了sql
文件。
然后在服务器的mysql
中执行source /home/test/articlecomment.sql
来将sql
导入:
如果提示不能识别utf8mb4_0900_ai_ci
,就把sql
文件中的所有utf8mb4_0900_ai_ci
替换成utf8mb4_general_ci
就行了。
数据库导入后,网页在服务器上的显示就跟本地一样啦。
使用时发现,运行以后如果是远程登陆启动的服务,如果此时把远程登录的窗口关掉,服务就停止了,网页就登不上了。
这个可以参考:https://blog.csdn.net/darren817/article/details/79807871里提供的机中方法。
我用的是screen
,安装时只需yum install screen
即可。
使用时,在命令前添加screen
,如:
screen java -jar myblogweb-0.0.1-SNAPSHOT.jar
这样即使退出服务也不会停止了。
如果是阿里云服务器还可以在远程登陆里,通过发送远程命令来启动服务,那即使关掉页面也不会停止,比如给服务器发送以下命令来启动服务:
cd /home/test
java -jar myblogweb-0.0.1-SNAPSHOT.jar
为了方便我就还是在阿里云买的,购买地址:https://wanwang.aliyun.com/domain/
买完后,域名控制页面:https://dc.console.aliyun.com/next/index#/domain/list/all-domain
对域名进行一系列的实名认证后,开始绑定服务器和域名。
找到想要绑定的域名,点击解析添加绑定的服务器:
点击添加记录:
记录类型里面有很多,既然绑定服务器ip
,那就选A
吧。主机记录就看你像用来干嘛,线路不知道就默认吧,记录值就填写服务器的公网ip
。TTL
一般设10
分钟。
填写完不放心就再勾选点击启用:
然后需要等待一段时间就可以通过域名来访问服务器的ip
对应的主页了。注意,刚添加完是不能访问的,具体等多久,我也不清楚,反正第二天起来就能访问了。
访问成功,点击跳转其他页面以后,会提示网站没有备案,域名开通后2-3
天以后才能进行域名的备案,所以先等一等,备案的地址可以点击下方的点击进入备案管理平台去进行备案,或直接访问https://beian.aliyun.com/来给自己的域名备案。备案需要等待一两个月,哎,慢慢等吧。正好慢慢改网站吧。
90
几块钱又租了一年的腾讯云的服务器,部署了一下项目,操作流程大致也差不多。
买完服务器以后,可以点击重装系统来调整系统镜像:
在镜像市场中搜索java
就能找到和之前阿里云上类似的镜像了,也是免费的:
然后想要在浏览器通过公网ip
访问,也需要添加安全规则:
添加完http
的80
或8080
端口到安全规则后再回来这边确认,然后返回会提示是否重启主机,重启完就能通过公网ip
访问了。
要把阿里云服务器的数据导入到腾讯云,使用mysqldump
将数据导出为sql
脚本:
-- root 为用户名,mydatabase为数据库名,mydatabase.sql为导出的数据库脚本名
mysqldump -u root -p mydatabase > mydatabase.sql
导出的sql
文件会出现在root
目录下,使用xftp
拿过来再扔到腾讯云即可。导入时还是一样。
另外,部署完项目后访问ip
,默认跳转的是宝塔的欢迎页面,而不是项目中的index.html
页面,使用xftp
,进入到这个文件夹:
然后把里面的两个html
删除即可。
其他的,我感觉这个上面vim
想要进行insert
时真的是麻烦,按了以后好久才有反应,各种难受。还有就是这里的mysql
比较新,修改密码时,修改的字段名不再是password
字段了而是改成了authentication_string
字段。
还有关于域名,腾讯云上好像能够把域名迁移过来,不过我原来的域名还没备案完呢,就不试了。