部署J2EE应用到Linux(实践成功)
一、需要一个Linux服务器(阿里云、腾讯云等)(CentOS等)
二、Linux远程连接工具:SecureCRT
1、Hostname:服务器地址
2、Port:22(默认)
3、Username:root(默认)
连接
三、安装FTP
1、Linux命令:yum insatll vsftpd -y
启动服务:systemctl start vsftpd.service
关闭服务:systemctl stop vsftpd.service
查看服务状态:systemctl status vsftpd.service
检查端口是否在监听(运行):netstat -anp|grep 21
2、ftp创建用户
2.1、创建一个ftp用户目录(文件都上传到这个目录)
mkdir -p /home/ftptest
2.2、为这个目录创建一个用户
useradd -d /home/ftptest -g ftp -s /sbin/nologin/ ftptest
(-g ftp 表示该用户属于ftp分组 (ftp分组是内置的,本来就存在,不需要自己创建)
-s /sbin/nologin 表示这个用户不能用来登录secureCRT这样的客户端。 这种不能登陆的用户又叫做虚拟用户
创建过程给出的警告信息是正常的,不用理会)
2.3、设置目录权限
chown -R ftptest /home/ftptest
chmod -R 775 /home/ftptest
(把目录/home/wwwroot/ftptest的拥有者设置为ftptest,使ftptest用户拥有这个目录的读写权限)
2.4、为这个用户设置密码
password ftptest
3、在vsftpd服务器中配置该用户
3.1、不允许匿名用户登录,打开配置文件 : vi /etc/vsftpd/vsftpd.conf
将 anonymous_enable=YES 改为 anonymous_enable=NO
ESC退出编辑模式,Shift+; 进入命令模式,wq 保存并退出, q 不保存退出;
限制用户访问(防止切换到敏感目录):打开配置文件: vi /etc/vsftpd/vsftpd.conf
找到:
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
并修改为:
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
3.2、添加用户:打开chroot_list文件,vi /etc/vsftpd/chroot_list
添加一行:ftptest
打开vsftpd.conf
最后一行加:allow_writeable_chroot = YES
3.3、配置FTP服务器端口
vi /etc/vsftpd/vsftpd.conf
最后添加
pasv_enable = YES
pasv_min_port = 30000
pasv_max_port = 30010
3.4、用户鉴权
因为用户 ftptest 是 nologin的,所以存在鉴权的问题。 如果鉴权问题不解决,就是永不停息的 530错误
vi /etc/pam.d/vsftpd
注释掉 #auth required pam_shells.so
这样不去鉴权,从而允许 ftptest 这种 nologin用户登录 ftp 服务器.
4、重启FTP服务器
systemctl restart vsftpd.service
systemctl status vsftpd.service
到此:已开放端口:22,3389(22就是SecureCRT链接Linux服务器用的端口号;3389 是阿里云控制台链接用的端口,这里没有用到),再开放:21、30000~30010端口。
四、安装JAVA
yum -y install java-1.8.0-openjdk.x86_64
java -version
五、MySQL
1、安装:
yum上mysql的资源有问题,所以不能仅仅之用yum,在使用yum之前还需要用其他命令获取mysql社区版
cd /tmp
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
安装:
yum install mysql mysql-server mysql-devel -y
启动:
systemctl start mysql.service
验证:
netstat -anq|grep 3306
(处于监听说明在运行)
2、设置密码并登录
mysqladmin -u root password admin
登录
mysql -uroot -padmin
显示数据库
show databases
六、Tomcat
1、安装
(目前:下载tar.gz包用ftp传到服务器上解压使用)
2、运行
tomcat目录 : /tomcat/bin/startup.sh
3、验证
netstat -anp|grep 8080
4、查看启动日志
tail -300f /usr/local/tomcat7/logs/catalina.out
5、开放端口访问:8080
七、部署应用
1、传应用文件夹或war包和sql文件到ftp服务器
2、MySQL:
2.1、解决大小写敏感:
打开mysql配置文件:vi /etc/my.cnf
在[mysqld]后添加添加
lower_case_table_names=1
重启:systemctl restart mysqld.service
2.2、创建数据库
首先连接到数据库
mysql -uroot -padmin
然后创建数据库
CREATE DATABASE tmall DEFAULT CHARACTER SET utf8;
最后查看该数据库已经存在了
show databases;
ctrl+c退出控制台
导入数据:
mysql -u root -padmin --default-character-set=utf8 tmall < /home/wwwroot/ftptest/tmall.sql
重新登陆进mysql ,使用如下命令验证是否导入成功
mysql -uroot -padmin
use tmall;
show tables;
select count(*) from product;
3、Tomcat
使用vi打开server.xml
vi /usr/local/tomcat7/conf/server.xml
然后在<host 下面增加一行
<Context path="/tmall" docBase="/home/wwwroot/ftptest/tmall/web" debug="0" reloadable="false" />
修改完成之后,保存退出。
重启tomcat
/usr/local/tomcat7/bin/shutdown.sh
/usr/local/tomcat7/bin/startup.sh
最后访问页面检测吧。
另:自启动:
ftp:
systemctl enable vsftpd.service
mysql:
systemctl enable mysqld.service
(关闭方式:
systemctl disable vsftpd.service
systemctl disable mysqld.service
)
tomcat(使用脚本):
有个文件叫做 rc.local, 把脚本放进去就可以了。
不过这个脚本在 centos7里被降级了,不能被执行,所以要执行如下语句使得其可以被执行先
chmod +x /etc/rc.d/rc.local
然后修改 /etc/rc.d/rc.local, 放入 tomcat脚本即可
vi /etc/rc.d/rc.local
添加:
/usr/local/tomcat7/bin/startup.sh