阿里云Linux服务器初探html
Linux图像化界面(知道有这个东西就行了,不要安)
鸟哥的Linux 私房菜 基础学习篇
Linux经常使用基本命令
在Windows上经过putty远程登陆CentOS
Linux文件系统
Linux命令简写和全称
Linux命令简写和全称-2
Linux必学的60个命令
28 个必备的 Linux 命令行工具java
1.第一个程序包mysql
今天休息,随后打算照着网上的说的方法,实验一下eclipse处处war包的过程.随后遇到了不少坑.这里来挖一挖.高手略过.
先是我作了一个小程序,about输入域名(domainname)查询IP地址,用到了JSP,Servlet.
首先是一个表单用于输入域名和点击查询:linux
其次对应表单的action还有一个IpChecker.java 即用一个Servlet处理表单:git
而后直接在eclipse里点到IpCheck.jsp页面启动服务->Tomcat启动,弹出页面,输入域名,随后点击查询便能查询到域名的IP地址.在这个Servlet里面,使用的是InetSocketAddress类:程序员
以后利用RequestDispatcher的include方法把查询的IP一同展现到当前页面.web
找了一篇不错博客关于Socket
http://www.javashuo.com/article/p-wvrmlahd-a.htmlsql
随后,借着Linux服务器想在线测试一下,不料发生了情况.shell
最后,总结了一下,服务器和本地开发环境要使用一致的版本.
不过,庆幸的是,IP查询这个功能仍是作出来了,想一想以前在小互联网公司作美工和网站维护时,常用的IP地址查询…作起来原来这么简单.
固然,这只是一个小demo,更厉害的是能够查询IP的浏览量,搜索网站目录结构及内容,和进行TCP/IP传输时截取和篡改了(*该项违反网络安全协议,可用于本身网站测试用于网络安全学习)…数据库
2.在服务器端的神器Vim
以前看Unix系统编年史(也就是Linux系统的前身),了解到vi,也就是vim的做者 Bill Joy.
http://blog.csdn.net/adcxf/article/details/2091571 <-Bill Joy 介绍
在以前看PHP做者是个挺胖的哥们,而写出了让阿波罗成功登录月球的代码的竟然是个女的.名字叫 Margaret Hamilton <- 她的维基百科 https://en.wikipedia.org/wiki/Margaret_Hamilton_(scientist)
玛格丽特·汉密尔顿 | 旁边是「著做等身」的阿波罗制导系统的代码
一样是很伟大的程序员,在Bill Joy的Vim中开始界面也有做者提倡的帮助乌干达儿童的标语.
首先打开你的xshell或者putty.在Command line输入命令: vi 而后按tab键两下
查看有没有vim,注意vi虽然是Bill的做品,但咱们要使用的是vim,没有的话咱们安装一个.
继续在命令行输入:yum -y install vim*(这里是centos,也就是Linux发行版的命令.)
在一系列的安装代码飘事后,咱们在用vi命令查看下有没有vim显示了呢~
至此,vim安装成功.在命令行输入vim回车.
接下来咱们作点有趣的东西
…略…
这时界面已是HelloWorld.java的编辑页面了.
好,咱们写一个输出用来测试. 记得要先按下键盘上的 i 键用来输入.想切换回命令模式按一下 ESC.
好,千万先别保存!,若是你和我同样以前习惯性地按了ctrl+S ,那么恭喜你,你如今的xshell或者已经卡住了.由于在vim中,保存什么的也是要用命令的.
刚才新建文件是用的 :new ,保存命令是 :x ,好,这时,你的HelloWorld.java文件才正式出如今文件夹root中.不要着急切换到root文件夹,由于root根目录是能够直接享受命令操控的.
用咱们熟悉的编译方法 javac HelloWorld.java ,若是不提示错误,则编译经过了,看到root文件夹下面会有它的.class文件,若是提示错误,会告诉你错误在哪里.
也许你发现你在编辑HelloWorld.java时,打出字母并无高亮,那是由于你没有对vim进行配置.
设置方法很简单,回到初始命令行(若是你在别的目录,使用 cd ~/ 回到初始目录)
好,将以上内容写入打开的 .vimrc 而后 :x 保存并退出, 再打开刚刚的 HelloWorld.java 是否是显示得和个人同样了?
3.重装系统之殇
由于本地环境是tomcat9和jdk9,而服务器端当时没看好安装的是双8系统,而在Oracle官网上也没有这些老版本的维护了,因此决定从新安装下系统.
中止服务器实例后,再选择后面的更换系统盘:
我在以前作公司网站时,由于版本的问题这样重启服务器好屡次,而最熟悉的当属aliyun linux…但选择这项的话是不能选择共享市场中配置的tomcat9和jdk9直接用的.
抱着学习态度…我选择了:
这个系统是不带tomcat和jdk的…因此从头安装一次,顺便学习一下配置环境.
在xshell输入java版本查询,果真.not found(java命令不存在)
jdk下载时要选择Linux版本.格式如图.
有时候在xshell命令使用 yum list java*能够查看可下载的java包,但那些常常不包含最新版本.
通常tomcat先下载完毕了,别着急,通常tomcat是要有jdk才能运行的(java写的tomcat嘛,固然咯!)
看了一下vim不用再下载了(虽然没有了一些插件)(换系统这种事必定是要备份的,若是学习时,没有过重要的文件暂且不弄,那确定也是很大的工程)
实际上是不能乱安装的,每一个目录的命名都是互相牵制的,没什么必要不要更名,找到一篇不错的博客讲解各个目录的做用:
http://www.javashuo.com/article/p-skbczgnz-e.html
其中讲到/usr/local是系统管理员安装本身下载软件的地方.那咱们查看下这个目录.由于新服务器的缘故吧,虽然local里有文件,可是大多都是空文件,不一样管它们,建立两个文件夹,一个叫java一个叫tomcat.
使用xshell命令 cd /usr/local 切换到local目录,随后使用建立文件夹命令 mkdir java tomcat 这样就建立好啦!
为了了解更多的远程ssh工具,SSH:安全外壳协议 SSH: Secure Shell Protocol
安全外壳协议(SSH)是一种在不安全网络上提供安全远程登陆及其它安全网络服务的协议。
我又下载了个Putty,准备用它的pscp功能直接用命令行上传文件至服务器.
为了方便调用pscp.exe,我在本地电脑环境变量设置了新的环境变量指定到pscp.exe的目录,例如个人是E:\putty, 这样,直接在本地命令行工具输入pscp即能使用它啦!
调试了一阵终于能够了,
注意,这是命令行,输入是从pscp开始的,而文件jdk…前面没有盘符是由于文件就在Administrator中,若是你的文件在 d盘 就在文件前面加上d:\jdk…gz ,注意!!!必定要输入文件的全名,包括后缀名!这里在windows中查看文件全名的方法再也不概述!
小提示: 上传前先传个小文件例如新建个 a.txt 上传试试. 下载也是,好比创建新文件,选定文件夹后在xshell输入 touch 1.txt 即建立了一个新的文件. 再下载这个文件,若是下载成功,则目录选定正确.
OK,jdk包上传完成了,如今进行解压,使用命令:
参数 -zxvf 什么意思呢?
-c 建立压缩文件
-x 解开压缩文件
-t 查看压缩包内有那些文件
-z 用Gzip压缩或解压
-j 用bzip2压缩或解压
-v 显示压缩或解压的过程
-f 目标文件名
-p 保留原始的权限与属性
-P 使用绝对路径来压缩
-C 指定解压到的目录
为了方便设置环境变量,咱们把文件夹目录的长名字改得短一些.
首先cd到java目录,用 ls 命令查看当前文件目录, 然后使用简单的更名方式 mv 当前名称 要更名称 进行更名. 如我如今的java目录下的jdk目录叫 jdk-9.0.1 ,咱们直接改成 jdk9 (最好有版本号).
则使用 mv jdk-9.0.1 jdk9 ,即改成了jdk9. (mv 也有移动文件的功能)
找了一篇配置环境的博客.比较新:我按照这个设置已经能够看java -version了:
http://www.javashuo.com/article/p-otvhavaq-q.html
而后命令行执行: source /etc/profile
上面是个人 /etc/profile 关于jdk和tomcat环境配置的设置.能够参考一下.
万事俱备只欠东风,这下本地开发环境和线上彻底对应起来了.let’s go!
4.MySQL的没落与MariaDB的兴起
要制做动态页面项目(Dynamic Web Project),要实现大量的用户注册登陆,要用到数据库.这里咱们往服务器安装一个 linux版本的 MySQL ,首先依然是来到 /usr/local/目录 新建一个mysql目录.
在这一操做中,我想直接在母目录 ~/ 直接使用命令建立mysql目录后直接跳转到mysql目录:
这里的&&能够起到承上启下的做用,链接好几个操做.
以前操做不适合,但学会了删除目录的方法:
rm是remove的简写,而参数 r 就是向下递归,无论有多少级目录,一并删除.参数 f 就是直接强行删除,不做任何提示的意思. 不建议带参数 f .
而后在mysql目录中下载mysql的安装包:
“wget” 这个名称来源于 “World Wide Web” 与 “get” 的结合。
这里说明wget比较详细:https://www.cnblogs.com/peida/archive/2013/03/18/2965369.html
下载好mysql的tar文件后咱们使用解压命令进行解压,注意这里不是Gzip文件,首先用:
其次有 .gz 后再在tar 命令参数中加 -z ,即 -zxvf
设置mysql的环境变量: vim /etc/profile 在文档下面输入:
以后执行 source /etc/profile
再以后命令行输入mysql,可是报错…
调整报错时学会了 find 命令:
好比想找一个叫 .vimrc 的文件能够这么调用命令:
若是存在,服务器会给你这个文件的路径.
http://www.javashuo.com/article/p-qsfhfbkx-v.html mysql执行错误解析
从新安装mysql
http://blog.csdn.net/u013451157/article/details/62422515
实在不行就用别的数据库
这两天让服务器端 JDK 版本和 本地不匹配以及安装mysql不到位等问题弄得我头昏脑胀,
其实后来想了想,先用个安好mysql带jdk其余版本的镜像,而后直接升级jdk不就好了吗!
此次安装的环境 https://market.aliyun.com/products/56024006/cmjj014888.html?spm=5176.140139.722352.2.HhLQKx
后来发现了个事儿,MySQL之父把mysql卖给SUN,Oracle把SUN收购,而后mysql遇到了瓶颈,因此MySQL之父开始了它的分支去开源:
这个叫作MariaDB的数据库是以MySQL之父女儿名字命名的.
这里有个博客说明了在Linux上安装及配置MariaDB的流程配置,我已经试过了,能够说彻底正确.http://blog.csdn.net/cccheer/article/details/56479090
下面是mariadb的官网:https://mariadb.com/
一样的,MariaDB同样有链接java的jar包:https://downloads.mariadb.org/connector-java/
而这篇文章,讲解为何MariaDB将取代MySQL:https://www.csdn.net/article/2013-07-12/2816207-5-reasons-its-time-to-ditch-mysql
好了,在重装完JDK9, Tomcat9, 和最新的 MariaDB 后,正式开始咱们的java web案例制做!
5.Java Web Project 部署之路
首先在 Linux 登陆时,可使用命令 ls / 查看全部的文件夹.
由于aliyun linux这个系统在官方和网上没有具体太详细的说明,咱们就拿几个公用的(linux系统都存在的)文件夹说明一下:
调用下面命令查看全部正在运行程序的快照.
以后若是须要获得动态进行信息,使用top命令.
调用下面命令查看服务器CPU信息: 其实就是查看/proc下面的cpuinfo
显示的total列就是咱们总的物理内存.后面的是已使用的和未使用的等等.
下面命令是查硬盘大小:
注意后面参数是 look 看单词中的 l
说了这么多,看上去很麻烦,由于Linux比windows来讲要使用命令行,而不是直接能够直观地去查看.可是学习Linux更容易明白系统的本质,以及它与编程代码之间的关系.
要部署项目,首先得了解tomcat支持什么类型的文档以及它的设置方法,好比链接你的域名.
http://blog.csdn.net/weinianjie1/article/details/7954425
http://blog.csdn.net/jubincn/article/details/4856293 tomcat基本配置
怎样启动tomcat呢?
先切换到tomcat下的bin目录,执行其中的 ./startup.sh 注意,这里必定要有 ./
关闭tomcat服务则是相同目录下使用 ./shutdown.sh
查看tomcat是否已关闭: ps -ef | grep java
而后咱们的项目须要导出为 .war 看了下网上不少博客讲到须要 maven install 等,随后下载 个 maven.
http://maven.apache.org/
下载的是最后带.bin的zip,下载后解压到目录,并将该解压的bin目录加入环境变量.maven具体学习
maven单独学习 今天截止到这 2018年1月4日 22:35:04 着手不联网的学习.
第一个war包上线
如何导出war包 http://blog.csdn.net/kobe_8_24_23/article/details/51524619
部署war包到tomcat根目录 http://blog.csdn.net/free4294/article/details/38230849
tomcat修改8080端口至80及虚拟主机设置 http://blog.csdn.net/zhuxinquan61/article/details/52152053
个人IP地址查询项目线上版本: http://www.ykmimi.com/ukyoweb1/
6.Linux全面熟悉及深刻掌握
`2018年1月6日 13:50:32
今天遇到了一个问题,在我上传了一个简单的index.jsp的war包部署到服务端后,进行了tomcat的关闭和开启工做,然后遇到了关闭时,没有正常关闭的状况. 后来查看网站,一直在loading状态.并且用xshell也链接不到服务器了,但在阿里云控制台该实例是显示运行中的.
最后没有办法,选择了在阿里云控制台重启该实例.
我想应该是在设置server.xml时出了差错,而且不恰当的进行了tomcat的关闭和开启工做.
以后阿里云实例重启后,把servlet.xml中 Host 栏目更改以下,并重启 tomcat,给个人感受是,tomcat的配置web很慢,因此在上传完war包后,要隔开一段时间再进行 ./startup.sh
下面是我如今页面正常时候的server.xml中 Host 字段:
其中我把unpackWARs=”true”更改成了false,这样tomcat就不用再花费多余的时间去解压war包,而能够直接去运行war包. (其实私底下仍是去设置了路径)
不过在webapps中,咱们没有看到设置的path后面的 1 和 2 文件夹.它们如今存在于与 bin 文件夹同目录的 work 文件夹下面,,,而且能够看看编译后的.java文件(虽然如今不明白)
http://www.ykmimi.com/1/ (暂时未启用)
http://www.ykmimi.com/2/ (暂时未启用)
这样,咱们利用server.xml中 Host 标签下的 Context path 设置了两个不一样的网站子页!(路径)