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

posted @ 2023-06-17 09:38  EggCode  阅读(94)  评论(0编辑  收藏  举报