背景:已经有服务器,项目,putty,本地机器是window10。服务器上已经安装了openssh-server并且可以正常是使用。也就是已经由公钥私钥并完成了配置。整个过程和在本机上安装其实是一样的,困难在于对远程ubuntu的操作。下面基本没有截图,只说明。
1、检查JDK环境。java -version 查看本地安装的JDK版本。JDK我并没有装,ubuntu上已经有了。是OpenJDK,至于oracle java之间的区别,我的印象中在1.7版本的时候应该就没有什么区别了。我这里是OpenJDK1.8。还有一个命令能查看,更能总概,忘了。有了java运行时环境,接着就是安装tomcat。
2、安装tomcat。现在能够用apt安装的最高该是8。所有有命令apt install tomcat8。这样安装系统能够自己配置各方面的环境,不用自己在手动配置。如果想要自己配置以获得更高版本的tomcat可以考虑wget命令。当然也可以在本地下载然后上传到ubuntu上,下面会介绍这种方法。
3、mysql的安装。在我搜到的信息里一般都是安装mysql的三个部分。向这个博客所说 https://blog.csdn.net/james_nan/article/details/82053430 。但是我这里执行了一条命令 apt install mysql这个命令和前三条的命令我还不明白,但我搜索的结果是这调命令安装的是服务端。我觉得我只需要服务端能打开命令行的交互界面就行,所以没有安装。别的。这里安装的版本是5.7.27,可以通过命令mysql -V来查看。在安装的过程中会提示填写root用户的密码,填写就好了,我没有尝试空密码。同样这里也可以自己下载进行配置。
4、动态web项目打war包。我的认知是jar包是java项目,war包是java web项目。使用什么工具就用对应的工具打包,不行的话可以使用命令行手动打包。
5、将war包传到ubuntu对应目录。首先想到ftp协议。使用putty中带着的一个组件psftp,经搜索,这个程序是sftp的客户端。至于sftp和ftp的区别看这个博客 https://www.cnblogs.com/xingxia/p/system_ftp.html 总之sftp是加密的ftp协议。而我恰好有sftp的客户端。现在缺少sftp的服务端。https://www.cnblogs.com/xuliangxing/p/7120205.html 知道openssh-service中包含sftp服务端。这时候只需要连接上就行了。
连接sftp服务端,搜索到psftp的使用命令,连接sftp服务器时我的做法。
vim /etc/ssh/sshd_config sshd是ssh的服务端在openssh-service中,sshd_config就是ssh服务端的配置文件。找到PermitRootLogin no改为yes 即允许root用户登陆。找到PasswordAuthentication no改为yes 即允许使用账户密码登陆,区别于ssh登陆(使用ssh登陆并使用sftp我不会所以才找到了这个选项,也是ssh加密但是使用账户密码登陆的)
service ssh restart重启生效
然后使用psftp命令 open ip地址 会提示输入帐户名密码,这是sftp的命令。put D:/uploadToUbuntu/timely.war /var/lib/tomcat8/webapps/timely.war 将打好的war包放入tomcat中对应路径部署。
重启tomcat,这里因为是apt安装tomcat所以找到tomcat的启动脚本在/usr/share/tomcat8/bin/startup.sh,然后出现错误touch: cannot touch '/usr/share/tomcat8/logs/catalina.out': No such file or directory./catalina.sh: 401: ./catalina.sh: cannot create /usr/share/tomcat8/logs/catalina.out: Directory nonexistent。他说缺少logs和logs/catalina目录,然后在tomcat目录下 mkdir ./logs然后进入logs目录mkdir ./catalina。在执行上述脚本,启动成功。在访问前将mysql中的数据库和表建立完成。ok。
遇到的各种问题。
1、psftp open+ip后输入账户名直接失败,然后闪退,在通过闪退消失前的截图上面说fatal error。这是因为没有将PasswordAuthentication 改为yes。
2、上传文件时提示var/lib/tomcat8/webapps: open for write: failure,这是因为在上传时错误填写目的文件夹/var/lib/tomcat8/webapps,应该填写为/var/lib/tomcat8/webapps/timely.war https://blog.csdn.net/zdb1314/article/details/77113759
3、找到webapp所在目录 dpkg -L tomcat8
如何建立sftp我搜到了许多博客,当然我的方法对于是最简单的
留下的问题,很多博客都有这样的内容
vim /etc/ssh/sshd_config
将如下这行用#符号注释掉
# Subsystem sftp /usr/libexec/openssh/sftp-server
并在文件最后面添加如下几行内容然后保存
Subsystem sftp internal-sftp
我不知道是为什么,我也没有照做,但是也成功了