Servidor Web · 2 min read · Oct 19, 2025

Executando HTML::Mason Com nginx E FastCGI

Executando HTML::Mason Com nginx E FastCGI

Este artigo é um guia passo a passo para instalar o módulo HTML::Mason para usar com o servidor web ngingx e FastCGI. Foi testado no Debian (lenny), mas deve ser muito semelhante ao Ubuntu e outras distribuições baseadas em Debian.

Instalando um servidor mínimo em funcionamento

Primeiro de tudo, vamos instalar um servidor mínimo com nginx e FastCGI. Eu fiz scripts básicos para fazê-lo funcionar. Mais tarde, podemos personalizar esses scripts.

Instalar nginx

Agora vamos instalar o nginx e fazê-lo funcionar. Assume-se que não há outro servidor web ativo no host. Tudo será instalado por padrão.

apt-get install nginx

Vamos ver se funciona telnetando para a porta 80.

/etc/init.d/nginx start  
telnet locahost 80  
Escape character is '^]'  
GET /  
  
  
Bem-vindo ao ngingx!<title>  
...</code></pre></div><h4 class="text-lg font-bold py-2">Instalar FastCGI</h4><div class="code-ui group"><pre class=""><code class="">apt-get install libcgi-fast-perl libio-all-perl</code></pre></div><h4 class="text-lg font-bold py-2">Instalar HTML::Mason</h4><p class="">HTML::Mason supõe-se que precisa do apache2 para funcionar, então ele irá baixá-lo e instalá-lo. Vamos nos livrar dele mais tarde.</p><div class="code-ui group"><pre class=""><code class="">apt-get install libhtml-mason-perl  
apt-get --purge remove apache2-mpm-worker apache2-utils  
apt-get --purge autoremove</code></pre></div><p class="">Esperançosamente, agora temos o HTML::Mason instalado e sem vestígios do apache. Certifique-se de que o nginx ainda está funcionando verificando se ele ainda responde na porta 80.</p><h4 class="text-lg font-bold py-2">Configurar FastCGI</h4><p class="">Precisamos de um servidor FastCGI em funcionamento para que ele possa executar o código HTML::Mason. Este script irá baixar todas as configurações e arquivos init. Devemos executá-lo como root. Por favor, dê uma olhada nele antes de executá-lo. Ele baixa e copia alguns arquivos do github. Isso pode ser perigoso para o seu servidor.</p><div class="code-ui group"><pre class=""><code class="">wget http://github.com/frankiejol/mason-fcgi/raw/master/download.sh  
bash ./download.sh</code></pre></div><p class="">É muito importante alterar a opção server_name em /etc/nginx/sites-available/mason para o nome real do servidor. Localhost não funcionará. Em seguida, modifique a variável %SITES em /var/www/mason/mason_fcgi.pl.</p><h4 class="text-lg font-bold py-2">Executando código Mason</h4><p class="">Finalmente, vamos criar uma página Mason simples.</p><div class="code-ui group"><pre class=""><code class="">mkdir /var/www/site1  
echo '<% 2 + 2 %>' > /var/www/site1/index.html</code></pre></div><p class="">Então vamos iniciar o serviço. Um 4 deve aparecer se você conectou o site com seu navegador.</p><div class="code-ui group"><pre class=""><code class="">/etc/init.d/nginx restart  
/etc/init.d/fcgi start</code></pre></div><h3 class="text-xl font-bold py-2" id="h2-2">Personalizando o servidor</h3><p class="">Neste momento, temos um servidor Mason alimentado por nginx+FastCGI. Todos os arquivos de configuração e scripts podem ser encontrados no meu repositório do github.</p><h4 class="text-lg font-bold py-2">nginx</h4><p class="">A configuração do nginx está em /etc/nginx/sites-available/mason. A localização pode ser modificada para atender às suas necessidades. Observe que há duas linhas de reescrita porque o Mason não consegue lidar com diretórios adequadamente. Portanto, quando a solicitação parece um diretório, um postfix index.html é adicionado.</p><h4 class="text-lg font-bold py-2">FastCGI</h4><p class="">O script de inicialização do FastCGI é /var/www/mason/mason_fcgi.pl. Um monte de argumentos pode ser fornecido.</p><div class="code-ui group"><pre class=""><code class="">/var/www/mason/mason_fcgi.pl --help  
mason_fcgi.pl [--help] [--pid=/var/run/fcgi/fcgi.pid] [--log=/var/log/nginx/fcgi/fcgi.log] [--debug] [--socket=/var/run/fcgi/mason_fcgi.sock] [--basedir=/var/www] [--workspace=/var/www/mason/workspace] [--error-uri=/errors/503.html] [--listen-queue=100] [--default-host=debian.localdomain]</code></pre></div><p class="">Há uma seção para adicionar o carregamento de módulos Perl e variáveis globais. Este é o código padrão:</p><div class="code-ui group"><pre class=""><code class="">{
    package HTML::Mason::Commands;
    # use My::Own::Module;
    # use Data::Dumper;
    # qualquer coisa que você queira disponível para componentes                                
    use vars(qw($DBH %stash));
}</code></pre></div><h4 class="text-lg font-bold py-2">Executando múltiplos sites FastCGI</h4><p class="">O daemon FastCGI é executado a partir de /etc/init.d/fcgi. Este script carrega a configuração de /etc/default/fcgi. Se você precisar de mais servidores FastCGI para diferentes sites, basta copiar o script init para outro nome e chamar o arquivo de configuração da mesma forma. O script init irá carregar um arquivo em /etc/default com o mesmo nome base que ele mesmo.</p><h3 class="text-xl font-bold py-2" id="h2-3">Links</h3><ul class="my-6 list-disc space-y-2 pl-6 md:pl-8 [&_li]:marker:text-slate-400"><li class="">nginx</li><li class="">HTML::Mason</li><li class="">arquivos mason-fcgi</li></ul>
</div>
      </div>

      <div class="mt-10">
        <div class="flex flex-wrap items-center gap-3">
  <span class="text-sm text-slate-600 dark:text-slate-300">Share:</span>
  <a href="https://twitter.com/intent/tweet?text=Executando%20HTML::Mason%20Com%20nginx%20E%20FastCGI&url=https://techrealizes.com/pt/p/running-html-mason-with-nginx-and-fastcgi-93832990" target="_blank" rel="noopener" class="rounded-xl border border-slate-300 px-3 py-1.5 text-sm hover:bg-slate-50 dark:border-slate-700 dark:hover:bg-slate-800">
    X/Twitter
  </a>
  <a href="https://www.linkedin.com/sharing/share-offsite/?url=https://techrealizes.com/pt/p/running-html-mason-with-nginx-and-fastcgi-93832990" target="_blank" rel="noopener" class="rounded-xl border border-slate-300 px-3 py-1.5 text-sm hover:bg-slate-50 dark:border-slate-700 dark:hover:bg-slate-800">
    LinkedIn
  </a>
  <button type="button" onclick="navigator.clipboard.writeText('https://techrealizes.com/pt/p/running-html-mason-with-nginx-and-fastcgi-93832990')" class="rounded-xl border border-slate-300 px-3 py-1.5 text-sm hover:bg-slate-50 dark:border-slate-700 dark:hover:bg-slate-800">
