作为一名长期奋战在运维一线的工程师,我深知Linux服务器环境配置的重要性。今天我将分享一套完整的Linux服务器环境搭建流程,涵盖JDK安装、Tomcat部署、MySQL配置等核心环节。这些操作看似基础,但其中包含的细节和技巧往往决定了后续服务的稳定性。
在Linux系统中安装JDK是Java应用运行的基础。我推荐使用Oracle JDK作为生产环境的标准配置,以下是详细步骤:
首先,通过Finalshell等SSH工具将JDK压缩包上传至服务器。我习惯将第三方软件统一存放在/opt目录下,这样便于管理且符合Linux目录规范:
bash复制# 查看/opt目录内容
ls -l /opt/
上传的JDK包通常为.tar.gz格式,如jdk-8u361-linux-x64.tar.gz。选择这个版本是因为它在企业环境中经过长期验证,稳定性和兼容性都有保障。
使用tar命令解压JDK压缩包:
bash复制tar -zxvf jdk-8u361-linux-x64.tar.gz
技术细节:tar命令的-z参数表示用gzip解压,-x表示解压,-v显示详细过程,-f指定文件名。这种组合是解压.tar.gz文件的黄金标准。
解压后会生成类似jdk1.8.0_361的目录。为方便后续管理,我建议建立软链接:
bash复制ln -s jdk1.8.0_361 jdk
这样无论JDK版本如何升级,只需调整软链接指向即可,无需修改其他配置。
编辑/etc/profile文件配置全局环境变量:
bash复制vim /etc/profile
在文件末尾添加以下内容(注意根据实际路径调整):
bash复制export JAVA_HOME=/opt/jdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
这里有个关键点:PATH变量的修改方式。我使用$JAVA_HOME/bin:$PATH而不是直接覆盖PATH,这样可以保留系统原有路径。
执行source命令使配置立即生效:
bash复制source /etc/profile
验证安装是否成功:
bash复制java -version
如果显示类似"java version "1.8.0_361""的信息,说明安装成功。
常见问题:如果遇到"command not found",请检查:1) JAVA_HOME路径是否正确 2) PATH是否包含$JAVA_HOME/bin 3) 是否执行了source命令
Tomcat作为轻量级Java应用服务器,是部署Web应用的首选。安装步骤如下:
上传apache-tomcat-9.0.xx.tar.gz到/opt目录并解压:
bash复制tar -zxvf apache-tomcat-9.0.xx.tar.gz
启动Tomcat服务:
bash复制cd /opt/apache-tomcat-9.0.xx/bin
./startup.sh
在生产环境中,直接关闭防火墙是不安全的。正确做法是只开放必要端口:
bash复制# 查看防火墙状态
systemctl status firewalld
# 开放8080端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
如果使用iptables,命令略有不同:
bash复制iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
service iptables save
验证Tomcat是否正常运行:
bash复制curl http://localhost:8080
或者在其他机器通过浏览器访问http://服务器IP:8080
管理命令备忘:
bash复制# 停止服务
./shutdown.sh
# 查看日志
tail -f ../logs/catalina.out
在安装MySQL前,必须检查并卸载可能冲突的MariaDB:
bash复制# 检查已安装的MariaDB包
rpm -qa | grep mariadb
# 卸载找到的包
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
上传MySQL压缩包并解压:
bash复制tar -xvf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.36-linux-glibc2.12-x86_64 mysql
创建必要目录和用户:
bash复制mkdir -p /data/mysql
groupadd mysql
useradd -g mysql mysql
初始化MySQL数据库(注意记录生成的临时密码):
bash复制bin/mysqld --initialize --user=mysql --basedir=/opt/mysql --datadir=/data/mysql
修改目录权限:
bash复制chown -R mysql:mysql /opt/mysql
chown -R mysql:mysql /data/mysql
启动MySQL服务:
bash复制bin/mysqld_safe --user=mysql &
使用临时密码登录并修改root密码:
bash复制bin/mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
授权远程访问(谨慎操作):
sql复制GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
FLUSH PRIVILEGES;
安全建议:生产环境应该创建专用用户并限制权限,而不是直接开放root远程访问。
将项目WAR包放入Tomcat的webapps目录:
bash复制cp project.war /opt/apache-tomcat-9.0.xx/webapps/
Tomcat会自动解压WAR包。访问地址为:
http://服务器IP:8080/project
页面无法访问:
数据库连接失败:
中文乱码问题:
在my.cnf中添加:
ini复制[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
经过多年实践,我总结出以下经验:
对于初学者,建议先在测试环境完整走通所有流程。每次只修改一个变量,确保能准确定位问题来源。Linux系统的复杂性在于各种组件的相互影响,掌握这些基础服务的配置原理,才能构建稳定可靠的服务器环境。