搭建 Linux(CentOS 7.3) 云服务器的Java环境
连接远程服务器
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",保存退出
cd bin
./startup.sh
// 若提示 Permission denied , 使用sudo即可
此时在浏览器访问http://你的外网IP:8080/ 一般都能显示tomcat的页面。
若是没有首先检查云服务器防火墙的设置,打开防火墙8080端口的权限,或者直接关闭防火墙(安全考虑不推荐)。
然后以我租的阿里云服务器为例,配置安全组里8080端口的权限。
此时应该已经可以访问了,但是我在部署的时候还是没有出现tomcat的页面,这应该是tomcat启动出问题了。
于是我输入 ./startup.sh
重新运行了一下tomcat。
Tomcat started 但是仍然无法访问,于是我查看了一下8080端口。
netstat -an | grep 80
并没有启动成功,8080端口也没有。
./shutdown.sh 这是出现了报错,SEVERE: Could not contact localhost:8005. Tomcat may not be running.
tomcat 无法关闭 :8005端口未启动
在网上查到了解决方法:
修改$JAVA_HOME/jre/lib/security/Java.security 文件中 securerandom.source 配置项:
将
securerandom.source=file:/dev/random
修改为:
securerandom.source=file:/dev/urandom
// 如果,仍然不生效,则修改为: file:/dev/./urandom
这时再查看进程和端口情况,如下
再次访问,终于OK!
注:
1、ps 命令用于查看当前正在运行的进程。
grep 是搜索
例如: ps -ef | grep java
表示查看所有进程里 CMD 是 java 的进程信息
2、ps -aux | grep java
-aux 显示所有状态
ps
3. 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
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
// 设置开机自启动
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;
设置用户 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;
表和数据已经导入成功~~~
将war文件部署到tomcat上
将war文件拷贝到tomcat安装目录的$TOMCAT_HOME/webapps文件夹下。
修改$TOMCAT_HOME/conf/server.xml,在Host配置段中添加类似于如下内容:
重启tomcat,然后访问http://localhost:8080/appname 即可。