把自己的网站部署服务器

看看就好,我也是第一次部署网站,自己研究,各种踩坑,学习记录一下。

1、租服务器:

可以自己买一台服务器,但是价格不便宜,而且需要电信开放端口,每年宽带费都要好多,还不如租的划算。

登录阿里云:https://www.aliyun.com/activity/

如果是阿里云新用户,直接到活动页面买新人专享,也就70几块一年,我不是新用户了,就按照下面的来吧,我买了70块一个月的。
把自己的网站部署服务器_第1张图片
点击立即购买,然后在上面选购服务器,为了方便,我镜像选择的是镜像市场上jdk+mysql+tomcat镜像(免费的那个)。没有选择这个镜像这几样东西就需要自己安装了。

买完后,在工作台->保有资源云产品->云服务器ESC中找到自己的服务器,点击蓝色的服务器名进入服务器的配置页面,这里可以点击远程连接进入服务器,不过要先重置一下密码,点击重置实例密码来重置。然后再远程连接,使用重置的密码登录服务器:
把自己的网站部署服务器_第2张图片
把自己的网站部署服务器_第3张图片

2、添加http安全组规则:

回到服务器的配置页面,点击配置安全组规则,点快速添加将http添加上去,端口范围可能是808080
把自己的网站部署服务器_第4张图片
添加完以后就可以访问了,不过不是使用在服务器中ifconfig查出来的ip访问,在服务器的配置中有它的公网ip,在浏览器中直接输入公网ip即可看到提示信息了:
把自己的网站部署服务器_第5张图片
把自己的网站部署服务器_第6张图片
到这里为止,说起来其实总共就两步,租服务器改密码和添加http安全组规则(如果服务器不是像我一样现成环境的,就还需要自己安装jdkmysql等,centos上用yum安装应该也不麻烦)。如果不能访问,检查一下这两项吧。

接着就是把自己的项目部署到服务器上了。

服务器不一定需要选择阿里云,还可以看看腾讯云、华为云之类的,由于我在阿里云好像不是新用户,所以买的一个月的价钱都靠近新用户在其他云买一年的价钱了,而且好像域名也便宜,后面考虑再搬到腾讯云上去吧。搬到腾讯云上也一样使用,只要使用的系统镜像相同,配置起来差不多的。

3、jdk启动项目:

本来想用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中项目结构中下载:
把自己的网站部署服务器_第7张图片
不过如果想要在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
把自己的网站部署服务器_第8张图片
windows上,下载完以后,安装,记一下安装路径。然后配置jdk的环境变量,把jrejdk的目录添加到JAVA_HOME就好了。填的没问题的话在cmd直接输入java就有东西输出出来。

打开idea->文件->项目结构->项目->项目sdk,选择刚刚下好的jdk
把自己的网站部署服务器_第9张图片
右侧maven中双击package,打包成jar,打包的jartarget文件夹下,拷贝出来:
把自己的网站部署服务器_第10张图片
idea上跑的的springboot项目停掉,在cmd进入到拷贝的jar目录,然后执行java -jar 导出的包.jar

把自己的网站部署服务器_第11张图片
可以运行,打开浏览器就可以显示网页了。

4、把jar传输到到服务器上:

这里参考了:https://blog.csdn.net/qq_14959239/article/details/83653707

安装vsftpd,服务器终端执行yum install vsftpd。执行完发现我的服务器上已经安装好了的,真强啊,要啥都给我装好了,省的我再去配了。

开启服务:(如果开启失败可以参考上面链接,另外服务器上这个是开机自动启动这个服务的,所以再去启动也会失败)

#启动
service vsftpd start
#停止
service vsftpd stop

把自己的网站部署服务器_第12张图片
windows上下载xftp,下载地址:https://www.netsarang.com/zh/xftp-download/

装好后,新建会话,填写信息连接:(22sshsftp的端口,ftp21
把自己的网站部署服务器_第13张图片
连接上以后,就可以从左边(win)把文件拖到右边传过去了
把自己的网站部署服务器_第14张图片
在服务器上新建一个目录,然后把jar包传到服务器上:
把自己的网站部署服务器_第15张图片

然后先前已经切换了jdk 1.8,那么就直接运行吧。运行的代码与windows中一样,执行java -jar myblogweb-0.0.1-SNAPSHOT.jar即可:
把自己的网站部署服务器_第16张图片
就运行起来了。

但是试验了一下,发现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(我网站的主页)即可访问:

由于数据库还没同步上去,所以还有问题,不过项目已经运行起来并且可以远程访问了。

5、数据库:

首先装好mysqlyum或者tar安装。

启动mysqlservice mysqld start
使用root登录:mysql -u root -p
停止mysqlservice mysqld stop

登录发现登不上去,没办法,改密码吧,参考这里:https://help.aliyun.com/knowledge_detail/42520.html

先使用vim编辑mysql的配置文件,执行vim /etc/my.cnf,在[mysqld]字段下添加skip-grant-tables:(vim不会用的自行百度)
把自己的网站部署服务器_第17张图片
重启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

把自己的网站部署服务器_第18张图片
再次执行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导入:
把自己的网站部署服务器_第19张图片
如果提示不能识别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
6、注册域名:

为了方便我就还是在阿里云买的,购买地址:https://wanwang.aliyun.com/domain/

买完后,域名控制页面:https://dc.console.aliyun.com/next/index#/domain/list/all-domain

对域名进行一系列的实名认证后,开始绑定服务器和域名。

找到想要绑定的域名,点击解析添加绑定的服务器:
把自己的网站部署服务器_第20张图片
把自己的网站部署服务器_第21张图片
点击添加记录:
把自己的网站部署服务器_第22张图片
记录类型里面有很多,既然绑定服务器ip,那就选A吧。主机记录就看你像用来干嘛,线路不知道就默认吧,记录值就填写服务器的公网ipTTL一般设10分钟。

填写完不放心就再勾选点击启用:
把自己的网站部署服务器_第23张图片
然后需要等待一段时间就可以通过域名来访问服务器的ip对应的主页了。注意,刚添加完是不能访问的,具体等多久,我也不清楚,反正第二天起来就能访问了。
把自己的网站部署服务器_第24张图片
访问成功,点击跳转其他页面以后,会提示网站没有备案,域名开通后2-3天以后才能进行域名的备案,所以先等一等,备案的地址可以点击下方的点击进入备案管理平台去进行备案,或直接访问https://beian.aliyun.com/来给自己的域名备案。备案需要等待一两个月,哎,慢慢等吧。正好慢慢改网站吧。
把自己的网站部署服务器_第25张图片

7、腾讯云上的部署:

90几块钱又租了一年的腾讯云的服务器,部署了一下项目,操作流程大致也差不多。

买完服务器以后,可以点击重装系统来调整系统镜像:
把自己的网站部署服务器_第26张图片
在镜像市场中搜索java就能找到和之前阿里云上类似的镜像了,也是免费的:
把自己的网站部署服务器_第27张图片
然后想要在浏览器通过公网ip访问,也需要添加安全规则:
把自己的网站部署服务器_第28张图片
把自己的网站部署服务器_第29张图片
添加完http808080端口到安全规则后再回来这边确认,然后返回会提示是否重启主机,重启完就能通过公网ip访问了。
把自己的网站部署服务器_第30张图片
要把阿里云服务器的数据导入到腾讯云,使用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字段。

还有关于域名,腾讯云上好像能够把域名迁移过来,不过我原来的域名还没备案完呢,就不试了。

你可能感兴趣的:(java)