准备工作
1.拥有一个AWS全球账户 注册AWS全球用户
(前提是要有一张信用卡,现在银联的就可以,用来验证)
(学生可以办没有额度的校园信用卡)
2.开启实例(Ubuntu)
点击"启动虚拟机"创建实例
1.选择一个Amazon系统映像(AMI)---(选择一个免费的,这里我选的是ubuntu)
2.选择一个实例类型---(选择那个带有绿色符合条件的免费套餐)
3.配置实例详细信息---(不用改什么,直接下一步)
4.添加存储---(大小最好改为30以下,超出是要收费的)
5.添加标签---(不用改什么,直接下一步)
6.设置安全组---(自己的项目可以不用考虑安全性的情况下,可以开放一个所有资源,所有位置,这个是为了接下来省时,如果有安全需要,还是按照需要改)
点击"审核和启动"
创建密钥对---(名字自己定义,密钥存放位置自己设置,自己记得就好,这里生成的密钥是.pem格式的)
3.连接(这里我使用的是PuTTY) (更详细的文档由AWS提供)
----------------------[下载PuTTY]
(https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html)
或者自行下载一个Xshell,它有文件上传的Xftp,也很好用
1.选择zip格式的(或者选择两个,putty.exe和puttygen.exe)
2.打开puttygen.exe转换私有密钥
a) 进入之后,在Parameter
Type of kry to generate
中选中RSA
b) 选择Load(默认情况下,PuTTYgen 仅显示扩展名为 .ppk 的文件。要找到您的 .pem 文件,请选择显示所有类型All Files(*.*)的文件的选项)
选中你刚刚创建实例最后一步创建的密钥对
点击"open"
c) 选择"Save private key",接下来会弹出显示一条关于在没有口令的情况下保存密钥的警告,选择是。
d) 指定密钥对名称,保存。
3.启动PuTTY会话,连接到实例
a) 左侧选中Session
在HostName框中,输入 IP地址(实例中有,复制来就好)
或者是 user_name@public_dns_name(变量),例如:
--|对于 Amazon Linux 2 或 Amazon Linux AMI,用户名称是 ec2-user。
--|对于 Centos AMI,用户名称是 centos。
--|对于 Debian AMI,用户名称是 admin 或 root。
--|对于 Fedora AMI,用户名为 ec2-user 或 fedora。
--|对于 RHEL AMI,用户名称是 ec2-user 或 root。
--|对于 SUSE AMI,用户名称是 ec2-user 或 root。
--|对于 Ubuntu AMI,用户名称是 ubuntu。
--|另外,如果 ec2-user 和 root 无法使用,请与 AMI 供应商核实。
--|我的是ubuntu的,所以user_name就是ubuntu。
在Port框中输入 22
在ConnectionType下选择SSH
(可选) 如果打算稍后重新启动此会话,则可以保存此会话信息以便日后使用。在 Category 树中选择 Session,在 Saved Sessions 中输入会话名称,然后选择 Save。
b) 在 Category 窗格中,展开 Connection,再展开 SSH,然后选择 Auth。
选择 Browse(选择您为密钥对生成的 .ppk 文件,然后选择 Open)
c) 选择打开以便开始 PuTTY 会话(如果是第一次连接到此实例,PuTTY 会显示安全警告对话框,询问您是否信任您要连接到的主机,选择 是)
4.修改系统的root密码并切换用户
(附带一个修改root密码并切换用户的linux命令)
--|修改密码:
----|sudo passwd root
----|之后自己设置密码,会输入两遍以确认
--|切换到root
----|su root
----|输入刚刚设置的root密码,然后就切换到root账户了
配置JDK和Tomcat(配置文件最好在root权限下)
5.下载jdk,tomcat压缩包
在登录到系统后用wget命令下载jdk,tomcat压缩包(tar.gz格式)
(会直接下载到当前所在的文件夹)
例如:
--|下载tomcat 命令 后期更新,这个网址已经不能下载了
wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.0.53/bin/apache-tomcat-8.0.53.tar.gz
----|有时候直接用wget解决不了的问题(确保网址没有问题的情况下)将wget换成
----|下面的,再加上你找到的下载文件的地址
--|下载jdk 命令 后期更新,这个网址已经不能下载了
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/jdk-8u191-linux-x64.tar.gz
6.解压
解压tar.gz格式文件命令:
tar -zxvf [压缩包名字]
例如:
tar -zxvf apache-tomcat-8.0.53.tar.gz
tar -zxvf jdk-8u191-linux-x64.tar.gz
7.配置环境变量(最好在root权限下)
1.配置JDK
打开配置文件:
sudo vi /etc/profile
----|打开文件之后输入"i"开始编辑(最下面会出现----INSERT----,表示在编辑
----|中,上下键移动光标到文件末尾)
在文件的末尾加上:
export JAVA_HOME=/home/ubuntu/iul/jdk1.8.0_191
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=.:${JAVA_HOME}/bin:$PATH
----|第一行是变量,改成你自己的jdk路径
----|编辑完成按"ESC"退出编辑,输入":x"保存退出
让配置生效
source /etc/profile
测试java安装是否成功:
java -version
javac
----|如果成功,会显示java版本
2.配置Tomcat
cd iul/apache-tomcat-8.0.53/bin/
----|路径是你自己的tomcat路径,到达tomcat的bin目录下
vi startup.sh
----|到文件末尾,在
----|exec "$PRGDIR"/"$EXECUTABLE" start "$@"
----|这行的上面,加上下面这几句话
----|(编辑,保存退出同上)
#set java environment
export JAVA_HOME=/home/ubuntu/iul/jdk1.8.0_191
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:%{JAVA_HOME}/lib:%{JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#tomcat
export TOMCAT_HOME=/home/ubuntu/iul/apache-tomcat-8.0.53
----|保存退出后:
sudo ./startup.sh
----|会有"Tomcat started"
----|查看端口号/进程
sudo netstat -naptl
----|成功的状态显示有LocalAdress为0::::8080,State为Listen
然后打开浏览器,输入:IP地址:8080
如果出现Apache Tomcat官网,表示环境配置成功了
----|查看Tomcat运行状况,在tomcat下的logs目录下:
tail -f catalina.out
----|这里还可能会出现无法访问的情况,如果以上都配置成功,就可能是防火墙的问题了(见下文)
8.配置tomcat-users.xml文件
----|配置tomcat-users.xml文件,定义一个manager-gui用户
cd ..
cd conf
vi tomcat-users.xml
--|(在</tomcat-users>这行的上面加上)
<role rolename="manager-gui"/>
<user username="/*自己设置管理员账户名字*/" password="/*自己设置密码*/" roles="manager-gui"/>
----|管理员组的rolename必须是"manage-gui"
9.防火墙(原博)
防火墙开启8080端口
----|查看本机关于IPTABLES的设置情况
iptables -L -n
----|查看防火墙状态
service iptables status
----|在新安装的Linux系统中,防火墙默认是被禁掉的,一般也没有配置过任何防火墙的策略,所有不存
----|在/etc/sysconfig/iptables文件
----|初始情况下防火墙一般是:iptables未运行防火墙
----|这里可能涉及要找不到iptables命令,需要按照linux给的提示安装防火墙
----|查看本地的端口开启情况
sudo ufw status
----|开启你需要的某个端口,以80为例,
sudo ufw allow 80
----|开启防火墙
sudo ufw enable
----|重启防火墙
sudo ufw reload
----|再次查看防火墙状态,有8080表示改动成功
10.安装MySQL
----|顺序执行
sudo apt-get install mysql-server
apt-get isntall mysql-client
sudo apt-get install libmysqlclient-dev
----|安装完成之后检查是否安装成功:
sudo netstat -tap | grep mysql
----|有mysql 的socket处于 listen 状态则表示安装成功。
----|登陆mysql
mysql -u root -p
----|忘记密码(没有设密码)怎么办
sudo vim /etc/mysql/debian.cnf
----|这个文件里会有一个系统用户,以及一串很长的密码,可以先用这个账户登录mysql
----|然后用
update mysql.user set authentication_string=password('root') where user='root'and Host = 'localhost';
----|这句修改root账户的密码
11.接下来还有很重要的一步,开放/修改3306端口、开放访问权限(原博)
----| 查看3306端口是否开放
netstat -an|grep 3306
----|在etc/mysql/mysql.conf.d/目录下
sudo vim mysqld.cnf
----|找到 bind-address = 127.0.0.1这句话
----|在前面加上一个"#"号,变成# bind-address = 127.0.0.1
----|修改端口号
----|在这个配置文件中找到[mysqld]
----|在其中增加一条
port = 3306
----|保存退出
----|开放root账户的访问权限
----|重启MySQL服务,并进入MySQL控制台:
service mysql stop
service mysql start
----|登录mysql
mysql -h 127.0.0.1 -u root -p
----|查看账户权限
use mysql;
select host,user from user;
----|修改root权限
update user set host='%' where user='root';
----|开放root账户所有权限:
grant all privileges on *.* to 'root'@'%' identified by '你的root账户密码';
----|使各项权限立即生效
flush privileges;
----|退出mysql,再次确认端口号状态
netstat -an|grep 3306
12.解决MySQL中文乱码(原博)
----|登录数据库,执行如下sql:
show variables like 'character%';
----|结果:
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
----|说明在安装数据库的时候,character_set_database,character_set_server编码格式设置错误。
----|解决:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
----|(ubuntu16进入数据数据库的路径)可能会有稍微不同,以实际为准
----|找到mysql安装路径下的my.cnf文件在[mysqld]下添加如下两行:
character_set_server=utf8
init_connect='SET NAMES utf8'
----|问题解决:
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
总结:
总的来说,要部署一个 Java Web 服务器,需要在你的服务器上安装JDK、Tomcat、MySQL这些环境,然后开放端口以便访问。
部署项目时首先要把数据结构放到数据库中,然后把Java项目的数据库连接改成云服务器的数据库,把项目放到Tomcat的目录下,启动Tomcat即可。