首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

CentOS 手動部署 Tomcat + MySQL + JDK 生產環境實戰

     編輯:MySQL 資料庫相關知識

前言

本文記錄在 CentOS/RHEL 系列上,以二進位壓縮包方式部署 JDK 6、Tomcat 6、MySQL 5.0 並整合 JDBC 驅動的標準化流程,適合無法使用套件管理器或需鎖定版本的生產環境。

一、軟體版本與下載

元件版本下載來源
JDK6u20Oracle 官網
Tomcat6.0.28Apache Tomcat 官網
MySQL5.0.56MySQL 官網
JDBC Driver5.1.13MySQL Connector/J

二、JDK 安裝與環境變數

# 移除舊版 OpenJDK
rpm -qa | grep -i java | xargs rpm -e --nodeps

# 安裝 Oracle JDK
cp jdk-6u20-linux-i586-rpm.bin /usr/local/
chmod +x jdk-6u20-linux-i586-rpm.bin
./jdk-6u20-linux-i586-rpm.bin          # 安裝至 /usr/java/jdk1.6.0_20
ln -s /usr/java/jdk1.6.0_20 /usr/local/java

# 設定環境變數
cat >> /etc/profile <<'EOF'
export JAVA_HOME=/usr/java/jdk1.6.0_20
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
EOF
source /etc/profile
java -version  # 驗證

三、Tomcat 部署

tar zxvf apache-tomcat-6.0.28.tar.gz
mv apache-tomcat-6.0.28 /usr/local/tomcat
chmod +x /usr/local/tomcat/bin/*.sh

# 環境變數
echo 'export CATALINA_HOME=/usr/local/tomcat' >> /etc/profile
source /etc/profile

# 測試啟動
/usr/local/tomcat/bin/startup.sh
# 瀏覽器訪問 https://IP:8080 應見 Tomcat 頁面

# 開機自啟
cat >> /etc/rc.d/rc.local <<'EOF'
export JAVA_HOME=/usr/java/jdk1.6.0_20
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
/usr/local/tomcat/bin/startup.sh
EOF
chmod +x /etc/rc.d/rc.local

四、MySQL 編譯安裝與初始化

groupadd mysql
useradd -r -g mysql -s /sbin/nologin mysql

tar zxvf mysql-5.0.56.tar.gz
cd mysql-5.0.56
./configure --prefix=/usr/local/mysql \
            --with-extra-charsets=all \
            --with-charset=utf8 \
            --with-collation=utf8_general_ci
make && make install

# 初始化
cp support-files/my-medium.cnf /etc/my.cnf
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
cd /usr/local/mysql
./bin/mysql_install_db --user=mysql --datadir=/usr/local/mysql/var
chown -R root .
chown -R mysql var
chgrp -R mysql .

# 啟動並設定密碼
/usr/local/mysql/bin/mysqld_safe --user=mysql &
/usr/local/mysql/bin/mysqladmin -u root password 'StrongPass123'

# 遠程 root(生產建議專用帳號)
/usr/local/mysql/bin/mysql -u root -p -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'StrongPass123' WITH GRANT OPTION; FLUSH PRIVILEGES;"

# 開機自啟
chkconfig --add mysqld
chkconfig mysqld on

五、JDBC 驅動部署

tar zxvf mysql-connector-java-5.1.13.tar.gz
cp mysql-connector-java-5.1.13/mysql-connector-java-5.1.13-bin.jar \
   /usr/local/tomcat/webapps/ROOT/WEB-INF/lib/

# 環境變數加入 CLASSPATH(供命令列工具使用)
echo 'export CLASSPATH=$CLASSPATH:/usr/local/tomcat/webapps/ROOT/WEB-INF/lib/mysql-connector-java-5.1.13-bin.jar' >> /etc/profile
source /etc/profile

六、驗證整合

# 建立簡單 JSP 測試
cat > /usr/local/tomcat/webapps/ROOT/test.jsp <<'EOF'
<%@ page import="java.sql.*" %>
<%
  Class.forName("com.mysql.jdbc.Driver");
  Connection conn = DriverManager.getConnection(
      "jdbc:mysql://127.0.0.1:3306/test?user=root&password=StrongPass123&useUnicode=true&characterEncoding=utf8");
  Statement stmt = conn.createStatement();
  ResultSet rs = stmt.executeQuery("SELECT VERSION()");
  if (rs.next()) out.println("MySQL Version: " + rs.getString(1));
  rs.close(); stmt.close(); conn.close();
%>
EOF

# 重啟 Tomcat
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh

# 瀏覽器訪問 https://IP:8080/test.jsp 應顯示版本號

七、生產環境加固清單

  • JDK 升級至長期支援版(8/11/17/21),JDK 6 已停止更新。
  • Tomcat 升級至 9.0+,6.0 已 EOL。
  • MySQL 升級至 5.7/8.0,5.0 已 EOL。
  • 資料庫帳號最小權限、禁用 root 遠程、強制 SSL。
  • Tomcat 關閉預設管理頁、啟用 HTTPS、設定 HttpOnly、Secure Cookie。
  • 配置 logrotate 處理 catalina.out、MySQL 慢查詢/錯誤日誌。
  • 監控:JMX + Prometheus/Grafana、慢查詢告警、磁碟/記憶體閾值告警。

總結

二進位包部署可快速鎖定版本、避免套件管理器依賴地獄。但長期維護仍建議納入 Ansible/SaltStack 自動化,並規劃定期升級路徑以修補安全漏洞。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved