最近工作当中需要将自己的项目部署到linux服务器上,因为自己对linux操作系统不太熟悉,只是知道一些简单的命令,所以就在周末百度了下环境搭建。弄完之后感觉其实挺简单的,只是自己对linux不熟悉才踩了一些坑,弄了很长时间,所以想把自己的经历分享出来,给没做过linux服务器 Java搭建的人一点经验。
1.工具准备
之前在阿里云搞活动的时候弄了一台ECS服务器练手。在阿里云当时的页面推荐的linux连接方式是下一个putty的开源软件。使用的时候感觉挺一般。这周咨询以后发现Xshell+xftp搭配起来简直不要太好用,所以建议大家用这两个软件试试。
使用Xshell连接,感觉比putty界面更友好,功能更强大,具体的细节对比,因为我都只用了几次而已,就不误导大家了。
文件上传之前用过SecureCRT是个很老的版本,很长时间没用以后没找到文件上传的标志,后来又用psftp(跟putty一起带的一个组件)上传的时候可能不会用,只能上传单个文件。后来用了Xftp之后瞬间感觉,这就是为什么人类要发明工具,打开直接拖动就好了,也能看到linux的目录结构,心里有了大概了目录结构以后使用文件操作的时候也大概心里有个底,知道要改的配置在哪个文件夹。
2.JDK下载
购买阿里云服务器,我选择的是CentOS7.0的操作系统。直接输入Java以后提示没有这个命令,说明没有阿里云默认的CentOS7.0没有安装JDK。自己安装的话可以通过阿里云的yum或者自己打开连接下载的方式。因为打算自己多练习一些linux的操作,我这次使用的就是自己找链接用Curl命令下载。
在Oracle的官网找了linux64的下载地址按照百度出来的命令拼一起下载,大家第一次使用可以参照:http://www.cnblogs.com/gbyukg/p/3326825.html
第一次使用的命令如下(jdk下载错误示范一):
curl -O http://download.oracle.com/otn-pub/java/jdk/8u121-b13/e9e7ea248e2c4826b92b3f075a80e441/jdk-8u121-linux-x64.tar.gz
使用之后显示如下:
因为第一次使用curl,也不知道哪里出错了,还一直以为curl命令不对,多方打听才知道原来是oracle的那个jdk下载URL有问题,这个URL经过三次重定向才拿到最终的下载地址,并且下载的时候有个cookie必须带上,所以就正确的姿势应该是(参考http://blog.csdn.net/gsls200808/article/details/52336745):
curl -L "http://download.oracle.com/otn-pub/java/jdk/8u101-b13/jdk-8u101-linux-i586.tar.gz" -H "Cookie: oraclelicense=accept-securebackup-cookie" -H "Connection: keep-alive" -O
注意!注意!自己使用的时候不要直接复制!我当时就是直接复制往下走以后配环境变量,各种尝试都不成功。倒回来才发现我直接复制的,下载的JDK是32位版本的,在64位的机器上配环境变量不可能成功!!大家在下载的时候根据自己的实际情况去oracle官网找了连接再来用这个命令下载。
3.文件解压
为了软件调理,不至于这儿一堆软件那儿一堆,推荐大家在 /usr/java 目录下讲刚刚下载的jdk压缩文件解压。
注意:/usr 并不是/user写错了 全称应该是Unix System Resource 表示Unix系统资源。之前我看别人的环境变量配置还以为是/user写错了,所以我自己在root文件夹下新建了个/user/java...
在这里就能看出xftp的优越性了,之前自己作死,打算不用xftp建文件目录,自己用命令操作。在xftp中看了就能发现,root用户有个root文件夹,所有的文件资料都在自己的文件夹内,其他的非root用户在/home目录下有自己名称对应的文件夹。推荐大家将jdk解压到 /usr/java 目录下
解压命令(tar命令参见:http://www.cnblogs.com/qq78292959/archive/2011/07/06/2099427.html):
tar -zxvf jdk-8u121-linux-x64.tar.gz //tar -有gzip属性的、解压、显示所有过程、使用档案名称 文件名 //也可以使用通配符如 tar -zxvf jdk-8*
当然,上面的命令必须cd到/usr/java 目录下,jdk的tar.gz格式的文件也必须放到这儿(直接下载到这儿或者下载到别的地方然后使用mv命令移动过来mv命令参见:http://blog.sina.com.cn/s/blog_7479f7990101089d.html)
等大家解压完了以后目录像我这样(我多了tomcat的压缩文件和文件夹)
[root@izathmlle7tq57z ~]# cd /usr/java [root@izathmlle7tq57z java]# ls apache-tomcat-8.5.11 apache-tomcat-8.5.11.tar.gz jdk1.8.0_121 jdk-8u121-linux-x64.tar.gz
如果直接cd /usr/java/jdk1.8.0_121/bin/ 直接输入java应该已经有提示了,没有提示的一个是检查下jdk版本,另一个查看下有没有执行权限 (ls -l)
4.环境变量配置
环境变量配置,跟window一样,一个是更改所有用户的环境变量 就更改 /etc/profile 这个文件使用 vi /etc/profile 在vi编辑器中打开/etc/profile这个文件
另一个是只改当前用户的环境变量 当前用户的环境变量配置在 ~/.bash_profile 这个文件中同样使用vi编辑器打开(如果打开是个新文件什么都没有,说明文件名输错了)
推荐更改/etc/profile 一劳永逸
//更改系统的 vi /etc/profile //更改当前用户的则: vi ~/.bash_profile //上面两个文件的编辑方法都一样都是给最后面添加几个全局的变量 export JAVA_HOME=/usr/java/jdk1.8.0_121 export CLASSPATH=.:${JAVA_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH //大家根据自己的实际情况更改下JAVA_HOME的值即可 //.表示当前目录 ~表示当前用户主目录 /表示根目录 //多个值之间用;隔开 //$JAVA_HOME表示引用前面的变量的值 跟windows里面 %JAVA_HOME%一样 //PATH配置的时候跟window一样,千万别改变之前的值,不然影响系统运行,所以第三行export PATH中添加了java_home/bin之后还引用了之前path中的值
在更改环境变量以后要是环境变量生效。我看大家都是使用以下代码。因为/etc/profile这个文件只在开机的时候读取一次,我们上面更改了以后并不能马上生效,所以使用这个命令使配置生效。我之前出了好多错误,为了让更改生效,我重启的机器。重启以后输入java -version能识别就成功了
source /etc/profile
[root@izathmlle7tq57z ~]# java -version java version "1.8.0_121" Java(TM) SE Runtime Environment (build 1.8.0_121-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode) [root@izathmlle7tq57z ~]#
这次java环境变量配置,用到了好多之前没用过的命令,感觉第一次使用并不需要弄得很清楚,多使用几次熟练了自然就会了。