Ir para conteúdo
  • Cadastre-se

Posts Recomendados

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)
Link para o post
Compartilhar em outros sites
  • luanluciano93 mudou o título para Compilando e configurando servidor TFS 1.x no Ubuntu 22.04
  • 6 months later...
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

Link para o post
Compartilhar em outros sites
5 horas atrás, ricardo3 disse:

image.png.7b6d53cbe4fd447c38cfd19977173eb3.png

Aparentemente você não tem o arquivo key.pem
 

 

5 horas atrás, ricardo3 disse:

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.

As portas estão corretas? O ubuntu é versão 22.04?

Link para o post
Compartilhar em outros sites
19 horas atrás, luanluciano93 disse:

As portas estão corretas? O ubuntu é versão 22.04?

 

UBUNTU 22.04

image.png.6fcec7e98770334c55fea73d7908e7e2.png

 

Foi liberado as seguintes portas:

ufw allow 7171/tcp
ufw allow 7172/tcp
ufw allow 80/tcp
ufw allow 43/tcp
ufw allow 3306/tcp
ufw allow 8080/tcp
ufw allow 21/tcp
ufw allow 22/tcp

 

Consegui avançar alguns passos no RESTART mas agora esta me aparecendo outro problema.

image.png.237cdbdacbed112a618c834616d567f9.png

 

image.png.7fe3e9e70ab70c16a760ec17c72a8e0a.png


 

O site continua desativado, antes de eu colocar o Znotec aparecia o index.php que pediu para colocar.

 

Notei que na instalação da mariadb a versão veio diferente.

mariadb  Ver 15.1 Distrib 10.6.12-MariaDB

 

 

 

Editado por ricardo3 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

No lugar disso: 

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

Usa os comando separados:
 

sudo systemctl stop apport.service
sudo systemctl disable apport.service
Link para o post
Compartilhar em outros sites
  • 5 months later...
Em 11/03/2022 em 18:45, luanluciano93 disse:

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

 

 

 

 

 

Segui o passo todo mas na hora de compilar da erro em luascript.h já troquei a linha do erro para luajit se n me engano é assim q escreve e msm assim continua o erro

Link para o post
Compartilhar em outros sites
  • Moderador
Em 15/04/2024 em 13:31, zeusssssssssssssssss disse:

Segui o passo todo mas na hora de compilar da erro em luascript.h já troquei a linha do erro para luajit se n me engano é assim q escreve e msm assim continua o erro

troque para lua/luascript.h em todos os locais.

Participe da organização Open-Tibia.
Meus Perfils pessoais

Linkedin Rafhael Oliveira Tryber | XP Inc Github Rafhael Oliveira Tryber | XP Inc

Link para o post
Compartilhar em outros sites

Alguém sabe me dizer como resolvo isso ?

 

[91%] Building CXX object CMakeFiles/tfs.dir/src/tile.cpp.o [92%] Building CXX object CMakeFiles/tfs.dir/src/tools.cpp.o

 

[93%] Building CXX object CMakeFiles/tfs.dir/src/trashholder.cpp.o

 

[95%] Building CXX object CMakeFiles/tfs.dir/src/vocation.cpp.o [96%] Building CXX object CMakeFiles/tfs.dir/src/waitlist.cpp.o

 

[97%] Building CXX object CMakeFiles/tfs.dir/src/weapons.cpp.o

 

[98%] Building CXX object CMakeFiles/tfs.dir/src/wildcardtree.cpp.o

 

[100%] Linking CXX executable tfs

 

/usr/bin/ld: CMakeFiles/tfs.dir/src/connection.cpp.o: in function 'Connection::accept()': connection.cpp:(.text+0x9f0): undefined reference to 'Connection::read_timeout'

 

/usr/bin/ld: CMakeFiles/tfs.dir/src/connection.cpp.o: in function 'Connection::parseHeader(boost::system::error_code

 

st&)':

 

connection.cpp:(.text+0xfla): undefined reference to 'Connection::read_timeout'

 

