搭建 Linux(CentOS 7.3) 云服务器的Java环境

时间:2021-12-02 13:01:24

连接远程服务器

ssh root@106.15.224.114

接着输入密码,一般不用root,此时可以新建一个用户,并赋予权限。

安装配置JDK

首先检查是否已经存在安装好的jdk,有的话进行删除

rpm -qa | grep java
// 或 rpm -qa | grep jdk

安装

cd /

mkdir developer

cd developer/

mkdir setup

cd setup/

// 从Oracle 官网获取下载链接
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn/java/jdk/8u211-b12/478a62b7d4e34b78b671c754eaaf38ab/jdk-8u211-linux-x64.rpm?AuthParam=1558353082_cee023f92c7045e936a95fd76fc35150

// 下载结束后进行重命名去掉后缀
mv jdk-8u211-linux-x64.rpm\?AuthParam\=1558353082_cee023f92c7045e936a95fd76fc35150 jdk-8u211-linux-x64.rpm

// 赋予读写执行权限
sudo chmod 777 jdk-8u211-linux-x64.rpm

sudo rpm -ivh jdk-8u211-linux-x64.rpm

// 进入默认安装路径,可以看到已经安装好了
cd /usr/java

配置环境变量

vim /etc/profile

// 在末尾添加如下代码
export JAVA_HOME=/usr/java/jdk1.8.0_211
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export MAVEN_HOME=/developer/apache-maven-3.6.1
export NODE_HOME=/usr/local/node-v4.4.7-linux-x64
export RUBY_HOME=/usr/local/ruby
export CATALINA_HOME=/developer/apache-tomcat-7.0.73

export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin:$MAVEN_HOME/bin:$NODE_HOME/bin:/usr/local/bin:$RUBY_HOME/bin
// :wq 保存退出

// 使配置生效
source /etc/profile

// 检查是否安装成功
java -version

安装 tomcat

cd /developer/

sudo wget http://learning.happymmall.com/tomcat/apache-tomcat-7.0.73.tar.gz

// 也可以通过 `Xftp` 把apache-tomcat-***.tar.gz传到/developer/文件夹下

tar -zxvf apache-tomcat-7.0.73.tar.gz

// 把tomcat压缩包移动到setup目录下
mv apache-tomcat-7.0.73.tar.gz setup/

cd apache-tomcat-7.0.73

sudo vim conf/server.xml

修改tomcat字符集,打开后用直接输入 /8080 搜索,用 :noh 可以去掉高亮。
增加URIEncoding="UTF-8",保存退出

搭建 Linux(CentOS 7.3) 云服务器的Java环境

cd bin

./startup.sh
// 若提示 Permission denied , 使用sudo即可

此时在浏览器访问http://你的外网IP:8080/ 一般都能显示tomcat的页面。
若是没有首先检查云服务器防火墙的设置,打开防火墙8080端口的权限,或者直接关闭防火墙(安全考虑不推荐)。
然后以我租的阿里云服务器为例,配置安全组里8080端口的权限。
此时应该已经可以访问了,但是我在部署的时候还是没有出现tomcat的页面,这应该是tomcat启动出问题了。
于是我输入 ./startup.sh 重新运行了一下tomcat。

搭建 Linux(CentOS 7.3) 云服务器的Java环境

Tomcat started 但是仍然无法访问,于是我查看了一下8080端口。

netstat -an | grep 80

搭建 Linux(CentOS 7.3) 云服务器的Java环境

并没有启动成功,8080端口也没有。

./shutdown.sh 这是出现了报错,SEVERE: Could not contact localhost:8005. Tomcat may not be running.
tomcat 无法关闭 :8005端口未启动

搭建 Linux(CentOS 7.3) 云服务器的Java环境

在网上查到了解决方法:

修改$JAVA_HOME/jre/lib/security/Java.security 文件中 securerandom.source 配置项:

securerandom.source=file:/dev/random 

修改为:

securerandom.source=file:/dev/urandom
// 如果,仍然不生效,则修改为: file:/dev/./urandom

这时再查看进程和端口情况,如下

搭建 Linux(CentOS 7.3) 云服务器的Java环境

再次访问,终于OK!

注:
1、ps 命令用于查看当前正在运行的进程。
grep 是搜索
例如: ps -ef | grep java
表示查看所有进程里 CMD 是 java 的进程信息
2、ps -aux | grep java
-aux 显示所有状态
ps

  1. kill 命令用于终止进程
    例如: kill -9 [PID]
    -9 表示强迫进程立即停止
    通常用 ps 查看进程 PID ,用 kill 命令终止进程

Maven 配置

// 通过 `Xftp` 把apache-maven-3.6.1-bin.tar.gz传到/developer/文件夹下

tar -zxvf apache-maven-3.6.1-bin.tar.gz

mv apache-maven-3.6.1-bin.tar.gz setup/

mvn -version

搭建 Linux(CentOS 7.3) 云服务器的Java环境

mysql 配置

rpm -qa | grep mysql

// 如果有的话
yum -y remove MySQL 及其依赖的包

wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm

rpm -ivh mysql57-community-release-el7-8.noarch.rpm

yum install -y mysql-server
// 遇到疑问的地方,一路 Y 下去即可

vim /etc/my.cnf

// 修改字符集
character-set-server=utf8
default-character-set=utf8

// 在[mysqld]下添加一行
skip-grant-tables

搭建 Linux(CentOS 7.3) 云服务器的Java环境

// 设置开机自启动
systemctl enable mysqld.service

// 检查是否已经安装了开机自动启动
systemctl list-unit-files | grep mysqld

// 如果显示以下内容说明已经完成自动启动安装
mysqld.service enabled

设置开启服务
systemctl start mysqld.service

// 若不能登录设置,也查询不到密码,可以设置跳过权限检查
mysql -u root

// 设置新密码
set password for root@localhost = password('123456');
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

解决:
关掉新主库的只读属性,
set global read_only=0; 关闭只读,可以读写
set global read_only=1; 开始只读模式

set global read_only=0;

flush privileges;

exit;

// 以新密码登录
mysql -u root -p

// 创建数据库
create database `travel_assistant` default character set utf8 COLLATE utf8_general_ci;

show dataBases;

搭建 Linux(CentOS 7.3) 云服务器的Java环境

设置用户 root 可以在任意 IP 下被访问:

grant all privileges on . to root@"%" identified by "123456";

设置用户 root 可以在本地被访问:

grant all privileges on . to root@"localhost" identified by "123456";

刷新权限使之生效:

flush privileges;

exit;

现在用户和数据库都创建好了,把本地数据库的表和数据都导入进来。

首先,Navicat 先连接上数据库,选中数据库 再右键选择转储sql 。

通过Xftp把转储好的 travel_assistant.sql 文件上传到云服务器的 /developer/ 下面。

mysql -u root -p

show databases;

use travel_assistant;

source /developer/travel_assistant.sql;

show tables;

//  /G 是格式化查询到的数据
select * from user/G;

搭建 Linux(CentOS 7.3) 云服务器的Java环境

表和数据已经导入成功~~~

将war文件部署到tomcat上

将war文件拷贝到tomcat安装目录的$TOMCAT_HOME/webapps文件夹下。
修改$TOMCAT_HOME/conf/server.xml,在Host配置段中添加类似于如下内容: docBase=”appname.war”中的appname.war 替换成自己的war的名字。
重启tomcat,然后访问http://localhost:8080/appname 即可。