Copy link
</button>
</div>
      </div>

      <div class="mt-6">
        <div class="flex flex-wrap gap-2">
          <a href="/pt/tag/servidor-web" class="rounded-full bg-slate-100 px-3 py-1 text-xs font-medium text-slate-700 ring-1 ring-inset ring-slate-200 dark:bg-slate-800 dark:text-slate-300 dark:ring-slate-700">
            #Servidor Web
          </a>
        </div>
      </div>

      <div class="mt-12">
        <section class="rounded-2xl border border-slate-200 bg-gradient-to-br from-slate-50 to-white p-6 dark:border-slate-800 dark:from-slate-900 dark:to-slate-950">
  <div class="flex flex-col items-start justify-between gap-4 sm:flex-row sm:items-center">
    <div>
      <h3 class="text-lg font-semibold">Receba novas postagens na sua caixa de entrada</h3>
      <p class="text-sm text-slate-600 dark:text-slate-300">
        Sem spam. Cancele a assinatura a qualquer momento.
      </p>
    </div>
    <form class="flex w-full max-w-md items-center gap-2">
      <input type="email" required placeholder="you@example.com" class="w-full flex-1 rounded-xl border border-slate-300 bg-white px-3 py-2 outline-none dark:border-slate-700 dark:bg-slate-900">
      <button class="rounded-xl bg-slate-900 px-4 py-2 text-sm font-medium text-white hover:bg-slate-800 dark:bg-white dark:text-slate-900">
        Assine
      </button>
    </form>
  </div>
