好记性不如烂笔头
由于需要将一个小项目的后端程序从亚马逊AWS转到腾讯CVM,因此打算将完整过程记录下来,以备反刍。
关键配置:
Ubuntu 14
JDK 1.7
Tomcat 8.0
MySQL 5.5
一、购买云服务器
之前一直使用的亚马逊的云服务器,虽然已是东京节点,但有时仍连接不畅。所以打算转到国内。阿里云之前已尝试过,这次选择腾讯云。要部署的项目并不大,所以购买了最低配置的服务器(1核/1GB/1Mbps),系统选择 Ubuntu,版本 14.04。
二、远程连接
- 使用远程终端工具 Xshell 5 连接
Xshell 5 连接 - 更新
apt-get update
- 和 AWS 一样,CVM 的 Ubuntu 默认登录用户是
ubuntu
(ECS 实例创建默认即是root
用户)。首次使用设置root
用户密码:
sudo passwd root
- 切换
root
用户
su root
以下步骤均在 root
用户下操作
三、配置 JDK
- 从 Oracle 官网下载 JDK 1.7
wget --no-check-certificate --no-cookie --header "Cookie: oraclelicense=accept-securebackup-cookie;" http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz
mkdir /usr/lib/jvm
tar zxvf jdk-7u67-linux-x64.tar.gz -C /usr/lib/jvm
- 配置环境变量
/etc/profile
(另可/etc/environment
、~/.bashrc
)
# Set Java environmenet
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_79
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=${CLASSPATH}:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${PATH}:${JAVA_HOME}/bin
source /etc/profile
Vim 文本编辑器用起来不顺手,我选择 sz
载下来修改再 rz -y
覆盖上传(如果没有 lrzsz
工具则安装:apt-get install lrzsz
)
- * 设为默认 JDK
update-alternatives --install /usr/bin/java java $JAVA_HOME/bin/java 300
update-alternatives --install /usr/bin/javac javac $JAVA_HOME/bin/javac 300
- 检查
echo $JAVA_HOME
java -version
四、配置 Tomcat
- 从 Apache 官网下载 Tomcat 8.0
wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.0.39/bin/apache-tomcat-8.0.39.zip
unzip -d /opt apache-tomcat-8.0.39.zip
如果没有 unzip
工具则安装:apt-get install unzip
- 配置环境变量
/etc/profile
# Set Tomcat environment
export CATALINA_HOME=/opt/apache-tomcat-8.0.39
export CLASSPATH=${CLASSPATH}:${CATALINA_HOME}/lib
export PATH=${PATH}:${CATALINA_HOME}/bin
source /etc/profile
- 检查
echo $CLASSPATH
- 测试
cd /opt/apache-tomcat-8.0.39/bin
chmod +x *.sh
sh startup.sh
netstat -apn | grep 8080
netstat -ntpl
ps -ef | grep tomcat
sh shutdown.sh
当默认用于 shutdown.sh
命令的端口 8005
监听启动即表明 Tomcat 启动成功。
五、配置 MySQL
- 从仓库下载安装 MySQL 5.5
apt-get install mysql-server
apt-get install mysql-client
- 检查
netstat -tap | grep mysql
mysql -V
mysql -uroot
mysql> SHOW VARIABLES LIKE '%character%';
- 设置字符集
UTF-8
/etc/mysql/my.cnf
[mysql]
default-character-set=utf8
[mysqld]
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
重启 MySQL 使生效
service mysql restart
- * 允许远程访问
/etc/mysql/my.cnf
[mysqld]
# bind-address = 127.0.0.1
mysql -uroot
mysql> GRANT ALL PRIVILEGES ON schttable.* to By_syk@'%' IDENTIFIED BY 'xxxxxx';
mysql> FLUSH PRIVILEGES;
Navicat 远程连接 MySQL
六、部署项目
- 配置 Tomcat
./conf/server.xml
<!-- 使用 80 端口 -->
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!-- 默认主页 -->
<Context path="" docBase="/opt/apache-tomcat-8.0.39/webapps/Hello"
reloadable="true" caseSensitive="false" debug="0"></Context>
</Host>
<!-- 项目 -->
<Host name="schttable.by-syk.com" debug="0" appBase="" unpackWARs="true"
xmlValidation="false" xmlNamespaceAware="false">
<Alias>schttable.by-syk.com</Alias>
<Context path="" docBase="/opt/apache-tomcat-8.0.39/webapps/SchTtable"
reloadable="true" caseSensitive="false" debug="0"></Context>
</Host>
- 设置共享 jar 目录,多应用共用,也减少了发布 war 包的大小,便于上传部署
./conf/catalina.properties
shared.loader="${catalina.home}/sharedlibs/*.jar"
由于项目采用 SpringMVC + Hibernate 框架,所以将相关 jar 包上传到此目录共用。
- 项目恢复
导入 MySQL 数据库备份 sql;上传项目SchTtable.war
到 Tomcat./webapps/
目录,启动 Tomcat。 -
域名解析
解析设置 - 测试
访问链接 http://schttable.by-syk.com 。(需要在腾讯云后台设置好安全组,确保相关端口开放,比如80
)
测试成功,笔记也完成,收工睡觉。
网友评论