扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
java 应用程序在linux部署方法:
创新互联主要从事网页设计、PC网站建设(电脑版网站建设)、wap网站建设(手机版网站建设)、响应式网站开发、程序开发、网站优化、微网站、微信小程序等,凭借多年来在互联网的打拼,我们在互联网网站建设行业积累了丰富的网站制作、做网站、网站设计、网络营销经验,集策划、开发、设计、营销、管理等多方位专业化运作于一体。
1,将项目达成war包(用eclipse,项目右键--Export--选择war file)
2,将tomcat(用winSCP当然也可以用secureCRT,用securCRT需要建立sftp(即上传文件的目录),用put tomcat命令)考到ilunx对应的目录下
3,然后将项目的war包放到tomcat的webapps目录下
4,启动tomcat(命令:./startup.sh(linux下启动tomcat是.sh文件而非.bat文件))
遇到问题如下:
运行./startup.sh 是报错
-bash: ./startup.sh: Permission denied
原因:没有运行.sh的权限
解决:chmod 777 *.sh
755 代表用户对该文件拥有读,写,执行的权限,同组其他人员拥有执行和读的权限,没有写的权限,其他用户的权限和同组人员权限一样。
777代表,user,group ,others ,都有读写和可执行权限。
获得权限后再运行./startup.sh命令时报错:
This file is needed to run this program
原因:该文件需要一个运行环境(即配置jdk环境变量)
解决:JAVA_HOME=/usr/java/jdk1.6.0_25/(当然这个目录根据自己的jdk安装目录)
然后在运行./startup.sh 提示:
Using CATALINA_BASE: /usr/local/sarft/apache/apache-tomcat-6.0.29
Using CATALINA_HOME: /usr/local/sarft/apache/apache-tomcat-6.0.29
Using CATALINA_TMPDIR: /usr/local/sarft/apache/apache-tomcat-6.0.29/temp
Using JRE_HOME: /usr/java/jdk1.6.0_25/
Using CLASSPATH: /usr/local/sarft/apache/apache-tomcat-6.0.29/bin/bootstrap.jar
如果提示以上信息表明 tomcat启动成功,可以正常run了。
Linux下ftp服务可以通过搭建vsftpd服务来实现,以CentOS为例,首先查看系统中是否安装了vsftpd,可以通过执行命令 rpm -qa | grep vsftpd 来查看是否安装相应的包,如果没有安装那么可以执行 yum -y install vsftpd 来安装,安装之后首先创建ftp用户,比如ftp_test,命令如下:useradd -s /sbin/nologin -d /home/ftp_test ftp_test
目录尽量不要选择根目录下,这里是/home/ftp_test,并且ftp_test这个目录不要手动创建,否则权限会有问题,执行命令的时候会自动创建,
可以看到权限现在是对于ftp_test用户是可读可写可执行的,其他用户和组下面的都没有任何权限,现在为ftp_test用户创建密码:passwd ftp_test
执行之后输入2次密码确认就设置好了密码
然后编辑vsftpd配置文件,位置是:vim /etc/vsftpd/vsftpd.conf
找到anonymous_enable这个配置项,默认是YES,修改成NO,表示不允许匿名用户登录
现在直接保存配置文件,执行 systemctl start vsftpd.service 启动vsftp服务,然后可以通过命令: systemctl status vsftpd.service 查看ftp服务的运行状态,现在就可以用ftp客户端进行连接了,这里用FileZilla测试,连接正常
现在基本的ftp服务就部署完了,客户端可以正常上传,下载,修改文件;但是这样有个问题就是所有的目录都暴露给客户端了,虽然客户端不能随意修改删除其余的文件,但是因为目录可见,所以总会有一些风险,所以接下来还需要配置让ftp用户只在自己的家目录下面活动,而无法查看其它任何目录,同样是打开配置文件/etc/vsftpd/vsftpd.conf,找到chroot_local_user=YES这个配置,默认是注释的,这里去掉注释,表示只让用户在自己的目录里面活动,如果只是保存这一个配置的话,用ftp连接客户端会返回500
OOPS: ftp chaodiquan.com /vsftpd: refusing to run with writable root inside
chroot()的错误,即禁止运行在可写的家目录中,因为刚才ftp_test这个目录有w权限,而现在我们使用的vsftpd版本是3.0.2
属于比较新的版本,为了安全性做了一些限制,如果你此时想通过 chmod a-w /home/ftp_test 来去掉目录的写权限,那么连接成功是没问题的,但是无法上传文件了,所以网上很多说修改权限的方法是不可取的,正确的做法是应该在下面添加一行配置allow_writeable_chroot=YES表示允许对家目录的写权限,
配置完这两项以后保存退出,然后执行 systemctl restart vsftpd.service 重启vsftpd服务,现在重新使用ftp连接就成功了,并且任何操作也是没问题的
现在可以看到上面的路径是一个/,对于ftp用户来说也就是根目录了,只能在这个目录下操作,而无法跳出这个目录
以上就是vsftpd服务的基本搭建过程,实际使用时可以分配多个用户
(1)java -jar 包名 当窗口关闭或按Ctrl+c则程序终止
(2)java -jar 包名 当窗口关闭则程序终止
(3)nohup java -jar 包名 程序不因窗口关闭或按Ctrl+c而终止,生成默认日志文件
(4)nohup java -jar 包名 日志名 在(3)的基础上自定义生成日志
(1)tail n 日志名 n代表查看日志的行数
例子:tail 10 nohup.out 查看正数10行的日志
例子:tail -10 nohup.out 查看倒数10行的日志
(2)tail -f nohup.out 实时查看日志
(1)ps -ef | grep java 查看进程
(2)netstat -tunlp 端口号查看
kill -9 pid
例如查找文件名为nginx的文件 find / -name nginx
(1)找到并进入nginx文件夹下的sbin文件夹
(2)执行 ./nginx -s reload
free 命令 默认以kb为计算单位,可以在后面通过添加 -b ,-m ,-g ,-h等修改计算单位
例如 free -h以较友好的方式展示
按理来说total = used + free ,但是这边不晓得为什么free只剩了123M,有答案了再来补上
top 命令
top 行依次为系统时间、距上次重启系统时间、登入用户数、平均负载
tasks 行为进程任务情况
cpu 行为cpu的使用情况
暂时没了,想起来再补
想要部署代码,首先先把环境装好,根据你的系统,我装的是Ubuntu的,一般都是先装PHP,再装Apache,再装数据库。然后讲你的项目上传到相关的目录,然后再Apache配置里面指定目录,再重启Apache,就可以访问了
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流