</section>
      </div>
    </div>

    <aside class="lg:col-span-4">
      <div class="lg:sticky lg:top-20">
        <div class="mb-6 rounded-2xl border border-slate-200 bg-white p-4 dark:border-slate-800 dark:bg-slate-900">
          <div class="mb-2 text-sm font-semibold">Nesta página</div>
          <ul class="space-y-2 text-sm">

              <li>
                <a href="#h2-0" class="text-slate-600 hover:text-slate-900 dark:text-slate-300 dark:hover:text-white">
                   Executando HTML::Mason Com nginx E FastCGI
                </a>
              </li>

              <li>
                <a href="#h2-1" class="text-slate-600 hover:text-slate-900 dark:text-slate-300 dark:hover:text-white">
                   Instalando um servidor mínimo em funcionamento
                </a>
              </li>

              <li>
                <a href="#h2-2" class="text-slate-600 hover:text-slate-900 dark:text-slate-300 dark:hover:text-white">
                   Personalizando o servidor
                </a>
              </li>

              <li>
                <a href="#h2-3" class="text-slate-600 hover:text-slate-900 dark:text-slate-300 dark:hover:text-white">
                   Links
                </a>
              </li>

          </ul>
        </div>
        <div>
          <h3 class="mb-3 text-sm font-semibold">Relacionado</h3>
          <div class="grid grid-cols-1 gap-4">

              <a href="/pt/p/linux-c-programming-tutorial-part-7-arrays-94220576" class="group overflow-hidden rounded-2xl border border-slate-200 bg-white hover:bg-slate-50 dark:border-slate-800 dark:bg-slate-900 dark:hover:bg-slate-800/40">

                <img src="/files/8756669e-5f11-4dbd-9c13-47ec7432dae3.jpg" alt="" class="h-32 w-full object-cover" loading="lazy">
                <div class="p-3">
                  <div class="mb-1 text-xs text-slate-500">
                    Programação C · Feb 14, 2026
                  </div>
                  <div class="line-clamp-2 text-sm font-medium group-hover:underline">
                    Tutorial de Programação em C no Linux Parte 7: Arrays
                  </div>
                </div>
              </a>

              <a href="/pt/p/logitech-mx-mechanical-mini-review-the-type-for-writers-93237314" class="group overflow-hidden rounded-2xl border border-slate-200 bg-white hover:bg-slate-50 dark:border-slate-800 dark:bg-slate-900 dark:hover:bg-slate-800/40">

                <img src="/files/9ca1697f-cadf-4e4c-9cb7-c4e153445240.jpg" alt="logitech mx mechanical mini review" class="h-32 w-full object-cover" loading="lazy">
                <div class="p-3">
                  <div class="mb-1 text-xs text-slate-500">
                    Teclados Mecânicos · Feb 14, 2026
                  </div>
                  <div class="line-clamp-2 text-sm font-medium group-hover:underline">
                    Logitech MX Mechanical Mini Review: O tipo para escritores
                  </div>
                </div>
              </a>

              <a href="/pt/p/microsoft-security-essentials-gives-false-positives-that-bitcoin-blockchain-infected-by-stoned-virus-94222075" class="group overflow-hidden rounded-2xl border border-slate-200 bg-white hover:bg-slate-50 dark:border-slate-800 dark:bg-slate-900 dark:hover:bg-slate-800/40">

                <img src="/files/0bdcdeb0-9887-4110-af71-2d1e425c5d0a.jpg" alt="" class="h-32 w-full object-cover" loading="lazy">
                <div class="p-3">
                  <div class="mb-1 text-xs text-slate-500">
                    Segurança Bitcoin · Feb 14, 2026
                  </div>
                  <div class="line-clamp-2 text-sm font-medium group-hover:underline">
                    Microsoft Security Essentials dá falsos positivos que a blockchain do Bitcoin está infectada pelo vírus ‘Stoned’
                  </div>
                </div>
              </a>

              <a href="/pt/p/google-unveils-slurry-of-new-security-features-in-android-5-0-lollipop-94325355" class="group overflow-hidden rounded-2xl border border-slate-200 bg-white hover:bg-slate-50 dark:border-slate-800 dark:bg-slate-900 dark:hover:bg-slate-800/40">

                <img src="/files/ab534329-e080-4d33-ade7-8dd2490beefb.jpg" alt="" class="h-32 w-full object-cover" loading="lazy">
                <div class="p-3">
                  <div class="mb-1 text-xs text-slate-500">
                    Segurança Android · Feb 14, 2026
                  </div>
                  <div class="line-clamp-2 text-sm font-medium group-hover:underline">
                    Google revela uma série de novos recursos de segurança no Android 5.0 Lollipop
                  </div>
                </div>
              </a>

              <a href="/pt/p/setting-up-an-android-app-build-environment-with-eclipse-android-sdk-phonegap-debian-squeeze-94271797" class="group overflow-hidden rounded-2xl border border-slate-200 bg-white hover:bg-slate-50 dark:border-slate-800 dark:bg-slate-900 dark:hover:bg-slate-800/40">

                <img src="/files/ae3d5143-2876-4cc3-b5aa-19e15ea52407.jpg" alt="" class="h-32 w-full object-cover" loading="lazy">
                <div class="p-3">
                  <div class="mb-1 text-xs text-slate-500">
                    Desenvolvimento Android · Feb 14, 2026
                  </div>
                  <div class="line-clamp-2 text-sm font-medium group-hover:underline">
                    Configurando Um Ambiente de Construção de Aplicativos Android Com Eclipse, Android SDK, PhoneGap (Debian Squeeze)
                  </div>
                </div>
              </a>

              <a href="/pt/p/sony-announces-xperia-10-ii-xperia-l4-and-xperia-pro-smartphones-93418471" class="group overflow-hidden rounded-2xl border border-slate-200 bg-white hover:bg-slate-50 dark:border-slate-800 dark:bg-slate-900 dark:hover:bg-slate-800/40">

                <img src="/files/66b03667-d75e-441e-bce0-86b391409a27.jpg" alt="sony anuncia xperia 10 ii, xperia l4 e xperia pro smartphones - sony xperia pro" class="h-32 w-full object-cover" loading="lazy">
                <div class="p-3">
                  <div class="mb-1 text-xs text-slate-500">
                    Smartphones · Feb 14, 2026
                  </div>
                  <div class="line-clamp-2 text-sm font-medium group-hover:underline">
                    Sony anuncia smartphones Xperia 10 II, Xperia L4 e Xperia Pro
                  </div>
                </div>
              </a>

              <a href="/pt/p/face-off-nokia-7-plus-vs-xiaomi-redmi-note-5-pro-comeback-kid-meets-the-new-king-93328755" class="group overflow-hidden rounded-2xl border border-slate-200 bg-white hover:bg-slate-50 dark:border-slate-800 dark:bg-slate-900 dark:hover:bg-slate-800/40">

                <img class="h-32 w-full object-cover" loading="lazy">
                <div class="p-3">
                  <div class="mb-1 text-xs text-slate-500">
                    Comparação de Smartphones · Feb 14, 2026
                  </div>
                  <div class="line-clamp-2 text-sm font-medium group-hover:underline">
                    [Face Off] Nokia 7 Plus vs Xiaomi Redmi Note 5 Pro: O Retorno do Filho Pródigo Encontra o Novo Rei
                  </div>
                </div>
              </a>

              <a href="/pt/p/the-perfect-setup-debian-woody-3-0-94643535" class="group overflow-hidden rounded-2xl border border-slate-200 bg-white hover:bg-slate-50 dark:border-slate-800 dark:bg-slate-900 dark:hover:bg-slate-800/40">

                <img src="/files/8a3fe69a-7ca2-4536-a19c-7bb5df2a4246.jpg" alt="" class="h-32 w-full object-cover" loading="lazy">
                <div class="p-3">
                  <div class="mb-1 text-xs text-slate-500">
                    Configuração Debian · Feb 14, 2026
                  </div>
                  <div class="line-clamp-2 text-sm font-medium group-hover:underline">
                    A Configuração Perfeita - Debian Woody (3.0)
                  </div>
                </div>
              </a>

              <a href="/pt/p/phoenix-browser-for-pc-download-windows-11-10-7-94170189" class="group overflow-hidden rounded-2xl border border-slate-200 bg-white hover:bg-slate-50 dark:border-slate-800 dark:bg-slate-900 dark:hover:bg-slate-800/40">

                <img src="/files/5d2162fe-a352-4ec0-a017-2ef3c3ff0aed.jpg" alt="" class="h-32 w-full object-cover" loading="lazy">
                <div class="p-3">
                  <div class="mb-1 text-xs text-slate-500">
                    Navegador · Feb 14, 2026
                  </div>
                  <div class="line-clamp-2 text-sm font-medium group-hover:underline">
                    Download do Navegador Phoenix Para PC (Windows 11/10/7)
                  </div>
                </div>
              </a>

              <a href="/pt/p/the-perfect-setup-ubuntu-feisty-fawn-ubuntu-7-04-page-4-94643734" class="group overflow-hidden rounded-2xl border border-slate-200 bg-white hover:bg-slate-50 dark:border-slate-800 dark:bg-slate-900 dark:hover:bg-slate-800/40">

                <img class="h-32 w-full object-cover" loading="lazy">
                <div class="p-3">
                  <div class="mb-1 text-xs text-slate-500">
                    Configuração · Feb 14, 2026
                  </div>
                  <div class="line-clamp-2 text-sm font-medium group-hover:underline">
                    A Configuração Perfeita - Ubuntu Feisty Fawn (Ubuntu 7.04) - Página 4
                  </div>
                </div>
              </a>

              <a href="/pt/p/asus-marshmallow-keyboard-kw100-and-mouse-md100-review-great-tab-pals-to-point-click-and-type-93237311" class="group overflow-hidden rounded-2xl border border-slate-200 bg-white hover:bg-slate-50 dark:border-slate-800 dark:bg-slate-900 dark:hover:bg-slate-800/40">

                <img src="/files/932e911a-8d8d-4ca0-8b5d-1821d416313e.jpg" alt="revisão do teclado e mouse asus marshmallow" class="h-32 w-full object-cover" loading="lazy">
                <div class="p-3">
                  <div class="mb-1 text-xs text-slate-500">
                    Revisão de produtos · Feb 14, 2026
                  </div>
                  <div class="line-clamp-2 text-sm font-medium group-hover:underline">
                    Revisão do Teclado Asus Marshmallow KW100 e Mouse MD100: Grandes companheiros para apontar, clicar e digitar
                  </div>
                </div>
              </a>

              <a href="/pt/p/switch-emulator-skyline-shuts-down-over-nintendos-latest-dmca-order-94427592" class="group overflow-hidden rounded-2xl border border-slate-200 bg-white hover:bg-slate-50 dark:border-slate-800 dark:bg-slate-900 dark:hover:bg-slate-800/40">

                <img src="/files/50e5eaa3-f5d2-40b6-98b8-e30b3d560df2.jpeg" alt="" class="h-32 w-full object-cover" loading="lazy">
                <div class="p-3">
                  <div class="mb-1 text-xs text-slate-500">
                    Emuladores · Feb 14, 2026
                  </div>
                  <div class="line-clamp-2 text-sm font-medium group-hover:underline">
                    Emulador Skyline do Switch é encerrado devido à última ordem DMCA da Nintendo
                  </div>
                </div>
              </a>

              <a href="/pt/p/assp-with-embedded-clamav-integrated-into-postfix-with-virtual-users-and-domains-94168386" class="group overflow-hidden rounded-2xl border border-slate-200 bg-white hover:bg-slate-50 dark:border-slate-800 dark:bg-slate-900 dark:hover:bg-slate-800/40">

                <img class="h-32 w-full object-cover" loading="lazy">
                <div class="p-3">
                  <div class="mb-1 text-xs text-slate-500">
                    Servidor de E-mail · Feb 14, 2026
                  </div>
                  <div class="line-clamp-2 text-sm font-medium group-hover:underline">
                    ASSP Com ClamAV Embutido Integrado Ao Postfix Com Usuários E Domínios Virtuais
                  </div>
                </div>
              </a>

              <a href="/pt/p/hits-and-misses-at-mwc-2017-what-rocked-what-sank-93327858" class="group overflow-hidden rounded-2xl border border-slate-200 bg-white hover:bg-slate-50 dark:border-slate-800 dark:bg-slate-900 dark:hover:bg-slate-800/40">

                <img src="/files/878d8198-363c-4daf-a9f8-f2403469dd25.jpg" alt="acertos e erros no mwc 2017: o que arrasou, o que afundou! - mwc barcelona" class="h-32 w-full object-cover" loading="lazy">
                <div class="p-3">
                  <div class="mb-1 text-xs text-slate-500">
                    Tecnologia · Feb 14, 2026
                  </div>
                  <div class="line-clamp-2 text-sm font-medium group-hover:underline">
                    Acertos e Erros no MWC 2017: O Que Arrasou, O Que Afundou!
                  </div>
                </div>
              </a>

              <a href="/pt/p/virtualization-with-xenserver-5-5-0-94323139" class="group overflow-hidden rounded-2xl border border-slate-200 bg-white hover:bg-slate-50 dark:border-slate-800 dark:bg-slate-900 dark:hover:bg-slate-800/40">

                <img src="/files/81326419-3e3c-46e7-8904-666592b05bdd.png" alt="" class="h-32 w-full object-cover" loading="lazy">
                <div class="p-3">
                  <div class="mb-1 text-xs text-slate-500">
                    Virtualização · Feb 14, 2026
                  </div>
                  <div class="line-clamp-2 text-sm font-medium group-hover:underline">
                    Virtualização Com XenServer 5.5.0
                  </div>
                </div>
              </a>

              <a href="/pt/p/russian-hackers-are-trying-to-steal-covid-19-vaccine-research-us-uk-canada-officials-94020201" class="group overflow-hidden rounded-2xl border border-slate-200 bg-white hover:bg-slate-50 dark:border-slate-800 dark:bg-slate-900 dark:hover:bg-slate-800/40">

                <img src="/files/d358fd41-8b0c-46ac-abaa-c3564f5f4372.jpg" alt="" class="h-32 w-full object-cover" loading="lazy">
                <div class="p-3">
                  <div class="mb-1 text-xs text-slate-500">
                    Cibersegurança · Feb 14, 2026
                  </div>
                  <div class="line-clamp-2 text-sm font-medium group-hover:underline">
                    Hackers Russos Estão Tentando Roubar Pesquisas de Vacinas COVID-19: Funcionários dos EUA, Reino Unido e Canadá
                  </div>
                </div>
              </a>

              <a href="/pt/p/the-perfect-server-debian-lenny-debian-5-0-with-bind-dovecot-ispconfig-3-94533937" class="group overflow-hidden rounded-2xl border border-slate-200 bg-white hover:bg-slate-50 dark:border-slate-800 dark:bg-slate-900 dark:hover:bg-slate-800/40">

                <img src="/files/bdbc7eec-2d79-45c8-af52-81fe7fd35cc9.png" alt="" class="h-32 w-full object-cover" loading="lazy">
                <div class="p-3">
                  <div class="mb-1 text-xs text-slate-500">
                    Servidor Debian · Feb 14, 2026
                  </div>
                  <div class="line-clamp-2 text-sm font-medium group-hover:underline">
                    O Servidor Perfeito - Debian Lenny (Debian 5.0) Com BIND & Dovecot [ISPConfig 3]
                  </div>
                </div>
              </a>

              <a href="/pt/p/maintaining-remote-web-sites-with-sitecopy-on-ubuntu-16-04-94534889" class="group overflow-hidden rounded-2xl border border-slate-200 bg-white hover:bg-slate-50 dark:border-slate-800 dark:bg-slate-900 dark:hover:bg-slate-800/40">

                <img class="h-32 w-full object-cover" loading="lazy">
                <div class="p-3">
                  <div class="mb-1 text-xs text-slate-500">
                    Web Development · Feb 14, 2026
                  </div>
                  <div class="line-clamp-2 text-sm font-medium group-hover:underline">
                    Mantendo sites remotos com sitecopy no Ubuntu 16.04
                  </div>
                </div>
              </a>

              <a href="/pt/p/random-bluetooth-disconnection-in-windows-10-11-fixed-93236764" class="group overflow-hidden rounded-2xl border border-slate-200 bg-white hover:bg-slate-50 dark:border-slate-800 dark:bg-slate-900 dark:hover:bg-slate-800/40">

                <img src="/files/96d46d9d-51eb-4aa5-a170-b9926f8bcbd3.jpg" alt="desconexão aleatória do bluetooth no windows 10 11" class="h-32 w-full object-cover" loading="lazy">
                <div class="p-3">
                  <div class="mb-1 text-xs text-slate-500">
                    Bluetooth · Feb 14, 2026
                  </div>
                  <div class="line-clamp-2 text-sm font-medium group-hover:underline">
                    Desconexão Aleatória do Bluetooth no Windows 10/11 [RESOLVIDO]
                  </div>
                </div>
              </a>

              <a href="/pt/p/installing-apache2-with-php5-and-mysql-support-on-ubuntu-11-10-lamp-94068951" class="group overflow-hidden rounded-2xl border border-slate-200 bg-white hover:bg-slate-50 dark:border-slate-800 dark:bg-slate-900 dark:hover:bg-slate-800/40">

                <img src="/files/27e20a4f-88d6-4c41-a204-42a016efee9a.jpg" alt="" class="h-32 w-full object-cover" loading="lazy">
                <div class="p-3">
                  <div class="mb-1 text-xs text-slate-500">
                    Instalação LAMP · Feb 14, 2026
                  </div>
                  <div class="line-clamp-2 text-sm font-medium group-hover:underline">
                    Instalando Apache2 Com Suporte a PHP5 e MySQL no Ubuntu 11.10 (LAMP)
                  </div>
                </div>
              </a>

          </div>
        </div>
      </div>
    </aside>
  </article>
</section>
    </main>

    <footer class="border-t border-slate-200 bg-slate-50 py-10 text-sm dark:border-slate-800 dark:bg-slate-900">
      <div class="mx-auto grid max-w-7xl grid-cols-1 gap-6 px-4 sm:px-6 md:grid-cols-3 lg:px-8">
        <div>
          <img src="/logo.svg" alt="Tecnologia sem rodeios" width="280" height="40">
          <p class="my-2 text-slate-600 dark:text-slate-400">
            Executando HTML::Mason Com nginx E FastCGI
          </p>
        </div>
        <div class="grid grid-cols-1 gap-6">
          <div>
            <div class="mb-2 font-semibold">empresa</div>
            <ul class="space-y-2 text-slate-600 dark:text-slate-400">
              <li>
                <a href="#" class="hover:text-slate-900 dark:hover:text-white">
                  Sobre
                </a>
              </li>
              <li>
                <a href="#" class="hover:text-slate-900 dark:hover:text-white">
                  Contato
                </a>
              </li>
              <li>
                <a href="#" class="hover:text-slate-900 dark:hover:text-white">
                  Privacidade
                </a>
              </li>
            </ul>
          </div>
        </div>
        <div class="md:text-right">
          <div class="font-semibold">Receber atualizações</div>
          <form class="mt-2 flex w-full items-center gap-2 md:justify-end">
            <input type="email" placeholder="you@example.com" class="w-full max-w-xs rounded-xl border border-slate-300 bg-white px-3 py-2 outline-none dark:border-slate-700 dark:bg-slate-900">
            <button class="rounded-xl bg-slate-900 px-3 py-2 text-white shadow-sm hover:bg-slate-800 dark:bg-white dark:text-slate-900">
              Assine
            </button>
          </form>
          <p class="mt-3 text-slate-500">© 2026. All rights reserved.</p>
        </div>
      </div>
    </footer>
  </body>
</html>