1. 项目概述
在云服务器上搭建Java Web开发环境是每个后端工程师的必修课。今天我要分享的是如何在CentOS系统上,通过MobaXterm这个强大的终端工具,完成从远程连接到环境配置的全过程。这套方案经过我多年在生产环境的实战验证,特别适合中小型项目的快速部署。
为什么选择MobaXterm?相比其他SSH工具,它集成了X11服务器、SFTP文件传输和宏脚本功能,一个窗口就能搞定所有运维操作。而CentOS作为企业级Linux发行版,其稳定性和安全性非常适合作为服务器系统。下面我会详细演示从零开始配置JDK、Tomcat和MySQL的完整流程,包含多个我踩过坑后才总结出的实用技巧。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 远程连接配置
2.1 MobaXterm基础配置
首先到MobaXterm官网下载便携版(Portable edition),解压后直接运行主程序。建议进行以下初始设置:
- 会话管理:点击左上角"Sessions" → "New session" → 选择SSH协议
- 连接参数:
- Remote host填写云服务器的公网IP
- 勾选"Specify username"输入root(或其他有sudo权限的用户)
- 端口保持默认22(需确保服务器安全组已开放)
重要提示:首次连接时会弹出主机密钥验证,务必核对指纹信息是否与服务器一致,防止中间人攻击。
2.2 服务器安全组设置
以阿里云为例,必须配置以下入方向规则:
| 端口 | 协议 | 授权对象 | 用途说明 |
|---|---|---|---|
| 22 | TCP | 0.0.0.0/0 | SSH远程连接 |
| 8080 | TCP | 0.0.0.0/0 | Tomcat默认端口 |
| 3306 | TCP | 个人办公IP | MySQL数据库 |
生产环境中,建议3306端口仅对特定IP开放。配置完成后,在MobaXterm终端输入:
bash复制ping your-server-ip
确认网络连通性,出现连续响应即表示连接成功。
3. JDK环境部署
3.1 YUM安装OpenJDK
CentOS 7默认仓库提供OpenJDK 1.8,执行以下命令:
bash复制# 检查现有Java版本
java -version 2>&1 | grep -i version || echo "未安装Java"
# 搜索可用包
yum search java-1.8.0-openjdk
# 安装开发套件(包含javac)
yum install -y java-1.8.0-openjdk-devel.x86_64
3.2 环境变量配置
通过alternatives命令查找安装路径:
bash复制alternatives --config java
典型路径为/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64/jre
编辑/etc/profile追加:
bash复制export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64
export PATH=$JAVA_HOME/bin:$PATH
使配置立即生效:
bash复制source /etc/profile
避坑指南:如果遇到
java命令可用但javac不可用,说明只安装了JRE没有JDK,需重新安装-devel版本。
4. Tomcat服务安装
4.1 二进制包安装
推荐使用Apache官方镜像:
bash复制mkdir -p /opt/software
cd /opt/software
wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.87/bin/apache-tomcat-8.5.87.tar.gz
tar -zxvf apache-tomcat-8.5.87.tar.gz -C /usr/local/
ln -s /usr/local/apache-tomcat-8.5.87 /usr/local/tomcat
4.2 系统服务配置
创建/etc/systemd/system/tomcat.service:
ini复制[Unit]
Description=Apache Tomcat 8.5
After=syslog.target network.target
[Service]
Type=forking
Environment="CATALINA_PID=/usr/local/tomcat/temp/tomcat.pid"
Environment="JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64"
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
启用服务:
bash复制systemctl daemon-reload
systemctl enable tomcat
systemctl start tomcat
验证安装:
bash复制curl -I http://localhost:8080
# 应返回HTTP/1.1 200 OK
5. MySQL数据库部署
5.1 官方YUM源安装
配置MySQL官方仓库:
bash复制rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community
安装MySQL 5.7:
bash复制yum install -y mysql-community-server
5.2 安全初始化
启动服务后执行安全脚本:
bash复制systemctl start mysqld
grep 'temporary password' /var/log/mysqld.log
mysql_secure_installation
关键配置项:
- 修改root密码(需包含大小写字母、数字和特殊字符)
- 移除匿名用户
- 禁止root远程登录
- 移除测试数据库
- 立即生效权限表
5.3 远程访问配置
创建专用管理账号:
sql复制CREATE USER 'admin'@'%' IDENTIFIED BY 'Complex@Password123';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
安全提醒:生产环境建议使用更严格的权限控制,例如按库授权、限制IP访问等。
6. 环境联调测试
6.1 验证JDBC连接
在Tomcat的webapps目录创建测试项目:
bash复制mkdir -p /usr/local/tomcat/webapps/test/WEB-INF/classes
编写WEB-INF/web.xml:
xml复制<web-app>
<display-name>Connection Test</display-name>
</web-app>
创建测试Servlet:
java复制// WEB-INF/classes/TestServlet.java
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class TestServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/mysql?useSSL=false",
"admin",
"Complex@Password123");
out.println("<h2>MySQL Connection Success!</h2>");
conn.close();
} catch (Exception e) {
out.println("<h2>Error:</h2><pre>");
e.printStackTrace(out);
out.println("</pre>");
}
}
}
编译并重启Tomcat:
bash复制javac -cp /usr/local/tomcat/lib/servlet-api.jar WEB-INF/classes/TestServlet.java
systemctl restart tomcat
访问http://服务器IP:8080/test/TestServlet即可验证数据库连通性。
7. 运维管理技巧
7.1 日志集中管理
配置logrotate实现日志自动轮转:
bash复制# /etc/logrotate.d/tomcat
/usr/local/tomcat/logs/catalina.out {
daily
rotate 30
missingok
compress
copytruncate
dateext
}
7.2 防火墙优化
使用firewalld管理端口:
bash复制firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload
7.3 备份策略示例
创建自动化备份脚本/usr/local/bin/backup.sh:
bash复制#!/bin/bash
DATE=$(date +%Y%m%d)
MYSQL_USER="admin"
MYSQL_PASS="Complex@Password123"
BACKUP_DIR="/backups"
# MySQL全库备份
mysqldump -u$MYSQL_USER -p$MYSQL_PASS --all-databases | gzip > $BACKUP_DIR/mysql_$DATE.sql.gz
# Tomcat应用备份
tar -czf $BACKUP_DIR/tomcat_$DATE.tar.gz /usr/local/tomcat/webapps/
# 保留最近7天备份
find $BACKUP_DIR -type f -mtime +7 -delete
添加到crontab:
bash复制0 2 * * * /usr/local/bin/backup.sh
这套环境配置方案已经在我负责的多个电商项目中稳定运行,关键点在于:
- 使用systemd管理服务确保高可用
- 最小化权限原则保障安全
- 完善的备份机制防止数据丢失
- 详细的日志记录便于故障排查
对于需要更高性能的场景,可以考虑以下优化方向:
- 使用Nginx+Tomcat实现负载均衡
- 配置MySQL主从复制
- 添加Redis缓存层
- 使用Docker容器化部署
