【Lehr】记一个不会Linux的新手把JavaWeb项目布置到阿里云服务器上的经历
购买服务器
阿里云的云翼计划对学生有很大的优惠,所以我选的这个。由于是初次接触服务器,所以选择的容易上手的轻量级应用服务器,搭配的是自带的Wordpress镜像(主要是因为里面配置好了MySql)
如果想要域名,就要另外去买一个。现在的域名备案管得比较严格,要用指定的幕布照相而且还需向阿里寄送资料,整个过程大概需要20天。
连接服务器
这是通过管理控制台连接服务器的方法:
由于我是新手,对于Linux系统操作不是很了解,所以用到了WinSCP。这是一个Windows环境下使用SSH的开源图形化SFTP客户端,也就是可以给用户提供一些视图的操作方式,大大方便了我们这些新手。
这是WinSCP的连接界面,用户名是root,可以通过公钥登陆,也可以采用账号密码登陆(在服务器的控制页面可以手动设置密码)
现在我们已经远程登陆了服务器了:
接下就是配置环境了。
配置Java环境
有了WinSCP的帮助,我们可以直接通过拖拽的方式上传文件。
这里需要用到的JDK应该是Linux版本的,文件名是tar.gz结尾。
上传之后,我们需要解压文件。(我这里的文件是直接上传到root目录里去的)
(其实可以直接在本机上解压然后再上传到服务器)
在服务器上解压文件需要用到指令
tar -zxvf jdk-8u144-linux-x64.tar.gz
解压后得到文件夹jdk1.8.0_144
,为了方便,我直接新建了一个为Java
的文件夹并把它拖入这个新文件夹中了(所以现在这个文件的目录就是/Java/jdk1.8.0_144 就这么简介)
然后需要配置路径,可以直接通过视图窗口找到profile文件,在etc文件夹下
直接双击点开就可以了
在文本中插入
JAVA_HOME=/Java/jdk1.8.0_144 (这里写你自己的路径)
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOEM/bin:$PATH
export JAVA_HOME ?CLASS_PATH ?PATH
现在打开控制台查看
显示结果:配置成功。
配置tomcat环境
同样,去网上下载tomcat的Linux对应版本
解压,得到文件夹apache-tomcat-9.0.1
同样是在etc/profile的文本中插入:
export CATALINA_HOME= apache-tomcat-9.0.1 (你自己的安放目录)
export CLASSPATH=.:$JAVA_HOME/lib:$CATALINA_HOME/lib
export PATH=$PATH:$CATALINA_HOME/bin
或者,如果出现缺少JRE_HOME的情况下,去tomcat的bin目录下打开setclasspath.sh文件,写入
export JRE_HOME=/Java/jdk1.8.0_144/jre(你的JRE地址)
关闭防火墙
现在我们先不忙着启动tomcat,因为有Linux是有防火墙的,端口没开你外界也访问不了的。所以打开控制台
输入:
systemctl start firewalld
启动防火墙,不然输入什么指令都没用
然后
firewall-cmd --zone=public --add-port=8080/tcp --permanent
设置8080端口永久开启(tomcat的默认端口就是8080)
reload始方法生效
firewall-cmd --reload
查看开启的端口
firewall-cmd --zone=public --list-ports
这一套操作的图是这样的:
3306和8005也开了,其实那个是我之前开的。。。。。不管。。。。反正显示这样就成功了。
但是还没完!
阿里云是有自带的防火墙的,所以需要前往服务器管理页面设置。
自己添加一个8080端口就对了。
现在,道路已经畅通了!!!!!!
布置Java Web项目
把你的Java Web项目打包成war拖到tomcat的webapps目录下:
这是打包:
这是部署到服务器:
是不是看到上面还有给同名的文件夹?
那个其实是服务器在运行的时候生成的!
接下来
我们就可以启动tomcat了!!!
这样: 进入bin目录,打开控制台,输入
./startup.sh
你会看到
现在,你就可以在浏览器上打开啦!
现在我的域名还没备案成功,所以是通过IP:8080端口访问的。(我设置的这个项目的默认页就是这个登陆页面所以后面没用写/Login.jsp)
连接自带的数据库
但是,如果你的项目涉及到数据库操作,那么直接这么放上来有可能是会失败的,所以请注意修改你的DBHelper里的信息:
你怎么知道你的密码呢???这样:
到阿里云的服务器管理页面的应用详情里去找,按上面说的做。(或者你直接用WinSCP到root目录里打开env这个txt也可以直接看到密码)
但是还没完,需要到服务器上去建表是吧。用cmd比较麻烦,所以直接选择用tomcat连接。
(有些情况下可能初始设置的这个数据库是不许远程访问的,这个嘛,我也描述不清这个过程,就麻烦您去看下别人的帖子了。大概步骤就是从控制台登陆数据库,【如果用mysql -uroot -p登不起可能是因为没开启,貌似在yum里下个上面东西就好了】,然后把权限改成允许所有用户操作,这个嘛,别的大佬附了有的,我菜我就不讲了)
这是tomcat的第一种连接方法,输入的是数据库的用户名和密码。如果失败了,可以试试下面这种:
这个其实是先通过SSH远程连接服务器然后再内部访问数据库了。。。
这里输入的密码是你服务器的密码。
现在连起了
看到那个wordpress没有,这个是镜像系统自带的一个数据库,这说明你连到的就是你服务器的数据库了!!!
然后把你的表建好,就可以了。
不过这里还会有个小小的问题:数据库在8小时内没被访问会自动关闭,也就是你在睡一觉起来之后执行Servlet的时候会报错无法连接数据库,像这样:
解决的方法就是把这个自动关闭的时间设置长点就行了(因为不支持设成永久的)
具体方式是,打开您的数据空,输入
SHOW VARIABLES LIKE ‘%timeout%’;
然后你会看到这个:
其中的wait_timeout和interactive_timeout都是默认28800秒,也就是8小时。
所以,随便改个长点的时间:
SET interactive_timeout = 2880000;
SET wait_timeout = 2880000;
这就对了。
如果还不行,用WinSCP打开etc/my.cnf,在[mysqld]下面添加参数如下:
interactive_timeout=28800000
wait_timeout=28800000
运行项目
emmm,那么这样,这个Java Web项目就可以正常在服务器端运行了!!!
(Ps.这是一个基于JSP+Servlet+JDBC+MySQL的垃圾博客练手小项目)
好了,那么就结束了。如果哪里有错,希望各位大佬指教!!!