Guia de implantação do sistema de blog ZrLog (versão sem arquivo WAR, construção com Maven + otimização com espelho da Alibaba Cloud)
Cenário adaptado: pacote compactado sem WAR pré-construído, requer compilação via Maven; configuração adicional do espelho da Alibaba Cloud para resolver falhas no download de dependências
Máquina alvo: 192.168.223.20
Sistema operacional: RHEL/CentOS/Rocky Linux 9.x
No sistema RHEL/CentOS/Rocky Linux 9.x (máquina alvo 192.168.223.20), o código-fonte do ZrLog será compilado usando «JDK11 + Maven3.9.6» para gerar um arquivo WAR, combinado com MariaDB (banco de dados) + Tomcat10 (contêiner de aplicação) + Nginx (proxy reverso) para a implantação completa, permitindo acesso ao sistema de blog ZrLog através do navegador.
Código-fonte → Construção com Maven (download de dependências + compilação + empacotamento) → Arquivo WAR → Implantação no Tomcat → Proxy reverso Nginx → Acesso via navegador;
II. Preparação do ambiente prévio (JDK + Maven + dependências básicas)
2.1 Instalação e configuração do JDK 11
# 1. Upload do jdk-11.tar.gz para /root, extração
cd /root
tar -zxf jdk-11_linux-x64_bin.tar.gz
mv jdk-11 jdk11
# 2. Configuração das variáveis de ambiente globais (efetivo permanentemente)
cat > /etc/profile.d/jdk.sh << 'EOF'
export JAVA_HOME=/root/jdk11
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib
EOF
# 3. Ativação e verificação
source /etc/profile.d/jdk.sh
java -version # Exibe a versão do JDK se bem-sucedido
- JDK é o kit de desenvolvimento Java, contendo todas as ferramentas necessárias para escrever, compilar e depurar códigos em Java, voltado para desenvolvedores;
- JRE é o ambiente de execução Java, inclui apenas os componentes necessários para rodar programas Java já compilados (JVM + bibliotecas principais), sendo suficiente para executar aplicações Java;
- JVM é a máquina virtual Java, responsável por traduzir o bytecode Java em instruções executáveis pelo sistema operacional, sendo o componente central para a portabilidade da linguagem (códigos Java são compilados em bytecode (.class), que são interpretados pela JVM correspondente ao sistema operacional).
┌─────────────────────────────────────┐ │ JDK │ │ ┌─────────────────────────────┐ │ │ │ JRE │ │ │ │ ┌─────────────────────┐ │ │ │ │ │ JVM │ │ │ │ │ └─────────────────────┘ │ │ │ │ (bibliotecas principais + arquivos do sistema) │ │ │ └─────────────────────────────┘ │ │ (ferramentas como javac, jar, javadoc) │ └─────────────────────────────────────┘
2.2 Instalação do Maven + configuração do espelho da Alibaba Cloud (otimização essencial)
# 1. Download do Maven 3.9.6 (compatível com JDK 11)
cd /root
wget https://archive.apache.org/dist/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.tar.gz
# 2. Extração e renomeação
[root@zrlog ~]# tar -zxf apache-maven-3.9.14-bin.tar.gz
[root@zrlog ~]# mv apache-maven-3.9.14 maven
# 3. Definição das variáveis de ambiente globais
cat > /etc/profile.d/maven.sh << 'EOF'
export MAVEN_HOME=/root/maven
export PATH=$MAVEN_HOME/bin:$PATH
EOF
source /etc/profile.d/maven.sh
mvn -version # Mostra a versão do Maven se bem-sucedido
[root@zrlog package]# vim /root/maven/conf/settings.xml
.....
tencentmaven
central
https://maven.aliyun.com/repository/public/
....
O arquivo pom.xml (Modelo de Objeto do Projeto) é o arquivo central do projeto Maven, definindo todos os aspectos do projeto, sendo fundamental para a gestão de dependências, compilação e empacotamento (no experimento, essencial para resolver problemas de ausência de WAR e downloads de dependências).
III. Construção do WAR do ZrLog com Maven (passos principais)
3.1 Descompactação do código-fonte do ZrLog
cd /root
# Extrair em diretório específico para evitar confusão
unzip -q zrlog-3.3.0-1811fd7-release.zip -d zrlog-src
cd zrlog-src
3.2 Localização do pom.xml e execução da construção
# Entrar no diretório onde está o pom.xml (baseado na estrutura do pacote)
[root@dev ~]# find /root/zrlog-src/ -name pom.xml
/root/zrlog-src/META-INF/maven/com.hibegin/package/pom.xml
# Configurar espelho da Alibaba Cloud (resolver lentidão/falhas no download)
mv /root/zrlog-src/META-INF/maven/com.hibegin/package/pom.xml /root/zrlog-src/META-INF/maven/com.hibegin/package/pom.xml.bak
# Criar novo pom.xml independente (sem POM pai, diretamente para WAR)
cat > /root/zrlog-src/META-INF/maven/com.hibegin/package/pom.xml << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
4.0.0
<!-- Definição manual das informações básicas do projeto (substitui o POM pai) -->
com.hibegin
zrlog-web
3.3.0
war
ZrLog Web
ZrLog Blog System
<!-- Dependências principais (substituem as do POM pai) -->
<!-- Servlet & JSP -->
javax.servlet
javax.servlet-api
4.0.1
provided
javax.servlet.jsp
jsp-api
2.2
provided
<!-- Java EE base -->
javax
javaee-api
8.0.1
provided
<!-- Driver de banco de dados (dependência crítica do ZrLog) -->
mysql
mysql-connector-java
8.0.33
<!-- Logs -->
org.slf4j
slf4j-api
1.7.36
ch.qos.logback
logback-classic
1.2.13
<!-- Configuração de build (garantir WAR funcional) -->
zrlog
<!-- Plugin de compilação (compatível com JDK11) -->
org.apache.maven.plugins
maven-compiler-plugin
3.8.1
11
11
UTF-8
<!-- Plugin de WAR (ignorar falta de web.xml) -->
org.apache.maven.plugins
maven-war-plugin
3.3.2
false
<!-- Diretório de recursos do ZrLog (importante) -->
/root/zrlog-src
WEB-INF/**/*
META-INF/**/*
**/*.jsp
**/*.html
**/*.css
**/*.js
EOF
[root@dev ~]# cd /root/zrlog-src/META-INF/maven/com.hibegin/package/
# Executar o build com Maven (-DskipTests para acelerar)
mvn clean package -DskipTests
Sinal de sucesso:
Saída do console exibe BUILD SUCCESS, e o arquivo zrlog-3.3.0.war é gerado no diretório target/.
2.3 Instalação do banco de dados / proxy reverso / contêiner de aplicação
# 1. Dependências básicas
dnf install -y wget unzip tar vim net-tools
# 2. Implantação do MariaDB
dnf install -y mariadb-server mariadb
systemctl start mariadb && systemctl enable mariadb
# Criar banco e usuário exclusivos para ZrLog
mysql -u root -e "
CREATE DATABASE zrlog DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'zrlog'@'%' IDENTIFIED BY 'zrlog123456';
GRANT ALL PRIVILEGES ON zrlog.* TO 'zrlog'@'%';
FLUSH PRIVILEGES;
"
# 3. Implantação do Nginx como proxy reverso
dnf install -y nginx
# Configuração otimizada
cat > /etc/nginx/conf.d/zrlog.conf << 'EOF'
server {
listen 80;
server_name _;
charset utf-8;
client_max_body_size 100M;
# Proxy reverso para Tomcat
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 60s;
proxy_read_timeout 60s;
}
}
EOF
# Iniciar e ativar no boot
systemctl start nginx && systemctl enable nginx
nginx -t # Verificar configuração
# 4. Implantação do Tomcat 10
cd /root
[root@dev ~]# tar -zxf apache-tomcat-10.1.52.tar.gz
[root@dev ~]# mv apache-tomcat-10.1.52 tomcat10
[root@dev ~]#
# Configuração de memória do Tomcat
cat > /root/tomcat10/bin/setenv.sh << 'EOF'
export JAVA_HOME=/root/jdk11
export CATALINA_OPTS="-Xms512m -Xmx1024m"
EOF
chmod +x /root/tomcat10/bin/*.sh
Definir estas variáveis permite que o sistema e os programas localizem diretamente ferramentas e dependências, evitando conflitos de versões ou erros de caminho.
| Variável | Função resumida | Exemplo de uso |
|---|---|---|
JAVA_HOME |
Indica local do JDK | Inicialização do Tomcat, compilação com Maven, execução do ZrLog |
PATH (JDK) |
Localização do comando java |
Execução de java -version, javac fonte.java |
CLASSPATH |
Informa ao JVM onde estão as classes principais | Compilação/execução do ZrLog |
MAVEN_HOME |
Localização do Maven | Comandos mvn carregam configurações do Maven |
PATH (Maven) |
Localização do comando mvn |
Execução de mvn clean package |
IV. Implantação do WAR no Tomcat
4.1 Cópia do WAR e limpeza de dados antigos
# Retornar ao diretório de build
cd /root/zrlog-src/META-INF/maven/com.hibegin/package/
# Copiar o WAR para webapps do Tomcat, renomeado como ROOT.war
cp target/zrlog.war /root/tomcat10/webapps/ROOT.war
# Limpar diretórios antigos do Tomcat (evitar conflitos)
rm -rf /root/tomcat10/webapps/ROOT
4.2 Inicialização do Tomcat e verificação
# Iniciar Tomcat
/root/tomcat10/bin/startup.sh
# Visualizar logs de inicialização (confirmar desempacotamento e falhas)
tail -f /root/tomcat10/logs/catalina.out
Sinal de sucesso:
A saída do log mostra Server startup in XXX ms e não há registros de erro.
V. Instalação e acesso via navegador
5.1 Endereço de acesso
http://192.168.223.20 (porta 80 do Nginx, sem especificar porta 8080)
5.2 Configuração do assistente de instalação (informações do banco de dados)
| Campo | Valor |
|---|---|
| Endereço do banco | 192.168.223.20 |
| Porta | 3306 |
| Nome do banco | zrlog |
| Usuário | zrlog |
| Senha | zrlog123456 |
Após preencher, clique em "Instalar" para acessar o painel administrativo do ZrLog.