/usr/bin/ld: CMakeFiles/tfs.dir/src/connection.cpp.o: in function 'Connection::parsePacket(boost::system::error_code c

 

st&)':

 

connection.cpp:(.text+0x158d): undefined reference to 'Connection::read_timeout'

 

/usr/bin/ld: CMakeFiles/tfs.dir/src/connection.cpp.o: in function 'Connection::internalSend(std::shared_ptr<Outputless

 

e> const&)': connection.cpp:(.text+0x19dd): undefined reference to ' Connection::write_timeout'

 

collect2: error: ld returned 1 exit status

 

make [2]: *** [CMakeFiles/tfs.dir/build.make : 1303: tfs] Error 1

 

make[1]: *** [CMakeFiles/Makefile2:160: CMakeFiles/tfs.dir/all] Error 2

 

make: *** [Makefile:84: all] Error 2

 

root@DESKTOP-CMJDOLM:/home/miguel/tentativa/build# |

 

2248

 

2

Link para o post
Compartilhar em outros sites
  • 3 weeks later...

primeiro gostaria de agradecer e elogiar pelo otimo tutorial!

 

não tenho muito conhecimento na area mas estou usando uma VM da hyper-v para compilar o tfs, seguindo seu passo a passo, após a instalação do nginx o winscp não conecta mais com a vm. sabe me dizer o que tenho feito errado?

 

 

 

