Postado Março 11, 2022 3 anos 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) Depois, os arquivos transferidos devem ser esses! 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": 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) Depois clique em "novo" para criar um novo banco de dados: E depois de digitar o nome do novo banco de dados, clique em "criar": Agora clique em "IMPORTAR" e depois em "escolher arquivo": 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. 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 Outubro 19, 2023 1 ano por luanluciano93 (veja o histórico de edições)
Postado Agosto 27, 2022 2 anos Autor Trocado o restart.sh para um mais complexo (faz o backup do banco de dados e salva os logs por data)
Postado Abril 15, 2023 2 anos Autor Adicionado o comando para desativar o apport, para o restart gerar o arquivo core no caso de erros.
Postado Outubro 17, 2023 1 ano 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... 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.
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.