网站建设是要考虑什么东西,最近一星期的新闻,wordpress图片pin按钮,邢台太行中学高考成绩一、安装JDK
部分内容可以参考我这篇文章#xff1a;Windows11与CentOS7下配置与检测JDK与Maven环境变量 中的 2.2 安装jdk-8u371-linux-x64.tar.gz和配置环境变量/etc/profile
//1、安装redhat-lsb
yum install -y redhat-lsb//2、查看系统版本信息
lsb_release -a //3、查…一、安装JDK
部分内容可以参考我这篇文章Windows11与CentOS7下配置与检测JDK与Maven环境变量 中的 2.2 安装jdk-8u371-linux-x64.tar.gz和配置环境变量/etc/profile
//1、安装redhat-lsb
yum install -y redhat-lsb//2、查看系统版本信息
lsb_release -a //3、查看系统位数
getconf LONG_BITcat /etc/redhat-release参考我这篇文章查看CentOS版本及系统位数与设置CentOS 7.9 2009 防火墙配置放开端口的命令与过程
//查看yum源中JDK版本
yum list java*//使用yum安装JDK1.8.0
yum -y install java-1.8.0-openjdk*//检查Java版本,查看是否安装成功
java -version//配置环境变量
//查看JDK安装的路径
find /usr/lib/jvm -name java-1.8.0-openjdk-1.8.0*//编辑配置文件/etc/profile
//按i进入编辑模式
vim /etc/profile//添加以下信息
//按下Esc键输入:wq并回车以保存并关闭文件。
#2023-9-2 23:28:12 djc配置JDK环境变量
JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64
PATH$PATH:$JAVA_HOME/bin
CLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME CLASSPATH PATH--------------------注意-----------------------
//在本文目录5.1 NO such file or directory 中需要在tomcat脚本文件(即Tomcat-init脚本文件)中
//需要配置使用JAVA_HOME
//之前执行了移动并重命名Tomcat-init的命令mv Tomcat-init /etc/init.d/tomcat
//详情见 本文目录5.1 NO such file or directory 中
#Location of JAVA_HOME (bin files)
export JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64//tomcat脚本文件(即Tomcat-init脚本文件)中的PATH的值
//是该项目作者默认配置成这样了export PATH$JAVA_HOME/bin:$PATH
//,与JDK环境变量中的PATH$PATH:$JAVA_HOME/bin 就是顺序颠倒了作用应该是一样的
#Add Java binary files to PATH
export PATH$JAVA_HOME/bin:$PATH
-------------------------------------------//最后刷新环境变量
source /etc/profile
修改环境变量后可能会导致执行其他命令时出现类似-bash: chmod: command not found这样的问题
执行export PATH/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin即可。查看yum源中JDK版本:yum list java* 使用yum安装JDK1.8.0:yum -y install java-1.8.0-openjdk* 检查Java版本,查看是否安装成功java -version
[rootfreedom ~]# java -version
openjdk version 1.8.0_382
OpenJDK Runtime Environment (build 1.8.0_382-b05)
OpenJDK 64-Bit Server VM (build 25.382-b05, mixed mode)
[rootfreedom ~]# 查看JDK安装的路径:find /usr/lib/jvm -name java-1.8.0-openjdk-1.8.0*
[rootfreedom ~]# find /usr/lib/jvm -name java-1.8.0-openjdk-1.8.0*
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64
[rootfreedom ~]# 编辑配置文件/etc/profile 添加以下JDK环境变量信息:
#2023-9-2 23:28:12 djc配置JDK环境变量
JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64
PATH$PATH:$JAVA_HOME/bin
CLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME CLASSPATH PATH添加完JDK环境变量信息的/etc/profile
[rootfreedom ~]# cat /etc/profile
# /etc/profile# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc# Its NOT a good idea to change this file unless you know what you
# are doing. Its much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.pathmunge () {case :${PATH}: in*:$1:*);;*)if [ $2 after ] ; thenPATH$PATH:$1elsePATH$1:$PATHfiesac
}if [ -x /usr/bin/id ]; thenif [ -z $EUID ]; then# ksh workaroundEUID/usr/bin/id -uUID/usr/bin/id -rufiUSER/usr/bin/id -unLOGNAME$USERMAIL/var/spool/mail/$USER
fi# Path manipulation
if [ $EUID 0 ]; thenpathmunge /usr/sbinpathmunge /usr/local/sbin
elsepathmunge /usr/local/sbin afterpathmunge /usr/sbin after
fiHOSTNAME/usr/bin/hostname 2/dev/null
HISTSIZE1000
if [ $HISTCONTROL ignorespace ] ; thenexport HISTCONTROLignoreboth
elseexport HISTCONTROLignoredups
fiexport PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL# By default, we want umask to get set. This sets it for login shell
# Current threshold for system reserved uid/gids is 200
# You could check uidgid reservation validity in
# /usr/share/doc/setup-*/uidgid file
if [ $UID -gt 199 ] [ /usr/bin/id -gn /usr/bin/id -un ]; thenumask 002
elseumask 022
fifor i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; doif [ -r $i ]; thenif [ ${-#*i} ! $- ]; then . $ielse. $i /dev/nullfifi
doneunset i
unset -f pathmunge#2023-9-2 23:28:12 djc配置JDK环境变量
JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64
PATH$PATH:$JAVA_HOME/bin
CLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME CLASSPATH PATH刷新环境变量source /etc/profile 修改环境变量后可能会导致执行其他命令时出现类似-bash: chmod: command not found这样的问题执行export PATH/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin即可。
二、下载Tomcat
2.1 下载Tomcat
Tomcat官网 点击左侧的Download中的Tomcat 8: 选中右击后点击-复制链接地址 然后再服务器中使用wget命令下载Tomcat包
//链接修改成需要的版本
wget --no-check-certificate https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.96/bin/apache-tomcat-8.5.93.tar.gz或者直接在浏览器中点击下载链接下载完成后再将apache-tomcat-8.5.93.tar.gz利用xftp等工具上传到服务器中。
2.2 解压并移动
//解压 apache-tomcat-8.5.93.tar.gz
tar -zxvf apache-tomcat-8.5.93.tar.gz//移动并改名到Tomcat目录
mv apache-tomcat-8.5.93 /usr/local/tomcat/移动并改名到Tomcat目录 在/usr/local/tomcat/目录下 bin存放Tomcat的一些脚本文件包含启动和关闭Tomcat服务脚本。 conf存放Tomcat服务器的各种全局配置文件其中最重要的是server.xml和web.xml。 webappsTomcat的主要Web发布目录默认情况下把Web应用文件放于此目录。 logs存放Tomcat执行时的日志文件。
2.3 创建一般用户
为保证系统安全性建议创建一般用户来运行Tomcat。
//创建一般用户djc
useradd djc//运行命令将文件的所属用户设置为djc
chown -R djc.djc /usr/local/tomcat/三、配置server.xml文件
//运行命令切换到/usr/local/tomcat/conf/目录。
cd /usr/local/tomcat/conf///运行以下命令重命名server.xml文件
//server.xml_bk相当于把server.xml初始文件的备份
mv server.xml server.xml_bk//新建一个server.xml文件
//会创建并打开一个server.xml文件
//i键编辑ESC键退出:wq保存并退出
vi server.xmlserver.xml的内容
?xml version1.0 encodingUTF-8?
Server port8006 shutdownSHUTDOWN
Listener classNameorg.apache.catalina.core.JreMemoryLeakPreventionListener/
Listener classNameorg.apache.catalina.mbeans.GlobalResourcesLifecycleListener/
Listener classNameorg.apache.catalina.core.ThreadLocalLeakPreventionListener/
Listener classNameorg.apache.catalina.core.AprLifecycleListener/
GlobalNamingResources
Resource nameUserDatabase authContainertypeorg.apache.catalina.UserDatabasedescriptionUser database that can be updated and savedfactoryorg.apache.catalina.users.MemoryUserDatabaseFactorypathnameconf/tomcat-users.xml/
/GlobalNamingResources
Service nameCatalina
Connector port8080protocolHTTP/1.1connectionTimeout20000redirectPort8443maxThreads1000minSpareThreads20acceptCount1000maxHttpHeaderSize65536debug0disableUploadTimeouttrueuseBodyEncodingForURItrueenableLookupsfalseURIEncodingUTF-8/
Engine nameCatalina defaultHostlocalhost
Realm classNameorg.apache.catalina.realm.LockOutRealm
Realm classNameorg.apache.catalina.realm.UserDatabaseRealmresourceNameUserDatabase/
/Realm
Host namelocalhost appBase/data/wwwroot/default unpackWARstrue autoDeploytrue
Context path docBase/data/wwwroot/default debug0 reloadablefalse crossContexttrue/
Valve classNameorg.apache.catalina.valves.AccessLogValve directorylogs
prefixlocalhost_access_log. suffix.txt pattern%h %l %u %t quot;%rquot; %s %b /
/Host
/Engine
/Service
/Serveri键编辑ESC键退出:wq保存并退出 cat server.xml /usr/local/tomcat/conf/server.xml
#四、设置JVM内存参数
//运行命令创建并打开/usr/local/tomcat/bin/setenv.sh文件。
//i键编辑ESC键退出:wq保存并退出
vi /usr/local/tomcat/bin/setenv.sh//setenv.sh的内容
//指定JAVA_OPTS参数用于设置JVM的内存信息以及编码格式。
JAVA_OPTS-Djava.security.egdfile:/dev/./urandom -server -Xms256m -Xmx496m -Dfile.encodingUTF-8 cat setenv.sh:
四、设置Tomcat自启动脚本-Tomcat-init脚本
Tomcat-init
//获取Tomcat自启动脚本 Tomcat-init
//或者使用git clone从Windows里clone完成后再上传到linux服务器
//也可以在服务器中直接wget
wet https://github.com/oneinstack/oneinstack/blob/main/init.d/Tomcat-init//移动并重命名Tomcat-init
mv Tomcat-init /etc/init.d/tomcat//为/etc/init.d/tomcat添加可执行权限
chmod x /etc/init.d/tomcat//设置启动脚本JAVA_HOME
//重要:脚本中JDK的版本信息必须与您安装的JDK版本信息一致否则Tomcat会启动失败。
sed -i s^export JAVA_HOME.*export JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.342.b07-1.el7_9.x86_64 /etc/init.d/tomcat
Tomcat-init脚本的内容
#!/bin/bash
### BEGIN INIT INFO
# Provides: tomcat
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: tomcat-server daemon
# Description: tomcat-server daemon
### END INIT INFO
#
# chkconfig: - 95 15
# description: Tomcat start/stop/status script#Location of JAVA_HOME (bin files)
export JAVA_HOME#Add Java binary files to PATH
export PATH$JAVA_HOME/bin:$PATH#CATALINA_HOME is the location of the configuration files of this instance of Tomcat
CATALINA_HOME/usr/local/tomcat#TOMCAT_USER is the default user of tomcat
TOMCAT_USERwww#TOMCAT_USAGE is the message if this script is called without any options
TOMCAT_USAGEUsage: $0 {\e[00;32mstart\e[00m|\e[00;31mstop\e[00m|\e[00;32mstatus\e[00m|\e[00;31mrestart\e[00m}#SHUTDOWN_WAIT is wait time in seconds for java proccess to stop
SHUTDOWN_WAIT20tomcat_pid() {echo ps -ef | grep java | grep $CATALINA_HOME/ | grep -v grep | tr -s |cut -d -f2
}start() {pid$(tomcat_pid)if [ -n $pid ]; thenecho -e \e[00;31mTomcat is already running (pid: $pid)\e[00melseecho -e \e[00;32mStarting tomcat\e[00mif [ user_exists $TOMCAT_USER 1 ]; thensu $TOMCAT_USER -c $CATALINA_HOME/bin/startup.shelse$CATALINA_HOME/bin/startup.shfistatusfireturn 0
}status() {pid$(tomcat_pid)if [ -n $pid ]; thenecho -e \e[00;32mTomcat is running with pid: $pid\e[00melseecho -e \e[00;31mTomcat is not running\e[00mfi
}stop() {pid$(tomcat_pid)if [ -n $pid ]; thenecho -e \e[00;31mStoping Tomcat\e[00m$CATALINA_HOME/bin/shutdown.shlet kwait$SHUTDOWN_WAITcount0;until [ ps -p $pid | grep -c $pid 0 ] || [ $count -gt $kwait ]doecho -n -e \e[00;31mwaiting for processes to exit\e[00m\n;sleep 1let count$count1;doneif [ $count -gt $kwait ]; thenecho -n -e \n\e[00;31mkilling processes which didnt stop after $SHUTDOWN_WAIT seconds\e[00mkill -9 $pidfielseecho -e \e[00;31mTomcat is not running\e[00mfireturn 0
}user_exists() {if id -u $1 /dev/null 21; thenislogincat /etc/passwd | grep ^${TOMCAT_USER}: | grep nologin$if [ ${islogin: -7} nologin ]; thenecho 0elseecho 1 fielseecho 0fi
}case $1 instart)start;;stop)stop;;restart)stopstart;;status)status;;*)echo -e $TOMCAT_USAGE;;
esac
exit 0 上传自启动脚本Tomcat-init 注意这里的etc的init.d文件夹是个快捷方式链接 也就是说init.d实际指向rc.d下的init.d文件夹 里面有刚刚使用mv命令移动并重命名的Tomcat-init脚本文件即tomcat脚本文件 设置启动脚本JAVA_HOME 为/etc/init.d/tomcat添加可执行权限 (chmod x /etc/init.d/tomcat),字体变色变粗(可以用来识别命令是否生效)
五、启动Tomcat
//设置Tomcat开机自启动
chkconfig --add tomcat
chkconfig tomcat on//启动Tomcat
service tomcat start5.1 NO such file or directory
启动Tomcat: 报错tomcat-NO such file or directory: 这是因为Tomcat-init脚本文件也就是/etc/init.d/tomcat脚本文件 (之前执行了移动并重命名Tomcat-init脚本文件的命令mv Tomcat-init /etc/init.d/tomcat)这个文件中需要配置参数JAVA_HOME与TOMCAT_USERwww 修改为TOMCAT_USERdjc (TOMCAT_USER is the default user of tomcat)
所以此处的tomcat实际上是一个脚本文件的名称即Tomcat-init脚本文件。 cat tomcat脚本文件(即Tomcat-init脚本文件)
#Location of JAVA_HOME (bin files) export JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64的值 #CATALINA_HOME is the location of the configuration files of this instance of Tomcat CATALINA_HOME/usr/local/tomcat 的值 修改后的tomcat脚本(即原来的Tomcat-init脚本mv Tomcat-init /etc/init.d/tomcat
#HHHHHHHi!/bin/bash
### BEGIN INIT INFO
# Provides: tomcat
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: tomcat-server daemon
# Description: tomcat-server daemon
### END INIT INFO
#
# chkconfig: - 95 15
# description: Tomcat start/stop/status script#Location of JAVA_HOME (bin files)
export JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64#Add Java binary files to PATH
export PATH$JAVA_HOME/bin:$PATH#CATALINA_HOME is the location of the configuration files of this instance of Tomcat
CATALINA_HOME/usr/local/tomcat#TOMCAT_USER is the default user of tomcat
TOMCAT_USERdjc#TOMCAT_USAGE is the message if this script is called without any options
TOMCAT_USAGEUsage: $0 {\e[00;32mstart\e[00m|\e[00;31mstop\e[00m|\e[00;32mstatus\e[00m|\e[00;31mrestart\e[00m}#SHUTDOWN_WAIT is wait time in seconds for java proccess to stop
SHUTDOWN_WAIT20tomcat_pid() {echo ps -ef | grep java | grep $CATALINA_HOME/ | grep -v grep | tr -s |cut -d -f2
}start() {pid$(tomcat_pid)if [ -n $pid ]; thenecho -e \e[00;31mTomcat is already running (pid: $pid)\e[00melseecho -e \e[00;32mStarting tomcat\e[00mif [ user_exists $TOMCAT_USER 1 ]; thensu $TOMCAT_USER -c $CATALINA_HOME/bin/startup.shelse$CATALINA_HOME/bin/startup.shfistatusfireturn 0
}status() {pid$(tomcat_pid)if [ -n $pid ]; thenecho -e \e[00;32mTomcat is running with pid: $pid\e[00melseecho -e \e[00;31mTomcat is not running\e[00mfi
}stop() {pid$(tomcat_pid)if [ -n $pid ]; thenecho -e \e[00;31mStoping Tomcat\e[00m$CATALINA_HOME/bin/shutdown.shlet kwait$SHUTDOWN_WAITcount0;until [ ps -p $pid | grep -c $pid 0 ] || [ $count -gt $kwait ]doecho -n -e \e[00;31mwaiting for processes to exit\e[00m\n;sleep 1let count$count1;doneif [ $count -gt $kwait ]; thenecho -n -e \n\e[00;31mkilling processes which didnt stop after $SHUTDOWN_WAIT seconds\e[00mkill -9 $pidfielseecho -e \e[00;31mTomcat is not running\e[00mfireturn 0
}user_exists() {if id -u $1 /dev/null 21; thenislogincat /etc/passwd | grep ^${TOMCAT_USER}: | grep nologin$if [ ${islogin: -7} nologin ]; thenecho 0elseecho 1 fielseecho 0fi
}case $1 instart)start;;stop)stop;;restart)stopstart;;status)status;;*)echo -e $TOMCAT_USAGE;;
esac
exit 0
5.2 service tomcat start-command not found 原因shell脚本是在Windows下编写通过工具软件传输到CentOS中。而Windows下行结尾符号为\r\n linux下行结尾时\n两者不同所以无法识别需要转换一下。 参考我这篇文章CentOS: $‘\r‘: command not found
Tomcat-init脚本文件也就是/etc/init.d/tomcat脚本文件 (之前执行了移动并重命名Tomcat-init脚本文件的命令mv Tomcat-init /etc/init.d/tomcat)
所以此处的tomcat实际上是一个脚本文件的名称即Tomcat-init脚本文件内容见5.1 NO such file or directory 中的【修改后的tomcat脚本(即原来的Tomcat-init脚本mv Tomcat-init /etc/init.d/tomcat】
//执行sh deploy.sh base报错$\r: command not found
//sh deploy.sh base
//这里修改为service tomcat start
service tomcat start//1、dos2unix 脚本名此处是dos2unix deploy.sh
//如果执行dos2unix deploy.sh报-bash:dos2unix:command not found就使用yum install -y dos2unix 安装dos2unix
//如果执行成功会报一个dos2unix: converting file deploy.sh to Unix format ...
//dos2unix deploy.sh
//这里改为dos2unix tomcat
dos2unix tomcat //2、安装dos2unix
yum install -y dos2unix//3、再次执行dos2unix deploy.sh命令
//如果dos2unix deploy.sh执行成功会报一个dos2unix: converting file deploy.sh to Unix format ...
//如果dos2unix deploy.sh执行成功后再次执行sh deploy.sh base还不行依旧报 $\r: command not found就执行下面的sed命令
//这里改为再次执行dos2unix tomcat
dos2unix tomcat //4、sed -i s/\r// 脚本名
//sed -i s/\r// deploy.sh
//这里改为sed -i s/\r// tomcat
sed -i s/\r// tomcat//5、再次执行sh deploy.sh base
//sh deploy.sh base
//这里改为 service tomcat start
service tomcat start启动成功
[rootfreedom init.d]# service tomcat start
Starting tomcat
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
Tomcat is running with pid: 852六、参考
【ECS生长万物之开源】手动部署Java Web环境CentOS 7 Tomcat官网 Windows11与CentOS7下配置与检测JDK与Maven环境变量 CentOS: $‘\r‘: command not found