Ir para conteúdo

Featured Replies

Postado

Olá, esse tutorial é uma parte do tópico principal: "Tutorial completo de infraestrutura para montar um servidor TFS 1.x no Ubuntu 22.04" ... 
 

Aqui ensinaremos como compilar o código fonte do TFS na máquina LINUX e posterior configurar o servidor.

 

PASSO 1 - COMPILANDO TFS NO UBUNTU

 

Primeiramente, devemos instalar os softwares necessários. O comando a seguir instalará o CMake, um compilador e as bibliotecas usadas pelo TFS. Após usar o comando digite Y para aceitar a instalação.

sudo apt install cmake build-essential libluajit-5.1-dev libmysqlclient-dev libboost-system-dev libboost-iostreams-dev libboost-filesystem-dev libpugixml-dev libcrypto++-dev libfmt-dev libboost-date-time-dev

 

Caso ainda não tenha criado a pasta do servidor (como foi dito no tutorial de instalação do PHP), use o comando a seguir para criar a pasta:

sudo mkdir /home/otserv

 

E depois vá até a pasta usando o comando: 

cd /home/otserv

 

Agora, usando o WinSCP vá até a pasta /home/otserv/ e jogue a pasta de seu servidor ai dentro ... 

 

Antes deve estar assim: (se você seguiu o tutorial de instalação do PHP)

image.png.2ab825b1c0f0ce28aa7cccecfa77a86c.png   

 

Depois, os arquivos transferidos devem ser esses!

image.png.abd786d977048961201c895826ec1d3a.png

 

Caso você não tenha os arquivos necessários, use:

- TFS atual: https://github.com/otland/forgottenserver
- TFS Nekiro's 8.60 Downgrade: https://github.com/nekiro/TFS-1.5-Downgrades/tree/8.60

 

Após transferido os arquivos, use o comando abaixo para criar a pasta BUILD e entrar nela: 

mkdir build && cd build

E depois, use o comando do compilador: 

cmake ..

 

Agora use o comando para compilar o código fonte do TFS:

make

 

E pronto, o código fonte foi compilado e gerou um arquivo "tfs", agora use o comando a seguir para mover o TFS para a pasta do servidor e voltar para a pasta anterior.

mv tfs .. && cd ..

Ficando assim na pasta "otserv": 

image.png.49d1493af7283e395b7cf6ac63e48870.png

 

PASSO 2 - IMPORTANDO DATABASE E AJUSTANDO CONEXÃO PELO CONFIG.LUA

 

Entre em seu phpmyadmin pelo navegador (IP/phpmyadmin, ou o outro destino que você escolheu conforme o tópico de instalação do phpmyadmin) 
image.thumb.png.27a2653d123f8dc365415d04ad534d51.png

Depois clique em "novo" para criar um novo banco de dados:

 image.png.4f80404047fe977e69e2b9b6d9793b50.png

 

E depois de digitar o nome do novo banco de dados, clique em "criar": 

image.png.c88880e294ed989dec5b7c2f3a72c5c7.png

 

Agora clique em "IMPORTAR" e depois em "escolher arquivo":

image.png.81d1c4b063d62159873153060c3491fd.png

E então selecione o arquivo padrão de database. Se você não tiver um arquivo padrão, use a do TFS: https://raw.githubusercontent.com/otland/forgottenserver/master/schema.sql

 

E por fim, clique em EXECUTAR.

image.png.18193a99963c07c2cac6cf9e4cdbc221.png

 

 

No arquivo config.lua.dist você deve ajustar o dados para a conexão com o banco de dados: 

 

-- MySQL
mysqlHost = "127.0.0.1"
mysqlUser = "forgottenserver"
mysqlPass = ""
mysqlDatabase = "forgottenserver"
mysqlPort = 3306
mysqlSock = ""

 

(você pode incluir o caminho do mysqlSock para mysqlSock = "/var/run/mysqld/mysqld.sock"

 

PASSO 3 - LIGANDO SEU SERVIDOR TFS NO UBUNTU E CRIANDO ARQUIVO AUTO RESTART

 

Para prosseguirmos será necessária a instalação do SCREEN em sua máquina, veja o tutorial que explica o que ele é, para que server e ensina instala-lo: AQUI.

 

Após a instalação, vamos criar um SCREEN para rodar o servidor chamada TFS ... 

screen -S TFS

 

E após, usando o WinSCP, vá até a pasta do seu servidor em /home/otserv/ e crie um arquivo chamado "restart.sh" e coloque isso dentro dele:

#!/bin/bash

# to get 'ts' command: sudo apt install moreutils
# to get 'crc32' command: sudo apt install libarchive-zip-perl

BINARY_NAME=tfs
MYSQL_USER=xxxx
MYSQL_PASS=yyyy
MYSQL_DATABASE=zzzz

mkdir console
mkdir crashlog
mkdir mysql_backup

# Permitir despejos de nucleo
ulimit -c unlimited

# Laco principal
while true; do

    # Backup do banco de dados, e o melhor momento para fazer a copia do banco de dados, o OTS esta offline com certeza, entao nao pode haver nenhum clone de item.
    mysqldump -u $MYSQL_USER -p$MYSQL_PASS $MYSQL_DATABASE > mysql_backup/`date '+%Y-%m-%d_%H-%M'`.sql

    # Compactar em gzip com mais de 3 dias.
    find console/ -name "*.log" -mtime +3 -print -exec gzip -f {} \;
    find crashlog/ -name "*.bin" -mtime +3  -print -exec gzip -f {} \;
    find crashlog/ -name "*.core" -mtime +3  -print -exec gzip -f {} \;
    find mysql_backup/ -name "*.sql" -mtime +3  -print -exec gzip -f {} \;

    BINARY_WITH_HASH=`date '+%Y-%m-%d_%H-%M'`_`crc32 $BINARY_NAME`
    # copie o arquivo binário atual, você precisa do binário desde o momento da falha para executá-lo no gdb.
    cp $BINARY_NAME crashlog/$BINARY_WITH_HASH.bin

    # iniciar servidor
    # se o seu servidor já imprime a data com cada linha no console, você pode remover "| ts '%Y-%m-%d_%H-%M-%.S'"
    stdbuf -o 0 ./$BINARY_NAME 2>&1 | ts '%Y-%m-%d_%H-%M-%.S' | tee 'console.log'

    cat 'console.log' >> 'console/console_'`date '+%Y-%m-%d'`'.log';
    mv core crashlog/$BINARY_WITH_HASH.core

    echo INICIAR A ESPERA POR 3 SEGUNDOS, PRESSIONE CTRL+C PARA DESLIGAR O RESTARTER
    sleep 3
    echo FIM DA ESPERA

done

 

Em seguida, dar permissão ao arquivo "restart,sh" com o comando: 

sudo chmod 777 -R restart.sh

 

Logo, instale os programas necessários para o restart funcionar corretamente:

sudo apt install moreutils
sudo apt install libarchive-zip-perl

Posterior, configure o restart.sh com os dados corretos para a conexão SQL: troque onde esta xxxx, zzzz, yyyy


Para o restarter criar o arquivo core é necessário desativar o serviço apport no sistema com o comando:

sudo systemctl stop apport.service
sudo systemctl disable apport.service

Depois de desativar, use o comando a seguir para ver se está ativo o core, você terá que ter como resposta: core

cat /proc/sys/kernel/core_pattern

 

E por fim, iniciar o uso do arquivo "restart.sh" com o comando:

./restart.sh

 

A princípio é isso!

 

Siga as atualizações no tópico principal: "Tutorial completo de infraestrutura para montar um servidor TFS 1.x no Ubuntu 22.04" ... 

 

 

Fontes: 

https://github.com/otland/forgottenserver/wiki/Compiling-on-Ubuntu

 

 

 

 

 

Editado por luanluciano93 (veja o histórico de edições)

  • luanluciano93 mudou o título para Compilando e configurando servidor TFS 1.x no Ubuntu 22.04
  • Respostas 11
  • Visualizações 7.6k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • luanluciano93
    luanluciano93

    Olá, esse tutorial é uma parte do tópico principal: "Tutorial completo de infraestrutura para montar um servidor TFS 1.x no Ubuntu 22.04" ...    Aqui ensinaremos como compilar o código fonte do

Posted Images

  • 6 months later...
Postado
Em 27/08/2022 em 06:30, luanluciano93 disse:

Trocado o restart.sh para um mais complexo (faz o backup do banco de dados e salva os logs por data)

 

!!! Tutorial muito bom, mas estou com alguns problemas...

image.png.7b6d53cbe4fd447c38cfd19977173eb3.png

 

 

 o site não aparece nada. consigo acessar o ADMIN (db) mas não o site, e quando ativo o NGINX eu não consigo ter acesso ao WinSPC.

image.thumb.png.5a5e457f5fc1de64d84ecdb30fea4862.png

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo