{"id":243,"date":"2024-03-18T13:21:59","date_gmt":"2024-03-18T16:21:59","guid":{"rendered":"https:\/\/adrianosantostreina.com.br\/blog\/?p=243"},"modified":"2024-04-06T14:56:03","modified_gmt":"2024-04-06T17:56:03","slug":"implantando-api-horse-no-ec2-linux-como-servico","status":"publish","type":"post","link":"https:\/\/adrianosantostreina.com.br\/blog\/implantando-api-horse-no-ec2-linux-como-servico\/","title":{"rendered":"Implantando API Horse no EC2 Linux como Servi\u00e7o"},"content":{"rendered":"\n<p>A publica\u00e7\u00e3o de uma API Delphi constru\u00edda com Horse em um servidor Linux EC2 na Amazon utilizando o DAEMON como gerenciador de servi\u00e7os oferece uma solu\u00e7\u00e3o robusta e escal\u00e1vel para desenvolvedores que desejam fornecer servi\u00e7os de alta qualidade aos seus usu\u00e1rios. Neste guia passo a passo, vamos explorar cada etapa desse processo, desde a configura\u00e7\u00e3o do ambiente at\u00e9 o gerenciamento do servi\u00e7o implantado.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading has-black-color has-text-color has-link-color wp-elements-fb5a1d3d88fe0a43a1f62791bafbd689\" style=\"font-style:normal;font-weight:500\"><\/h2>\n\n\n\n<p class=\"has-large-font-size\"><strong>O que \u00e9 EC2?<\/strong><\/p>\n\n\n\n<p>Amazon Elastic Compute Cloud (EC2) \u00e9 um servi\u00e7o web que fornece capacidade computacional redimension\u00e1vel na nuvem. Ele facilita a execu\u00e7\u00e3o de servidores virtuais, conhecidos como inst\u00e2ncias, em uma variedade de sistemas operacionais, incluindo Linux. EC2 oferece escalabilidade sob demanda, permitindo que os usu\u00e1rios aumentem ou diminuam sua capacidade de computa\u00e7\u00e3o conforme necess\u00e1rio. Al\u00e9m disso o EC2 tem vantagem em rela\u00e7\u00e3o a simples contrata\u00e7\u00e3o de uma VPS (Virtual Private Server), pois com EC2 voc\u00ea usufrui de todos os servi\u00e7os de seguran\u00e7a e escalabilidade da Amazon. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p class=\"has-large-font-size\"><strong>O que \u00e9 DAEMON?<\/strong><\/p>\n\n\n\n<p>DAEMON \u00e9 um termo usado para descrever um processo em segundo plano que executa uma determinada fun\u00e7\u00e3o ou servi\u00e7o em um sistema operacional Unix-like, como Linux. No contexto deste guia, DAEMON refere-se ao gerenciador de servi\u00e7os do sistema, respons\u00e1vel por iniciar, parar e monitorar servi\u00e7os no Linux. Nesse, como dito, podemos colocar pra ser executando em segundo plano qualquer bin\u00e1rio, isso inclui API&#8217;s constru\u00eddas em Delphi com Horse, ou ainda DataSnap, DMVC, entre outros.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p class=\"has-large-font-size\"><strong>Compilando API Horse para Linux<\/strong><\/p>\n\n\n\n<p>Antes de implantar sua API Delphi, voc\u00ea precisa compilar o projeto para Linux. Felizmente, o Delphi \u00e9 capaz de compilar para Linux de forma muito simples. O \u00fanico contratempo \u00e9 que voc\u00ea precisa da vers\u00e3o Enterprise do Delphi, j\u00e1 que as vers\u00f5es menores Community Edition e Professional n\u00e3o possuem esse recurso.<\/p>\n\n\n\n<p>Uma vez criado o projeto console Horse, a compila\u00e7\u00e3o \u00e9 relativamente simples. Mas antes disso precisamos preparar o Delphi para possibilitar essa compila\u00e7\u00e3o.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Confir as vers\u00f5es do Delphi\/Linux compat\u00edveis antes de iniciar o processo de prepara\u00e7\u00e3o do ambiente e compila\u00e7\u00e3o. Esse <a href=\"https:\/\/docwiki.embarcadero.com\/PlatformStatus\/en\/Main_Page\">link<\/a> \u00e9 fundamental, tenha sempre a m\u00e3o.<\/p>\n<\/blockquote>\n\n\n\n<p>Assista nossa live sobre WSL, Linux e Horse<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe title=\"Introdu\u00e7\u00e3o ao WSL, Docker e Horse\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/Tm_YvIabbMc?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Preparar o ambiente Delphi para compila\u00e7\u00e3o para Linux \u00e9 um processo crucial para garantir uma transi\u00e7\u00e3o suave do desenvolvimento para essa plataforma. Aqui est\u00e1 um resumo dos passos envolvidos:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Instala\u00e7\u00e3o do PAServer no Linux<\/strong>:\n<ul class=\"wp-block-list\">\n<li>O PAServer \u00e9 um utilit\u00e1rio necess\u00e1rio para a compila\u00e7\u00e3o e depura\u00e7\u00e3o remota de aplicativos Delphi no Linux.<\/li>\n\n\n\n<li>Para instal\u00e1-lo, copie o arquivo do PAServer para o seu servidor Linux e descompacte-o. O PAServer encontra-se no diret\u00f3rio de mesmo nome na pasta de instala\u00e7\u00e3o Delphi referente a vers\u00e3o instalada no seu computador.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>A instala\u00e7\u00e3o se d\u00e1 compiando o arquivo LinuxPAServer<strong>22.0<\/strong>.tar.gz referente a vers\u00e3o do Delphi instalada. Nesse caso 22.0 refer-se ao Delphi 11.3. Encontre uma maneira de copiar esse arquivo para o seu equipamento Linux. <\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>O equipamento Linux n\u00e3o precisa ser f\u00edsico, bastando uma vers\u00e3o virtualizada com VirtualBox, VMWare ou Hyper-V. Tamb\u00e9m \u00e9 poss\u00edvel usar uma vers\u00e3o do Linux instalada no WSL no Windows 10 ou 11. <\/p>\n\n\n\n<p><a href=\"https:\/\/youtube.com\/live\/Tm_YvIabbMc\" target=\"_blank\" rel=\"noreferrer noopener\">Nese v\u00eddeo <\/a>mostro como voc\u00ea trabalhar com WSL no Windows 10 e 11. <\/p>\n<\/blockquote>\n\n\n\n<p>Uma vez copiado o arquivo para Linux, execute o comando a seguir para descompactar o arquivo tar.gz. Ser\u00e1 criado um diret\u00f3rio PAServer-22.0. <\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:yaml decode:true \" >tar \u2013xvf LinuxPAServer22.0.tar.gz<\/pre><\/div>\n\n\n\n<p>Para executar o PAServer basta chamar:<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:yaml decode:true \" >sudo .\/paserver<\/pre><\/div>\n\n\n\n<p>Antes de iniciar o PAServer \u00e9 importante tamb\u00e9m instalar os pacotes necess\u00e1rios para a compila\u00e7\u00e3o. <\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Instala\u00e7\u00e3o dos pacotes necess\u00e1rios para compila\u00e7\u00e3o no Linux<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Antes de compilar aplicativos Delphi para Linux, \u00e9 importante garantir que todas as depend\u00eancias necess\u00e1rias estejam instaladas.<\/li>\n\n\n\n<li>Use os comandos abaixo para instalar os pacotes essenciais no seu sistema Linux.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:yaml decode:true \" >sudo apt update\nsudo apt install build-essential\nsudo apt update\nsudo apt install zlib1g-dev\nsudo apt install gcc<\/pre><\/div>\n\n\n\n<p>Esses pacote s\u00e3o essenciais para compilar o projeto Horse no Linux.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Adicionando o servidor do PAServer no Delphi<\/strong>:\n<ul class=\"wp-block-list\">\n<li>No ambiente de desenvolvimento Delphi, \u00e9 necess\u00e1rio configurar o servidor do PAServer para se comunicar com o seu servidor Linux.<\/li>\n\n\n\n<li>Isso envolve adicionar o endere\u00e7o IP do seu servidor Linux e a porta do PAServer nas configura\u00e7\u00f5es do Delphi.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>Para isso, abra o Delphi e v\u00e1 em <em>Tools &gt; Options &gt; Deployment &gt; Connection Profile Manager<\/em>. Em seguida clique no bot\u00e3o <strong>Add<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"707\" src=\"https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/03\/image-2-1024x707.png\" alt=\"\" class=\"wp-image-245\" srcset=\"https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/03\/image-2-1024x707.png 1024w, https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/03\/image-2-300x207.png 300w, https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/03\/image-2-768x530.png 768w, https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/03\/image-2.png 1249w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>D\u00ea um nome a configura\u00e7\u00e3o e escolha Linux 64 no combox. Na tela seguinte digite o IP do Linux onde o PAServer est\u00e1 rodando. Caso n\u00e3o saiba o IP, v\u00e1 at\u00e9 o Linux no prompt do PAServer e digite &#8220;i&#8221; (sem \u00e1spas) e pressione enter. Segue um print de tela para entender melhor.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"747\" height=\"321\" src=\"https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/03\/image-3.png\" alt=\"\" class=\"wp-image-246\" srcset=\"https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/03\/image-3.png 747w, https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/03\/image-3-300x129.png 300w\" sizes=\"(max-width: 747px) 100vw, 747px\" \/><\/figure>\n\n\n\n<p>O PAserver exibir\u00e1 o IP onde ele est\u00e1 escutando. A porta \u00e9 sempre 64211. Entre com essas informa\u00e7\u00f5es no Delphi e siga em frente. Ap\u00f3s clicar em <strong>Finish<\/strong> sua configura\u00e7\u00e3o estar\u00e1 correta.<\/p>\n\n\n\n<p>Agora clique em SDK Manager e em seguida em Add. Escolha a plataforma Linux e preencha os demais detalhes conforme a tela.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"844\" height=\"781\" src=\"https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/03\/image-4.png\" alt=\"\" class=\"wp-image-247\" srcset=\"https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/03\/image-4.png 844w, https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/03\/image-4-300x278.png 300w, https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/03\/image-4-768x711.png 768w\" sizes=\"(max-width: 844px) 100vw, 844px\" \/><\/figure>\n\n\n\n<p>O Delphi ir\u00e1 baixar do Linux para seus diret\u00f3rios locais todo o SDK do Linux.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Instalando o SDK do Linux no Delphi<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Uma vez o SDK estando instalado, estamos prontos para compilar nosso projeto.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p class=\"has-large-font-size\"><strong>Compilando o Horse para Linux<\/strong><\/p>\n\n\n\n<p>Abra seu projeto Horse. Adicione a plataforma Linux clicando com o bot\u00e3o direito do sobre sobre <strong>Target Platforms<\/strong> no Project Manager e ent\u00e3o escolha Linux. Acesse Project &gt; Options &gt; Delphi Compiler e ent\u00e3o selecione o Linux64 no combobox Target. Em conditional defines, inclua a diretiva <strong>HORSE_DAEMON<\/strong>. Conforme print abaixo.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"905\" height=\"571\" src=\"https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/03\/image-1.png\" alt=\"\" class=\"wp-image-244\" srcset=\"https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/03\/image-1.png 905w, https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/03\/image-1-300x189.png 300w, https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/03\/image-1-768x485.png 768w\" sizes=\"(max-width: 905px) 100vw, 905px\" \/><\/figure>\n\n\n\n<p>Agora basta buildar sua aplica\u00e7\u00e3o. Ser\u00e1 gerado um arquivo sem extens\u00e3o com o mesmo nome do projeto.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p class=\"has-large-font-size\"><strong>Criando o arquivo de configura\u00e7\u00e3o<\/strong><\/p>\n\n\n\n<p>Para configurar o servi\u00e7o que executar\u00e1 sua API no Linux, voc\u00ea precisa criar um arquivo de configura\u00e7\u00e3o .service. Este arquivo informar\u00e1 ao <strong>DAEMON <\/strong>como iniciar e gerenciar sua aplica\u00e7\u00e3o. Aqui est\u00e1 um exemplo de como esse arquivo pode ser estruturado:<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:yaml decode:true \" >[Unit]\nDescription=MINHA API XPTO\nAfter=network.target\n[Service]\nType=simple\nRestart=always\nRestartSec=1\nStartLimitInterval=0\nExecStart=\/home\/ubuntu\/meu_binario\nWorkingDirectory=\/home\/ubuntu\/\nUser=root\n[Install]\nWantedBy=multi-user.target<\/pre><\/div>\n\n\n\n<p>Perceba que \u00e9 relativamente simples o arquivo. Em <strong>Description<\/strong> escrevemos uma descri\u00e7\u00e3o para o servi\u00e7o. Em <strong>ExecStart<\/strong> devemos indicar o caminho completo do bin\u00e1rio da api <strong>Horse<\/strong>. E \u00e9 s\u00f3. Recomendo fazer uma pesquisa para entender os demais par\u00e2metros ou consular um especialista em Linux caso seja necess\u00e1ria alguma configura\u00e7\u00e3o especial.<\/p>\n\n\n\n<p>Envie esse arquivo para o Linux juntamente do bin\u00e1rio da sua API. Recomendo dar um nome intuitivo para o arquivo .service, por exemplo: digamos que sua api se chame apierp, portanto crie o arquivo com <strong>apierp.service<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p class=\"has-large-font-size\"><strong>Logando-se no EC2<\/strong><\/p>\n\n\n\n<p>Para isso, dever\u00e1 se conectar com sua inst\u00e2ncia do EC2. Para se conectar ao seu servidor EC2, voc\u00ea pode usar o SSH (Secure Shell). O comando para se conectar ao seu EC2 seria algo assim:<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:yaml decode:true \" >ssh -i chave.pem usuario@endereco_do_ec2<\/pre><\/div>\n\n\n\n<p>Voc\u00ea com certeza criou uma chave com a extens\u00e3o .PEM quando criou sua m\u00e1quina EC2, por isso precisar\u00e1 dela para se conectar. Outro ponto importante, talvez precise liberar a porta 22 no Security Group na Amazon, para poder se conectar por ssh. N\u00e3o entraremos em detalhe sobre isos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p class=\"has-large-font-size\"><strong>Subindo o arquivo para o EC2 via terminal<\/strong><\/p>\n\n\n\n<p>Para transferir o arquivo de configura\u00e7\u00e3o .service para o servidor EC2 a partir de um terminal no Windows, voc\u00ea pode usar o SCP (Secure Copy Protocol). O comando para fazer isso seria semelhante ao seguinte:<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:yaml decode:true \" >scp -i chave.pem arquivo.service meu_binario usuario@endereco_do_ec2:\/caminho\/destino<\/pre><\/div>\n\n\n\n<p>Confira nossos treinamentos clicando no banner abaixo:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/adrianosantos.link\/treinamentos\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"150\" src=\"https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/02\/Banner-Hotmart-1.png\" alt=\"\" class=\"wp-image-222\" srcset=\"https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/02\/Banner-Hotmart-1.png 800w, https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/02\/Banner-Hotmart-1-300x56.png 300w, https:\/\/adrianosantostreina.com.br\/blog\/wp-content\/uploads\/2024\/02\/Banner-Hotmart-1-768x144.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/a><\/figure>\n\n\n\n<p>Substitua &#8220;arquivo.service&#8221; pelo caminho do seu arquivo de configura\u00e7\u00e3o .service, &#8220;chave.pem&#8221; pela chave de acesso, &#8220;usuario@endereco_do_ec2&#8221; pelo usu\u00e1rio e endere\u00e7o IP do seu servidor EC2, e &#8220;\/caminho\/destino&#8221; pelo local onde deseja colocar o arquivo no servidor.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p class=\"has-large-font-size\"><strong>Copiando o arquivo .service<\/strong><\/p>\n\n\n\n<p>Ap\u00f3s transferir o arquivo de configura\u00e7\u00e3o .service para o servidor EC2, mova-o para o diret\u00f3rio adequado no sistema. Normalmente, os arquivos .service s\u00e3o colocados na pasta &#8220;\/etc\/systemd\/system\/&#8221; no Linux.<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:yaml decode:true \" >sudo cp arquivo.service \/etc\/systemd\/system\/<\/pre><\/div>\n\n\n\n<p>O arquivo .service fica sempre no caminho <strong>\/etc\/systemd\/system<\/strong> para que o Linux o inicie sempre que a inst\u00e2ncia subir.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p class=\"has-large-font-size\"><strong>Iniciando, Parando e mostrando o status do servi\u00e7o<\/strong><\/p>\n\n\n\n<p>Depois de copiar o arquivo .service para o local apropriado, voc\u00ea pode iniciar, parar e verificar o status do servi\u00e7o usando os seguintes comandos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Para iniciar o servi\u00e7o:<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:yaml decode:true \" >sudo systemctl start nome_do_servi\u00e7o<\/pre><\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Para parar o servi\u00e7o:<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:yaml decode:true \" >sudo systemctl stop nome_do_servi\u00e7o<\/pre><\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Para reiniciar o servi\u00e7o:<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:yaml decode:true \" >sudo systemctl restart nome_do_servi\u00e7o<\/pre><\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Para verificar o status do servi\u00e7o:<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:yaml decode:true \" >sudo systemctl status nome_do_servi\u00e7o<\/pre><\/div>\n\n\n\n<p>Substitua &#8220;nome_do_servi\u00e7o&#8221; pelo nome do arquivo .service que voc\u00ea criou.<\/p>\n\n\n\n<p>Com esses passos, voc\u00ea conseguir\u00e1 publicar com sucesso sua API Delphi com Horse em um servidor Linux EC2 na Amazon, usando o DAEMON como gerenciador de servi\u00e7os. Este processo permite que voc\u00ea forne\u00e7a seus servi\u00e7os de forma escal\u00e1vel e confi\u00e1vel para seus usu\u00e1rios, aproveitando a infraestrutura robusta da AWS.<\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong>Conclus\u00e3o<\/strong><\/p>\n\n\n\n<p>Em conclus\u00e3o, preparar o ambiente Delphi para compila\u00e7\u00e3o e implanta\u00e7\u00e3o em plataformas Linux \u00e9 um processo essencial para os desenvolvedores que desejam expandir sua base de usu\u00e1rios e aproveitar os benef\u00edcios dessa plataforma robusta. Ao seguir os passos descritos neste guia, incluindo a instala\u00e7\u00e3o e configura\u00e7\u00e3o do PAServer no Linux, a instala\u00e7\u00e3o dos pacotes necess\u00e1rios para compila\u00e7\u00e3o, a adi\u00e7\u00e3o do servidor do PAServer no Delphi e a instala\u00e7\u00e3o do SDK do Linux, os desenvolvedores podem garantir uma transi\u00e7\u00e3o suave e eficiente para o desenvolvimento de aplicativos Delphi no ambiente Linux.<\/p>\n\n\n\n<p>Com a capacidade de compilar e implantar aplicativos Delphi no Linux, os desenvolvedores podem alcan\u00e7ar novos mercados, oferecer solu\u00e7\u00f5es multiplataforma e aproveitar as vantagens de desempenho e estabilidade oferecidas por essa plataforma. Al\u00e9m disso, a integra\u00e7\u00e3o cont\u00ednua entre o Delphi e o ambiente Linux permite que os desenvolvedores aproveitem ao m\u00e1ximo as ferramentas e recursos dispon\u00edveis, garantindo uma experi\u00eancia de desenvolvimento fluida e eficaz.<\/p>\n\n\n\n<p>Em \u00faltima an\u00e1lise, ao investir na prepara\u00e7\u00e3o adequada do ambiente Delphi para compila\u00e7\u00e3o no Linux, os desenvolvedores est\u00e3o posicionando suas aplica\u00e7\u00f5es para o sucesso em um mercado cada vez mais diversificado e exigente, enquanto ampliam as possibilidades de inova\u00e7\u00e3o e crescimento cont\u00ednuo.<\/p>\n\n\n\n<p>Comunidade no <a href=\"https:\/\/t.me\/AdrianoSantosCommunity\">Telegram<\/a><\/p>\n\n\n\n<p>\ud83d\ude80Comente no campo abaixo \ud83d\udc47\ud83d\udc47\ud83d\udc47 o que achou e qual sua d\u00favida.<\/p>\n\n\n\n<p>Te vejo na pr\u00f3xima<\/p>\n\n\n\n<p>Te vejo na pr\u00f3xima<\/p>\n\n\n\n<p>Adriano Santos<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A publica\u00e7\u00e3o de uma API Delphi constru\u00edda com Horse em um servidor Linux EC2 na Amazon utilizando o DAEMON como gerenciador de servi\u00e7os oferece uma solu\u00e7\u00e3o robusta e escal\u00e1vel para desenvolvedores que desejam fornecer servi\u00e7os de alta qualidade aos seus usu\u00e1rios. Neste guia passo a passo, vamos explorar cada etapa desse processo, desde a configura\u00e7\u00e3o [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":266,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-243","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/posts\/243","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/comments?post=243"}],"version-history":[{"count":21,"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/posts\/243\/revisions"}],"predecessor-version":[{"id":475,"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/posts\/243\/revisions\/475"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/media\/266"}],"wp:attachment":[{"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/media?parent=243"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/categories?post=243"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/tags?post=243"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}