Linux 部署 JAVA WEB 项目
需要用到的工具,ssh连接工具(putty,命令行界面),sftp工具(WinSCP,图形化界面)
准备一台服务器:阿里云,腾讯云都有为学生准备的9.9/月的学生服务器(注意:使用他们的服务器,需要设置下安全组)
服务器软件:JDK1.8+Tomcat8.5+Mysql5.6
提示:教程中如果涉及文件上传至服务器,可以使用SFTP工具上传
教程中修改文件用的vi命令是Linux文件编辑器,你可以使用SFTP工具找到对应文件双击打开文件,直接编辑。
教程中午除提示外,都是一行行复制执行代码
1.配置JDK(1.8)
yum安装jdk
https://blog.csdn.net/github_38336924/article/details/82221258
所需压缩包:jdk-8u231-linux-x64.tar.gz
创建/usr/local/java
目录
mkdir /usr/local/java
把jdk压缩包(jdk-8u231-linux-x64.tar.gz)上传至/usr/local/java
目录,然后解压
#进入/usr/local/java目录
cd /usr/local/java
#解压
tar zxvf jdk-8u231-linux-x64.tar.gz
修改系统环境变量
编辑/etc/profile
文件
vi /etc/profile
在文件末尾追加:
#set jdk environment
JAVA_HOME=/usr/local/java/jdk1.8.0_231/
JRE_HOME=${JAVA_HOME}/jre
PATH=$PATH:${JAVA_HOME}/bin
CLASSPATH=./:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar:${JRE_HOME}/lib
export JAVA_HOME JRE_HOME CLASS_PATH PATH
提示:JAVA_HOME的值对应jdk的解压目录:/usr/local/java/jdk1.8.0_231/
应用环境变量
source .bash_profile
或者
执行reboot
重启系统
source /etc/profile
执行java -version
检验jdk是否配置成功
结果:
[root@www ~]# java -version
java version "1.8.0_231"
Java(TM) SE Runtime Environment (build 1.8.0_231-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)
2.配置Tomcat(8.5)
所需压缩包:apache-tomcat-8.5.50.tar.gz
创建/usr/local/tomcat
目录
mkdir /usr/local/tomcat
把压缩包上传到/usr/local/tomcat
目录
然后解压:
#进入/usr/local/tomcat目录
cd /usr/local/tomcat
#解压
tar zxvf apache-tomcat-8.5.50.tar.gz
关闭命令:/usr/local/tomcat/apache-tomcat-8.5.50/bin/shutdown.sh
启动命令:/usr/local/tomcat/apache-tomcat-8.5.50/bin/startup.sh
提示:以上启动/关闭命令可以粘贴至控制台,然后回车执行
3.配置mysql(5.6)
编译安装
https://blog.csdn.net/cmzsteven/article/details/78520829
安装编译mysql所需要的软件
#切换至root目录
cd ~
#安装依赖软件,一行行复制执行
yum install gcc gcc-c++ ncurses-devel perl -y
wget https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz
tar xzvf cmake-3.9.0.tar.gz
cd cmake-3.9.0/
./bootstrap
make && make install
创建mysql用户,安装目录和数据目录
groupadd mysql
useradd -r -g mysql mysql
mkdir -p /usr/local/mysql
mkdir -p /data/mysqldb
将mysql压缩包上传至/usr/local/mysql
,解压
进入/usr/local/mysql
cd /usr/local/mysql
解压
tar xzvf mysql-5.6.16.tar.gz
然后进入解压的目录
cd mysql-5.6.16
编译安装Mysql
1.检查环境
#提示:直接复制下面的全部代码到服务器控制台执行,不要一行行复制执行
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysqldb \
清理编译的垃圾文件
make clean
rm -f CMakeCache.txt
2.编译并安装
make && make install
修改mysql目录所有者和所属组
cd /usr/local/mysql/
chown -R mysql:mysql ./
cd /data/mysqldb/
chown -R mysql:mysql ./
初始化数据
cd /usr/local/mysql/
scripts/mysql_install_db --user=mysql --datadir=/data/mysqldb
做下收尾工作
复制几个启动文件
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
#输入 y 确认
cp support-files/mysql.server /etc/init.d/mysqld
输入 y 确认
修改mysql配置文件
vi /etc/my.cnf
以下是修改过的文件内容(可以复制以下内容到你的文件):
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
#mysql程序目录
basedir = /usr/local/mysql
#数据存放目录
datadir = /data/mysqldb/
#程序运行端口
port = 3306
#数据库编号 多台数据库服务器同步用的
server_id = 136
# socket = .....
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
将mysql命令和库加入系统环境变量
编辑/etc/profile
vi /etc/profile
在最后添加
export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
让其生效
source /etc/profile
启动mysql
service mysqld start
由于mysql 默认的mysql.sock 是在/var/lib/mysql/mysql.sock,创建软连接:
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
为数据库root用户设置密码
#进入/usr/local/mysql/bin/目录:
cd /usr/local/mysql/bin/
为root用户设置密码:
mysqladmin -u root password '新密码'
进入mysql控制台 (root用户)
mysql -uroot -p
输入密码就可以操作mysql数据库了
解决几个问题:
让项目在服务器启动:
将自己的项目按war包导出,然后上传至服务器/usr/local/tomcat/apache-tomcat-8.5.50/webapps/
目录
提示:Tomcat会自动解压war并运行项目
先停止Tomcat,然后启动Tomcat
解决:Tomcat启动慢,将近10分钟
编辑 /usr/local/java/jdk1.8.0_231/jre/lib/security/java.security
修改:
securerandom.source=file:/dev/./urandom
相关链接:
https://blog.csdn.net/njchenyi/article/details/46641141
修改网站端口:80,绑定域名
修改端口
编辑tomcat的server.xml文件
vi /usr/local/tomcat/apache-tomcat-8.5.50/conf/server.xml
找到 Connector port="8080"改成 Connector port="80",保存
绑定域名,继续编辑server.xml文件
找到节点,在这个标签里面添加一下配置:
<Host name="绑定的域名" debug="0" xmlValidation="true" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="项目所在的路径" debug="0" reloadable="true" crossContext="true">
</Context>
</Host>
name:域名
例如:
www.baidu.com
docBase:项目所在的路径
例如:
/usr/local/tomcat/apache-tomcat-8.5.50/webapps/ImageView/
为网站绑定https,这个不是必须的
先为域名申请一个SSL证书(阿里云有免费的),然后上传至服务器
还是先进入到tomcat的conf文件夹,编辑server.xml文件
找到如下代码
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
把redirectPort参数修改为redirectPort="443",保存
设置提供https协议的端口
如下:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
在Service标签内再添加一个Connector标签,如下
<Connector port="443" protocol="HTTP/1.1" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="/usr/local/key/tomcatKey/3299848_imgurl.ifvx.cn.pfx" keystorePass="9H32bngt"/>
需要修改的有:keystoreFile是证书的路径,keystorePass是证书密码
重启Tomcat
参考:
https://blog.csdn.net/i_dont_know_a/article/details/80535964
https://blog.csdn.net/wudinaniya/article/details/81200309
centos7防火墙放行相应服务端口:
比如80
firewall-cmd --zone=public --add-port=80/tcp --permanent
查询端口号80 是否开启:
firewall-cmd --query-port=80/tcp
重启防火墙:
firewall-cmd --reload
本教程需要放行的端口有:80,3306,443