obrigado ;)

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por 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" ... 

      Ele faz parte da 3º instalação da pilha LEMP no Ubuntu 22.04: o PHP.
       
      PASSO 1 - COMO INSTALAR O PHP
       
      Você já tem instalado o Nginx para exibir seu conteúdo web e o MySQL para armazenar e gerenciar seus dados. Agora, você pode instalar o PHP para processar os códigos e gerar conteúdo dinâmico para o servidor Web.

      - Enquanto o Apache incorpora o interpretador PHP em cada solicitação, o Nginx necessita de um programa externo para lidar com o processamento PHP e atuar como uma ponte entre o próprio interpretador PHP e o servidor web. Isso permite um desempenho global melhor na maioria dos sites baseados em PHP, mas exige configuração adicional. Será necessário instalar o php-fpm, que significa “Gerenciador de processos PHP fastCGI”, e dizer ao Nginx para enviar as solicitações PHP para esse software para processamento.

      - Adicionalmente, você precisará do php-mysql php-mysqlnd, um módulo PHP que permite ao PHP se comunicar com os bancos de dados baseados em MySQL. Os pacotes básicos do PHP serão instalados automaticamente como dependências.

      Para instalar os pacotes php-fpm e php-mysql, execute e depois aperte Y para aceitar a instalação:
      sudo apt install php-fpm php-mysqlnd Agora confira o status do PHP-FPM para ver se ele está corretamente ativo: 
      sudo systemctl status php8.1-fpm Deve aparecer algo assim:

       
      Como vocês podem ver em verde: active (running), ou seja, está ativo e funcionando.
       
      PASSO 2 - CONFIGURAÇÕES DO PHP JUNTO AO NGINX
       
      Crie duas pastas com os comandos: 
      sudo mkdir /home/otserv sudo mkdir /home/www A pasta criada "otserv" é onde iremos deixar os arquivos do servidor e a pasta "www" que irá conter os arquivos do site.
       
      Usando o WinSCP, vá até a pasta /etc/nginx/sites-available/ e substitua o conteúdo do arquivo default por esse: https://raw.githubusercontent.com/luanluciano93/ESTUDOS/master/infraestrutura/default_nginx
       
      Quando estiver pronto, recarregue o nginx para aplicar as alterações:
      sudo systemctl reload nginx Agora, com o WinSCP vá até /home/www/ e crie um arquivo com o nome index.php e coloque isso dentro: <?php phpinfo(); ?>
       
      Após feito isso, entre com seu IP ou DOMÍNIO pelo navegador, e deverá aparecer as informações do PHP.

       
      PASSO 3 - CONFIGURAÇÕES DO PHP
       
      Com o WinScp, vá até o arquivo /etc/php/8.1/fpm/php.ini e altere: 
      ignore_repeated_errors = Off Para: 
      ignore_repeated_errors = On Altere: 
      ;date.timezone = Para: 
      date.timezone = America/Sao_Paulo Altere: 
      post_max_size = 8M Para: 
      post_max_size = 64M Altere: 
      upload_max_filesize = 2M Para: 
      upload_max_filesize = 64M  
      Após feito as alterações use o comando para dar reload no php-fpm: 
      sudo systemctl reload php8.1-fpm  
      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://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-ubuntu-20-04-pt
      - https://conectandonet.com.br/blog/como-instalar-a-pilha-lemp-no-ubuntu-20-04-server-desktop/
       
       
       
       
    • Por marcoshps11
      Neste tutorial, irei ensinar configurar o Docker no windows e rodar seu otserver
       
       
      - Diferença entre Docker x Máquina virtual:
        Docker e Máquinas Virtuais (VMs) ambas são fundamentais usadas para isolar recursos em um sistema de computação, mas funcionam de maneiras muito diferentes.
       
        VMs são ambientes de computação completos, incluindo um sistema operacional (SO) completo, que simulam o hardware de um computador físico. Isso significa que cada VM é um sistema autônomo e independente.   Já o Docker, usa a tecnologia de contêineres. Os contêineres compartilham o mesmo sistema operacional do host, mas mantêm seu próprio espaço de processo, arquivos e rede. Isso significa que eles são muito mais leves do que as VMs, pois não precisam de um SO completo, e podem ser iniciados e parados muito mais rapidamente.
      - Vantagens em utilizar o Docker
       O Docker oferece várias vantagens significativas:
      Eficiência de recursos: Como os contêineres Docker compartilham o SO do host, eles são mais leves e usam menos recursos do que as VMs. Portabilidade: O Docker permite que você "construa uma vez, execute em qualquer lugar". Uma vez criado um contêiner Docker, ele pode ser executado em qualquer sistema que suporte o Docker, independentemente das configurações subjacentes. Isolamento: Cada contêiner Docker é isolado do resto do sistema, o que ajuda a evitar conflitos entre diferentes aplicações e versões de software. Integração e entrega contínua: O Docker se integra bem com ferramentas de CI/CD (Integração Contínua / Entrega Contínua), permitindo a automatização de testes e implantação de aplicações. Escalabilidade e Orquestração: O Docker facilita a escalabilidade de aplicações, permitindo que múltiplos contêineres sejam implantados facilmente. Além disso, com ferramentas como Docker Swarm e Kubernetes, a orquestração de contêineres se torna eficiente e gerenciável  
       
      Colocando a mão na massa
       
      Este tutorial será dividido nas seguintes etapas:
      Preparação do Windows Instalando o Docker Instalando imagens mariadb e phpmyadmin Realizando a build da imagem TFS  
      1º PASSO:  Preparando o Windows com o subsistema Linux.
       
      AVISO: Essa Etapa será necessária somente caso ainda não possua o subsistema Linux ativado em seu windows
       
      Os comandos a seguir, serão todos utilizando o POWERSHELL do windows, na barra de pesquisa digite POWERSHELL e execute como administrador.
       

       
      Com o POWERSHELL aberto, execute os seguintes comandos:
       
      Habilitando subsistema Linux:
        dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart  
       
      Habilitando recurso de máquina virtual: dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart  
      Baixe e instale Kernel do Linux:  
      https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
       
      Após essa etapa, será necessário reiniciar o computador para atualização, após reiniciar, abra novamente o PowerShell
       
      Definindo o WSL 2 como padrão: wsl --set-default-version 2  
       
      Após esses passos, basta entrar na Microsoft Store e instalar o sistema Ubuntu:


       
      Após a instalação, abra o Ubuntu, como será a primeira vez, irá solicitar para que digite um nome de usuário e uma senha.

       
       
       
      Etapa 1 concluída.
       
      Fonte: https://learn.microsoft.com/pt-br/windows/wsl/install-manual
       
      2º PASSO:  Instalando Docker.
       
      este é um passo simples, apenas entre no site oficial do Docker, baixe e instale o Docker Desktop

      https://www.docker.com/
       

       
       
      Etapa 2 concluída.
       
       
      3º PASSO:  Instalando imagens MariaDB e phpMyAdmin
       
       Assim como no passo 1, execute novamente o PowerShell como administrador e siga os seguintes passos:
       
      Primeiro vamos baixar as imagens necessárias, execute os seguintes comandos: docker pull mariadb  
      docker pull phpmyadmin/phpmyadmin  
       
      Agora iremos criar uma "Rede" para que o docker se comunique entre os containers que iremos utilizar. Execute o seguinte comando:  
      docker network create mynetwork  
        mynetwork é o nome que defini neste caso, você pode utilizar o nome que achar melhor, porém lembre-se desse nome que iremos utilizar nos próximos passos.
       
      Agora iremos iniciar essas imagens, utilizando os seguintes comandos:  
      docker run --name mariadb --network=mynetwork -e MYSQL_ROOT_PASSWORD=your_password -d mariadb  
      your_password = altere pela senha que deseja utilizar no mysql
      mynetwork = é o nome que criamos no passo anterior
       
      docker run --name myadmin --network=mynetwork --link mariadb:db -d -p 8080:80 phpmyadmin/phpmyadmin  
      Lembrando novamente, mynetwork é o nome criado anteriormente
       
      Após esses passos, será possível ver seu container rodando no Docker Desktop:

       
      Etapa 3 concluída.
       
      4º PASSO:  Gerando Imagem do TFS e configurações necessárias:

       
      Baixe a TFS, nesse exemplo será o repositório oficial https://github.com/otland/forgottenserver Extraia os arquivos após baixar com o container mariadb e phpmyadmin rodando, acesse http://localhost:8080/  com o login root, e a senha que criou no passo 3, crie uma nova base de dados e importe o arquivo schema.sql do servidor edite o arquivo config.lua.dist
       -- MySQL
      mysqlHost = "mariadb"
      mysqlUser = "root"
      mysqlPass = "SUA SENHA CRIADO NO PASSO 3"
      mysqlDatabase = "NOME DA DATABASE"
      mysqlPort = 3306
      mysqlSock = ""

      mariadb é o nome do container que estamos rodando o mysql  
       
      ** Caso queira utilizar todo potencial do seu computador na hora de buildar a TFS, no arquivo Dockerfile, edite a linha 18:
      RUN cmake --preset default && cmake --build --config RelWithDebInfo --preset default para
       
      RUN cmake --preset default && cmake --build --config RelWithDebInfo --preset default -- -j 16  
      onde 16 é o numero de processadores lógicos que deseja ser utilizados, não é necessário utilizar 100% porém quanto mais melhor, porém caso utilize mais do que está disponível poderá travar,  então utilize a quantidade mostrada pra menos.
      no gerenciador de tarefas aba desempenho, é possível visualizar a quantidade de núcleos e processadores lógicos do seu CPU


       
      Após isso, entre no Power Shell e execute o comando:  
      docker build -t server .  
       onde "server" é o nome da imagem que será gerada
       
      Após isso, é só iniciar o servidor com o seguinte comando  
      docker run --name server --network=mynetwork -p 7171:7171 -p 7172:7172 -d server  
      lembrando que mynetwork é o nome que geramos no passo 3, e o ultimo parametro é nome da imagem que geramos anteriormente.
       
      Você poderá ver seu sevidor ronando no Docker Desktop:
       

       
      caso queira parar algum servidor ou iniciar novamente, é só clicar no botão de ação:
       

       
      Caso precise fazer alguma alteração no server, basta utilizar os comandos de build e run citados anteriormente.
       
       
       
       
      Lembrando que isso é um tutorial básico para rodar o servidor na máquina local, qualquer dúvida ou sugestão, deixe comentário.
       
    • Por Underewar
      Ataques DoS (Denial of Service) e DDoS (Distributed DoS)
      De acordo com a definição do CERT (Computer Emergency Response Team), os ataques DoS (Denial of Service), também denominados Ataques de Negação de Serviços, consistem em tentativas de impedir usuários legítimos de utilizarem um determinado serviço de um computador.
      Para isso, são usadas técnicas que podem: sobrecarregar uma rede a tal ponto em que os verdadeiros usuários dela não consigam usá-la; derrubar uma conexão entre dois ou mais computadores; fazer tantas requisições a um site até que este não consiga mais ser acessado; negar acesso a um sistema ou a determinados usuários.
       
      Os ataques do tipo DoS mais comuns podem ser feitos devido a algumas características do protocolo TCP/IP (Transmission Control Protocol / Internet Protocol), sendo possível ocorrer em qualquer computador que o utilize. Uma das formas de ataque mais conhecidas é a SYN Flooding, onde um computador tenta estabelecer uma conexão com um servidor através de um sinal do TCP conhecido por SYN (Synchronize). Se o servidor atender o pedido de conexão, enviará ao computador solicitante um sinal chamado ACK (Acknowledgement). O problema é que em ataques desse tipo, o servidor não consegue responder a todas as solicitações e então passa a recusar novos pedidos.
      Outra forma de ataque comum é o UPD Packet Storm, onde um computador faz solicitações constantes para que uma máquina remota envie pacotes de respostas ao solicitante. A máquina fica tão sobrecarregada que não consegue executar suas funções.
       
      Ataques DDoS
      O DDoS, sigla para Distributed Denial of Service, é um ataque DoS ampliado, ou seja, que utiliza até milhares de computadores para atacar uma determinada máquina. Esse é um dos tipos mais eficazes de ataques e já prejudicou sites conhecidos, tais como os da CNN, Amazon, Yahoo, Microsoft e eBay.
      Para que os ataques do tipo DDoS sejam bem-sucedidos, é necessário que se tenha um número grande de computadores para fazerem parte do ataque. Uma das melhores formas encontradas para se ter tantas máquinas, foi inserir programas de ataque DDoS em vírus ou em softwares maliciosos.
      Em um primeiro momento, os hackers que criavam ataques DDoS tentavam "escravizar" computadores que agiam como servidores na internet. Com o aumento na velocidade de acesso à internet, passou-se a existir interesse nos computadores dos usuários comuns com acesso banda larga, já que estes representam um número muito grande de máquinas na internet.
      Para atingir a massa, isto é, a enorme quantidade de computadores conectados à internet, vírus foram e são criados com a intenção de disseminar pequenos programas para ataques DoS. Assim, quando um vírus com tal poder contamina um computador, este fica disponível para fazer parte de um ataque DoS e o usuário dificilmente fica sabendo que sua máquina está sendo utilizado para tais fins. Como a quantidade de computadores que participam do ataque é grande, é praticamente impossível saber exatamente qual é a máquina principal do ataque.
       
      Quando o computador de um internauta comum é infectado com um vírus com funções para ataques DoS, este computador passa a ser chamado de zumbi. Após a contaminação, os zumbis entram em contato com máquinas chamadas de mestres, que por sua vez recebem orientações (quando, em qual site/computador, tipo de ataque, entre outros) de um computador chamado atacante. Após receberem as ordens, os computadores mestres as repassam aos computadores zumbis, que efetivamente executam o ataque. Um computador mestre pode ter sob sua responsabilidade até milhares de computadores. Repare que nestes casos, as tarefas de ataque DoS são distribuídas a um "exército" de máquinas escravizadas. Daí é que surgiu o nome Distributed Denial of Service.
      Impedindo e detectando ataques DoS
      Apesar de não existir nenhum meio que consiga impedir totalmente um ataque DoS, é possível detectar a presença de ataques ou de computadores (zumbis) de uma rede que estão participando de um DDoS. Para isso, basta observar se está havendo mais tráfego do que o normal (principalmente em casos de sites, seja ele um menos conhecido, como o InfoWester, seja ele um muito utilizado, como o Google), se há pacotes TCP e UDP que não fazem parte da rede ou se há pacotes com tamanho acima do normal. Outra dica importante é utilizar softwares de IDS (Intrusion Detection System - Sistema de Identificação de Intrusos).
       
      Para prevenção, uma das melhores armas é verificar as atualizações de segurança dos sistemas operacionais e softwares utilizados pelos computadores. Muitos vírus aproveitam de vulnerabilidades para efetuar contaminações. Também é importante filtrar certos tipos de pacotes na rede e desativar serviços que não são usados.
       
      Fonte: http://www.infoweste...m/col091004.php
      Primeiramente use um servidor LINUX
      Dicas para se dificultar a ação de Ddos
      A equipe de segurança da LinuxSvr.Net tem algumas dicas aos clientes sel-managed.
      Utilize o Módulo Dos_Evasive (Apache)
      É importante saber que bloquear um ataque Ddos usando software é possível em apenas 20% dos casos, e que é necessário perícia e conhecimento técnico avançado para isso.
      Para saber mais:
       
      Atualizado 2023.
      Utilize o Módulo Dos_Evasive (Apache)
    • Por luanluciano93
      Esse tutorial será composto por vários passo-a-passo (tópicos) de como montar toda a infraestrutura para deixar um servidor TFS 1.x online no Linux Ubuntu 22.04.
       
      INICIANDO A MÁQUINA LINUX
       
      É importante que toda vez que você entrar em sua máquina UBUNTU você atualize os pacotes já instalados para as versões mais recentes com o comando: 
      sudo apt update E depois procure por novos pacotes de atualização para a versão do UBUNTU instalado. (em alguns casos irá perguntar se você realmente deseja instalar determinado pacote, digite Y (yes - sim) e depois ENTER.
      sudo apt upgrade
      PILHA LEMP
      - Inicialmente você deve entender que as versões mais atuais do TFS suportam apenas o MySQL como armazenamento de banco de dados e não usam mais "account manager" no jogo para criação de contas, portanto você deverá ter um site para isto.
      - Para usar um site você deverá instalar o pacote de pilha conhecido como LEMP, que basicamente é um grupo de programas com a abreviação de LINUX - ENGINE X (nginx) - MySQL ou MariaDB (no caso usaremos a MariaDB) - PHP.
      - Para quem é mais leigo, é interessante saber que o Nginx é um servidor web (irá mostrar as páginas web), o MariaDB é programa de armazenamento e gerenciamento de dados do banco de dados e o PHP serve para processar código e gerar conteúdo dinâmico para o servidor Web.

      1 - TUTORIAL DE COMO INSTALAR O NGINX NO UBUNTU 22.04
      2 - TUTORIAL DE COMO INSTALAR O MARIADB NO UBUNTU 22.04
      3 - TUTORIAL DE COMO INSTALAR O PHP NO UBUNTU 22.04
       
      PHPMYADMIN
      - Apesar de já termos instalado o programa MariaDB que armazena e gerencia os dados de seu projeto, sabemos que não é muito fácil manipular os dados apenas por comandos no prompt (ainda mais por leigos) .. diante disso, iremos usar o PHPMYADMIN, que através de um interface web, realiza as ações no banco de dados de forma fácil e prática ...

      - TUTORIAL DE COMO INSTALAR O PHPMYADMIN NO UBUNTU 22.04 
       
      AJUSTANDO O TIMEZONE
       
      - Muitas máquina vem com o horário diferente do horário de sua região, para ver a hora da máquina basta usar o comando: 
      date  
      Se estiver diferente, você poderá usar o seguinte comando: 
      sudo timedatectl set-timezone America/Sao_Paulo Com o comando acima, você estará mudando a timezone para "America/Sao_Paulo", ou seja, ficará com o horário local do estado de São Paulo.
       
      Caso queira encontrar outra timezone, digite: 
      timedatectl list-timezones Para sair da lista use CTRL+C.
       
      Aposta feita a alteração, é necessário reiniciar a máquina: 
      sudo shutdown -r now E depois testar novamente.
       
      COMPILAR E CONFIGURAR TFS

      - TUTORIAL DE COMO COMPILAR E CONFIGURAR O TFS NO UBUNTU 22.04
       
      INSTALAR E CONFIGURAR SITE
      Existem, hoje em dia, várias opções de sites para otservs, e com o tempo quero fazer um tutorial para cada um ...

      - TUTORIAL DE COMO INSTALAR E CONFIGURAR O ZNOTE ACC NO UBUNTU 22.04
       
      Esse tópico estará em constante atualização .. e cada mudança irei informar nos comentários. Bom uso!
    • Por 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" ... 
       
      Ele tem o objetivo de ensinar como tornar o seu website mais seguro obtendo um certificado SSL gratuito, habilitando HTTPS criptografados em servidores web. Você usará o Certbot para obter um certificado SSL gratuito para o Nginx no Ubuntu 22.04 e configurar seu certificado para ser renovado automaticamente.
       
      PASSO 1 - INSTALANDO O CERTBOT:
       
      Vamos usar o Let’s Encrypt para obter um certificado SSL, portanto vamos instalar o software Certbot e seu plug-in do Nginx para realizar essa tarefa. Use o comando a seguir no terminal linux:
      sudo apt install certbot python3-certbot-nginx  
      PASSO 2 - CONFIGURANDO O NGINX:
       
      O Certbot pode configurar automaticamente o SSL para o Nginx, porem ele precisa encontrar o bloco de server correto na sua configuração. Ele faz isso procurando uma diretiva server_name que corresponda ao domínio para o qual você está solicitando um certificado. Se você está começando com uma nova instalação do Nginx, você pode atualizar o arquivo de configuração padrão. Abra-o com o seu editor de texto favorito em /etc/nginx/sites-available/default e encontre a linha server_name existente e substitua o sublinhado _ pelo seu nome de domínio, como no exemplo: "server_name exemplo.com", você pode também colocar mais de um domínio ou subdomínios: "server_name exemplo.com www.exemplo.com". Salve o arquivo e saia do seu editor.

      Recarregue o Nginx para carregar a nova configuração usando o comando a seguir no terminal linux:
      sudo systemctl reload nginx O Certbot agora consegue encontrar o bloco de server correto e atualizá-lo automaticamente.

      PASSO 3 - OBTENÇÃO DE UM CERTIFICADO SSL:
       
      ATENÇÃO: Antes de começar esse passo, você precisa apontar o DNS do domínio/subdomínio para o IP da máquina onde está ocorrendo a instalação do certificado.

      O Certbot fornece uma variedade de maneiras de obter certificados SSL, através de vários plug-ins. O plug-in Nginx irá cuidar de reconfigurar o Nginx e recarregar a configuração sempre que necessário. Use o comando a seguir no terminal linux:
      sudo certbot --nginx -d exemplo.com Onde está exemplo no comando acima mude para o seu domínio.
       
      Se quiser pode adicionar mais domínios e/ou subdomínios:
      sudo certbot --nginx -d exemplo.com -d www.exemplo.com Se esta for sua primeira vez executando o Certbot , você será solicitado a digitar um endereço de e-mail e concordar com os termos de serviço. 

      Depois disso, o Certbot se comunicará com o servidor Let's Encrypt e executará um desafio para verificar se você controla o domínio para o qual está solicitando um certificado. Se isso for bem-sucedido, o Certbot perguntará como você gostaria de definir suas configurações de HTTPS. 

      Saída Por favor, escolha se deseja ou não redirecionar o tráfego HTTP para HTTPS, removendo o acesso HTTP. -------------------------------------------------- ----------------------------- 1: Nenhum redirecionamento - Não faça mais alterações na configuração do servidor da web. 2: Redirecionar - Redirecionar todas as solicitações para o acesso HTTPS seguro. Escolha isto para novos sites ou se tiver certeza de que seu site funciona em HTTPS. Você pode desfazer isso mudar editando a configuração do seu servidor web. -------------------------------------------------- ----------------------------- Selecione o número apropriado [1-2] e depois [enter] (pressione 'c' para cancelar):  
      Selecione sua escolha e pressione ENTER . A configuração será atualizada e o Nginx será recarregado para pegar as novas configurações. O Certbot irá finalizar com uma mensagem informando que o processo foi bem sucedido e onde seus
      certificados estão armazenados:
       
      Saída ANOTAÇÕES IMPORTANTES: Parabéns! Seu certificado e cadeia foram salvos em /etc/letsencrypt/live/example.com/fullchain.pem. Seu certificado expiram em 2017-10-23. Para obter uma versão nova ou ajustada deste certificado no futuro, simplesmente execute certbot novamente com o opção "certonly". Renovar de forma não interativa * todos * os seus certificados, execute "certbot renew" - As credenciais da sua conta foram salvas no seu Certbot diretório de configuração em / etc / letsencrypt. Você deveria fazer um backup seguro desta pasta agora. Este diretório de configuração também contém certificados e chaves privadas obtidos pela Certbot assim fazer backups regulares desta pasta é ideal. - Se você gosta do Certbot, considere apoiar nosso trabalho: Doando para ISRG / Let's Encrypt: https://letsencrypt.org/donate Doando para a EFF: https://eff.org/donate-le  
      Seus certificados são baixados, instalados e carregados automaticamente. Tente recarregar seu site usando https:// e observe o indicador de segurança do seu navegador. Ele deve indicar que o site está protegido corretamente, geralmente com um ícone de cadeado verde. Vamos terminar testando o processo de renovação.
       
      PASSO 4 - RENOVAÇÃO AUTOMÁTICA DO CERTIFICADO SSL:
       
      Os certificados da Let’s Encrypt possuem validade de apenas 90 dias. Isso visa incentivar os usuários a automatizar o processo de renovação de certificados. O pacote Certbot que instalamos cuida disso, adicionando um temporizador systemd que será executado duas vezes por dia e renovará automaticamente qualquer certificado que esteja dentro de 30 dias da expiração.
       
      Você pode consultar o status do temporizador com o systemctl usando o seguinte comando no terminal linux:
      sudo systemctl status certbot.timer
      Ele deve retornar a mensagem: 
       
      Resultado: ● certbot.timer - execute o certbot duas vezes por dia Carregado: carregado (/lib/systemd/system/certbot.timer; ativado; predefinição de fornecedor: ativado) Ativo: ativo (em espera) desde Seg 2020-05-04 20:04:36 UTC; 2 semanas 1 dias atrás Disparador: Qui 2020-05-21 05:22:32 UTC; 9h restantes Gatilhos: ● certbot.service  
      Para testar o processo de renovação, você pode realizar uma simulação com o Certbot usando o seguinte comando no terminal linux: 
      sudo certbot renew --dry-run Se não aparecerem erros, tudo funcionou. Quando necessário, o Certbot renovará seus certificados e recarregará o Nginx para aplicar as alterações. Se o processo de renovação automatizada alguma vez falhar, a Let’s Encrypt enviará uma mensagem para o e-mail que você especificou, informando quando o certificado vai expirar.
       
      PASSO 5 - PERMITINDO O TRÁFEGO HTTPS PELO FIREWALL:
       
      Para permitir adicionalmente o tráfego HTTPS, podemos permitir o perfil Completo Nginx e, em seguida, excluir a tolerância do perfil HTTP Nginx redundante, use os seguintes comandos no terminal linux:
      sudo ufw allow 'Nginx Full' sudo ufw delete allow 'Nginx HTTP'  
      Para verificar as regras ativas no firewall UFW use o seguinte comando no terminal linux:
      sudo ufw status A mensagem de retorno deve ter algo parecido com isso:
      Output Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx Full ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx Full (v6) ALLOW Anywhere (v6)  
      Agora estamos prontos para executar o Certbot e buscar nossos certificados.
       
      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://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-20-04
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo