<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Arquivos php - Remontti</title>
	<atom:link href="https://blog.remontti.com.br/tag/php/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.remontti.com.br/tag/php</link>
	<description>rudimar@remontti</description>
	<lastBuildDate>Mon, 06 Jan 2025 18:45:51 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://blog.remontti.com.br/wp-content/uploads/2024/09/icone-rr-80x80.png</url>
	<title>Arquivos php - Remontti</title>
	<link>https://blog.remontti.com.br/tag/php</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Guia Completo: Como instalar e configurar o Nextcloud Hub 9 no Debian 12</title>
		<link>https://blog.remontti.com.br/8193</link>
					<comments>https://blog.remontti.com.br/8193#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Mon, 06 Jan 2025 18:34:38 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[armazenamento em nuvem]]></category>
		<category><![CDATA[banco de dados nextcloud]]></category>
		<category><![CDATA[configuração nextcloud]]></category>
		<category><![CDATA[configuração redis]]></category>
		<category><![CDATA[Debian 12]]></category>
		<category><![CDATA[debian server]]></category>
		<category><![CDATA[guia completo nextcloud]]></category>
		<category><![CDATA[instalação nextcloud]]></category>
		<category><![CDATA[MariaDB]]></category>
		<category><![CDATA[nextcloud]]></category>
		<category><![CDATA[nextcloud em português]]></category>
		<category><![CDATA[nextcloud hub]]></category>
		<category><![CDATA[otimização nextcloud]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[segurança servidor]]></category>
		<category><![CDATA[servidor linux]]></category>
		<category><![CDATA[servidor nextcloud]]></category>
		<category><![CDATA[ssl certbot]]></category>
		<category><![CDATA[tutorial nextcloud]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=8193</guid>

					<description><![CDATA[<p>Neste tutorial, você aprenderá como configurar e instalar o NextCloud em um servidor Linux Debian 12. O Nextcloud Hub é uma poderosa solução de armazenamento em nuvem que permite hospedar seus próprios arquivos, calendários,&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/8193">Guia Completo: Como instalar e configurar o Nextcloud Hub 9 no Debian 12</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img fetchpriority="high" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD-HUB-9-DEBIAN-12.png" alt="" width="1792" height="1024" class="alignnone size-full wp-image-8217" srcset="https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD-HUB-9-DEBIAN-12.png 1792w, https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD-HUB-9-DEBIAN-12-300x171.png 300w, https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD-HUB-9-DEBIAN-12-1024x585.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD-HUB-9-DEBIAN-12-768x439.png 768w, https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD-HUB-9-DEBIAN-12-1536x878.png 1536w" sizes="(max-width: 1792px) 100vw, 1792px" /><br />
Neste tutorial, você aprenderá como configurar e instalar o NextCloud em um servidor Linux Debian 12. O Nextcloud Hub é uma poderosa solução de armazenamento em nuvem que permite hospedar seus próprios arquivos, calendários, contatos e outros dados, garantindo total controle sobre a privacidade e segurança.</p>
<p>Abordaremos passo a passo desde a configuração do servidor web com Apache, PHP e MariaDB, até a instalação e configuração do NextCloud. Além disso, este guia inclui ajustes de segurança, como a implementação de SSL com Certbot (Let&#8217;s Encrypt) e otimizações para melhorar o desempenho do sistema.</p>
<p>Ao final, você terá um ambiente funcional e seguro para hospedar sua própria nuvem privada, ideal para empresas ou usuários que desejam independência de serviços de terceiros.</p>
<p>Prepare-se para transformar seu servidor em uma plataforma de nuvem privada robusta e personalizável! <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<h3>Debian 12</h3>
<p><strong><a href="https://blog.remontti.com.br/7236" target="_blank">Instalação do Debian 12 Bookworm limpa passo-a-passo</a></strong></p>
<h2>Subindo Servidor Web</h2>
<p>Instale o servidor web Apache e vários módulos do PHP necessários para o nextcloud</p>
<pre class="remontti-code"># apt install apache2 apache2-utils redis-server php \
  php-{fpm,pclzip,xmlrpc,imagick,redis,memcached,apcu,imap,ldap,intl,mysql,cli,pear,gmp,gd,bcmath,mbstring,curl,xml,zip} -y</pre>
<p>Habilitação de Módulos do Apache</p>
<pre class="remontti-code"># a2enmod proxy_fcgi setenvif mpm_event rewrite headers http2</pre>
<ul>
<li><strong>proxy_fcgi</strong>: Permite que o Apache se conecte a servidores FastCGI, como PHP-FPM.  </li>
<li><strong>setenvif</strong>: Configura variáveis de ambiente com base em condições das requisições.  </li>
<li><strong>mpm_event</strong>: Otimiza o Apache para lidar com conexões simultâneas de forma eficiente.  </li>
<li><strong>rewrite</strong>: Permite redirecionamentos e reescritas de URL dinâmicas.  </li>
<li><strong>headers</strong>: Permite manipulação de cabeçalhos HTTP em respostas e requisições.  </li>
<li><strong>http2</strong>: Habilita suporte ao protocolo HTTP/2 para maior velocidade e eficiência.</li>
</ul>
<p>Desabilitação do Módulo PHP do Apache, vamos utilizar o PHP-FPM.</p>
<pre class="remontti-code"># a2dismod php8.2</pre>
<p>Ativação do PHP-FPM no Boot, e habilite o PHP-FPM no Apache.</p>
<pre class="remontti-code"># systemctl enable php8.2-fpm
# a2enconf php8.2-fpm</pre>
<p>Melhorias de Segurança: Ajusta as configurações para ocultar informações sensíveis do servidor, como versão do Apache e detalhes do sistema operacional.</p>
<pre class="remontti-code"># sed -i &#039;s/ServerTokens OS/ServerTokens Prod/&#039; /etc/apache2/conf-available/security.conf
# sed -i &#039;s/ServerSignature On/ServerSignature Off/&#039; /etc/apache2/conf-available/security.conf</pre>
<p>Adiciona o usuário `www-data` (usado pelo servidor web) ao grupo do Redis, permitindo acesso ao cache Redis pelo Apache ou PHP.</p>
<pre class="remontti-code"># usermod -a -G redis www-data
echo &#039;apc.enable_cli=1&#039; &gt;&gt; /etc/php/8.2/cli/php.ini</pre>
<p>Edite o arquivo php.ini do PHP-FPM</p>
<pre class="remontti-code"># vim /etc/php/8.2/fpm/php.ini</pre>
<ul>
<li>Defina o limite de memória para scripts PHP em <strong>512MB</strong>, garantindo que aplicações PHP que consomem mais memória possam funcionar adequadamente.</li>
<li>Configura o <strong>opcache</strong> para usar <strong>16MB de buffer para strings internada</strong>, melhorando o desempenho e reduzindo o consumo de memória de strings repetitivas.</li>
</ul>
<pre class="remontti-code-plain">
memory_limit = 512M
opcache.interned_strings_buffer=16
</pre>
<p>Para instalação do NextCloud vou utilizar o diretório padrão do Apache /var/www/html, desta forma se você se você não fou utilizar DNS (acessar via IP) pode pular o próximo passo.</p>
<p>Aponte em seus DNS a entra para o subdomínio, exemplo: <strong>nextcloud</strong>.seudominio.com.br. Agora vamos criar a configuração do Apache para tratar o <em>&#8220;nextcloud.seudominio.com.br&#8221;</em></p>
<pre class="remontti-code"># vim /etc/apache2/sites-available/nextcloud.conf</pre>
<p>Ajuste da seguinte forma:</p>
<pre class="remontti-code-plain">
&lt;virtualhost *:80&gt;
        Protocols h2 http/1.1
        ServerName nextcloud.seudominio.com.br
        ServerAdmin noc@seudominio.com.br
 
        DocumentRoot /var/www/html 
 
        &lt;IfModule mod_headers.c&gt;
          Header always set Strict-Transport-Security &quot;max-age=15552000; includeSubDomains&quot;
        &lt;/IfModule&gt; 
 
        &lt;directory /var/www/html/ &gt;
                Options FollowSymLinks
                AllowOverride All
        &lt;/directory&gt; 
 
        LogLevel warn 
        ErrorLog ${APACHE_LOG_DIR}/error_nextcloud.log
        CustomLog ${APACHE_LOG_DIR}/access_nextcloud.log combined
&lt;/virtualhost&gt;</pre>
<p>Se estiver configurado servidor para um DNS desative a configuração <strong>000-default</strong>, caso não configurou pule essa etapa.</p>
<pre class="remontti-code"># a2dissite 000-default</pre>
<p>Ative as configurações do nextcloud.conf no apache para interpretar as configurações com nosso domínio.</p>
<pre class="remontti-code"># a2ensite nextcloud</pre>
<p>Reinicia o servidor Apache e php-fpm para aplicar as configurações feitas.</p>
<pre class="remontti-code"># systemctl restart php8.2-fpm apache2</pre>
<p>Instala o Certbot (ferramenta para gerenciar certificados grátis da Let’s Encrypt) e o plugin para integração com o Apache.</p>
<pre class="remontti-code"># apt install certbot python3-certbot-apache</pre>
<p>Execute o Certbot para configura automaticamente o VirtualHost.</p>
<pre class="remontti-code"># certbot</pre>
<pre class="remontti-code-green">Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter &#039;c&#039; to cancel): noc@seudominio.com.br <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f448.png" alt="👈" class="wp-smiley" style="height: 1em; max-height: 1em;" />

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.4-April-3-2024.pdf. You must agree in
order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f448.png" alt="👈" class="wp-smiley" style="height: 1em; max-height: 1em;" />

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let&#039;s Encrypt project and the non-profit organization that
develops Certbot? We&#039;d like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: N <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f448.png" alt="👈" class="wp-smiley" style="height: 1em; max-height: 1em;" />
Account registered.

Which names would you like to activate HTTPS for?
We recommend selecting either all domains, or all domains in a VirtualHost/server block.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: nextcloud.seudominio.com.br
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter &#039;c&#039; to cancel): 1
Requesting a certificate for nextcloud.seudominio.com.br

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/nextcloud.seudominio.com.br/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/nextcloud.seudominio.com.br/privkey.pem
This certificate expires on 2025-04-06.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

Deploying certificate
Successfully deployed certificate for nextcloud.seudominio.com.br to /etc/apache2/sites-available/nextcloud-le-ssl.conf
Congratulations! You have successfully enabled HTTPS on https://nextcloud.seudominio.com.br

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let&#039;s Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -</pre>
<p>Certificados gerados pela Let&#8217;s Encrypt tem validade de 90 dias. Então vamos criar um script para renovar de forma automática.</p>
<pre class="remontti-code"># vim /usr/local/bin/renew-certificates.sh</pre>
<p>Adicione:</p>
<pre class="remontti-code-plain">#!/bin/bash

# Renova os certificados usando Certbot
/usr/bin/certbot renew --quiet</pre>
<p>De permissão para execução.</p>
<pre class="remontti-code">chmod +x /usr/local/bin/renew-certificates.sh</pre>
<p>Adicione ao cron para 1x por semana às 03:00 da manhã ele realizar a renovação.</p>
<pre class="remontti-code">crontab -e</pre>
<p>Adicion:</p>
<pre class="remontti-code-plain">
0 3 * * 1 /usr/local/bin/renew-certificates.sh</pre>
<p>Reinicie o cron.</p>
<pre class="remontti-code"># systemctl restart cron</pre>
<h4>MariaDB <em>(Banco de Dados)</em></h4>
<p>Instala o servidor e o cliente do MariaDB, um sistema de gerenciamento de banco de dados.</p>
<pre class="remontti-code"># apt install mariadb-server mariadb-client</pre>
<p>Crie o banco de dados para o NextCloud, acesso o terminal do MariaDB.</p>
<pre class="remontti-code"># mariadb -u root </pre>
<p>Altere <strong>SUA_SENHA</strong> para sua senha.</p>
<pre class="remontti-code-plain">
CREATE USER &#039;nextcloud&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;SUA_SENHA&#039;;
CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
GRANT ALL PRIVILEGES ON nextcloud.* TO &#039;nextcloud&#039;@&#039;localhost&#039;;
FLUSH PRIVILEGES;
QUIT;</pre>
<p>Vamos fazer mais um ajuste no banco de dados MariaDB:</p>
<pre class="remontti-code"># vim /etc/mysql/conf.d/mysql.cnf</pre>
<p>Adicione configuração extras do <strong>innodb_buffer_pool_size</strong> e <strong>innodb_io_capacity</strong> para uma melhor performace.</p>
<pre class="remontti-code-plain">[mysqld]

# Define o tamanho do buffer pool do InnoDB para 1 GB, usado para armazenar 
# dados e índices em memória, melhorando o desempenho.
innodb_buffer_pool_size=1G

# Configura a capacidade máxima de I/O por segundo do InnoDB, 
# ideal para servidores com discos rápidos, como SSDs.
innodb_io_capacity=4000</pre>
<p>Reinicie o serviço para carregar as novas configurações.</p>
<pre class="remontti-code"># systemctl restart mariadb</pre>
<h5>Bibliotecas adicionais</h5>
<p>Instala bibliotecas adicionais para suporte a formatos de imagem extras e funcionalidades avançadas no ImageMagick.</p>
<pre class="remontti-code"># apt install libmagickcore-6.q16-6-extra -y</pre>
<h2>Instalação do NextCloud</h2>
<p>Servidor web pronto, vamos as configurações do NextCloud</p>
<p>Vamos fazer download da versão mais recente (Hoje 06/01/2025 v30.0.4)</p>
<pre class="remontti-code"># cd /tmp/
# wget https://download.nextcloud.com/server/releases/latest.zip</pre>
<pre class="remontti-code-green">--2025-01-06 11:50:58--  https://download.nextcloud.com/server/releases/latest.zip
Resolvendo download.nextcloud.com (download.nextcloud.com)... 2a01:21c8::145, 5.9.202.145
Conectando-se a download.nextcloud.com (download.nextcloud.com)|2a01:210:21c8::145|:443... conectado.
A requisição HTTP foi enviada, aguardando resposta... 200 OK
Tamanho: 225508096 (215M) [application/zip]
Salvando em: “latest.zip”

latest.zip  100%[============================================&gt;] 215,06M   373KB/s    em 8m 11s  

2025-01-06 11:59:10 (448 KB/s) - “latest.zip” salvo [225508096/225508096]</pre>
<p>Extraia o arquivo</p>
<pre class="remontti-code"># unzip -q latest.zip</pre>
<p>Agora vamos mover os arquivos para /var/www/html, porem antes vamos renomear a pasta html que contém o arquivo index.html padrão do apache. </p>
<pre class="remontti-code"># mv /var/www/html/ /var/www/html_old</pre>
<p>Agora vamos mover nossa pasta que extraímos <strong>nextcloud</strong> para <strong>/var/www/html</strong>, e vamos dar permissões para o usuário Apache administrar os arquivos.</p>
<pre class="remontti-code"># mv nextcloud /var/www/html
# chown -R www-data: /var/www/html</pre>
<p>Agora acesse em seu navegador <em>&#8220;https://nextcloud.seudominio.com.br&#8221;</em> para finalizar a instalação:<br />
Crie uma nome de <strong>usuário</strong> e senha para o <strong>administrador</strong>, em seguida informe os dados da conexão do banco de dados MariaDB, conforme você criou anteriormente, e clique em <strong>instalar</strong>.<br />
<img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD.png" alt="" width="956" height="1088" class="alignnone size-full wp-image-8210" srcset="https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD.png 956w, https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD-264x300.png 264w, https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD-900x1024.png 900w, https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD-768x874.png 768w" sizes="(max-width: 956px) 100vw, 956px" /></p>
<p>Selecione quais aplicações gostaria de instalar e clique em instalar, ou clique em ignorar para não instalar agora. (É possível instalar posteriormente no painel de administração.)<br />
<img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD3.png" alt="" width="1353" height="955" class="alignnone size-full wp-image-8212" srcset="https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD3.png 1353w, https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD3-300x212.png 300w, https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD3-1024x723.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD3-768x542.png 768w" sizes="(max-width: 1353px) 100vw, 1353px" /></p>
<p>Algumas telas irão aparecer apresentando o Nexcloud Hub. </p>
<p>Ao final você terá a seguinte tela.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD10.png" alt="" width="2560" height="957" class="alignnone size-full wp-image-8213" srcset="https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD10.png 2560w, https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD10-300x112.png 300w, https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD10-1024x383.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD10-768x287.png 768w, https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD10-1536x574.png 1536w, https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD10-2048x766.png 2048w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></p>
<p>Seu NextCloud está quase pronto para utilizar, vamos a mais alguns ajustes.</p>
<p><strong>Adicionar Índices Ausentes ao Banco de Dados:</strong></p>
<pre class="remontti-code"># su - www-data --shell=/bin/bash -c &#039;php /var/www/html/occ db:add-missing-indices&#039; </pre>
<p>Este comando utiliza a interface de linha de comando do Nextcloud (`occ`) para verificar e adicionar índices que possam estar faltando nas tabelas do banco de dados. Índices são cruciais para melhorar a velocidade das consultas e o desempenho geral do sistema. Ao adicionar os índices ausentes, garantimos que o banco de dados opere de maneira mais eficiente. </p>
<p><strong>Configurar o Horário de Início da Janela de Manutenção:</strong></p>
<pre class="remontti-code"># su - www-data --shell=/bin/bash -c &#039;php /var/www/html/occ config:system:set maintenance_window_start --type=integer --value=3&#039; </pre>
<p>Este comando define o horário de início da janela de manutenção para as tarefas de segundo plano que exigem muitos recursos. Ao configurar este parâmetro, você especifica a hora (em UTC) em que essas tarefas devem começar, minimizando o impacto no desempenho durante os períodos de uso intenso. No exemplo acima, o valor `3` indica que a janela de manutenção começará às 03:00 UTC. </p>
<p><strong>Executar Reparos de Manutenção Incluindo Migrações de Mime Types:</strong></p>
<pre class="remontti-code"># su - www-data --shell=/bin/bash -c &#039;php /var/www/html/occ maintenance:repair --include-expensive&#039; </pre>
<p>Este comando executa uma série de reparos no sistema Nextcloud, incluindo tarefas que podem ser demoradas (`&#8211;include-expensive`). Entre essas tarefas, está a migração de tipos MIME, que assegura que novos tipos de arquivos sejam reconhecidos e tratados corretamente pelo sistema. É especialmente útil após atualizações ou quando novos tipos de arquivos são adicionados. </p>
<p><strong>Ajustes finais</strong></p>
<pre class="remontti-code"># vim /var/www/html/config/config.php</pre>
<p>Adicione as seguintes linhas dentro do array $CONFIG {}: </p>
<pre class="remontti-code-plain">
  &#039;default_language&#039; =&gt; &#039;pt-BR&#039;,
  &#039;default_locale&#039; =&gt; &#039;pt_BR&#039;,
  &#039;default_phone_region&#039; =&gt; &#039;BR&#039;,
</pre>
<p>Adicione: Redis como memcache para o bloqueio de arquivos.</p>
<pre class="remontti-code-plain">
  &#039;filelocking.enabled&#039; =&gt; true,
  &#039;memcache.local&#039; =&gt; &#039;\OC\Memcache\APCu&#039;,
  &#039;memcache.locking&#039; =&gt; &#039;\OC\Memcache\Redis&#039;,
  &#039;redis&#039; =&gt; [
    &#039;host&#039; =&gt; &#039;localhost&#039;,
    &#039;port&#039; =&gt; 6379,
  ],
</pre>
<p>Sempre que você cria um usuário novo ele cria vários arquivos de exemplo/modelo, se desejar desativar isso adicione também:</p>
<pre class="remontti-code-plain">
  &#039;skeletondirectory&#039; =&gt; &#039;&#039;,
</pre>
<p>Agora limpe os logs</p>
<pre class="remontti-code"> # &gt; /var/www/html/data/nextcloud.log</pre>
<p>Agora vá até as configurações de administrador para verificar se a instalação está tudo &#8220;dentro dos conformes&#8221;.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2025/01/nextcloud-hub-conf.png" alt="" width="453" height="525" class="alignnone size-full wp-image-8215" srcset="https://blog.remontti.com.br/wp-content/uploads/2025/01/nextcloud-hub-conf.png 453w, https://blog.remontti.com.br/wp-content/uploads/2025/01/nextcloud-hub-conf-259x300.png 259w" sizes="auto, (max-width: 453px) 100vw, 453px" /></p>
<p>Deve conter apenas um &#8220;problema&#8221;: <em>Você ainda não definiu ou verificou a configuração do seu servidor de e-mail. </em> Para resolver basta configurar o serviço de envio de e-mail.</p>
<p>É possível testar seu servidor em: <a href="https://scan.nextcloud.com" target="_blank">https://scan.nextcloud.com</a></p>
<p>Agora sim seu servidor NextCloud Hub está pronto!</p>
<h5>Bônus</h5>
<p>Perdi a senha como recupara?</p>
<pre class="remontti-code"># su - www-data --shell=/bin/bash -c &#039;php /var/www/html/occ user:resetpassword administrador&#039;</pre>
<pre class="remontti-code-green">Enter a new password: 
Confirm the new password: 
Successfully reset password for administrador</pre>
<p><strong>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!</strong><br />
<a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a></p>
<p>Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato <a href="https://blog.remontti.com.br/meucontato" rel="noopener noreferrer" target="_blank">clique aqui.</a></p>
<p><strong>Fonte:</strong><br />
<a href="https://docs.nextcloud.com/server/latest/admin_manual/contents.html" target="_blank">https://docs.nextcloud.com/server/latest/admin_manual/contents.html</a></p>
<p>O post <a href="https://blog.remontti.com.br/8193">Guia Completo: Como instalar e configurar o Nextcloud Hub 9 no Debian 12</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/8193/feed</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
		<item>
		<title>Instalação FreeRadius no Debian 12 Bookworm (Extra sqlippool)</title>
		<link>https://blog.remontti.com.br/7784</link>
					<comments>https://blog.remontti.com.br/7784#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Tue, 30 Jan 2024 02:22:57 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Administração de sistema]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[Autenticação PPPoE]]></category>
		<category><![CDATA[Configuração de servidor]]></category>
		<category><![CDATA[Debian 12 Bookworm]]></category>
		<category><![CDATA[freeradius]]></category>
		<category><![CDATA[FreeRadius 3.2.1]]></category>
		<category><![CDATA[LAMP (Linux]]></category>
		<category><![CDATA[MariaDB]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Rede e segurança]]></category>
		<category><![CDATA[sqlippool]]></category>
		<category><![CDATA[Wireless Security]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=7784</guid>

					<description><![CDATA[<p>Este tutorial é especialmente útil para provedores de serviços que desejam estabelecer seu próprio sistema de autenticação usando o FreeRADIUS. Ele abrange uma ampla gama de autenticação, incluindo PPPoE, hotspot, e autenticação sem fio&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/7784">Instalação FreeRadius no Debian 12 Bookworm (Extra sqlippool)</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2024/01/freeradius-debian-12.png" alt="" width="1792" height="909" class="alignnone size-full wp-image-7787" srcset="https://blog.remontti.com.br/wp-content/uploads/2024/01/freeradius-debian-12.png 1792w, https://blog.remontti.com.br/wp-content/uploads/2024/01/freeradius-debian-12-300x152.png 300w, https://blog.remontti.com.br/wp-content/uploads/2024/01/freeradius-debian-12-1024x519.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2024/01/freeradius-debian-12-768x390.png 768w, https://blog.remontti.com.br/wp-content/uploads/2024/01/freeradius-debian-12-1536x779.png 1536w" sizes="auto, (max-width: 1792px) 100vw, 1792px" /><br />
Este tutorial é especialmente útil para provedores de serviços que desejam estabelecer seu próprio sistema de autenticação usando o FreeRADIUS. Ele abrange uma ampla gama de autenticação, incluindo PPPoE, hotspot, e autenticação sem fio (PSK/EAP), entre outras opções.</p>
<p><strong>REQUISITOS</strong><br />
1 – <a href="https://blog.remontti.com.br/7236" rel="noopener noreferrer" target="_blank">Debian 12 Bookworm &#8211; Instalação limpa</a></p>
<p>Acesse seu bash e vire root com o comando su &#8211; para evitar comandos &#8220;que não existem&#8221;, e antes de mais nada tenha seu repositório atualizado.</p>
<pre class="remontti-code"># su -
# apt update
# apt upgrade</pre>
<p>Se o seu sistema Debian acabou de ser instalado e está em sua configuração inicial, aqui está o meu comando secreto que eu uso em todos os servidores após a instalação. Esse comando tem o objetivo de aprimorar a produtividade do shell (bash) no Debian e instalar alguns pacotes essenciais. É basicamente um script que inclui a maior parte das etapas descritas no tutorial: <a href="https://blog.remontti.com.br/5867" rel="noopener" target="_blank">Como melhorar a produtividade no seu Debian após instalação</a></p>
<pre class="remontti-code"># apt install wget -y; wget remontti.com.br/debian; bash debian
# su - </pre>
<p>O serviço web não é necessário, mas normalmente juntamente do Freeradius acabo instalando um phpmyadmin por exemplo para poder fazer uma administração fácil do banco de dados entre outros. Se desejar pular esta etapa ela é opcional.</p>
<h4>Instalação do Serviço Web+PHP</h4>
<p>Vamos instalar os pacotes necessários</p>
<pre class="remontti-code"># apt install apache2 apache2-utils libapache2-mod-php\
  php php-mysql php-cli php-pear php-gmp php-gd php-bcmath\
  php-mbstring php-curl php-xml php-zip -y</pre>
<p>Ajuste fino, <a href="https://blog.remontti.com.br/7496" rel="noopener" target="_blank">quiser saber mais clique aqui</a>.</p>
<pre class="remontti-code"># a2enmod rewrite ; a2enmod headers
# sed -i &#039;s/ServerTokens OS/ServerTokens Prod/&#039; /etc/apache2/conf-available/security.conf
# sed -i &#039;s/ServerSignature On/ServerSignature Off/&#039; /etc/apache2/conf-available/security.conf
# systemctl restart apache2</pre>
<h4>Instalação do MariaDB &#038; phpMyAdmin</h4>
<pre class="remontti-code"># apt install mariadb-server mariadb-client phpmyadmin</pre>
<p>Por padrão o pacote MaraiDB no Debian usa unix_socket para autenticar o login do usuário, o que basicamente significa que você pode usar o nome de usuário e a senha do sistema operacional para efetuar login no console do MariaDB. Assim, você pode logar diretamente sem fornecer a senha root do MariaDB. Mais a frente vou ensinar como definir uma senha, não farei agora pois se você alterar nesse momento ao instalar o phpMyAdmin terá um erro.</p>
<p>Selecione <strong>Apache2</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_1.png" data-rel="lightbox-gallery-i9MXPbnm" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_1.png" alt="" width="1256" height="408" class="alignnone size-full wp-image-7499" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_1.png 1256w, https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_1-300x97.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_1-1024x333.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_1-768x249.png 768w" sizes="auto, (max-width: 1256px) 100vw, 1256px" /></a></p>
<p>Responda <strong>Sim</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_2.png" data-rel="lightbox-gallery-i9MXPbnm" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_2.png" alt="" width="1257" height="513" class="alignnone size-full wp-image-7500" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_2.png 1257w, https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_2-300x122.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_2-1024x418.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_2-768x313.png 768w" sizes="auto, (max-width: 1257px) 100vw, 1257px" /></a></p>
<p><strong>Informe a senha</strong> para o banco de dados do phpmyadmin. <a href="http://senhasegura.remontti.com.br/" rel="noopener" target="_blank">http://senhasegura.remontti.com.br/</a><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_3.png" data-rel="lightbox-gallery-i9MXPbnm" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_3.png" alt="" width="1261" height="410" class="alignnone size-full wp-image-7501" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_3.png 1261w, https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_3-300x98.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_3-1024x333.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_3-768x250.png 768w" sizes="auto, (max-width: 1261px) 100vw, 1261px" /></a></p>
<p>Repita a senha<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_4.png" data-rel="lightbox-gallery-i9MXPbnm" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_4.png" alt="" width="1264" height="437" class="alignnone size-full wp-image-7502" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_4.png 1264w, https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_4-300x104.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_4-1024x354.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_4-768x266.png 768w" sizes="auto, (max-width: 1264px) 100vw, 1264px" /></a></p>
<p>Para acessar o phpmyadmin:<strong>http://[SERVER_IP]/phpmyadmin/</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_login.png" data-rel="lightbox-gallery-i9MXPbnm" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_login.png" alt="" width="1523" height="556" class="alignnone size-full wp-image-7471" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_login.png 1523w, https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_login-300x110.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_login-1024x374.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_login-768x280.png 768w" sizes="auto, (max-width: 1523px) 100vw, 1523px" /></a></p>
<p>Para aumentar a seguraça vamos definir uma senha para o usuário root do MariDB, não esqueça de alterar <strong>ALTERE_3ST4_SENHA</strong> pela sua senha.</p>
<pre class="remontti-code"># mariadb -u root</pre>
<pre class="remontti-code">USE mysql;
ALTER USER &#039;root&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;ALTERE_3ST4_SENHA&#039;;
FLUSH PRIVILEGES;
EXIT;</pre>
<p>Apague seus rastros, em /root/.mysql_history temos um histórico com todos os comandos dado no terminal do MariaDB, então não é legal deixar lá em texto puro a senha que setamos!</p>
<pre class="remontti-code"># &gt; /root/.mysql_history</pre>
<h4>Instalação do FreeRadius</h4>
<p>Abra o terminal de comando do MariaDB e crie a base e o usuário chamados de radius e defina a senha para este usuário.</p>
<pre class="remontti-code"># mariadb -u root -p</pre>
<p>Altere <strong>SENHA_USER_RADIUS</strong>. Você pode gerar uma senha forte e segura em <a href="https://senhasegura.remontti.com.br/" rel="noopener noreferrer" target="_blank">https://senhasegura.remontti.com.br</a></p>
<pre class="remontti-code">CREATE DATABASE radius;
GRANT ALL PRIVILEGES ON radius.* TO &#039;radius&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;SENHA_USER_RADIUS&#039;;
FLUSH PRIVILEGES;
quit;</pre>
<p>Instale os pacotes do <strong>freeradius</strong></p>
<pre class="remontti-code"># apt install freeradius freeradius-mysql freeradius-utils</pre>
<p>Com o banco de dados radius criado iremos importar as tabelas padrões do freeradius:</p>
<pre class="remontti-code"># mariadb -u radius -p radius &lt; /etc/freeradius/3.0/mods-config/sql/main/mysql/schema.sql</pre>
<p>Após comando será solicitado a senha do usuario radius (SENHA_USER_RADIUS).</p>
<p>Vamos fazer backups primeiramente dos arquivos que iremos alterar.</p>
<pre class="remontti-code"># cp /etc/freeradius/3.0/radiusd.conf /etc/freeradius/3.0/radiusd.conf.orig
# cp /etc/freeradius/3.0/mods-available/sql /etc/freeradius/3.0/mods-available/sql.orig
# cp /etc/freeradius/3.0/mods-available/eap /etc/freeradius/3.0/mods-available/eap.orig
# cp /etc/freeradius/3.0/sites-available/default  /etc/freeradius/3.0/sites-available/default.org
# cp /etc/freeradius/3.0/mods-available/sqlippool /etc/freeradius/3.0/mods-available/sqlippool.orig
</pre>
<p>Irei abusar do comando sed de agora em diante com o intuito de entrar nos arquivos para editar, se não souber o que cada comando representa recomendo utilizar o chat GPT, cola lá e pergunta que ele explica rsrs (estou ficando velho)</p>
<pre class="remontti-code"># sed -i &#039;/^\s*stripped_names = no/s/^\(\s*stripped_names =\) no/\1 yes/g&#039; /etc/freeradius/3.0/radiusd.conf
# sed -i &#039;/^\s*auth = no/s/^\(\s*auth =\) no/\1 yes/g&#039; /etc/freeradius/3.0/radiusd.conf
# sed -i &#039;/^\s*auth_badpass = no/s/^\(\s*auth_badpass =\) no/\1 yes/g&#039; /etc/freeradius/3.0/radiusd.conf
# sed -i &#039;/^\s*auth_goodpass = no/s/^\(\s*auth_goodpass =\) no/\1 yes/g&#039; /etc/freeradius/3.0/radiusd.conf</pre>
<p>Ajustaremos o <a href="https://wiki.freeradius.org/guide/SQL-HOWTO-for-freeradius-3.x-on-Debian-Ubuntu" rel="noopener noreferrer" target="_blank">mod SQL</a> para trabalhar com conexão do tipo mysql, e informamos os dados para conexão com o banco de dados. Arquivo /etc/freeradius/3.0/mods-available/sql.orig</p>
<pre class="remontti-code"># sed -i &#039;s/driver = &quot;rlm_sql_null&quot;/driver = &quot;rlm_sql_mysql&quot;/&#039; /etc/freeradius/3.0/mods-available/sql
# sed -i &#039;s/dialect = &quot;sqlite&quot;/dialect = &quot;mysql&quot;/&#039; /etc/freeradius/3.0/mods-available/sql
# sed -i &#039;/server = &quot;localhost&quot;/s/^#//g&#039; /etc/freeradius/3.0/mods-available/sql
# sed -i &#039;/port = 3306/s/^#//g&#039; /etc/freeradius/3.0/mods-available/sql
# sed -i &#039;/login = &quot;radius&quot;/s/^#//g&#039; /etc/freeradius/3.0/mods-available/sql
# sed -i &#039;/password = &quot;radpass&quot;/s/^#//g&#039; /etc/freeradius/3.0/mods-available/sql
# sed -i &#039;/read_clients = yes/s/^#//g&#039; /etc/freeradius/3.0/mods-available/sql</pre>
<p>No próximo comando altere <strong>SENHA_USER_RADIUS</strong> para a senha de conexão do usuário radius.</p>
<pre class="remontti-code"># sed -i &#039;s/radpass/SENHA_USER_RADIUS/&#039; /etc/freeradius/3.0/mods-available/sql</pre>
<p>Habilite os mods sql e sqlippool:</p>
<pre class="remontti-code"># ln -s /etc/freeradius/3.0/mods-available/sql /etc/freeradius/3.0/mods-enabled/sql
# ln -s /etc/freeradius/3.0/mods-available/sqlippool /etc/freeradius/3.0/mods-enabled/sqlippool</pre>
<p>Desativando o TLS do Mysql</p>
<pre class="remontti-code"># sed -i &#039;84,102 {s/^/##/}&#039; /etc/freeradius/3.0/mods-available/sql
# sed -i &#039;s/disable_tlsv1_2 = yes/disable_tlsv1_2 = no/&#039; /etc/freeradius/3.0/mods-available/eap 
# sed -i &#039;s/disable_tlsv1_1 = yes/disable_tlsv1_1 = no/&#039; /etc/freeradius/3.0/mods-available/eap 
# sed -i &#039;s/disable_tlsv1 = yes/disable_tlsv1 = no/&#039; /etc/freeradius/3.0/mods-available/eap
# sed -i &#039;/disable_tlsv1/s/^#//g&#039; /etc/freeradius/3.0/mods-available/eap
# sed -i &#039;s/tls_min_version = &quot;1.2&quot;/tls_min_version = &quot;1.0&quot;/&#039; /etc/freeradius/3.0/mods-available/eap</pre>
<p>Agora no arquivo /etc/freeradius/3.0/sites-enabled/default vamos comentar alguns componentes que não nos interessa (Se você entrar no arquivo e editar manualmente ele está todo comentado, auto explicativo.) e incluir alguns componentes como o SQL.</p>
<pre class="remontti-code"># sed -i &#039;/^[[:space:]]*digest/s/^/## /&#039; /etc/freeradius/3.0/sites-available/default
# sed -i &#039;/^[[:space:]]*suffix/s/^/## /&#039; /etc/freeradius/3.0/sites-available/default
# sed -i &#039;/^[[:space:]]*files/s/^/## /&#039; /etc/freeradius/3.0/sites-available/default
# sed -i &#039;/^[[:space:]]*-ldap/s/^/## /&#039; /etc/freeradius/3.0/sites-available/default
# sed -i &#039;/^[[:space:]]*exec/s/^/## /&#039; /etc/freeradius/3.0/sites-available/default
# sed -i &#039;/^[[:space:]]*detail/s/^/## /&#039; /etc/freeradius/3.0/sites-available/default
# sed -i &#039;/^[[:space:]]*unix/s/^/## /&#039; /etc/freeradius/3.0/sites-available/default
# sed -i &#039;/^[[:space:]]*attr_filter.accounting_response/s/^/## /&#039; /etc/freeradius/3.0/sites-available/default
# sed -i &#039;/^[[:space:]]*-ldap/s/^/## /&#039; /etc/freeradius/3.0/sites-available/default
# sed -i &#039;s/-sql/sql/&#039; /etc/freeradius/3.0/sites-available/default
# sed -i &#039;741 s/# *//&#039; /etc/freeradius/3.0/sites-available/default
# sed -i &#039;958,970 {s/^/##/}&#039; /etc/freeradius/3.0/sites-available/default
# sed -i &#039;76 {s/^/#/}&#039; /etc/freeradius/3.0/mods-available/sqlippool
# sed -i &#039;77 s/# *//&#039; /etc/freeradius/3.0/mods-available/sqlippool
# sed -i &#039;66 s/# *//&#039; /etc/freeradius/3.0/mods-available/sqlippool
# sed -i &#039;/^[[:space:]]*#.*sqlippool/s/^#//&#039; /etc/freeradius/3.0/sites-available/default
</pre>
<p>Faremos os ajustes no arquivo <strong>inner-tunnel</strong></p>
<pre class="remontti-code"># cp /etc/freeradius/3.0/sites-available/inner-tunnel /etc/freeradius/3.0/sites-available/inner-tunnel.org</pre>
<pre class="remontti-code"># sed -i &#039;/^[[:space:]]*suffix/s/^/## /&#039; /etc/freeradius/3.0/sites-available/inner-tunnel
# sed -i &#039;/^[[:space:]]*files/s/^/## /&#039; /etc/freeradius/3.0/sites-available/inner-tunnel
# sed -i &#039;/^[[:space:]]*-ldap/s/^/## /&#039; /etc/freeradius/3.0/sites-available/inner-tunnel
# sed -i &#039;s/-sql/sql/&#039; /etc/freeradius/3.0/sites-available/inner-tunnel
# sed -i &#039;/^[[:space:]]*radutmp/s/^/## /&#039; /etc/freeradius/3.0/sites-available/inner-tunnel
# sed -i &#039;266 s/# *//&#039; /etc/freeradius/3.0/sites-available/inner-tunnel
# sed -i &#039;336,361 {s/^/##/}&#039; /etc/freeradius/3.0/sites-available/inner-tunnel
# sed -i &#039;370,381 {s/^/##/}&#039; /etc/freeradius/3.0/sites-available/inner-tunnel</pre>
<p>Verifique com o comando abaixo se a saída dos seus arquivos ficou assim:</p>
<pre class="remontti-code"># cat /etc/freeradius/3.0/sites-enabled/default |grep -v &quot;#&quot; |awk &#039;NF&gt;0&#039;</pre>
<pre class="remontti-code-plain">server default {
listen {
	type = auth
	ipaddr = *
	port = 0
	limit {
	      max_connections = 16
	      lifetime = 0
	      idle_timeout = 30
	}
}
listen {
	ipaddr = *
	port = 0
	type = acct
	limit {
	}
}
listen {
	type = auth
	port = 0
	limit {
	      max_connections = 16
	      lifetime = 0
	      idle_timeout = 30
	}
}
listen {
	ipv6addr = ::
	port = 0
	type = acct
	limit {
	}
}
authorize {
	filter_username
	preprocess
	chap
	mschap
	eap {
		ok = return
	}
	sql
	expiration
	logintime
	pap
	Autz-Type New-TLS-Connection {
		  ok
	}
}
authenticate {
	Auth-Type PAP {
		pap
	}
	Auth-Type CHAP {
		chap
	}
	Auth-Type MS-CHAP {
		mschap
	}
	mschap
	eap
}
preacct {
	preprocess
	acct_unique
}
accounting {
	sqlippool
	sql
}
session {
	sql
}
post-auth {
	if (session-state:User-Name &amp;&amp; reply:User-Name &amp;&amp; request:User-Name &amp;&amp; (reply:User-Name == request:User-Name)) {
		update reply {
			&amp;User-Name !* ANY
		}
	}
	update {
		&amp;reply: += &amp;session-state:
	}
	sqlippool
	sql
	remove_reply_message_if_eap
	Post-Auth-Type Challenge {
	}
	Post-Auth-Type Client-Lost {
	}
	if (EAP-Key-Name &amp;&amp; &amp;reply:EAP-Session-Id) {
		update reply {
			&amp;EAP-Key-Name := &amp;reply:EAP-Session-Id
		}
	}
}
pre-proxy {
}
post-proxy {
	eap
}
}
</pre>
<pre class="remontti-code"># cat /etc/freeradius/3.0/sites-enabled/inner-tunnel |grep -v &quot;#&quot; |awk &#039;NF&gt;0&#039;</pre>
<pre class="remontti-code-plain">server inner-tunnel {
listen {
       ipaddr = 127.0.0.1
       port = 18120
       type = auth
}
authorize {
	filter_username
	chap
	mschap
	update control {
		&amp;Proxy-To-Realm := LOCAL
	}
	eap {
		ok = return
	}
	sql
	expiration
	logintime
	pap
}
authenticate {
	Auth-Type PAP {
		pap
	}
	Auth-Type CHAP {
		chap
	}
	Auth-Type MS-CHAP {
		mschap
	}
	mschap
	eap
}
session {
	sql
}
post-auth {
	sql
}
pre-proxy {
}
post-proxy {
	eap
}
</pre>
<h3>SQLIPPOOL</h3>
<p>Para muitos o o maior pesadelo <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f47b.png" alt="👻" class="wp-smiley" style="height: 1em; max-height: 1em;" /> DUPLICIDADE DE IPs <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f47b.png" alt="👻" class="wp-smiley" style="height: 1em; max-height: 1em;" /><br />
No Debian 12 temos a versão 3.2.1 do freeradius sendo rodada, nessa versão alguma melhorias já foram aplicadas, mas eu ainda acho falha para maioria dos IPs, então vou deixar aqui algumas alterações que tenho aplicado para uma realidade provedores que acredito que irá atender sem dores de cabeça.</p>
<p>Importe o banco de dados e aplique as regras de procedure.</p>
<pre class="remontti-code"># mariadb -u radius -p radius &lt; /etc/freeradius/3.0/mods-config/sql/ippool/mysql/schema.sql
# mariadb -u radius -p radius &lt; /etc/freeradius/3.0/mods-config/sql/ippool/mysql/procedure.sql </pre>
<p>Crie uma cópia do arquivo original, nunca se saber quando iremos precisar.</p>
<pre class="remontti-code"># cp /etc/freeradius/3.0/mods-config/sql/ippool/mysql/queries.conf /etc/freeradius/3.0/mods-config/sql/ippool/mysql/queries.conf.orig</pre>
<p>Para debugs e até mesmo algum script que visa buscar por falhas ou entendimento irei criar a coluna <strong>action</strong> na tabela radippool, nela estarei gravando qual a ação/query que ele executou do queries.conf.</p>
<pre class="remontti-code"># mysql -u radius -p -D radius -e &#039;ALTER TABLE radippool ADD COLUMN \`action\` VARCHAR(20) NULL AFTER pool_key;&#039;</pre>
<p>Vamos pagar tudo que tem em queries.conf e criar todas as entradas.</p>
<pre class="remontti-code"># &gt; /etc/freeradius/3.0/mods-config/sql/ippool/mysql/queries.conf
# vim /etc/freeradius/3.0/mods-config/sql/ippool/mysql/queries.conf</pre>
<p>Deixei nos comentários o macimo de explicação</p>
<pre class="remontti-code">
#
# TODOS OS IPS NA RADIPPOOL. AS POLÍTICAS SERÃO AS SEGUINTES:
# 
#  1 - Quando um novo login tentar selecionar um endereço IP pela primeira vez na &quot;radippool&quot;, o sistema verificará 
#      se esse login já utilizou um endereço com Pool-Name que esta solicitado.
#  2 - Se o login não tiver usado nenhum endereço da Pool-Name solicitada, será atribuído aleatoriamente um novo endereço, 
#      desde que o &quot;expiry_time&quot; seja menor que a data e hora atual.
#  3 - Se todos os endereços IPs dentro da Pool-Name solicitada já sendo utilizado ou estiverem em estado aguardando (&quot;waiting&quot;), 
#      a query &quot;allocate_find&quot; irá verificando se o &quot;expiry_time&quot; é menor que a data e hora atual e assim utilizando um dos IPs 
#      em &quot;waiting&quot; com o &quot;expiry_time&quot; mais antigo. Isso é comum por exemplo quando um cliente cancela sua assinatura.
#  3 - Se todos os endereços IPs dentro da Pool-Name solicitada já estiverem sendo utilizados ou estiverem em estado de espera (&quot;waiting&quot;), 
#      nossa query &quot;allocate_find&quot; irá verificar se o &quot;expiry_time&quot; é menor que a data e hora atual e, assim, utilizará um dos IPs
#      em estado de espera com o &quot;expiry_time&quot; mais antigo. Isso é comum, por exemplo, quando um cliente cancela sua assinatura.
#  4 - Se todos os IPs da Pool-Name estiverem em uso e o &quot;expiry_time&quot; for maior que a data atual informada pelo lease_duration, 
#      significa que essa pool-name acabou, nesse a query &quot;allocate_find&quot; buscará na Pool-Name definida na variável &quot;pool_next&quot;. 
#      Por exemplo, ao esgotar os IPs da Pool-Name &quot;publicos&quot;, serão entregues IPs da Pool-Name &quot;cgant&quot;.
#  5 - Se a Pool-Name solicitada e a Pool-Name definida em &quot;pool_next&quot; não tiverem mais endereços disponíveis, 
#      ou não forem encontradas, a responsabilidade de entregar os IPs ficará a cargo do roteador.
#
#  OBS: Escolher um IP randomicamente é mais interessante para balanceamento de carga.
#
#  Autor: Rudimar Remontti 
#


#  Usar SKIP LOCKED acelera as consultas de seleção
#  No entanto, requer MySQL &gt;= 8.0.1 ou MariaDB &gt;= 10.6.
#
#skip_locked = &quot;&quot;
skip_locked = &quot;SKIP LOCKED&quot;


#
#  Por padrão, ao utilizar todos os endereços IPs de uma pool, 
#  o módulo sqlippool do FreeRADIUS permite que seu roteador (NAS) 
#  distribua a pool configurada por ele.
#  Porém estarei aqui fazendo uma alteração na função &quot;allocate_find&quot;
#
pool_next = &quot;cgnat&quot;


#
#  Alocar um endereço IP já utilizado.
#
#  Se um usuário já utilizou um determinado IP, entregue 
#  para ele o mesmo endereco com &quot;expiry_time&quot; mais recente.
#
allocate_existing = &quot;\
	SELECT framedipaddress FROM ${ippool_table} \
	WHERE pool_name = &#039;%{control:${pool_name}}&#039; \
	AND username = &#039;%{User-Name}&#039; \
	ORDER BY expiry_time DESC \
	LIMIT 1 \
	FOR UPDATE ${skip_locked}&quot;


#
# Encontre um endereço IP livre no Pool-Name solicitado 
# ou no Pool-Name especificado na variável pool_next. 
# A explicação está no início deste arquivo.
#
#  Nota: Isso pode se tonar lento se você tiver mais de 30 mil IPs livres, 
#        é rerecomendo fazer um tuning no seu MariaDB/MySQL.
#
allocate_find = &quot;\
	SELECT framedipaddress \
	FROM ${ippool_table} \
	WHERE ( \
	    CASE \
	        WHEN ( \
	            SELECT COUNT(framedipaddress) \
	            FROM radippool \
	            WHERE pool_name = &#039;%{control:Pool-Name}&#039; AND expiry_time &lt; NOW() \
	            LIMIT 1 \
	        ) &gt; 0 THEN \
	            (pool_name = &#039;%{control:Pool-Name}&#039; AND expiry_time &lt; NOW()) \
	        ELSE \
	            CASE \
	                WHEN ( \
	                    SELECT COUNT(framedipaddress) \
	                    FROM radippool \
	                    WHERE pool_name = &#039;${pool_next}&#039; AND username = &#039;%{User-Name}&#039; \
	                    LIMIT 1 \
	                ) &gt; 0 THEN \
	                    (pool_name = &#039;${pool_next}&#039; AND username = &#039;%{User-Name}&#039;) \
	                ELSE \
	                    (pool_name = &#039;${pool_next}&#039; AND expiry_time &lt; NOW()) \
	            END \
	    END \
	) \
	ORDER BY expiry_time ASC, RAND() \
	LIMIT 1 \
	FOR UPDATE ${skip_locked}&quot;

#
#  Se um IP não puder ser alocado, verifique se o pool existe ou não. 
#  Isso permite que o módulo diferencie entre um pool cheio e nenhum pool.
#  Nota: Se você não estiver executando módulos de pool redundantes, esta consulta pode 
#  ser comentada para evitar executar esta consulta toda vez que um IP não for alocado.
#
pool_check = &quot;\
	SELECT id \
	FROM ${ippool_table} \
	WHERE pool_name=&#039;%{control:${pool_name}}&#039; \
	LIMIT 1&quot;

#
#  Atualização dos IPs já alocado.
#
allocate_update = &quot;\
	UPDATE ${ippool_table} \
	SET \
		nasipaddress = &#039;%{NAS-IP-Address}&#039;, pool_key = &#039;${pool_key}&#039;, \
		callingstationid = &#039;%{Calling-Station-Id}&#039;, \
		username = &#039;%{User-Name}&#039;, expiry_time = NOW() + INTERVAL ${lease_duration} SECOND, \
		action = &#039;allocate_update&#039; \
	WHERE framedipaddress = &#039;%I&#039;&quot;

#
#  Esta série de consultas libera um número de IP quando um registro de INÍCIO de contabilidade chega.
#
start_update = &quot;\
	UPDATE ${ippool_table} \
	SET \
		expiry_time = NOW() + INTERVAL ${lease_duration} SECOND, \
		action = &#039;start_update&#039; \
	WHERE nasipaddress = &#039;%{NAS-IP-Address}&#039; \
	AND pool_key = &#039;${pool_key}&#039; \
	AND username = &#039;%{User-Name}&#039; \
	AND callingstationid = &#039;%{Calling-Station-Id}&#039; \
	AND framedipaddress = &#039;%{${attribute_name}}&#039;&quot;

#
#  Essa consulta expira um número de IP quando um registro de PARADA de contabilidade chega.
#
stop_clear = &quot;\
	UPDATE ${ippool_table} \
	SET \
	    nasipaddress = &#039;&#039;, \
	    pool_key = &#039;waiting&#039;, \
	    callingstationid = &#039;&#039;, \
		expiry_time = NOW() - INTERVAL 2 SECOND, \
		action = &#039;stop_clear&#039; \
	WHERE nasipaddress = &#039;%{%{Nas-IP-Address}:-%{Nas-IPv6-Address}}&#039; \
	AND pool_key = &#039;${pool_key}&#039; \
	AND username = &#039;%{User-Name}&#039; \
	AND callingstationid = &#039;%{Calling-Station-Id}&#039; \
	AND framedipaddress = &#039;%{${attribute_name}}&#039;&quot;

#
#  Atualização do IP quando está em utilização, a atualização é feita 
#  a cada x tempo (interim-update/Acct-Interim-Interval) aumenta o tempo definido em &quot;lease_duration&quot;
#
alive_update = &quot;\
	UPDATE ${ippool_table} \
	SET \
		expiry_time = NOW() + INTERVAL ${lease_duration} SECOND, \
		action = &#039;alive_update&#039; \
	WHERE nasipaddress = &#039;%{%{Nas-IP-Address}:-%{Nas-IPv6-Address}}&#039; \
	AND pool_key = &#039;${pool_key}&#039; \
	AND username = &#039;%{User-Name}&#039; \
	AND callingstationid = &#039;%{Calling-Station-Id}&#039; \
	AND framedipaddress = &#039;%{${attribute_name}}&#039;&quot;


#
#  Libera todos os endereços IP alocados a um NAS quando este é ligado ou reiniciado. 
#  Exemplo que uma falha de energia.
#  
on_clear = &quot;\
	UPDATE ${ippool_table} \
	SET \
		expiry_time = NOW() + INTERVAL ${lease_duration} SECOND, \
		action = &#039;on_clear&#039; \
	WHERE nasipaddress = &#039;%{%{Nas-IP-Address}:-%{Nas-IPv6-Address}}&#039;&quot;


#
#  Libera todos os endereços IP alocados a um NAS quando este é desligado ou fica offline.
#
off_clear = &quot;\
	UPDATE ${ippool_table} \
	SET \
		expiry_time = NOW(), \
		action = &#039;off_clear&#039; \
	WHERE nasipaddress = &#039;%{%{Nas-IP-Address}:-%{Nas-IPv6-Address}}&#039;&quot;
</pre>
<p>É interessante você ajustar o tempo <strong>lease_duration = 3600</strong> que por padrão é de 1h no arquivo /etc/freeradius/3.0/mods-available/sqlippool, para mim obtive resultados melhores com 30min, porém sempre respeitando o tempo de <strong>Acct-Interim-Interval</strong> que deve ser um tempo menor, entre 5 a 10 minutos, para evitar duplicidades de IPs.<br />
Falo sobre isso no tutorial <a href="https://blog.remontti.com.br/4085" rel="noopener noreferrer" target="_blank">https://blog.remontti.com.br/4085</a> recomendo a leitura!</p>
<pre class="remontti-code"># sed -i &#039;s/lease_duration = 3600/lease_duration = 1200/&#039; /etc/freeradius/3.0/mods-available/sqlippool
# systemctl  restart freeradius</pre>
<p>Caso você tenha uma alta demanda de requisições você deve fazer algumas alterações no radiusd.conf.<br />
Altere conforme sua necessidade, e hardware de seu servidor. Vale lembrar que fazendo essas alterações pode ser necessário alterar o limite de conexões ao MariaDB. Não abuse nessas configurações recomendo ler a documentação.</p>
<pre class="remontti-code"># vim /etc/freeradius/3.0/radiusd.conf</pre>
<p>Você pode começar dobrando os valores, ex.:</p>
<pre class="remontti-code">[...]
thread pool {
        start_servers = 10
        max_servers = 64
        min_spare_servers = 6
        max_spare_servers = 20
        max_queue_size = 131072
        max_requests_per_server = 0
        auto_limit_acct = no
}
[...]</pre>
<p>Em grande escalas é importante que você também realize um tuning no MariaDB. Recomendo:<br />
- <a href="https://github.com/major/MySQLTuner-perl" rel="noopener" target="_blank">https://github.com/major/MySQLTuner-perl</a><br />
- <a href="https://github.com/BMDan/tuning-primer.sh" rel="noopener" target="_blank">https://github.com/BMDan/tuning-primer.sh</a></p>
<h3>Finalizando</h3>
<p>Habilite o freeradius para começar junto com a inicialização do sistema</p>
<pre class="remontti-code"># systemctl enable freeradius</pre>
<p>Pare o serviço e inicie em modo debug</p>
<pre class="remontti-code"># systemctl stop freeradius
# freeradius -X</pre>
<p>Se nenhum erro acontecer uma mensagem com: <strong>Ready to process requests</strong> aparecer parabéns seu freeradius está funcionando. Através do comando debug você consegue acompanhar as ações que o freeradius irá fazer, ótimo para estudos e entendimento. Para encerrar o modo debig use Crtl+c, e então inicie o serviço de forma normal.</p>
<pre class="remontti-code"># systemctl start freeradius</pre>
<p>Para <strong>integrar</strong> seu servidor freeradius para fazer autenticações PPPoE, Hotspot, Wireless PSK/EAP entre outras, você precisa aprender mais sobre as <strong>tabelas</strong> do <strong>banco de dados</strong> e quais <strong>atributos</strong> usar em cada situação sempre pensando na segurança. Você pode acessar <a href="https://blog.remontti.com.br/4085" rel="noopener noreferrer" target="_blank">https://blog.remontti.com.br/4085</a> onde irá encontra alguns modelos de autenticação que atente praticamente todos os cenários de provedores. </p>
<p>Gostou? Quer me ajudar? <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><strong>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!</strong><br />
<a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a></p>
<p>Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato <a href="https://blog.remontti.com.br/meucontato" rel="noopener noreferrer" target="_blank">clique aqui.</a></p>
<p>Participe do canal no <a href="https://t.me/blogremontti" rel="noopener noreferrer" target="_blank">telegram</a> para ficar atualizado sempre que publicar um novo tutorial. </p>
<p>Abraço!</p>
<p><strong>Resolução de problema:</strong></p>
<p>Se seu login conter @ no entanto não terminar como domínio padrão exemplo user@dom.xxx.yy user@dom.xxx, e sim apenas user@dom edite:</p>
<pre class="remontti-code"># vim /etc/freeradius/3.0/policy.d/filter</pre>
<p>Altere para accept o seguinte filtro:</p>
<pre class="remontti-code">
        if ((&amp;User-Name =~ /@/) &amp;&amp; (&amp;User-Name !~ /@(.+)\.(.+)$/))  {
            update request {
                &amp;Module-Failure-Message += &#039;Rejected: Realm does not have at least one dot separator&#039;
            }
            #reject
            accept
        }
</pre>
<p>Fonte:<br />
<a href="https://wiki.freeradius.org/guide/SQL-HOWTO" rel="noopener noreferrer" target="_blank">https://wiki.freeradius.org/guide/SQL-HOWTO</a><br />
<a href="https://wiki.freeradius.org/modules/Rlm_sql" rel="noopener noreferrer" target="_blank">https://wiki.freeradius.org/modules/Rlm_sql</a><br />
<a href="https://wiki.freeradius.org/modules/Rlm_sqlippool" rel="noopener noreferrer" target="_blank">https://wiki.freeradius.org/modules/Rlm_sqlippool</a></p>
<p>O post <a href="https://blog.remontti.com.br/7784">Instalação FreeRadius no Debian 12 Bookworm (Extra sqlippool)</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/7784/feed</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Servidor WEB NGINX + PHP 8.2 + MariaDB + phpMyAdmin + Let’s Encrypt Debian 12 Bookworm (LNMP)</title>
		<link>https://blog.remontti.com.br/7460</link>
					<comments>https://blog.remontti.com.br/7460#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Wed, 14 Jun 2023 15:17:45 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[bookworm]]></category>
		<category><![CDATA[Debian 12]]></category>
		<category><![CDATA[Let’s Encrypt]]></category>
		<category><![CDATA[LNMP]]></category>
		<category><![CDATA[MariaDB]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phpMyAdmin]]></category>
		<category><![CDATA[Servidor WEB]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=7460</guid>

					<description><![CDATA[<p>Neste tutorial vamos configurar um servidor web com NGINX (lê-se “engine x”), o concorrente do Apache. NGINX é um servidor web (HTTP e IMAP/POP3/Proxy) rápido, leve e com inúmeras possibilidades de configuração para melhor&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/7460">Servidor WEB NGINX + PHP 8.2 + MariaDB + phpMyAdmin + Let’s Encrypt Debian 12 Bookworm (LNMP)</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><center><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian12.jpg" alt="" width="720" height="340" class="alignnone size-full wp-image-7476" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian12.jpg 720w, https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian12-300x142.jpg 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian12-520x245.jpg 520w" sizes="auto, (max-width: 720px) 100vw, 720px" /></center></p>
<p>Neste tutorial vamos configurar um servidor web com NGINX (lê-se “engine x”), o concorrente do Apache. NGINX é um servidor web (HTTP e IMAP/POP3/Proxy) rápido, leve e com inúmeras possibilidades de configuração para melhor performance. O Apache, sem dúvidas, é o servidor web mais popular. No entanto, o NGINX a cada ano ganha mais popularidade e está sendo a preferência dos novos projetos.</p>
<p>Distribuição utilizada: <strong><a href="https://blog.remontti.com.br/7236" rel="noopener noreferrer" target="_blank">Debian 12 Stretch / Instalação Limpa</a></strong></p>
<h3>NGINX</h3>
<p><a href="https://www.nginx.com" rel="noopener" target="_blank">https://www.nginx.com</a><br />
Vamos instalar-lo e remover a assinatura para que não vejam a versão do mesmo (Boas praticas)</p>
<pre class="remontti-code"># apt install nginx
# sed -i &#039;s/# server_tokens/server_tokens/&#039; /etc/nginx/nginx.conf
# systemctl restart nginx</pre>
<p>Acesse agora em seu navegador http://IP-SERVIDOR/<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1.png" alt="" width="1100" height="310" class="alignnone size-full wp-image-5467" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1.png 1100w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1-300x85.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1-1024x289.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1-768x216.png 768w" sizes="auto, (max-width: 1100px) 100vw, 1100px" /></p>
<p>Pronto nosso NGINX está rodando! </p>
<h3>MARIADB</h3>
<p>MariaDB para quem ainda não sabe é um fork do MySQL, criado pelo próprio fundador do projeto MySQL após sua aquisição pela Oracle.</p>
<pre class="remontti-code"># apt install mariadb-server mariadb-client</pre>
<p>Ao final do tutorial iremos colocar uma senha para o usuario root do mariadb. Não iremos fazer isso agora para não dar problema na instalação do phpmyadmin.</p>
<h3>PHP 8.2</h3>
<p>Incluirei algumas extensões do PHP que são normalmente utilizada também na instalação.</p>
<pre class="remontti-code"># apt install --no-install-recommends \
 php php-{fpm,cli,mysql,pear,gd,gmp,bcmath,mbstring,curl,xml,zip,json,pgsql}</pre>
<p>Agora vamos fazer a &#8220;integração&#8221; do PHP com o NGINX. Moveremos o arquivo defaul.</p>
<pre class="remontti-code"># mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.original</pre>
<p>Crie um novo:</p>
<pre class="remontti-code"># vim /etc/nginx/sites-available/default</pre>
<p>Ajuste:</p>
<pre class="remontti-code">server {
    listen 80;
    listen [::]:80;

    root /var/www/html;
    index index.php index.html index.htm;

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
    }
}</pre>
<p>Teste a configuração se não tem nada errado e restart os serviços:</p>
<pre class="remontti-code"># nginx -t
# systemctl restart nginx php8.2-fpm</pre>
<p>Vamos criar um arquivo em PHP para testa se nosso NGINX está interpretando o PHP.</p>
<pre class="remontti-code"># echo &#039;&lt;?php phpinfo();&#039; &gt;&gt; /var/www/html/teste.php</pre>
<p>Acesse em seu navegador http://IP-SERVIDOR/teste.php<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/debian12_php8.2.png" alt="" width="950" height="925" class="alignnone size-full wp-image-7417" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/debian12_php8.2.png 950w, https://blog.remontti.com.br/wp-content/uploads/2023/06/debian12_php8.2-300x292.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/debian12_php8.2-768x748.png 768w" sizes="auto, (max-width: 950px) 100vw, 950px" /><br />
Servidor WEB com PHP está funcionando! </p>
<p>Exemplo para múltiplos domínios/subdomínios </p>
<pre class="remontti-code"># vim /etc/nginx/sites-available/sub1.conf</pre>
<p>Neste ex: vou representar o <em>sub1.remontti.com.br</em></p>
<pre class="remontti-code">server {
    listen 80;
    listen [::]:80;

    root /var/www/sub1;
    index index.php index.html index.htm;

    server_name sub1.remontti.com.br;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
    }
}</pre>
<pre class="remontti-code"># vim /etc/nginx/sites-available/sub2e3.conf</pre>
<p>Neste ex: vou representar o <em>sub2.remontti.com.br</em> e <em>sub3.remontti.com.br</em></p>
<pre class="remontti-code">server {
    listen 80;
    listen [::]:80;

    root /var/www/sub2e3;
    index index.php index.html index.htm;

    server_name sub2.remontti.com.br sub3.remontti.com.br;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
    }
}</pre>
<p>Link os arquivos no diretório &#8220;/etc/nginx/sites-available&#8221;  que será carregado as novas configurações </p>
<pre class="remontti-code"># ln -s /etc/nginx/sites-available/sub1.conf /etc/nginx/sites-enabled/
# ln -s /etc/nginx/sites-available/sub2e3.conf /etc/nginx/sites-enabled/</pre>
<p>Crie os diretórios referente a cada <strong>server_name</strong>.</p>
<pre class="remontti-code"># mkdir /var/www/sub1
# mkdir /var/www/sub2e3
# echo &#039;&lt;?php echo &quot;Olá mundo do sub1!&quot;; ?&gt;&#039; &gt;&gt; /var/www/sub1/index.php
# echo &#039;&lt;?php echo &quot;Olá mundo do sub2e3!&quot;; ?&gt;&#039; &gt;&gt; /var/www/sub2e3/index.php
</pre>
<p>Verifique se não tem nenhum erro e restart:</p>
<pre class="remontti-code"># nginx -t
# systemctl restart nginx</pre>
<h3>phpMyAdmin</h3>
<pre class="remontti-code"># apt install phpmyadmin -y </pre>
<p>Não selecione nenhum, apenas <strong>OK</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_debian12.png" alt="" width="1239" height="424" class="alignnone size-full wp-image-7467" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_debian12.png 1239w, https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_debian12-300x103.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_debian12-1024x350.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_debian12-768x263.png 768w" sizes="auto, (max-width: 1239px) 100vw, 1239px" /></p>
<p>Responda <strong>Sim</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_debian12_nginx.png" alt="" width="1249" height="370" class="alignnone size-full wp-image-7468" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_debian12_nginx.png 1249w, https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_debian12_nginx-300x89.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_debian12_nginx-1024x303.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_debian12_nginx-768x228.png 768w" sizes="auto, (max-width: 1249px) 100vw, 1249px" /></p>
<p>Irá solicitar a senha para a base de dados <strong>phpmyadmin</strong>, informe sua <strong>senha e repita</strong>. </p>
<pre class="remontti-code"># vim /etc/nginx/sites-available/default</pre>
<p>Adicione as linhas destacadas:</p>
<pre class="remontti-code">server {
    listen 80;
    listen [::]:80;

    root /var/www/html;
    index index.php index.html index.htm;

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
    }

    location ^~ /phpmyadmin {
        root /usr/share;
        try_files $uri $uri/ =404;
        #allow  192.168.87.0/24;
        #allow  2001:0db8::/32;
        #deny   all;
        #error_page  403   http://www.remontti.com.br;
        location ~ .php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
        }
    }

}</pre>
<p>Se deseja tonar o phpmyadmin acessivel apenas de alguns endereços IPs basta descomentar as linhas, e incluir seus prefixos. O error_page é para que quando a o acessante levar um proibido seja direcionado para um site.</p>
<pre class="remontti-code">allow  192.168.87.0/24;
allow  2001:0db8::/32;
deny   all;
error_page  403   http://www.remontti.com.br;</pre>
<p>Verifique se não tem nenhum erro e restart:</p>
<pre class="remontti-code"># nginx -t
# systemctl restart nginx</pre>
<p>Acesse agora <strong>http://SERVIDOR/phpmyadmin</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_login.png" alt="" width="1523" height="556" class="alignnone size-full wp-image-7471" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_login.png 1523w, https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_login-300x110.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_login-1024x374.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_login-768x280.png 768w" sizes="auto, (max-width: 1523px) 100vw, 1523px" /></p>
<h4>Definindo senha para o root do mariaDB</h4>
<p>Por segurança vamos setar uma senha do usuario root do MariaDB</p>
<pre class="remontti-code"># mariadb -u root</pre>
<p>Para aumentar a seguraçã vamos definir uma senha para o usuário root do MariDB, não esqueça de alterar ALTERE_3ST4_SENHA pela sua senha. Dica acesse<a href="https://senhasegura.remontti.com.br/" rel="noopener" target="_blank"> https://senhasegura.remontti.com.br/</a> e gere uma!</p>
<pre class="remontti-code">USE mysql;
ALTER USER &#039;root&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;ALTERE_3ST4_SENHA&#039;;
FLUSH PRIVILEGES;
EXIT;
</pre>
<p>Apague seus rastros, em /root/.mysql_history temos um histórico com todos os comandos dado no terminal do MariaDB, então não é legal deixar lá em texto puro a senha que setamos!</p>
<pre class="remontti-code"># &gt; /root/.mysql_history</pre>
<p>Agora quando for acessar o mariadb será necessário informar a senha juntamente da opção <strong>-p</strong>.</p>
<pre class="remontti-code"># mariadb -u root -p</pre>
<pre class="remontti-code-plain">Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 46
Server version: 10.11.3-MariaDB-1 Debian 12

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type &#039;help;&#039; or &#039;\h&#039; for help. Type &#039;\c&#039; to clear the current input statement.

MariaDB [(none)]&gt; exit;
Bye
</pre>
<h3>Let&#8217;s Encrypt</h3>
<p>Criando certificado grátis para seus sub/domínios.</p>
<pre class="remontti-code"># apt install certbot python3-certbot-nginx</pre>
<p>Para gerar o certificado use o comando:</p>
<pre class="remontti-code"># certbot</pre>
<p>Não esqueça de colocar no seu cron para ele renovar o certificado, pois a cada 90 ele expira. Neste exemplo todo dia primeiro tento renovar.</p>
<pre class="remontti-code"># certbot -q renew</pre>
<p>Para testar acesse: <a href="https://www.cdn77.com/tls-test/" rel="noopener" target="_blank">https://www.cdn77.com/tls-test/</a><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste.png" data-rel="lightbox-gallery-7Djt3OyH" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-300x182.png" alt="" width="300" height="182" class="alignnone size-medium wp-image-6158" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-300x182.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-1024x620.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-768x465.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste.png 1099w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Gostou?</p>
<p>Gostou?</p>
<p><strong>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!</strong><br />
<a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a><br />
Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato <a href="https://blog.remontti.com.br/meucontato" rel="noopener noreferrer" target="_blank">clique aqui.</a></p>
<p><strong>Fontes:</strong> <a href="https://docs.nginx.com/" rel="noopener" target="_blank">https://docs.nginx.com/</a><br />
<a href="https://docs.nginx.com/nginx/admin-guide/web-server/web-server/" rel="noopener" target="_blank">https://docs.nginx.com/nginx/admin-guide/web-server/web-server/</a></p>
<p>O post <a href="https://blog.remontti.com.br/7460">Servidor WEB NGINX + PHP 8.2 + MariaDB + phpMyAdmin + Let’s Encrypt Debian 12 Bookworm (LNMP)</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/7460/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Instalando WordPress em seu Servidor LAMP</title>
		<link>https://blog.remontti.com.br/6029</link>
					<comments>https://blog.remontti.com.br/6029#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Mon, 01 Nov 2021 14:58:00 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[sites]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=6029</guid>

					<description><![CDATA[<p>O WordPress é um projeto de código aberto que você pode usar para criar sites, blogs ou aplicativos. O blog.remontti.com.br é feito com wordpress! Requisitos usados neste tutorial: &#8211; Distribuição: Instalação do Debian 11&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/6029">Instalando WordPress em seu Servidor LAMP</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/11/WordPress-Logo-300x169.png" alt="" width="300" height="169" class="alignnone size-medium wp-image-6032" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/11/WordPress-Logo-300x169.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/11/WordPress-Logo-1024x576.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/11/WordPress-Logo-768x432.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/11/WordPress-Logo-1536x864.png 1536w, https://blog.remontti.com.br/wp-content/uploads/2021/11/WordPress-Logo-2048x1152.png 2048w" sizes="auto, (max-width: 300px) 100vw, 300px" /></p>
<p>O <a href="https://br.wordpress.org/" rel="noopener" target="_blank"><strong>WordPress</strong></a> é um projeto de código aberto que você pode usar para criar sites, blogs ou aplicativos. O <a href="https://blog.remontti.com.br/" rel="noopener" target="_blank">blog.remontti.com.br</a> é feito com wordpress!</p>
<h4>Requisitos usados neste tutorial:</h4>
<p><strong>&#8211; Distribuição:</strong><br />
<a href="https://blog.remontti.com.br/5792" rel="noopener" target="_blank">Instalação do Debian 11 ou 10</a></p>
<p><strong>&#8211; Aplicações Web Apache + PHP7.x + MariaDB:</strong><br />
<a href="https://blog.remontti.com.br/5893" rel="noopener" target="_blank">Passo-a-passo como criar um servidor WEB Apache + PHP + MariaDB + phpMyAdmin + Let’s Encrypt no Debian 11 bullseye “LAMP”</a></p>
<p><strong>&#8211; Conhecimento em domínios virtuais:</strong><br />
<a href="https://blog.remontti.com.br/3464" rel="noopener" target="_blank">Como ter diversos sub/domínios no mesmo servidor? (Domínios virtuais com Apache2)</a></p>
<p><strong>&#8211; Aponte seu domínio/subdomínio no seu servidor DNS </strong><br />
<a href="https://blog.remontti.com.br/5958" rel="noopener" target="_blank">Servidor DNS Bind9 – Recursivo + Autoritativo DNSSEC + Reverso + RPZ + Fail2ban + nftables + Zabbix no Debian 11 Bullseye</a></p>
<h4>Modelo de configuração Apache</h4>
<p>Como exemplo usarei: <em>blog.remontti.com.br</em></p>
<pre class="remontti-code"># vim /etc/apache2/sites-available/blog.remontti.com.br.conf</pre>
<pre class="remontti-code-plain">&lt;virtualhost *:80&gt;
        ServerName blog.remontti.com.br
        ServerAdmin noc@remontti.com.br
 
        DocumentRoot /var/www/blog.remontti.com.br
 
        &lt;directory /var/www/blog.remontti.com.br/ &gt;
                Options FollowSymLinks
                AllowOverride All
        &lt;/directory&gt; 
 
        LogLevel warn 
        ErrorLog ${APACHE_LOG_DIR}/error_blog.remontti.com.br.conf.log
        CustomLog ${APACHE_LOG_DIR}/access_blog.remontti.com.br.conf.log combined
&lt;/virtualhost&gt;</pre>
<pre class="remontti-code"># mkdir /var/www/blog.remontti.com.br/
# a2ensite blog.remontti.com.br.conf
# systemctl restart apache2</pre>
<h4>Pacotes necessários</h4>
<pre class="remontti-code"># apt install wget unzip</pre>
<h4>Instalando WordPress</h4>
<p>Acesse o diretório temporário do linux e baixe o WordPress</p>
<pre class="remontti-code"># cd /tmp/
# wget https://br.wordpress.org/latest-pt_BR.zip
# unzip latest-pt_BR.zip
# cd wordpress/</pre>
<p>Agora mova todos os arquivos para o diretório correspondente a seu domínio/sub.</p>
<pre class="remontti-code"># mv * /var/www/blog.remontti.com.br/</pre>
<p>Altere as permissões do diretório e todos os arquivos para o usuario do apache (www-data)</p>
<pre class="remontti-code"># chown www-data. /var/www/blog.remontti.com.br/ -R</pre>
<p>Agora crie seu banco de dados, para isso acesse com usuário root e vamos criar um novo banco chamado wordpress bem como um usuário para o wordpress, assim nosso &#8220;site&#8221; fica preso a este usuário, não seja &#8220;expertão&#8221; de me usar o root para a conexão do wordpress!</p>
<pre class="remontti-code"># mariadb -u root -p </pre>
<p>Não esqueça de alterar: SUA_SENHA</p>
<pre class="remontti-code-plain">CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO &#039;wordpress&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;SUA_SENHA&#039;;
FLUSH PRIVILEGES;
quit;</pre>
<h5>Seguimos agora com a instalação via web</h5>
<p><strong>Acessar seu domínio</strong>: &#8220;http://blog.remontti.com.br/&#8221; e clique em <strong>Vamos lá!</strong></p>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao.png" alt="" width="895" height="642" class="alignnone size-full wp-image-6035" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao.png 895w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao-300x215.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao-768x551.png 768w" sizes="auto, (max-width: 895px) 100vw, 895px" /></p>
<p>Preencha os dados de acordo com as <strong>configurações do banco de dados</strong> criadas anteriormente:</p>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf.png" alt="" width="868" height="644" class="alignnone size-full wp-image-6036" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf.png 868w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf-300x223.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf-768x570.png 768w" sizes="auto, (max-width: 868px) 100vw, 868px" /></p>
<p>Clique em <strong>Instalar</strong></p>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf1.png" alt="" width="838" height="296" class="alignnone size-full wp-image-6038" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf1.png 838w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf1-300x106.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf1-768x271.png 768w" sizes="auto, (max-width: 838px) 100vw, 838px" /></p>
<p>Preencha os dados do seu &#8220;site&#8221; bem como usuários para posteriormente acessar o painel de ADM e clique em <strong>Instalar WordPress</strong></p>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf2.png" alt="" width="868" height="887" class="alignnone size-full wp-image-6039" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf2.png 868w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf2-294x300.png 294w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf2-768x785.png 768w" sizes="auto, (max-width: 868px) 100vw, 868px" /></p>
<p>Parabéns <strong>WordPress instalado com sucesso!</strong>, clieque em <strong>Acessar</strong> para entrar no painel de ADM.</p>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf3.png" alt="" width="909" height="426" class="alignnone size-full wp-image-6040" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf3.png 909w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf3-300x141.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf3-768x360.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf3-520x245.png 520w" sizes="auto, (max-width: 909px) 100vw, 909px" /></p>
<p>Entre com usuário e senha da instalação.</p>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf4.png" alt="" width="916" height="502" class="alignnone size-full wp-image-6041" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf4.png 916w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf4-300x164.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf4-768x421.png 768w" sizes="auto, (max-width: 916px) 100vw, 916px" /></p>
<p>Pronto!</p>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf5.png" alt="" width="1916" height="946" class="alignnone size-full wp-image-6042" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf5.png 1916w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf5-300x148.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf5-1024x506.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf5-768x379.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf5-1536x758.png 1536w" sizes="auto, (max-width: 1916px) 100vw, 1916px" /></p>
<p>Sempre que desejar entrar no painel basta acessar: http://seudominio.x.y<strong>/wp-admin</strong></p>
<p>Espero que tenha gosta deste tutorial, ele fugiu um pouco dos temas abordados mas muitas pessoas me pedem. </p>
<p>Você encontrar centenas de videos no <a href="https://www.youtube.com/results?search_query=Whwordpress+tutorial+aprenda" rel="noopener" target="_blank">youtube ensinado a mexer com wordpress</a>. Conheço muitos amigos que ganham $$ fazendo sites com WordPress, bons estudos!</p>
<p><strong>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!</strong><br />
<a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a></p>
<p>Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato <a href="https://blog.remontti.com.br/meucontato" rel="noopener noreferrer" target="_blank">clique aqui.</a></p>
<p>O post <a href="https://blog.remontti.com.br/6029">Instalando WordPress em seu Servidor LAMP</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/6029/feed</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
		<item>
		<title>Servidor WEB NGINX + PHP + PostgreSQL + phpPgAdmin + Letsencrypt no Debian 11 Bullseye (LNPP)</title>
		<link>https://blog.remontti.com.br/5915</link>
					<comments>https://blog.remontti.com.br/5915#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Wed, 20 Oct 2021 18:45:33 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[7.4]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[Bullseye]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debian 11]]></category>
		<category><![CDATA[lnpp]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php7]]></category>
		<category><![CDATA[postgresql]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=5915</guid>

					<description><![CDATA[<p>Neste tutorial vamos configurar um servidor web com NGINX (lê-se “engine x”), o concorrente do Apache. NGINX é um servidor web (HTTP e IMAP/POP3/Proxy) rápido, leve e com inúmeras possibilidades de configuração para melhor&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/5915">Servidor WEB NGINX + PHP + PostgreSQL + phpPgAdmin + Letsencrypt no Debian 11 Bullseye (LNPP)</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/10/NGINX-LNNP_DEB_11.png" alt="" width="720" height="340" class="alignnone size-full wp-image-5927" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/NGINX-LNNP_DEB_11.png 720w, https://blog.remontti.com.br/wp-content/uploads/2021/10/NGINX-LNNP_DEB_11-300x142.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/10/NGINX-LNNP_DEB_11-520x245.png 520w" sizes="auto, (max-width: 720px) 100vw, 720px" /><br />
Neste tutorial vamos configurar um servidor web com NGINX (lê-se “engine x”), o concorrente do Apache. NGINX é um servidor web (HTTP e IMAP/POP3/Proxy) rápido, leve e com inúmeras possibilidades de configuração para melhor performance. O Apache, sem dúvidas, é o servidor web mais popular. No entanto, o NGINX a cada ano ganha mais popularidade e está sendo a preferência dos novos projetos. Também estarei instalando o banco de dados PostgreSQL e phpPgAdmin como gerenciador web. </p>
<p>Distribuição utilizada: <strong><a href="https://blog.remontti.com.br/5792" rel="noopener noreferrer" target="_blank">Debian 11 Bullseye / Instalação Limpa</a></strong></p>
<h3>NGINX 1.18</h3>
<p><a href="https://www.nginx.com" rel="noopener" target="_blank">https://www.nginx.com</a></p>
<pre class="remontti-code"># apt install nginx</pre>
<p>Acesse agora em seu navegador http://IP-SERVIDOR/<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1.png" alt="" width="1100" height="310" class="alignnone size-full wp-image-5467" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1.png 1100w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1-300x85.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1-1024x289.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1-768x216.png 768w" sizes="auto, (max-width: 1100px) 100vw, 1100px" /><br />
Se você acessar um diretório que não existe um erro dizendo que não existe, e junto informações que não é legal aparecer.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx2.png" alt="" width="1036" height="296" class="alignnone size-full wp-image-5468" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx2.png 1036w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx2-300x86.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx2-1024x293.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx2-768x219.png 768w" sizes="auto, (max-width: 1036px) 100vw, 1036px" /><br />
Vamos remover assinatura do nginx onde ele exibe a versão do mesmo. Ninguém precisa saber! Correto?</p>
<pre class="remontti-code"># sed -i &#039;s/# server_tokens/server_tokens/&#039; /etc/nginx/nginx.conf
# systemctl restart nginx</pre>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx3.png" alt="" width="712" height="157" class="alignnone size-full wp-image-5469" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx3.png 712w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx3-300x66.png 300w" sizes="auto, (max-width: 712px) 100vw, 712px" /></p>
<p>Pronto nosso NGINX está rodando! </p>
<h3>PostgreSQL</h3>
<pre class="remontti-code"># apt install postgresql postgresql-contrib</pre>
<p>Torne-se o usuário postgres, para poder criar o banco de dados.</p>
<pre class="remontti-code"># su - postgres</pre>
<p>Execute para entrar no terminal de comandos do banco.</p>
<pre class="remontti-code">$ psql</pre>
<p>Para definir a senha do usuário postgres e instalar o adminpack.</p>
<pre class="remontti-code">postgres=# \password postgres
Digite nova senha para postgres: 
Digite-a novamente:
postgres=# CREATE EXTENSION adminpack;
CREATE EXTENSION
postgres=# \q 
$ exit</pre>
<p>Ajustes no pg_hba.conf, assim toda alteração será necessaria validação do postgres com a senha que acabou de definir.</p>
<pre class="remontti-code"># vim /etc/postgresql/13/main/pg_hba.conf</pre>
<p>Altere as seguintes linhas: </p>
<pre class="remontti-code">local   all             postgres                                peer
local   all             all                                     peer</pre>
<p>Para:</p>
<pre class="remontti-code">local   all             postgres                                md5
local   all             all                                     md5</pre>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/postgres.png" alt="" width="1010" height="268" class="alignnone size-full wp-image-5501" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/postgres.png 1010w, https://blog.remontti.com.br/wp-content/uploads/2021/04/postgres-300x80.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/postgres-768x204.png 768w" sizes="auto, (max-width: 1010px) 100vw, 1010px" /><br />
Reinicie o postgres</p>
<pre class="remontti-code"># systemctl restart postgresql</pre>
<p>Volte para o postgres</p>
<pre class="remontti-code"># su - postgres</pre>
<p>Agora para toda ação será necessário autenticar.</p>
<pre class="remontti-code">$ psql 
Senha para usuário postgres: !!SUA_SENHA!!
psql (13.4 (Debian 13.4-0+deb11u1))
Type &quot;help&quot; for help.
postgres-# \q</pre>
<p>Para demonstração irei criar um banco/usuário teste, não esqueça de alterar a senha.</p>
<pre class="remontti-code">$ createuser --pwprompt teste
Digite a senha para a nova role: &lt;&lt; NOVA SENHA PARA O USUÁRIO TESTE
Digite-a novamente: &lt;&lt; REPITA
Senha: &lt;&lt; SENHA DO QUE SETOU ANTES  NO COMANDO &quot;\password postgres&quot;</pre>
<p>Agora crie o  banco e vincule ao usuário.</p>
<pre class="remontti-code">$ createdb -O teste meubd
Senha: &lt;&lt;&lt; SENHA DO POSTGRES </pre>
<p>Verifique se o mesmo foi criado.</p>
<pre class="remontti-code">$ psql -l 
Senha para usuário postgres: 
                               Lista dos bancos de dados
   Nome    |   Dono   | Codificação |   Collate   |    Ctype    | Privilégios de acesso 
-----------+----------+-------------+-------------+-------------+-----------------------
 meubd     | teste    | UTF8        | pt_BR.UTF-8 | pt_BR.UTF-8 | 
....
....</pre>
<p>Acessamos agora o bd teste.</p>
<pre class="remontti-code">$ psql -U teste -d meubd
Senha para usuário postgres: 
psql (11.11 (Debian 11.11-0+deb10u1))
Digite &quot;help&quot; para ajuda.

meubd=&gt;</pre>
<p>Vamos fazer uma "brincadeira" só para testar, criaremos uma tabela e inseriremos dados nela.</p>
<pre class="remontti-code">meubd=&gt; CREATE TABLE doacao ( id int,nome text, valor text );
meubd=&gt; INSERT INTO doacao (id,nome,valor) values (1,&#039;Rudimar Remontti&#039;,&#039;R$ 5,00&#039;); 
meubd=&gt; SELECT * FROM doacao;

 id |       nome       |  valor  
----+------------------+---------
  1 | Rudimar Remontti | R$ 5,00

meubd=&gt; \q</pre>
<p>Se deseja remover o banco/usuário teste.</p>
<pre class="remontti-code">$ dropdb meubd
Senha: &lt;&lt; SENHA DO POSTGRES
$ dropuser teste
Senha: &lt;&lt; SENHA DO POSTGRES</pre>
<p>Volte para root</p>
<pre class="remontti-code">$ exit</pre>
<h3>PHP 7.4</h3>
<p>Incluirei algumas extensões do PHP que são normalmente utilizada também na instalação.</p>
<pre class="remontti-code"># apt install php php-{fpm,cli,mysql,pear,gd,gmp,bcmath,mbstring,curl,xml,zip,json,pgsql}</pre>
<p>Agora vamos fazer a "integração" do PHP com o NGINX. Moveremos o arquivo defaul.</p>
<pre class="remontti-code"># mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.original</pre>
<p>Crie um novo:</p>
<pre class="remontti-code"># vim /etc/nginx/sites-available/default</pre>
<p>Ajuste:</p>
<pre class="remontti-code">server {
    listen 80;
    listen [::]:80;

    root /var/www/html;
    index index.php index.html index.htm;

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }
}</pre>
<p>Teste a configuração se não tem nada errado e restart os serviços:</p>
<pre class="remontti-code"># nginx -t
# systemctl restart nginx php7.4-fpm</pre>
<p>Vamos criar um arquivo em PHP para testa se nosso NGINX está interpretando o PHP.</p>
<pre class="remontti-code"># echo &#039;&lt;?php phpinfo();&#039; &gt;&gt; /var/www/html/teste.php</pre>
<p>Acesse em seu navegador <strong>http://IP-SERVIDOR/teste.php</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2021/10/php7.4_nginx.png" data-rel="lightbox-gallery-SEHa49c1" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/10/php7.4_nginx-300x279.png" alt="" width="300" height="279" class="alignnone size-medium wp-image-5921" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/php7.4_nginx-300x279.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/10/php7.4_nginx-768x713.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/10/php7.4_nginx.png 958w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><br />
<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Nosso servidor WEB com PHP está funcionando! </p>
<p>Exemplo para multiplos domínios/subdomínios </p>
<pre class="remontti-code"># vim /etc/nginx/sites-available/sub1.conf</pre>
<p>Neste ex: vou representar o <em>sub1.remontti.com.br</em></p>
<pre class="remontti-code">server {
    listen 80;
    listen [::]:80;

    root /var/www/sub1;
    index index.php index.html index.htm;

    add_header Strict-Transport-Security &quot;max-age=31536000; includeSubDomains&quot; always;

    server_name sub1.remontti.com.br;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }
}</pre>
<pre class="remontti-code"># vim /etc/nginx/sites-available/sub2e3.conf</pre>
<p>Neste ex: vou representar o <em>sub2.remontti.com.br</em> e <em>sub3.remontti.com.br</em></p>
<pre class="remontti-code">server {
    listen 80;
    listen [::]:80;

    root /var/www/sub2e3;
    index index.php index.html index.htm;

    server_name sub2.remontti.com.br sub3.remontti.com.br;

    add_header Strict-Transport-Security &quot;max-age=31536000; includeSubDomains&quot; always;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }
}</pre>
<p>Link os arquivos no diretório "/etc/nginx/sites-available"  que será carregado as novas configurações </p>
<pre class="remontti-code"># ln -s /etc/nginx/sites-available/sub1.conf /etc/nginx/sites-enabled/
# ln -s /etc/nginx/sites-available/sub2e3.conf /etc/nginx/sites-enabled/</pre>
<p>Crie os diretórios referente a cada <strong>server_name</strong>.</p>
<pre class="remontti-code"># mkdir /var/www/sub1
# mkdir /var/www/sub2e3
# echo &#039;&lt;?php echo &quot;Olá mundo do sub1!&quot;; ?&gt;&#039; &gt;&gt; /var/www/sub1/index.php
# echo &#039;&lt;?php echo &quot;Olá mundo do sub2e3!&quot;; ?&gt;&#039; &gt;&gt; /var/www/sub2e3/index.php
</pre>
<p>Verifique se não tem nenhum erro e reinicie o serviço:</p>
<pre class="remontti-code"># nginx -t
# systemctl restart nginx</pre>
<h3>phpPgAdmin</h3>
<p>O phppgadmin finalmente foiu atualizado para uma versão recente no repositório então iremos insta-lo via apt.</p>
<pre class="remontti-code"># apt install phppgadmin </pre>
<p>Ajustes no config.inc.php</p>
<pre class="remontti-code"># vim /usr/share/phppgadmin/conf/config.inc.php</pre>
<p>Localize as linhas e ajuste:</p>
<pre class="remontti-code">$conf[&#039;extra_login_security&#039;] = false;
$conf[&#039;owned_only&#039;] = true;</pre>
<p>Para torna-lo acessível altere o arquivo de configuração do seu NGINX, no exemplo vou colocar no arquivo default, mas você poderia estar configurando em seus domínios. </p>
<pre class="remontti-code"># vim /etc/nginx/sites-available/default</pre>
<p>Adicione as linhas destacadas:</p>
<pre class="remontti-code">server {
    listen 80;
    listen [::]:80;

    root /var/www/html;
    index index.php index.html index.htm;

    add_header Strict-Transport-Security &quot;max-age=31536000; includeSubDomains&quot; always;

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }

    location ^~ /phppgadmin {
        root /usr/share;
        try_files $uri $uri/ =404;

        #allow  192.168.87.0/24;
        #allow  2001:0db8::/32;
        #deny   all;
        #error_page  403   http://www.remontti.com.br;

        location ~ .php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        }

    }

}</pre>
<p>Se deseja tonar o phppgadmin acessível apenas de alguns endereços IPs (RECOMENDO) basta descomentar as linhas, e incluir seus prefixos. O error_page é para que quando a o acessante levar um proibido seja direcionado para um site.</p>
<pre class="remontti-code">allow  192.168.87.0/24;
allow  2001:0db8::/32;
deny   all;
error_page  403   http://www.remontti.com.br;</pre>
<p>Verifique se não tem nenhum erro e reinicie o serviço:</p>
<pre class="remontti-code"># nginx -t
# systemctl restart nginx</pre>
<p>Basta acessar <strong>http://IP-SERVIDOR/phppgadmin</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2021/10/phppgadmin.png" data-rel="lightbox-gallery-SEHa49c1" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/10/phppgadmin-300x144.png" alt="" width="300" height="144" class="alignnone size-medium wp-image-5925" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/phppgadmin-300x144.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/10/phppgadmin-768x369.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/10/phppgadmin.png 955w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<h3>:: Let's Encrypt ::</h3>
<p>Criando certificado grátis para seus sub/domínios.</p>
<pre class="remontti-code"># apt install certbot python3-certbot-nginx</pre>
<p>Para gerar o certificado use o comando:</p>
<pre class="remontti-code"># certbot</pre>
<p>Não esqueça de colocar no seu cron para ele renovar o certificado, pois a cada 90 ele expira. Neste exemplo todo dia primeiro tento renovar.</p>
<pre class="remontti-code"># certbot -q renew</pre>
<p>Dica, se desejar desativar o TLS1.0 e TLS1.1 após criar um certificado um arquivo é criado /etc/letsencrypt/options-ssl-apache.conf, então edite e inclua no SSLProtocol TLSv1 -TLSv1.1</p>
<pre class="remontti-code"># vim /etc/letsencrypt/options-ssl-nginx.conf</pre>
<p>Ficando</p>
<pre class="remontti-code">#ssl_protocols            all -SSLv2 -SSLv3
ssl_protocols             all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1</pre>
<p>Reinicie o Neginx:</p>
<pre class="remontti-code"># systemctl restart nginx</pre>
<p>Para testar acesse: <a href="https://www.cdn77.com/tls-test/" rel="noopener" target="_blank">https://www.cdn77.com/tls-test/</a><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste.png" data-rel="lightbox-gallery-SEHa49c1" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-300x182.png" alt="" width="300" height="182" class="alignnone size-medium wp-image-6158" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-300x182.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-1024x620.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-768x465.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste.png 1099w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Gostou?</p>
<p><strong>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!</strong><br />
<a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a><br />
Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato <a href="https://blog.remontti.com.br/meucontato" rel="noopener noreferrer" target="_blank">clique aqui.</a></p>
<p><strong>Fontes:</strong> <a href="https://docs.nginx.com/" rel="noopener" target="_blank">https://docs.nginx.com/</a><br />
<a href="https://docs.nginx.com/nginx/admin-guide/web-server/web-server/" rel="noopener" target="_blank">https://docs.nginx.com/nginx/admin-guide/web-server/web-server/</a></p>
<p>O post <a href="https://blog.remontti.com.br/5915">Servidor WEB NGINX + PHP + PostgreSQL + phpPgAdmin + Letsencrypt no Debian 11 Bullseye (LNPP)</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/5915/feed</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title>Instalação do Zabbix 5 LTS + Grafana 7/8 + NGINX + PostgreSQL + Notificação Telegram com Debian 10/11</title>
		<link>https://blog.remontti.com.br/5517</link>
					<comments>https://blog.remontti.com.br/5517#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Fri, 16 Apr 2021 20:08:16 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[Bullseye]]></category>
		<category><![CDATA[buster]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debian 11]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php-fpm]]></category>
		<category><![CDATA[postgres]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[telegram]]></category>
		<category><![CDATA[zabbix]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=5517</guid>

					<description><![CDATA[<p>O Zabbix é uma solução de nível enterprise, de código aberto. O Zabbix é um software que monitora vários parâmetros da rede, dos servidores e da saúde dos serviços. Utiliza-se de um mecanismo flexível&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/5517">Instalação do Zabbix 5 LTS + Grafana 7/8 + NGINX + PostgreSQL + Notificação Telegram com Debian 10/11</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/CAPA-ZABBIX-GRAFANA-POSTGRESQL.png" alt="" width="720" height="340" class="alignnone size-full wp-image-5530" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/CAPA-ZABBIX-GRAFANA-POSTGRESQL.png 720w, https://blog.remontti.com.br/wp-content/uploads/2021/04/CAPA-ZABBIX-GRAFANA-POSTGRESQL-300x142.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/CAPA-ZABBIX-GRAFANA-POSTGRESQL-520x245.png 520w" sizes="auto, (max-width: 720px) 100vw, 720px" /><br />
O <strong>Zabbix</strong> é uma solução de nível enterprise, de código aberto. O Zabbix é um software que monitora vários parâmetros da rede, dos servidores e da saúde dos serviços. Utiliza-se de um mecanismo flexível de notificação que permite configurar alertas por e-mail entre outros como Telegram, para praticamente qualquer evento. As notificações permitem que se reaja rapidamente à problemas no ambiente. O Zabbix oferece excelentes recursos de relatórios e visualização de dados armazenados. Isso faz com que o Zabbix seja a ferramenta ideal para planejamento de capacidade.<br />
O <strong>Grafana</strong> é um software livre que permite a visualização de formato de dados métricos. Ele permite criar painéis e gráficos a partir de várias fontes, mas aqui iremos vamos aprender a integra-lo com o Zabbix.</p>
<h4>Requisitos se Debian 10 Buster</h4>
<p>&#8211; <a href="https://blog.remontti.com.br/2966" rel="noopener noreferrer" target="_blank">* Debian 10 instalação limpa</a><br />
&#8211; <a href="https://blog.remontti.com.br/5487" rel="noopener" target="_blank">* Servidor WEB NGINX + PHP + PostgreSQL + phpPgAdmin + Letsencrypt</a> (Opcional phpPgAdmin + Letsencrypt)</p>
<h4>Requisitos se Debian 11 Bullseye </h4>
<p>&#8211; <a href="https://blog.remontti.com.br/5792" rel="noopener" target="_blank">Instalação do Debian 11 Bullseye limpa passo-a-passo</a><br />
&#8211; <a href="https://blog.remontti.com.br/5915" rel="noopener" target="_blank">Servidor WEB NGINX + PHP + PostgreSQL + phpPgAdmin + Letsencrypt no Debian 11 Bullseye (LNPP)</a></p>
<h1>Instalação do Zabbix</h1>
<p>Para instalação do Zabbix vamos incluir o repositório do oficial do Zabbix.</p>
<pre class="remontti-code"># su -
# cd /tmp
# apt install wget</pre>
<p><strong>Repositório Debian 10</strong></p>
<pre class="remontti-code"># wget https://repo.zabbix.com/zabbix/5.0/debian/pool/main/z/zabbix-release/zabbix-release_5.0-1+buster_all.deb
# dpkg -i zabbix-release_5.0-1+buster_all.deb</pre>
<p><strong>Repositório  Debian 11</strong></p>
<pre class="remontti-code"># wget https://repo.zabbix.com/zabbix/5.0/debian/pool/main/z/zabbix-release/zabbix-release_5.0-2+debian11_all.deb
# dpkg -i zabbix-release_5.0-2+debian11_all.deb</pre>
<p>Atualize o repositório e realize a instalação </p>
<pre class="remontti-code"># apt update ; apt upgrade
# apt install zabbix-server-pgsql zabbix-frontend-php zabbix-nginx-conf zabbix-agent</pre>
<p>Vamos criar uma base de dados chamada <strong>zabbix</strong> e um usuário também chamado de zabbix no PostgreSQL.<br />
Não esqueça de alterar a senha: Use o gerador de senha: <a href="https://senhasegura.remontti.com.br/" rel="noopener noreferrer" target="_blank">https://senhasegura.remontti.com.br/</a></p>
<pre class="remontti-code"># su - postgres
$ createuser --pwprompt zabbix
Digite a senha para a nova role:  &lt;SENHA ZABBIX&gt;
Digite-a novamente: &lt;SENHA ZABBIX&gt;
Senha: &lt;SENHA POSTGRES CASO TENHA DEFINIDO NA INSTALAÇÃO DO MESMO&gt;

$ createdb -O zabbix zabbix
Senha: &lt;SENHA POSTGRES&gt;</pre>
<p>Importe o esquema inicial e os dados. Você será solicitado a inserir a senha que foi criada anteriormente.</p>
<pre class="remontti-code">$ zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | psql -U zabbix -d zabbix &amp;&gt;/dev/null
Senha para usuário zabbix: : &lt;SENHA ZABBIX&gt;
$ exit</pre>
<p>Edite o arquivo zabbix_server.conf para informar os dados para conexão com do PostgreSQL.</p>
<pre class="remontti-code"># vim /etc/zabbix/zabbix_server.conf</pre>
<p>Procure por <strong># DBPassword=</strong> descomente e sete sua senha.</p>
<pre class="remontti-code">#...
DBPassword=&lt;SENHA ZABBIX&gt;
#...</pre>
<p>Ajuste o arquivo /etc/zabbix/php-fpm.conf, descomente e defina o fuso horário correto. <a href="https://secure.php.net/manual/pt_BR/timezones.america.php" rel="noopener noreferrer" target="_blank">timezone</a> Sua região</a>.</p>
<pre class="remontti-code"># vim /etc/zabbix/php-fpm.conf</pre>
<p>Exemplo:</p>
<pre class="remontti-code">; php_value[date.timezone] = Europe/Riga
php_value[date.timezone] = America/Sao_Paulo</pre>
<p>Este é modelo padrão, altere então para sua região, também irei alterar alguns valores padrões se quiser pode remover as conf do mod_php5.c </p>
<p>Ajuste as configurações do nginx.</p>
<pre class="remontti-code"># vim /etc/nginx/conf.d/zabbix.conf </pre>
<p>Deixei algumas linhas comentadas como exemplo, faça de acordo com sua necessidade.</p>
<pre class="remontti-code">server {
        listen 80;
        listen [::]:80;
        server_name    zabbix.remontti.com.br localhost;
        #server_name   OU_SEU_IP;

        # Metodo simples para quem quer rodar em uma determinada porta
        #listen 8181;
        #listen [::]:8181;
        #server_name     _;

        root    /usr/share/zabbix;
        index   index.php;

        # Desmomente para deixar restringido apenas para determinados prefixos
        #allow  192.168.87.0/24;
        #allow  127.0.0.1;
        #allow  2001:0db8::/32;
        #allow  ::1;
        #deny   all;
        #error_page  403   http://www.remontti.com.br;
 
        location = /favicon.ico {
                log_not_found   off;
        }

        location / {
                try_files       $uri $uri/ =404;
        }

        location /assets {
                access_log      off;
                expires         10d;
        }

        location ~ /\.ht {
                deny            all;
        }

        location ~ /(api\/|conf[^\.]|include|locale) {
                deny            all;
                return          404;
        }

        location ~ [^/]\.php(/|$) {
                fastcgi_pass    unix:/var/run/php/zabbix.sock;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_index   index.php;

                fastcgi_param   DOCUMENT_ROOT   /usr/share/zabbix;
                fastcgi_param   SCRIPT_FILENAME /usr/share/zabbix$fastcgi_script_name;
                fastcgi_param   PATH_TRANSLATED /usr/share/zabbix$fastcgi_script_name;

                include fastcgi_params;
                fastcgi_param   QUERY_STRING    $query_string;
                fastcgi_param   REQUEST_METHOD  $request_method;
                fastcgi_param   CONTENT_TYPE    $content_type;
                fastcgi_param   CONTENT_LENGTH  $content_length;

                fastcgi_intercept_errors        on;
                fastcgi_ignore_client_abort     off;
                fastcgi_connect_timeout         60;
                fastcgi_send_timeout            180;
                fastcgi_read_timeout            180;
                fastcgi_buffer_size             128k;
                fastcgi_buffers                 4 256k;
                fastcgi_busy_buffers_size       256k;
                fastcgi_temp_file_write_size    256k;
        }
}
</pre>
<p>Inicie o servidor Zabbix e os processos do agente e configure-os para que sejam iniciados durante o boot do sistema.</p>
<pre class="remontti-code"># systemctl enable zabbix-server zabbix-agent</pre>
<p><strong>Debian 10</strong></p>
<pre class="remontti-code"># systemctl restart zabbix-server zabbix-agent nginx php7.3-fpm</pre>
<p><strong>Debian 11</strong></p>
<pre class="remontti-code"># systemctl restart zabbix-server zabbix-agent nginx php7.4-fpm</pre>
<p>Acesse em seu navegador <strong>http://seu_ip:porta</strong> ou <strong>http://zabbix.seudominio.com.br</strong></p>
<p><strong>Next Step</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/1.png" alt="" width="1325" height="698" class="alignnone size-full wp-image-5519" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/1.png 1325w, https://blog.remontti.com.br/wp-content/uploads/2021/04/1-300x158.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/1-1024x539.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/1-768x405.png 768w" sizes="auto, (max-width: 1325px) 100vw, 1325px" /></p>
<p>Se tudo estiver ok: <strong>Next step</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/05/zb5-2.png" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/05/zb5-2.png" alt="" width="1213" height="1224" class="aligncenter size-full wp-image-4359" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/05/zb5-2.png 1213w, https://blog.remontti.com.br/wp-content/uploads/2020/05/zb5-2-297x300.png 297w, https://blog.remontti.com.br/wp-content/uploads/2020/05/zb5-2-1015x1024.png 1015w, https://blog.remontti.com.br/wp-content/uploads/2020/05/zb5-2-150x150.png 150w, https://blog.remontti.com.br/wp-content/uploads/2020/05/zb5-2-768x775.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/05/zb5-2-80x80.png 80w" sizes="auto, (max-width: 1213px) 100vw, 1213px" /></a></p>
<p>Selecione <strong>PostgreSQL</strong> e informe a <strong>senha do usuário zabbix </strong>criada anteriormente, clique em <strong>Next step</strong>.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/3.png" alt="" width="1325" height="698" class="alignnone size-full wp-image-5520" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/3.png 1325w, https://blog.remontti.com.br/wp-content/uploads/2021/04/3-300x158.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/3-1024x539.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/3-768x405.png 768w" sizes="auto, (max-width: 1325px) 100vw, 1325px" /></p>
<p><strong>Next step</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/05/zb5-4.png" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/05/zb5-4.png" alt="" width="1220" height="685" class="aligncenter size-full wp-image-4361" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/05/zb5-4.png 1220w, https://blog.remontti.com.br/wp-content/uploads/2020/05/zb5-4-300x168.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/05/zb5-4-1024x575.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/05/zb5-4-768x431.png 768w" sizes="auto, (max-width: 1220px) 100vw, 1220px" /></a></p>
<p><strong>Next step</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/5.png" alt="" width="1325" height="698" class="alignnone size-full wp-image-5521" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/5.png 1325w, https://blog.remontti.com.br/wp-content/uploads/2021/04/5-300x158.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/5-1024x539.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/5-768x405.png 768w" sizes="auto, (max-width: 1325px) 100vw, 1325px" /></p>
<p><strong>Finish</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/05/zb5-6.png" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/05/zb5-6.png" alt="" width="1220" height="685" class="aligncenter size-full wp-image-4363" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/05/zb5-6.png 1220w, https://blog.remontti.com.br/wp-content/uploads/2020/05/zb5-6-300x168.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/05/zb5-6-1024x575.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/05/zb5-6-768x431.png 768w" sizes="auto, (max-width: 1220px) 100vw, 1220px" /></a></p>
<p>Entre com Usuário <strong>Admin</strong> e senha <strong>zabbix</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/05/zb5-7.png" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/05/zb5-7.png" alt="" width="1220" height="685" class="aligncenter size-full wp-image-4364" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/05/zb5-7.png 1220w, https://blog.remontti.com.br/wp-content/uploads/2020/05/zb5-7-300x168.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/05/zb5-7-1024x575.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/05/zb5-7-768x431.png 768w" sizes="auto, (max-width: 1220px) 100vw, 1220px" /></a></p>
<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/05/zb5-8.png" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/05/zb5-8.png" alt="" width="1401" height="1137" class="aligncenter size-full wp-image-4365" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/05/zb5-8.png 1401w, https://blog.remontti.com.br/wp-content/uploads/2020/05/zb5-8-300x243.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/05/zb5-8-1024x831.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/05/zb5-8-768x623.png 768w" sizes="auto, (max-width: 1401px) 100vw, 1401px" /></a></p>
<p>Para dexa-lo em Português / Tema escuro:<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/05/zabbix-black.png" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/05/zabbix-black.png" alt="" width="1680" height="836" class="aligncenter size-full wp-image-4388" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/05/zabbix-black.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2020/05/zabbix-black-300x149.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/05/zabbix-black-1024x510.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/05/zabbix-black-768x382.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/05/zabbix-black-1536x764.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a></p>
<hr>
<p><strong><font color="red">Possível bug na instalação</font></strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/BUG_ZABBIX.jpg" alt="" width="1264" height="446" class="alignnone size-full wp-image-5704" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/BUG_ZABBIX.jpg 1264w, https://blog.remontti.com.br/wp-content/uploads/2021/04/BUG_ZABBIX-300x106.jpg 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/BUG_ZABBIX-1024x361.jpg 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/BUG_ZABBIX-768x271.jpg 768w" sizes="auto, (max-width: 1264px) 100vw, 1264px" /><br />
Caso se deparar com essa tela não se assuste, faça o seguinte:</p>
<pre class="remontti-code"># touch /etc/zabbix/web/zabbix.conf.php
# chown www-data. /etc/zabbix/web/zabbix.conf.php</pre>
<p>De um [Back]  depois [Next] q é sucesso!</p>
<hr>
<h1>Alertas no Telegram</h1>
<p>No Zabbix 5 temos o Telegram/Webhook, então bora aprender mexer nisso! Mas antes de mais nada será necessário criarmos um bot no Telegram.</p>
<p><strong>Criando Bot no telegram</strong></p>
<p>Abra o Telegram e procure por <a href="https://t.me/BotFather" rel="noopener noreferrer" target="_blank"><strong>@BotFather</strong></a>.<br />
Inicie a conversa com ele.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram1.jpg" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram1-169x300.jpg" alt="" width="169" height="300" class="alignnone size-medium wp-image-2823" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram1-169x300.jpg 169w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram1-576x1024.jpg 576w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram1.jpg 720w" sizes="auto, (max-width: 169px) 100vw, 169px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram2.jpg" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram2-169x300.jpg" alt="" width="169" height="300" class="alignnone size-medium wp-image-2826" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram2-169x300.jpg 169w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram2-576x1024.jpg 576w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram2.jpg 720w" sizes="auto, (max-width: 169px) 100vw, 169px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram3.jpg" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram3-169x300.jpg" alt="" width="169" height="300" class="alignnone size-medium wp-image-2827" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram3-169x300.jpg 169w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram3-576x1024.jpg 576w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram3.jpg 720w" sizes="auto, (max-width: 169px) 100vw, 169px" /></a></p>
<p>&#8211; Digite o comando <strong>/newbot</strong> para iniciar a criação de um novo bot.<br />
&#8211; Após o comando você vai dar um nome para seu bot. Ex.: <em>&#8220;Bot Legal RR&#8221;</em>.<br />
&#8211; Em seguida é necessário digitar o nome de usuário para o bot, sendo obrigatório terminar com <strong>bot</strong>. Ex.: <em>&#8220;legallrr_bot&#8221;</em>.<br />
&#8211; Ao finalizar você receber informações com seu TOKEN, que vamos utilizar em seguida.</p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram4.jpg" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram4-169x300.jpg" alt="" width="169" height="300" class="alignnone size-medium wp-image-2830" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram4-169x300.jpg 169w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram4-576x1024.jpg 576w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram4.jpg 720w" sizes="auto, (max-width: 169px) 100vw, 169px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram5.jpg" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram5-169x300.jpg" alt="" width="169" height="300" class="alignnone size-medium wp-image-2833" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram5-169x300.jpg 169w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram5-576x1024.jpg 576w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram5.jpg 720w" sizes="auto, (max-width: 169px) 100vw, 169px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram6.jpg" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram6-169x300.jpg" alt="" width="169" height="300" class="alignnone size-medium wp-image-2835" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram6-169x300.jpg 169w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram6-576x1024.jpg 576w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram6.jpg 720w" sizes="auto, (max-width: 169px) 100vw, 169px" /></a></p>
<p>Neste exemplo nosso token para acessar a API HTTP ficou:<br />
<strong>757396508:AAHpaoyVN-95maOCax1vDPDQBnSaZd9P5r0</strong></p>
<p>Agora que o token abra o menu <strong>Administração</strong> &#8211;> <strong>Tipos de mídias</strong></p>
<p>Localize o Telegram e clique nele<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-1.png" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-1.png" alt="" width="1680" height="968" class="aligncenter size-full wp-image-4386" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-1.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-1-300x173.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-1-1024x590.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-1-768x443.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-1-1536x885.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a></p>
<p>Edite o ParseMode para HTML e Token para o token q você acabou de criar. Marque Process tags.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-2.png" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-2.png" alt="" width="1680" height="885" class="aligncenter size-full wp-image-4387" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-2.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-2-300x158.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-2-1024x539.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-2-768x405.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-2-1536x809.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a></p>
<p>Neste momento que escrevo na própria descrição da mídia telegram ele recomenda você add o bot @myidbot para descobrir o seu ID, mas parace que este bot está &#8220;dormindo&#8221;. Vamos ao metodos tradicional. Você pode receber notificações direta do seu bot ou então adiciono-lo em um grupo. </p>
<p>Procure pelo seu bot e comece uma conversa com ele e envie uma mensagem de teste para o mesmo, pois vamos precisar descobrir o ID do seu usuário, para que ele possa lhe enviar as mensagens.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram7.jpg" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram7-169x300.jpg" alt="" width="169" height="300" class="alignnone size-medium wp-image-2837" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram7-169x300.jpg 169w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram7-576x1024.jpg 576w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram7.jpg 720w" sizes="auto, (max-width: 169px) 100vw, 169px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram8.jpg" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram8-169x300.jpg" alt="" width="169" height="300" class="alignnone size-medium wp-image-2838" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram8-169x300.jpg 169w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram8-576x1024.jpg 576w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram8.jpg 720w" sizes="auto, (max-width: 169px) 100vw, 169px" /></a></p>
<p>Abra em seu seu navegador a seguinte URL <em>https://api.telegram.org/bot<strong>TOKEN</strong>/getUpdates</em> para descobrir o ID do usuário que enviou a mensagem ou de um grupo.<br />
Ex.: <font size="2"><em>https://api.telegram.org/bot<strong><font color="red">757396508:AAHpaoyVN-95maOCax1vDPDQBnSaZd9P5r0</font></strong>/getUpdates</em></font></p>
<p><strong>:: Chat privado ::</strong></p>
<pre class="remontti-code">{&quot;ok&quot;:true,&quot;result&quot;:[{
	&quot;update_id&quot;:649208620,&quot;message&quot;:{
		&quot;message_id&quot;:2,&quot;from&quot;:{&quot;id&quot;:221122111,&quot;is_bot&quot;:false,&quot;first_name&quot;:&quot;Rudimar&quot;,&quot;last_name&quot;:&quot;Remontti&quot;,&quot;username&quot;:&quot;remontti&quot;,&quot;language_code&quot;:&quot;pt-br&quot;},
		&quot;chat&quot;:{&quot;id&quot;:999999999,&quot;first_name&quot;:&quot;Rudimar&quot;,&quot;last_name&quot;:&quot;Remontti&quot;,&quot;username&quot;:&quot;remontti&quot;,&quot;type&quot;:&quot;private&quot;},
		&quot;date&quot;:1541210279,&quot;text&quot;:&quot;Testando&quot;
	}
}]}</pre>
<p>ID do chat privado: <strong>999999999</strong></p>
<p>Se desejar criar um grupo também, basta adicionar seu bot a ele, após adiciona-lo envia uma mensagem como <strong>/teste</strong> para que possamos coletar o ID do grupo.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram9.jpg" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram9-169x300.jpg" alt="" width="169" height="300" class="alignnone size-medium wp-image-2843" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram9-169x300.jpg 169w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram9-576x1024.jpg 576w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram9.jpg 720w" sizes="auto, (max-width: 169px) 100vw, 169px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram10.jpg" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram10-169x300.jpg" alt="" width="169" height="300" class="alignnone size-medium wp-image-2844" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram10-169x300.jpg 169w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram10-576x1024.jpg 576w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram10.jpg 720w" sizes="auto, (max-width: 169px) 100vw, 169px" /></a></p>
<p><strong>:: Chat em Grupo ::</strong></p>
<pre class="remontti-code">{&quot;ok&quot;:true,&quot;result&quot;:[{
	&quot;update_id&quot;:649208622,&quot;message&quot;:{&quot;message_id&quot;:4,&quot;from&quot;:{
		&quot;id&quot;:221122111,&quot;is_bot&quot;:false,&quot;first_name&quot;:&quot;Rudimar&quot;,&quot;last_name&quot;:&quot;Remontti&quot;,&quot;username&quot;:&quot;remontti&quot;,&quot;language_code&quot;:&quot;pt-br&quot;},
		&quot;chat&quot;:{&quot;id&quot;:-88888888888,&quot;title&quot;:&quot;Grupo Legal&quot;,&quot;type&quot;:&quot;group&quot;,&quot;all_members_are_administrators&quot;:true
	},&quot;date&quot;:1541210975,&quot;text&quot;:&quot;/teste&quot;,&quot;entities&quot;:[{&quot;offset&quot;:0,&quot;length&quot;:6,&quot;type&quot;:&quot;bot_command&quot;}
}]}</pre>
<p>ID do chat grupo: <strong>-88888888888</strong></p>
<p>Atenção para os <strong>grupos</strong> que sempre tem um sinal &#8220;-&#8221; na frente do ID.</p>
<p>Com o ID do grupo/usuário precisamos vincular ao usuário do Zabbix (Neste caso Admin)<br />
<strong>Administração</strong> ⇒ <strong>Usuários</strong> Clique no usuário <strong>Admin</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-3.png" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-3.png" alt="" width="1680" height="541" class="aligncenter size-full wp-image-4389" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-3.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-3-300x97.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-3-1024x330.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-3-768x247.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-3-1536x495.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a></p>
<p>Com as opções do usuário aberto clique na aba <strong>Mídia</strong> em seguita clique no <strong>Adicionar</strong>, selecione o Tipo Telegram e insira o em Enviar para o ID.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-5.png" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-5.png" alt="" width="1680" height="624" class="aligncenter size-full wp-image-4390" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-5.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-5-300x111.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-5-1024x380.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-5-768x285.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-5-1536x571.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a> </p>
<p>Atualize<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-6.png" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-6.png" alt="" width="1680" height="269" class="aligncenter size-full wp-image-4391" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-6.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-6-300x48.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-6-1024x164.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-6-768x123.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-6-1536x246.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a></p>
<p>Agora vamos criar a ação que fará o envios dos alertas.<br />
<strong>Configurações</strong> ⇒ <strong>Ações</strong> ⇒ <strong>Criar ação</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-7.png" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-7.png" alt="" width="1680" height="495" class="aligncenter size-full wp-image-4392" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-7.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-7-300x88.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-7-1024x302.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-7-768x226.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-7-1536x453.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a></p>
<p>De um nome para sua ação<br />
Em Condição clique em adicionar: Selecione <strong>Incidente suprimido</strong> e marque <strong>Não</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-8.png" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-8.png" alt="" width="1680" height="527" class="aligncenter size-full wp-image-4393" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-8.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-8-300x94.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-8-1024x321.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-8-768x241.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-8-1536x482.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a></p>
<p>Na aba <strong>Operações</strong> primeiro item <strong>Operações</strong> clique em <strong>adicionar</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-9.png" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-9.png" alt="" width="1680" height="470" class="aligncenter size-full wp-image-4394" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-9.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-9-300x84.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-9-1024x286.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-9-768x215.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-9-1536x430.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a></p>
<p><strong>Enviar para usuário</strong>: Selecione o <strong>Admin</strong><br />
Enviar apenas para: <strong>Telegram</strong><br />
Marque <strong>Custom message</strong>, preencha com:<br />
<strong>Assunto</strong>:</p>
<pre class="remontti-code"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Problema: &lt;b&gt;{HOST.NAME}&lt;/b&gt;</pre>
<p><strong>Mensagem</strong></p>
<pre class="remontti-code">&lt;code&gt;{EVENT.NAME}&lt;/code&gt;
&lt;b&gt;{ITEM.NAME1}&lt;/b&gt; &lt;i&gt;{ITEM.VALUE1}&lt;/i&gt;

Tempo do evento: {EVENT.AGE} 
&lt;a href=&quot;{HOST.IP}&quot;&gt;{HOST.IP}&lt;/a&gt;
&lt;i&gt;{EVENT.SEVERITY}&lt;/i&gt;</pre>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-10.png" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-10.png" alt="" width="1680" height="836" class="aligncenter size-full wp-image-4395" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-10.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-10-300x149.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-10-1024x510.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-10-768x382.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-10-1536x764.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a></p>
<p>No item <strong>Operações de recuperação</strong> faremos praticamente o mesmo:</p>
<p><strong>Assunto</strong>:</p>
<pre class="remontti-code"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Resolvido: &lt;b&gt;{HOST.NAME}&lt;/b&gt;</pre>
<p><strong>Mensagem padrão</strong></p>
<pre class="remontti-code">&lt;code&gt;{EVENT.NAME}&lt;/code&gt;
&lt;b&gt;{ITEM.NAME1}&lt;/b&gt; &lt;i&gt;{ITEM.VALUE1}&lt;/i&gt;

Tempo do evento: {EVENT.AGE} 
&lt;a href=&quot;{HOST.IP}&quot;&gt;{HOST.IP}&lt;/a&gt;
&lt;i&gt;{EVENT.SEVERITY}&lt;/i&gt;
ID&#039;s: {ITEM.ID}/{EVENT.ID}</pre>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-11.png" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-11.png" alt="" width="1680" height="836" class="aligncenter size-full wp-image-4396" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-11.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-11-300x149.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-11-1024x510.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-11-768x382.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-11-1536x764.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a></p>
<p>No item <strong>Operações de atualização</strong><br />
<strong>Assunto</strong>:</p>
<pre class="remontti-code">Problema atualizado: {EVENT.NAME}</pre>
<p><strong>Mensagem padrão</strong></p>
<pre class="remontti-code">{USER.FULLNAME} {EVENT.UPDATE.ACTION} problema em {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.
{EVENT.UPDATE.MESSAGE}
O status atual do problema é {EVENT.STATUS}, reconhecido: {EVENT.ACK.STATUS}.</pre>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-12.png" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-12.png" alt="" width="1680" height="836" class="aligncenter size-full wp-image-4397" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-12.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-12-300x149.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-12-1024x510.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-12-768x382.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-12-1536x764.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a></p>
<p>Operações configurada, clique em atualizar.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-13.png" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-13.png" alt="" width="1680" height="544" class="aligncenter size-full wp-image-4398" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-13.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-13-300x97.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-13-1024x332.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-13-768x249.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/05/tele-13-1536x497.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a></p>
<p>Pronto! Agora precisamos gerar um incidente para ver se nosso alerta será enviado para o Telegram.</p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-telegram-bot-14.png" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-telegram-bot-14-576x1024.png" alt="" width="576" height="1024" class="alignnone size-large wp-image-3080" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-telegram-bot-14-576x1024.png 576w, https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-telegram-bot-14-169x300.png 169w, https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-telegram-bot-14.png 720w" sizes="auto, (max-width: 576px) 100vw, 576px" /></a></p>
<p>O sistema de envio de mensagem está concluído! <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<h1>Grafana v7/v8</h1>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana.png" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana.png" alt="" width="1680" height="1050" class="aligncenter size-full wp-image-4367" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-300x188.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-1024x640.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-768x480.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-1536x960.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a><br />
Pacotes necessários:</p>
<pre class="remontti-code"># apt install gnupg2 apt-transport-https software-properties-common wget</pre>
<p><strong>Para versão 7.5.x:</strong> (Não recomendado)</p>
<pre class="remontti-code"># cd /tmp/
# wget https://dl.grafana.com/oss/release/grafana_7.5.11_amd64.deb
# apt install ./grafana_7.5.11_amd64.deb
# grafana-cli plugins update-all
# systemctl restart grafana-server</pre>
<p><strong>Para versão 8.2.x:</strong> (Não recomendado)</p>
<pre class="remontti-code"># cd /tmp/
# wget https://dl.grafana.com/oss/release/grafana_8.2.7_amd64.deb
# apt install ./grafana_8.2.7_amd64.deb
# grafana-cli plugins update-all
# systemctl restart grafana-server</pre>
<p>Outras versões consulte <a href="https://grafana.com/grafana/download?edition=oss" rel="noopener" target="_blank">https://grafana.com/grafana/download?edition=oss</a></p>
<p><strong>Para Ultima versão v8.X:</strong> (Recomendado)<br />
Vamos baixar a key do repositório e adiciona-lo </p>
<pre class="remontti-code"># wget -q -O - https://packages.grafana.com/gpg.key | apt-key add -
# echo &quot;deb https://packages.grafana.com/oss/deb stable main&quot; | tee -a /etc/apt/sources.list.d/grafana.list</pre>
<p>Atualize o repositório e instale o grafana</p>
<pre class="remontti-code"># apt update
# apt install grafana</pre>
<p>Antes de iniciar o grafana, se deseja alterar a porta padrão <strong>3000</strong> (recomendo) edite:</p>
<pre class="remontti-code"># vim /etc/grafana/grafana.ini</pre>
<p>Localize <strong>http_port</strong> e defina a porta de sua escolha.</p>
<pre class="remontti-code"># The http port  to use
;http_port = 3000</pre>
<p>Exemplo:</p>
<pre class="remontti-code">http_port = 53000</pre>
<p>Instale o <strong>Plugin Zabbix</strong></p>
<pre class="remontti-code"># grafana-cli plugins install alexanderzobnin-zabbix-app</pre>
<p>É recomendado que mensalmente você faça atualizações dos plugins instalados, com o comando:</p>
<pre class="remontti-code"># grafana-cli plugins update-all</pre>
<p>Agora sim colocamos o Grafana para iniciar junto com a inicialização, ativamos e inicializamos o serviço:</p>
<pre class="remontti-code"># systemctl daemon-reload
# systemctl enable grafana-server
# systemctl start grafana-server</pre>
<p>Acesse em seu navegador <strong>http://IP_URL:3000</strong> ou pela porta que você alterou. O nome de usuário padrão é admin e a senha padrão é admin.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-1.png" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-1.png" alt="" width="1370" height="781" class="aligncenter size-full wp-image-4368" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-1.png 1370w, https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-1-300x171.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-1-1024x584.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-1-768x438.png 768w" sizes="auto, (max-width: 1370px) 100vw, 1370px" /></a></p>
<p>Ao fazer login pela primeira vez, você será solicitado a alterar sua senha.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-2.png" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-2.png" alt="" width="1370" height="732" class="aligncenter size-full wp-image-4369" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-2.png 1370w, https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-2-300x160.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-2-1024x547.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-2-768x410.png 768w" sizes="auto, (max-width: 1370px) 100vw, 1370px" /></a></p>
<p>Uhull <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-3.png" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-3.png" alt="" width="1370" height="720" class="aligncenter size-full wp-image-4370" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-3.png 1370w, https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-3-300x158.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-3-1024x538.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-3-768x404.png 768w" sizes="auto, (max-width: 1370px) 100vw, 1370px" /></a></p>
<h4>Integração do grafana com o Zabbix</h4>
<p>Acesse o Configuration &#8211;> Plugins:<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-7.png" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-7.png" alt="" width="1366" height="633" class="aligncenter size-full wp-image-4374" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-7.png 1366w, https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-7-300x139.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-7-1024x475.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-7-768x356.png 768w" sizes="auto, (max-width: 1366px) 100vw, 1366px" /></a></p>
<p>Localize o Zabbix e clique no mesmo<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-5.png" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-5.png" alt="" width="1370" height="688" class="aligncenter size-full wp-image-4372" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-5.png 1370w, https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-5-300x151.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-5-1024x514.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-5-768x386.png 768w" sizes="auto, (max-width: 1370px) 100vw, 1370px" /></a></p>
<p>Agora ative clicando em <strong>Enable</strong>.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-6.png" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-6.png" alt="" width="1370" height="688" class="aligncenter size-full wp-image-4373" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-6.png 1370w, https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-6-300x151.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-6-1024x514.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-6-768x386.png 768w" sizes="auto, (max-width: 1370px) 100vw, 1370px" /></a></p>
<p>Volte em Configuration &#8211;> Data Sources<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-8.png" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-8.png" alt="" width="1366" height="633" class="aligncenter size-full wp-image-4375" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-8.png 1366w, https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-8-300x139.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-8-1024x475.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-8-768x356.png 768w" sizes="auto, (max-width: 1366px) 100vw, 1366px" /></a></p>
<p>Clique em <strong>Add data source</strong>.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-9.png" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-9.png" alt="" width="1370" height="639" class="aligncenter size-full wp-image-4376" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-9.png 1370w, https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-9-300x140.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-9-1024x478.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-9-768x358.png 768w" sizes="auto, (max-width: 1370px) 100vw, 1370px" /></a></p>
<p>Uma nova tela com varias fontes, localize Zabbix e clique em <strong>Select</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-10.png" data-rel="lightbox-gallery-8OHz2qHg" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-10.png" alt="" width="1370" height="639" class="aligncenter size-full wp-image-4377" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-10.png 1370w, https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-10-300x140.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-10-1024x478.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/05/grafana-10-768x358.png 768w" sizes="auto, (max-width: 1370px) 100vw, 1370px" /></a></p>
<p>Nas opções <strong>HTTP</strong> em <strong>URL</strong> informe o endereço do seu servidor Zabbix <strong>http://IP_URL/api_jsonrpc.php</strong>. Em <strong>Access</strong> selecione <strong>Browser</strong>. Em <strong>Zabbix API details</strong> informe seu usuário e senha do Zabbix e selecione a versão correspondente.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/graf-a.png" alt="" width="1043" height="1384" class="alignnone size-full wp-image-5524" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/graf-a.png 1043w, https://blog.remontti.com.br/wp-content/uploads/2021/04/graf-a-226x300.png 226w, https://blog.remontti.com.br/wp-content/uploads/2021/04/graf-a-772x1024.png 772w, https://blog.remontti.com.br/wp-content/uploads/2021/04/graf-a-768x1019.png 768w" sizes="auto, (max-width: 1043px) 100vw, 1043px" /></p>
<p>Role até o final e e clique em <strong>Save &#038; Test</strong> Se tudo ocorreu bem uma altera positivo com<strong>&#8220;Zabbix API version: 5.x.x&#8221;</strong> aparecerá.</p>
<p>Você pode também pode fazer uma conexão PostgreSQL com o banco de dados do zabbix, para tornar as coisas mais rápidas. Para isso basta &#8220;Add data source&#8221; pesquisar por PostgreSQL, então basta informa nome do banco, usuário e senha.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/graf-b.png" alt="" width="1043" height="1320" class="alignnone size-full wp-image-5525" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/graf-b.png 1043w, https://blog.remontti.com.br/wp-content/uploads/2021/04/graf-b-237x300.png 237w, https://blog.remontti.com.br/wp-content/uploads/2021/04/graf-b-809x1024.png 809w, https://blog.remontti.com.br/wp-content/uploads/2021/04/graf-b-768x972.png 768w" sizes="auto, (max-width: 1043px) 100vw, 1043px" /></p>
<p>Vá para as configurações do data source do zabbix, localize <strong>Direct DB Connection</strong>, ative-o e selecione <strong>PostgreSQL</strong>.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/graf-c.png" alt="" width="1040" height="501" class="alignnone size-full wp-image-5526" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/graf-c.png 1040w, https://blog.remontti.com.br/wp-content/uploads/2021/04/graf-c-300x145.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/graf-c-1024x493.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/graf-c-768x370.png 768w" sizes="auto, (max-width: 1040px) 100vw, 1040px" /></p>
<p>Agora vem a parte mais &#8220;chata/legal&#8221; que é você montar seus gráficos, como isso é algo bem peculiar de cada um, o intuito aqui era ensinar instalar. Recomendo a leitura de <a href="https://alexanderzobnin.github.io/grafana-zabbix/guides/gettingstarted/" rel="noopener noreferrer" target="_blank">Introdução ao Grafana-Zabbix</a> do autor do plugin.</p>
<h3>Bônus &#8211; Proxy Nginx grafana</h3>
<pre class="remontti-code"># vim /etc/nginx/sites-available/grafana.conf</pre>
<p>Adicione:</p>
<pre class="remontti-code">server {
    listen 80;
    listen [::]:80;

    server_name grafana.remontti.com.br;
  
    location / {
        proxy_pass http://localhost:53000;
        proxy_set_header   Host $host;
    }
}</pre>
<p>Cria o link para sites-enabled em seguida verifique as configurações e reinicie o serviço.</p>
<pre class="remontti-code"># ln -s /etc/nginx/sites-available/grafana.conf /etc/nginx/sites-enabled/
# nginx -t
# systemctl restart nginx</pre>
<p>Simples né? Gostou e quer me ajudar? <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><strong>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!</strong><br />
<a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a></p>
<p>Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato <a href="https://blog.remontti.com.br/meucontato" rel="noopener noreferrer" target="_blank">clique aqui.</a></p>
<p>Abraço!</p>
<p>Fontes:<br />
https://www.zabbix.com/download<br />
https://www.zabbix.com/documentation/<br />
https://grafana.com/docs/grafana/latest/installation/debian/<br />
https://grafana.com/grafana/plugins/alexanderzobnin-zabbix-app<br />
https://alexanderzobnin.github.io/grafana-zabbix/configuration/<br />
https://core.telegram.org/bots</p>
<p>O post <a href="https://blog.remontti.com.br/5517">Instalação do Zabbix 5 LTS + Grafana 7/8 + NGINX + PostgreSQL + Notificação Telegram com Debian 10/11</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/5517/feed</wfw:commentRss>
			<slash:comments>28</slash:comments>
		
		
			</item>
		<item>
		<title>Servidor WEB NGINX + PHP + PostgreSQL + phpPgAdmin + Letsencrypt no Debian 10 Buster (LNPP)</title>
		<link>https://blog.remontti.com.br/5487</link>
					<comments>https://blog.remontti.com.br/5487#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Wed, 07 Apr 2021 20:56:22 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[buster]]></category>
		<category><![CDATA[certificado]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debian 10]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[letsencrypt]]></category>
		<category><![CDATA[LNMP]]></category>
		<category><![CDATA[lnpp]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[pgadmin]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php-fpm]]></category>
		<category><![CDATA[phpMyAdmin]]></category>
		<category><![CDATA[phppgadmin]]></category>
		<category><![CDATA[postgres]]></category>
		<category><![CDATA[postgresql]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=5487</guid>

					<description><![CDATA[<p>Neste tutorial vamos configurar um servidor web com NGINX (lê-se “engine x”), o concorrente do Apache. NGINX é um servidor web (HTTP e IMAP/POP3/Proxy) rápido, leve e com inúmeras possibilidades de configuração para melhor&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/5487">Servidor WEB NGINX + PHP + PostgreSQL + phpPgAdmin + Letsencrypt no Debian 10 Buster (LNPP)</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/NGINX-LNNP.png" alt="" width="720" height="340" class="alignnone size-full wp-image-5514" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/NGINX-LNNP.png 720w, https://blog.remontti.com.br/wp-content/uploads/2021/04/NGINX-LNNP-300x142.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/NGINX-LNNP-520x245.png 520w" sizes="auto, (max-width: 720px) 100vw, 720px" /><br />
Neste tutorial vamos configurar um servidor web com NGINX (lê-se “engine x”), o concorrente do Apache. NGINX é um servidor web (HTTP e IMAP/POP3/Proxy) rápido, leve e com inúmeras possibilidades de configuração para melhor performance. O Apache, sem dúvidas, é o servidor web mais popular. No entanto, o NGINX a cada ano ganha mais popularidade e está sendo a preferência dos novos projetos. Também estarei instalando o banco de dados PostgreSQL e phpPgAdmin como gerenciador web. </p>
<p>Distribuição utilizada: <strong><a href="https://blog.remontti.com.br/2966" rel="noopener noreferrer" target="_blank">Debian 10 Stretch / Instalação Limpa</a></strong></p>
<h3>NGINX</h3>
<p><a href="https://www.nginx.com" rel="noopener" target="_blank">https://www.nginx.com</a></p>
<pre class="remontti-code"># apt install nginx</pre>
<p>Acesse agora em seu navegador http://IP-SERVIDOR/<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1.png" alt="" width="1100" height="310" class="alignnone size-full wp-image-5467" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1.png 1100w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1-300x85.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1-1024x289.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1-768x216.png 768w" sizes="auto, (max-width: 1100px) 100vw, 1100px" /><br />
Se você acessar um diretório que não existe um erro dizendo que não existe, e junto informações que não é legal aparecer.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx2.png" alt="" width="1036" height="296" class="alignnone size-full wp-image-5468" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx2.png 1036w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx2-300x86.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx2-1024x293.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx2-768x219.png 768w" sizes="auto, (max-width: 1036px) 100vw, 1036px" /><br />
Vamos remover assinatura do nginx onde ele exibe a versão do mesmo. Ninguém precisa saber! Correto?</p>
<pre class="remontti-code"># sed -i &#039;s/# server_tokens/server_tokens/&#039; /etc/nginx/nginx.conf
# systemctl restart nginx</pre>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx3.png" alt="" width="712" height="157" class="alignnone size-full wp-image-5469" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx3.png 712w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx3-300x66.png 300w" sizes="auto, (max-width: 712px) 100vw, 712px" /></p>
<p>Pronto nosso NGINX está rodando! </p>
<h3>PostgreSQL</h3>
<pre class="remontti-code"># apt install postgresql postgresql-contrib</pre>
<p>Torne-se o usuário postgres, para poder criar o banco de dados.</p>
<pre class="remontti-code"># su - postgres</pre>
<p>Execute para entrar no terminal de comandos do banco.</p>
<pre class="remontti-code">$ psql</pre>
<p>Para definir a senha do usuário postgres e instalar o adminpack.</p>
<pre class="remontti-code">postgres=# \password postgres
Digite nova senha para postgres: 
Digite-a novamente:
postgres=# CREATE EXTENSION adminpack;
CREATE EXTENSION
postgres=# \q 
$ exit</pre>
<p>Ajustes no pg_hba.conf, assim toda alteração será necessaria validação do postgres com a senha que acabou de definir.</p>
<pre class="remontti-code"># vim /etc/postgresql/11/main/pg_hba.conf</pre>
<p>Altere as seguintes linhas: </p>
<pre class="remontti-code">local   all             postgres                                peer
local   all             all                                     peer</pre>
<p>Para:</p>
<pre class="remontti-code">local   all             postgres                                md5
local   all             all                                     md5</pre>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/postgres.png" alt="" width="1010" height="268" class="alignnone size-full wp-image-5501" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/postgres.png 1010w, https://blog.remontti.com.br/wp-content/uploads/2021/04/postgres-300x80.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/postgres-768x204.png 768w" sizes="auto, (max-width: 1010px) 100vw, 1010px" /><br />
Reinicie o postgres</p>
<pre class="remontti-code"># systemctl restart postgresql</pre>
<p>Volte para o postgres</p>
<pre class="remontti-code"># su - postgres</pre>
<p>Agora para toda ação será necessário autenticar.</p>
<pre class="remontti-code">$ psql 
Senha para usuário postgres: !!SUA_SENHA!!
psql (11.11 (Debian 11.11-0+deb10u1))
Digite &quot;help&quot; para ajuda.
postgres-# \q</pre>
<p>Para demonstração irei criar um banco/usuário teste, não esqueça de alterar a senha.</p>
<pre class="remontti-code">$ createuser --pwprompt teste
Digite a senha para a nova role: &lt;&lt; NOVA SENHA PARA O USUÁRIO TESTE
Digite-a novamente: &lt;&lt; REPITA
Senha: &lt;&lt; SENHA DO QUE SETOU ANTES  NO COMANDO &quot;\password postgres&quot;</pre>
<p>Agora crie o  banco e vincule ao usuário.</p>
<pre class="remontti-code">$ createdb -O teste meubd
Senha: &lt;&lt;&lt; SENHA DO POSTGRES </pre>
<p>Verifique se o mesmo foi criado.</p>
<pre class="remontti-code">$ psql -l 
Senha para usuário postgres: 
                               Lista dos bancos de dados
   Nome    |   Dono   | Codificação |   Collate   |    Ctype    | Privilégios de acesso 
-----------+----------+-------------+-------------+-------------+-----------------------
 meubd     | teste    | UTF8        | pt_BR.UTF-8 | pt_BR.UTF-8 | 
....
....</pre>
<p>Acessamos agora o bd teste.</p>
<pre class="remontti-code">$ psql -U teste -d meubd
Senha para usuário postgres: 
psql (11.11 (Debian 11.11-0+deb10u1))
Digite &quot;help&quot; para ajuda.

meubd=&gt;</pre>
<p>Vamos fazer uma "brincadeira" só para testar, criaremos uma tabela e inseriremos dados nela.</p>
<pre class="remontti-code">meubd=&gt; CREATE TABLE doacao ( id int,nome text, valor text );
meubd=&gt; INSERT INTO doacao (id,nome,valor) values (1,&#039;Rudimar Remontti&#039;,&#039;R$ 5,00&#039;); 
meubd=&gt; SELECT * FROM doacao;

 id |       nome       |  valor  
----+------------------+---------
  1 | Rudimar Remontti | R$ 5,00

meubd=&gt; \q</pre>
<p>Se deseja remover o banco/usuário teste.</p>
<pre class="remontti-code">$ dropdb meubd
$ dropuser teste</pre>
<p>Volte para root</p>
<pre class="remontti-code">$ exit</pre>
<h3>PHP7</h3>
<p>Incluirei algumas extensões do PHP que são normalmente utilizada também na instalação.</p>
<pre class="remontti-code"># apt install php php-{fpm,cli,mysql,pear,gd,gmp,bcmath,mbstring,curl,xml,zip,json,pgsql}</pre>
<p>Agora vamos fazer a "integração" do PHP com o NGINX. Moveremos o arquivo defaul.</p>
<pre class="remontti-code"># mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.original</pre>
<p>Crie um novo:</p>
<pre class="remontti-code"># vim /etc/nginx/sites-available/default</pre>
<p>Ajuste:</p>
<pre class="remontti-code">server {
    listen 80;
    listen [::]:80;

    root /var/www/html;
    index index.php index.html index.htm;

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
    }
}</pre>
<p>Teste a configuração se não tem nada errado e restart os serviços:</p>
<pre class="remontti-code"># nginx -t
# systemctl restart nginx php7.3-fpm</pre>
<p>Vamos criar um arquivo em PHP para testa se nosso NGINX está interpretando o PHP.</p>
<pre class="remontti-code"># echo &#039;&lt;?php phpinfo();&#039; &gt;&gt; /var/www/html/teste.php</pre>
<p>Acesse em seu navegador http://IP-SERVIDOR/teste.php<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx-php7.png" alt="" width="1173" height="899" class="alignnone size-full wp-image-5473" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx-php7.png 1173w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx-php7-300x230.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx-php7-1024x785.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx-php7-768x589.png 768w" sizes="auto, (max-width: 1173px) 100vw, 1173px" /><br />
<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Nosso servidor WEB com PHP está funcionando! </p>
<p>Exemplo para multiplos domínios/subdomínios </p>
<pre class="remontti-code"># vim /etc/nginx/sites-available/sub1.conf</pre>
<p>Neste ex: vou representar o <em>sub1.remontti.com.br</em></p>
<pre class="remontti-code">server {
    listen 80;
    listen [::]:80;

    root /var/www/sub1;
    index index.php index.html index.htm;

    server_name sub1.remontti.com.br;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
    }
}</pre>
<pre class="remontti-code"># vim /etc/nginx/sites-available/sub2e3.conf</pre>
<p>Neste ex: vou representar o <em>sub2.remontti.com.br</em> e <em>sub3.remontti.com.br</em></p>
<pre class="remontti-code">server {
    listen 80;
    listen [::]:80;

    root /var/www/sub2e3;
    index index.php index.html index.htm;

    server_name sub2.remontti.com.br sub3.remontti.com.br;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
    }
}</pre>
<p>Link os arquivos no diretório "/etc/nginx/sites-available"  que será carregado as novas configurações </p>
<pre class="remontti-code"># ln -s /etc/nginx/sites-available/sub1.conf /etc/nginx/sites-enabled/
# ln -s /etc/nginx/sites-available/sub2e3.conf /etc/nginx/sites-enabled/</pre>
<p>Crie os diretórios referente a cada <strong>server_name</strong>.</p>
<pre class="remontti-code"># mkdir /var/www/sub1
# mkdir /var/www/sub2e3
# echo &#039;&lt;?php echo &quot;Olá mundo do sub1!&quot;; ?&gt;&#039; &gt;&gt; /var/www/sub1/index.php
# echo &#039;&lt;?php echo &quot;Olá mundo do sub2e3!&quot;; ?&gt;&#039; &gt;&gt; /var/www/sub2e3/index.php
</pre>
<p>Verifique se não tem nenhum erro e reinicie o serviço:</p>
<pre class="remontti-code"># nginx -t
# systemctl restart nginx</pre>
<h3>phpPgAdmin</h3>
<p>O phppgadmin até pode ser instalado via apt, porém seu empacotamento esta na versão 5, vou baixar a versão mais recente direta do <a href="https://github.com/phppgadmin/phppgadmin/releases" rel="noopener" target="_blank">https://github.com/phppgadmin/phppgadmin/releases</a> hoje (abril 2021) na versão 7.13.0</p>
<pre class="remontti-code"># apt install wget 
# cd /tmp/
# wget https://github.com/phppgadmin/phppgadmin/releases/download/REL_7-13-0/phpPgAdmin-7.13.0.tar.gz
# tar vxf phpPgAdmin-7.13.0.tar.gz
# mv /tmp/phpPgAdmin-7.13.0 /usr/share/phppgadmin</pre>
<p>Ajustes no config.inc.php</p>
<pre class="remontti-code"># vim /usr/share/phppgadmin/conf/config.inc.php</pre>
<p>Localize as linhas e ajuste:</p>
<pre class="remontti-code">$conf[&#039;servers&#039;][0][&#039;host&#039;] = &#039;localhost&#039;;
$conf[&#039;extra_login_security&#039;] = false;
$conf[&#039;owned_only&#039;] = true;</pre>
<p>Para torna-lo acessível altere o arquivo de configuração do seu NGINX, no exemplo vou colocar no arquivo default, mas você poderia estar configurando em seus domínios. </p>
<pre class="remontti-code"># vim /etc/nginx/sites-available/default</pre>
<p>Adicione as linhas destacadas:</p>
<pre class="remontti-code">server {
    listen 80;
    listen [::]:80;

    root /var/www/html;
    index index.php index.html index.htm;

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
    }

    location ^~ /phppgadmin {
        root /usr/share;
        try_files $uri $uri/ =404;

        #allow  192.168.87.0/24;
        #allow  2001:0db8::/32;
        #deny   all;
        #error_page  403   http://www.remontti.com.br;

        location ~ .php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
        }

    }

}</pre>
<p>Se deseja tonar o phppgadmin acessível apenas de alguns endereços IPs (RECOMENDO) basta descomentar as linhas, e incluir seus prefixos. O error_page é para que quando a o acessante levar um proibido seja direcionado para um site.</p>
<pre class="remontti-code">allow  192.168.87.0/24;
allow  2001:0db8::/32;
deny   all;
error_page  403   http://www.remontti.com.br;</pre>
<p>Verifique se não tem nenhum erro e reinicie o serviço:</p>
<pre class="remontti-code"># nginx -t
# systemctl restart nginx</pre>
<p>Basta acessar http://IP-SERVIDOR/phppgadmin<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/phppgadmin7.png" alt="" width="1033" height="340" class="alignnone size-full wp-image-5495" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/phppgadmin7.png 1033w, https://blog.remontti.com.br/wp-content/uploads/2021/04/phppgadmin7-300x99.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/phppgadmin7-1024x337.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/phppgadmin7-768x253.png 768w" sizes="auto, (max-width: 1033px) 100vw, 1033px" /><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/postgres2.png" alt="" width="1401" height="576" class="alignnone size-full wp-image-5511" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/postgres2.png 1401w, https://blog.remontti.com.br/wp-content/uploads/2021/04/postgres2-300x123.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/postgres2-1024x421.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/postgres2-768x316.png 768w" sizes="auto, (max-width: 1401px) 100vw, 1401px" /></p>
<h3>LETSENCRYPT</h3>
<p>Criando certificado valido para nossos domínios.</p>
<pre class="remontti-code"># apt install letsencrypt python-certbot-nginx</pre>
<p>Tenha seu(s) domínio(s) configurado em /etc/nginx/sites-enabled/</p>
<pre class="remontti-code"># letsencrypt</pre>
<p>Retorno do questionário:</p>
<pre class="remontti-code">Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter &#039;c&#039; to
cancel): dev@null.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let&#039;s Encrypt project and the non-profit
organization that develops Certbot? We&#039;d like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: N

Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: sub1.remontti.com.br
2: sub2.remontti.com.br   &lt;&lt; CASO VOCÊ TENHA MAIS DE UM SUB CONFIGURADO
3: sub3.remontti.com.br    &lt;&lt; IRÁ APARECER AQUI 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter &#039;c&#039; to cancel): 1 &lt;&lt; ESCOLHA QUAIS VC DESEJA
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for sub1.remontti.com.br
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/sub1.conf

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you&#039;re confident your site works on HTTPS. You can undo this
change by editing your web server&#039;s configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press &#039;c&#039; to cancel): 2 &lt;&lt; SE QUISER FORCAR SEMPRE HTTPS
Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/sub1.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled
https://sub1.remontti.com.br

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=sub1.remontti.com.br
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/sub1.remontti.com.br/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/sub1.remontti.com.br/privkey.pem
   Your cert will expire on 2021-07-05. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the &quot;certonly&quot; option. To non-interactively renew *all* of
   your certificates, run &quot;certbot renew&quot;
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let&#039;s Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le
</pre>
<p>Você pode também criar o certificado diretamente para um domínio. </p>
<pre class="remontti-code"># letsencrypt --authenticator standalone --installer nginx -d sub1.remontti.com.br</pre>
<p>Dica, se desejar desativar o TLS1.0 e TLS1.1 após criar um certificado um arquivo é criado /etc/letsencrypt/options-ssl-apache.conf, então edite e inclua no SSLProtocol TLSv1 -TLSv1.1</p>
<pre class="remontti-code"># vim /etc/letsencrypt/options-ssl-apache.conf</pre>
<p>Ficando</p>
<pre class="remontti-code">#SSLProtocol            all -SSLv2 -SSLv3
SSLProtocol             all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1</pre>
<p>Reinicie o Apache:</p>
<pre class="remontti-code"># systemctl restart apache2</pre>
<p>Para testar acesse: <a href="https://www.cdn77.com/tls-test/" rel="noopener" target="_blank">https://www.cdn77.com/tls-test/</a><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste.png" data-rel="lightbox-gallery-lPdAH8nU" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-300x182.png" alt="" width="300" height="182" class="alignnone size-medium wp-image-6158" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-300x182.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-1024x620.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-768x465.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste.png 1099w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Não esqueça de colocar no seu cron para ele renovar o certificado, pois a cada 90 ele expira. Neste exemplo todo dia primeiro tento renovar.</p>
<pre class="remontti-code"># echo &#039;00 00   1 * *   root    /usr/bin/certbot -q renew&#039; &gt;&gt; /etc/crontab
# systemctl restart cron</pre>
<p>Caso não renovar apenas rode o comando letsencrypt novamente. </p>
<p>Gostou?</p>
<p><strong>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!</strong><br />
<a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a><br />
Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato <a href="https://blog.remontti.com.br/meucontato" rel="noopener noreferrer" target="_blank">clique aqui.</a></p>
<p><strong>Fontes:</strong> <a href="https://docs.nginx.com/" rel="noopener" target="_blank">https://docs.nginx.com/</a><br />
<a href="https://docs.nginx.com/nginx/admin-guide/web-server/web-server/" rel="noopener" target="_blank">https://docs.nginx.com/nginx/admin-guide/web-server/web-server/</a></p>
<p>O post <a href="https://blog.remontti.com.br/5487">Servidor WEB NGINX + PHP + PostgreSQL + phpPgAdmin + Letsencrypt no Debian 10 Buster (LNPP)</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/5487/feed</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>Servidor WEB NGINX + PHP + MariaDB + phpMyAdmin + Letsencrypt no Debian 10 Buster (LNMP)</title>
		<link>https://blog.remontti.com.br/5465</link>
					<comments>https://blog.remontti.com.br/5465#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Wed, 07 Apr 2021 00:44:49 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[LNMP]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php-fpm]]></category>
		<category><![CDATA[phpMyAdmin]]></category>
		<category><![CDATA[webserver]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=5465</guid>

					<description><![CDATA[<p>Neste tutorial vamos configurar um servidor web com NGINX (lê-se “engine x”), o concorrente do Apache. NGINX é um servidor web (HTTP e IMAP/POP3/Proxy) rápido, leve e com inúmeras possibilidades de configuração para melhor&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/5465">Servidor WEB NGINX + PHP + MariaDB + phpMyAdmin + Letsencrypt no Debian 10 Buster (LNMP)</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/NGINX.png" alt="" width="720" height="340" class="alignnone size-full wp-image-5485" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/NGINX.png 720w, https://blog.remontti.com.br/wp-content/uploads/2021/04/NGINX-300x142.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/NGINX-520x245.png 520w" sizes="auto, (max-width: 720px) 100vw, 720px" /><br />
Neste tutorial vamos configurar um servidor web com NGINX (lê-se “engine x”), o concorrente do Apache. NGINX é um servidor web (HTTP e IMAP/POP3/Proxy) rápido, leve e com inúmeras possibilidades de configuração para melhor performance. O Apache, sem dúvidas, é o servidor web mais popular. No entanto, o NGINX a cada ano ganha mais popularidade e está sendo a preferência dos novos projetos.</p>
<p>Distribuição utilizada: <strong><a href="https://blog.remontti.com.br/2966" rel="noopener noreferrer" target="_blank">Debian 10 Stretch / Instalação Limpa</a></strong></p>
<h3>NGINX</h3>
<p><a href="https://www.nginx.com" rel="noopener" target="_blank">https://www.nginx.com</a></p>
<pre class="remontti-code"># apt install nginx</pre>
<p>Acesse agora em seu navegador http://IP-SERVIDOR/<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1.png" alt="" width="1100" height="310" class="alignnone size-full wp-image-5467" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1.png 1100w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1-300x85.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1-1024x289.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1-768x216.png 768w" sizes="auto, (max-width: 1100px) 100vw, 1100px" /><br />
Se você acessar um diretório que não existe um erro dizendo que não existe, e junto informações que não é legal aparecer.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx2.png" alt="" width="1036" height="296" class="alignnone size-full wp-image-5468" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx2.png 1036w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx2-300x86.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx2-1024x293.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx2-768x219.png 768w" sizes="auto, (max-width: 1036px) 100vw, 1036px" /><br />
Vamos remover assinatura do nginx onde ele exibe a versão do mesmo. Ninguém precisa saber! Correto?</p>
<pre class="remontti-code"># sed -i &#039;s/# server_tokens/server_tokens/&#039; /etc/nginx/nginx.conf
# systemctl restart nginx</pre>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx3.png" alt="" width="712" height="157" class="alignnone size-full wp-image-5469" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx3.png 712w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx3-300x66.png 300w" sizes="auto, (max-width: 712px) 100vw, 712px" /></p>
<p>Pronto nosso NGINX está rodando! </p>
<h3>MARIADB</h3>
<p>MariaDB para quem ainda não sabe é um fork do MySQL, criado pelo próprio fundador do projeto MySQL após sua aquisição pela Oracle.</p>
<pre class="remontti-code"># apt install mariadb-server mariadb-client</pre>
<p>Por segurança vamos setar uma senha do </p>
<pre class="remontti-code"># mariadb -u root</pre>
<p>Não use a mesma senha do seu servidor, crie uma nova totalmente diferente! Dica acesse<a href="https://senhasegura.remontti.com.br/" rel="noopener" target="_blank"> https://senhasegura.remontti.com.br/</a> e gere uma!</p>
<pre class="remontti-code">USE mysql;
UPDATE user SET password=PASSWORD(&#039;SENHA&#039;) WHERE User=&#039;root&#039;;
UPDATE user SET plugin=&quot;mysql_native_password&quot;;
FLUSH PRIVILEGES;
quit;</pre>
<p>Agora quando for acessar o mariadb será necessário informar a senha.</p>
<pre class="remontti-code"># mariadb -u root -p</pre>
<h3>PHP7</h3>
<p>Incluirei algumas extensões do PHP que são normalmente utilizada também na instalação.</p>
<pre class="remontti-code"># apt install php php-{fpm,cli,mysql,pear,gd,gmp,bcmath,mbstring,curl,xml,zip,json}</pre>
<p>Agora vamos fazer a &#8220;integração&#8221; do PHP com o NGINX. Moveremos o arquivo defaul.</p>
<pre class="remontti-code"># mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.original</pre>
<p>Crie um novo:</p>
<pre class="remontti-code"># vim /etc/nginx/sites-available/default</pre>
<p>Ajuste:</p>
<pre class="remontti-code">server {
    listen 80;
    listen [::]:80;

    root /var/www/html;
    index index.php index.html index.htm;

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
    }
}</pre>
<p>Teste a configuração se não tem nada errado e restart os serviços:</p>
<pre class="remontti-code"># nginx -t
# systemctl restart nginx php7.3-fpm</pre>
<p>Vamos criar um arquivo em PHP para testa se nosso NGINX está interpretando o PHP.</p>
<pre class="remontti-code"># echo &#039;&lt;?php phpinfo();&#039; &gt;&gt; /var/www/html/teste.php</pre>
<p>Acesse em seu navegador http://IP-SERVIDOR/teste.php<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx-php7.png" alt="" width="1173" height="899" class="alignnone size-full wp-image-5473" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx-php7.png 1173w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx-php7-300x230.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx-php7-1024x785.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx-php7-768x589.png 768w" sizes="auto, (max-width: 1173px) 100vw, 1173px" /><br />
<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Nosso servidor WEB com PHP está funcionando! </p>
<p>Exemplo para multiplos domínios/subdomínios </p>
<pre class="remontti-code"># vim /etc/nginx/sites-available/sub1.conf</pre>
<p>Neste ex: vou representar o <em>sub1.remontti.com.br</em></p>
<pre class="remontti-code">server {
    listen 80;
    listen [::]:80;

    root /var/www/sub1;
    index index.php index.html index.htm;

    server_name sub1.remontti.com.br;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
    }
}</pre>
<pre class="remontti-code"># vim /etc/nginx/sites-available/sub2e3.conf</pre>
<p>Neste ex: vou representar o <em>sub2.remontti.com.br</em> e <em>sub3.remontti.com.br</em></p>
<pre class="remontti-code">server {
    listen 80;
    listen [::]:80;

    root /var/www/sub2e3;
    index index.php index.html index.htm;

    server_name sub2.remontti.com.br sub3.remontti.com.br;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
    }
}</pre>
<p>Link os arquivos no diretório &#8220;/etc/nginx/sites-available&#8221;  que será carregado as novas configurações </p>
<pre class="remontti-code"># ln -s /etc/nginx/sites-available/sub1.conf /etc/nginx/sites-enabled/
# ln -s /etc/nginx/sites-available/sub2e3.conf /etc/nginx/sites-enabled/</pre>
<p>Crie os diretórios referente a cada <strong>server_name</strong>.</p>
<pre class="remontti-code"># mkdir /var/www/sub1
# mkdir /var/www/sub2e3
# echo &#039;&lt;?php echo &quot;Olá mundo do sub1!&quot;; ?&gt;&#039; &gt;&gt; /var/www/sub1/index.php
# echo &#039;&lt;?php echo &quot;Olá mundo do sub2e3!&quot;; ?&gt;&#039; &gt;&gt; /var/www/sub2e3/index.php
</pre>
<p>Verifique se não tem nenhum erro e restart:</p>
<pre class="remontti-code"># nginx -t
# systemctl restart nginx</pre>
<h3>phpMyAdmin</h3>
<p>Cade ele do repositório? O PHPMyAdmin não está mais disponível como pacote .deb no Debian 10. Fazendo um pesquisa o motivo é que o &#8220;pessoal&#8221; que faz empacotamento não tem uma versão estável. <a href="https://security-tracker.debian.org/tracker/CVE-2018-19968" rel="noopener noreferrer" target="_blank">https://security-tracker.debian.org/tracker/CVE-2018-19968</a><br />
Desta forma debian &#8220;obriga&#8221; com que o usuário instale-o a partir da fonte. <a href="https://www.phpmyadmin.net/downloads/" rel="noopener noreferrer" target="_blank">https://www.phpmyadmin.net/downloads/</a></p>
<pre class="remontti-code"># apt install wget
# cd /tmp/
# wget https://files.phpmyadmin.net/phpMyAdmin/5.1.0/phpMyAdmin-5.1.0-all-languages.tar.gz
# tar -vxzf phpMyAdmin-5.1.0-all-languages.tar.gz -C /usr/share/
# mv /usr/share/phpMyAdmin-5.1.0-all-languages /usr/share/phpmyadmin
# mkdir /etc/phpmyadmin
# touch /etc/phpmyadmin/htpasswd.setup
# mkdir -p /var/lib/phpmyadmin/tmp
# chown www-data. /var/lib/phpmyadmin/ -R</pre>
<p>Para nosso phpmyadmin funcionar corretamente precisamos criar um banco de dados para ele, e por segurança vamos tb criar um usuário só para ele.</p>
<pre class="remontti-code"># mariadb -p</pre>
<p>Não esqueça de alterar &#8220;SUA_SENHA&#8221;.</p>
<pre class="remontti-code">CREATE DATABASE phpmyadmin;
CREATE USER &#039;pma&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;SUA_SENHA&#039;;
GRANT ALL PRIVILEGES ON phpmyadmin.* TO &#039;pma&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;SUA_SENHA&#039; WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;</pre>
<p>Agora vamos importar as tabelas e configura-lo.</p>
<pre class="remontti-code"># mariadb -u root -p phpmyadmin &lt; /usr/share/phpmyadmin/sql/create_tables.sql
# cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
# vim /usr/share/phpmyadmin/config.inc.php</pre>
<p>Descomente/Adicone/Altere:</p>
<pre class="remontti-code">/* INFORME O BLOWFISH SECRET USE O GERADOR DE SENHA. DEVE TER 32 CARACTERES */
$cfg[&#039;blowfish_secret&#039;] = &#039;dkJhGx83XR3JjuFrDn8kPp9NtXnkLptl&#039;;

/* ADICIONE  */
$cfg[&#039;TempDir&#039;] = &#039;/var/lib/phpmyadmin/tmp&#039;;

/* DESCOMENTE */ 
/* User used to manipulate with storage */
$cfg[&#039;Servers&#039;][$i][&#039;controlhost&#039;] = &#039;localhost&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;controlport&#039;] = &#039;&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;controluser&#039;] = &#039;pma&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;controlpass&#039;] = &#039;SUA_SENHA&#039;;
 
/* DESCOMENTE */
/* Storage database and tables */
$cfg[&#039;Servers&#039;][$i][&#039;pmadb&#039;] = &#039;phpmyadmin&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;bookmarktable&#039;] = &#039;pma__bookmark&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;relation&#039;] = &#039;pma__relation&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;table_info&#039;] = &#039;pma__table_info&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;table_coords&#039;] = &#039;pma__table_coords&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;pdf_pages&#039;] = &#039;pma__pdf_pages&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;column_info&#039;] = &#039;pma__column_info&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;history&#039;] = &#039;pma__history&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;table_uiprefs&#039;] = &#039;pma__table_uiprefs&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;tracking&#039;] = &#039;pma__tracking&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;userconfig&#039;] = &#039;pma__userconfig&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;recent&#039;] = &#039;pma__recent&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;favorite&#039;] = &#039;pma__favorite&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;users&#039;] = &#039;pma__users&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;usergroups&#039;] = &#039;pma__usergroups&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;navigationhiding&#039;] = &#039;pma__navigationhiding&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;savedsearches&#039;] = &#039;pma__savedsearches&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;central_columns&#039;] = &#039;pma__central_columns&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;designer_settings&#039;] = &#039;pma__designer_settings&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;export_templates&#039;] = &#039;pma__export_templates&#039;;</pre>
<p>Para torna-lo acessível altere o arquivo de configuração do seu NGINX, no exemplo vou colocar no arquivo default, mas você poderia estar configurando em seus domínios. </p>
<pre class="remontti-code"># vim /etc/nginx/sites-available/default</pre>
<p>Adicione as linhas destacadas:</p>
<pre class="remontti-code">server {
    listen 80;
    listen [::]:80;

    root /var/www/html;
    index index.php index.html index.htm;

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
    }

    location ^~ /phpmyadmin {
        root /usr/share;
        try_files $uri $uri/ =404;

        #allow  192.168.87.0/24;
        #allow  2001:0db8::/32;
        #deny   all;
        #error_page  403   http://www.remontti.com.br;

        location ~ .php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
        }

    }

}</pre>
<p>Se deseja tonar o phpmyadmin acessivel apenas de alguns endereços IPs basta descomentar as linhas, e incluir seus prefixos. O error_page é para que quando a o acessante levar um proibido seja direcionado para um site.</p>
<pre class="remontti-code">allow  192.168.87.0/24;
allow  2001:0db8::/32;
deny   all;
error_page  403   http://www.remontti.com.br;</pre>
<p>Basta acessar http://IP-SERVIDOR/phpmyadmin</p>
<h3>LETSENCRYPT</h3>
<p>Criando certificado valido para nossos domínios.</p>
<pre class="remontti-code"># apt install letsencrypt python-certbot-nginx</pre>
<p>Tenha seu(s) domínio(s) configurado em /etc/nginx/sites-enabled/</p>
<pre class="remontti-code"># letsencrypt</pre>
<p>Retorno do questionário:</p>
<pre class="remontti-code">Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter &#039;c&#039; to
cancel): dev@null.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let&#039;s Encrypt project and the non-profit
organization that develops Certbot? We&#039;d like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: N

Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: sub1.remontti.com.br
2: sub2.remontti.com.br   &lt;&lt; CASO VOCÊ TENHA MAIS DE UM SUB CONFIGURADO
3: sub3.remontti.com.br    &lt;&lt; IRÁ APARECER AQUI 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter &#039;c&#039; to cancel): 1 &lt;&lt; ESCOLHA QUAIS VC DESEJA
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for sub1.remontti.com.br
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/sub1.conf

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you&#039;re confident your site works on HTTPS. You can undo this
change by editing your web server&#039;s configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press &#039;c&#039; to cancel): 2 &lt;&lt; SE QUISER FORCAR SEMPRE HTTPS
Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/sub1.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled
https://sub1.remontti.com.br

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=sub1.remontti.com.br
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/sub1.remontti.com.br/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/sub1.remontti.com.br/privkey.pem
   Your cert will expire on 2021-07-05. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the &quot;certonly&quot; option. To non-interactively renew *all* of
   your certificates, run &quot;certbot renew&quot;
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let&#039;s Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le
</pre>
<p>Você pode também criar o certificado diretamente para um domínio. </p>
<pre class="remontti-code"># letsencrypt --authenticator standalone --installer nginx -d sub1.remontti.com.br</pre>
<p>Não esqueça de colocar no seu cron para ele renovar o certificado, pois a cada 90 ele expira. Neste exemplo todo dia primeiro tento renovar.</p>
<pre class="remontti-code"># echo &#039;00 00   1 * *   root    /usr/bin/certbot -q renew&#039; &gt;&gt; /etc/crontab
# systemctl restart cron</pre>
<p>Caso não renovar apenas rode o comando letsencrypt novamente. </p>
<h3>Bônus: Modelo para WordPress</h3>
<p>Como rewrite no NGINX é um pouco diferente vou deixar um ex.:</p>
<pre class="remontti-code">server {
    listen 80;
    listen [::]:80;

    root /var/www/sub2e3;
    index index.php index.html index.htm;

    server_name remontti.com.br www.remontti.com.br;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
    }
}</pre>
<p>Dica, se desejar desativar o TLS1.0 e TLS1.1 após criar um certificado um arquivo é criado /etc/letsencrypt/options-ssl-apache.conf, então edite e inclua no SSLProtocol TLSv1 -TLSv1.1</p>
<pre class="remontti-code"># vim /etc/letsencrypt/options-ssl-apache.conf</pre>
<p>Ficando</p>
<pre class="remontti-code">#SSLProtocol            all -SSLv2 -SSLv3
SSLProtocol             all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1</pre>
<p>Reinicie o Apache:</p>
<pre class="remontti-code"># systemctl restart apache2</pre>
<p>Para testar acesse: <a href="https://www.cdn77.com/tls-test/" rel="noopener" target="_blank">https://www.cdn77.com/tls-test/</a><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste.png" data-rel="lightbox-gallery-pgRSg8hz" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-300x182.png" alt="" width="300" height="182" class="alignnone size-medium wp-image-6158" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-300x182.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-1024x620.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-768x465.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste.png 1099w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Gostou?</p>
<p><strong>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!</strong><br />
<a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a><br />
Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato <a href="https://blog.remontti.com.br/meucontato" rel="noopener noreferrer" target="_blank">clique aqui.</a></p>
<p><strong>Fontes:</strong> <a href="https://docs.nginx.com/" rel="noopener" target="_blank">https://docs.nginx.com/</a><br />
<a href="https://docs.nginx.com/nginx/admin-guide/web-server/web-server/" rel="noopener" target="_blank">https://docs.nginx.com/nginx/admin-guide/web-server/web-server/</a></p>
<p>O post <a href="https://blog.remontti.com.br/5465">Servidor WEB NGINX + PHP + MariaDB + phpMyAdmin + Letsencrypt no Debian 10 Buster (LNMP)</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/5465/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Instalando o Cachet um sistema de página de status open source</title>
		<link>https://blog.remontti.com.br/5296</link>
					<comments>https://blog.remontti.com.br/5296#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Sat, 20 Feb 2021 20:37:19 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[apache2]]></category>
		<category><![CDATA[Cachet]]></category>
		<category><![CDATA[CachetHQ]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[monitoramento]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php7]]></category>
		<category><![CDATA[php7.3]]></category>
		<category><![CDATA[status]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=5296</guid>

					<description><![CDATA[<p>Cachet é uma página de status para serviços mantidos pela sua empresa/administração. Quem sabe você ja tenha acessado https://status.ix.br para verificar se o IX estava passando por alguma problema, IX.BR usa o Cachet. É&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/5296">Instalando o Cachet um sistema de página de status open source</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><a href="https://cachethq.io/" rel="noopener" target="_blank">Cachet</a> é uma página de status para serviços mantidos pela sua empresa/administração. Quem sabe você ja tenha acessado <a href="https://status.ix.br" rel="noopener" target="_blank">https://status.ix.br</a> para verificar se o IX estava passando por alguma problema, IX.BR usa o Cachet. É uma ferramenta que ira ajuda a comunicar o tempo de atividade e o tempo de inatividade de seus aplicativos/serviços e a compartilhar informações sobre quaisquer interrupções.</p>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/02/cachet-destaque.png" alt="" width="600" height="154" class="alignnone size-full wp-image-5315" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/02/cachet-destaque.png 600w, https://blog.remontti.com.br/wp-content/uploads/2021/02/cachet-destaque-300x77.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p>Ele é desenvolvido em PHP, portanto, se você já possui um servidor LAMP ou LEMP, é fácil de instalar. Ele tem uma interface limpa e é projetado para ser responsivo, de modo que pode funcionar em todos os dispositivos. </p>
<p>Cachet não monitora seus sites ou servidores quanto ao tempo de inatividade; O Cachet registra incidentes, que podem ser atualizados manualmente por meio da interface web ou com a <a href="https://docs.cachethq.io/docs/api-authentication" rel="noopener" target="_blank">API</a> do Cachet. Se você estiver procurando por soluções de monitoramento, confira o tutorial do Zabbix.</p>
<p>Neste tutorial, vou configurar uma página de status com Cachet no Debian 10.</p>
<p>Requisitos:<br />
Como base irei fazer a <a href="https://blog.remontti.com.br/2966" rel="noopener" target="_blank">instalação no Debian 10 limpa </a>(sem nenhuma instalação de pacotes)</p>
<pre class="remontti-code">$ su -
# apt upda; apt upgrade</pre>
<pre class="remontti-code"># apt install wget apache2 apache2-utils libapache2-mod-php \
php php-mysql php-cli php-pear php-gmp php-gd php-bcmath \
php-mbstring php-curl php-xml php-zip php-apcu php-fpm \
mariadb-server mariadb-client zip</pre>
<p>Como estou me baseando por umas instalação limpa, vou setar a senha do mariaDb/Mysql e em seguida já criar nosso banco para o cachet.</p>
<pre class="remontti-code"># mariadb -u root</pre>
<p>Não equeça de alterar as senhas, recomendo você criar uma senha aleatória em <a href="https://senhasegura.remontti.com.br/" rel="noopener" target="_blank">https://senhasegura.remontti.com.br/</a></p>
<pre class="remontti-code">
USE mysql;
UPDATE user SET password=PASSWORD(&#039;SENHA_ROOT&#039;) WHERE User=&#039;root&#039;;
UPDATE user SET plugin=&quot;mysql_native_password&quot;;

CREATE DATABASE cachet;
GRANT ALL ON cachet.* TO &#039;cachet&#039; IDENTIFIED BY &#039;SUA_SENHA_CACHET&#039;;
FLUSH PRIVILEGES;
EXIT;
</pre>
<p>Entre no diretório temp, onde iremos fazer o download mais recente do Composer (Não irei instala-lo via apt)</p>
<pre class="remontti-code"># cd /tmp/
# wget https://getcomposer.org/installer -O installer.php
# php installer.php</pre>
<pre class="remontti-code-plain">
All settings correct for using Composer
Downloading...

Composer (version 2.0.9) successfully installed to: /tmp/composer.phar
Use it: php composer.phar</pre>
<pre class="remontti-code"># mv composer.phar /usr/bin/composer
# composer --version</pre>
<pre class="remontti-code-plain">
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Continue as root/super user [yes]? yes
Composer version 2.0.9 2021-01-27 16:09:27
</pre>
<p>Vamos propriamente então ao projeto Cachet</p>
<pre class="remontti-code"># wget https://github.com/CachetHQ/Cachet/archive/2.4.zip
# unzip 2.4.zip -d /var/www/
# mv /var/www/Cachet-2.4/ /var/www/cachet
# cp /var/www/cachet/.env.example /var/www/cachet/.env
# vim /var/www/cachet/.env</pre>
<p>Altere as informacções de usuario e senha do mariaDB de acordo com o que você criou.</p>
<pre class="remontti-code-plain">DB_USERNAME=homestead
DB_PASSWORD=secret</pre>
<p>Para</p>
<pre class="remontti-code-plain">DB_USERNAME=cachet
DB_PASSWORD=SUA_SENHA_CACHET</pre>
<pre class="remontti-code"># cd /var/www/cachet
# composer install --no-dev -o</pre>
<pre class="remontti-code-plain">
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Continue as root/super user [yes]? yes
Installing dependencies from lock file
Verifying lock file contents can be installed on current platform.
Package operations: 97 installs, 0 updates, 0 removals
  - Downloading kylekatarnls/update-helper (1.2.1)
  - Downloading symfony/polyfill-ctype (v1.18.0)
  - Downloading vlucas/phpdotenv (v2.6.6)
  - Downloading symfony/css-selector (v4.4.11)
  - Downloading tijsverkoyen/css-to-inline-styles (2.2.3)
  - Downloading symfony/polyfill-php80 (v1.18.0)
  - Downloading symfony/polyfill-php72 (v1.18.0)
  - Downloading symfony/var-dumper (v4.4.11)
  - Downloading symfony/routing (v4.4.11)
  - Downloading symfony/process (v4.4.11)
  - Downloading symfony/polyfill-php73 (v1.18.0)
  - Downloading symfony/polyfill-php70 (v1.18.0)
  - Downloading symfony/polyfill-intl-normalizer (v1.18.0)
  - Downloading symfony/polyfill-intl-idn (v1.18.0)
  - Downloading symfony/mime (v4.4.11)
  - Downloading symfony/http-foundation (v4.4.11)
  - Downloading symfony/event-dispatcher-contracts (v1.1.9)
  - Downloading symfony/event-dispatcher (v4.4.11)
  - Downloading psr/log (1.1.3)
  - Downloading symfony/debug (v4.4.11)
  - Downloading symfony/error-handler (v4.4.11)
  - Downloading symfony/http-kernel (v4.4.11)
  - Downloading symfony/finder (v4.4.11)
  - Downloading psr/container (1.0.0)
  - Downloading symfony/service-contracts (v1.1.9)
  - Downloading symfony/console (v4.4.11)
  - Downloading symfony/polyfill-iconv (v1.18.0)
  - Downloading doctrine/lexer (1.0.2)
  - Downloading egulias/email-validator (2.1.18)
  - Downloading swiftmailer/swiftmailer (v6.2.3)
  - Downloading ramsey/uuid (3.9.3)
  - Downloading psr/simple-cache (1.0.1)
  - Downloading opis/closure (3.5.5)
  - Downloading symfony/translation-contracts (v1.1.9)
  - Downloading symfony/translation (v4.4.11)
  - Downloading nesbot/carbon (1.39.1)
  - Downloading monolog/monolog (1.25.5)
  - Downloading league/flysystem (1.0.70)
  - Downloading ralouphie/getallheaders (3.0.3)
  - Downloading psr/http-message (1.0.1)
  - Downloading guzzlehttp/psr7 (1.6.1)
  - Downloading guzzlehttp/promises (v1.3.1)
  - Downloading guzzlehttp/guzzle (6.5.5)
  - Downloading laravel/slack-notification-channel (v1.0.3)
  - Downloading php-http/promise (1.1.0)
  - Downloading php-http/httplug (v1.1.0)
  - Downloading php-http/guzzle6-adapter (v1.1.1)
  - Downloading psr/http-factory (1.0.1)
  - Downloading zendframework/zend-diactoros (2.2.1)
  - Downloading lcobucci/jwt (3.3.2)
  - Downloading nexmo/client-core (1.8.1)
  - Downloading nexmo/client (1.9.1)
  - Downloading laravel/nexmo-notification-channel (v1.0.1)
  - Downloading erusev/parsedown (1.7.4)
  - Downloading dragonmantank/cron-expression (v2.3.0)
  - Downloading doctrine/inflector (1.3.1)
  - Downloading laravel/framework (v5.7.29)
  - Downloading alt-three/badger (v5.1.0)
  - Downloading alt-three/bus (v4.5.0)
  - Downloading league/commonmark (0.18.5)
  - Downloading graham-campbell/guzzle-factory (v3.0.4)
  - Downloading alt-three/emoji (v7.0.0)
  - Downloading alt-three/twitter (v3.1.0)
  - Downloading alt-three/validator (v4.5.0)
  - Downloading mtdowling/jmespath.php (2.6.0)
  - Downloading aws/aws-sdk-php (3.147.10)
  - Downloading asm89/stack-cors (1.3.0)
  - Downloading barryvdh/laravel-cors (v0.11.4)
  - Downloading composer/ca-bundle (1.2.7)
  - Downloading bugsnag/bugsnag (v3.21.0)
  - Downloading bugsnag/bugsnag-psr-logger (v1.4.3)
  - Downloading bugsnag/bugsnag-laravel (v2.19.0)
  - Downloading chillerlan/php-traits (1.1.13)
  - Downloading chillerlan/php-qrcode (2.0.8)
  - Downloading doctrine/event-manager (1.1.0)
  - Downloading doctrine/cache (1.10.2)
  - Downloading doctrine/dbal (v2.9.3)
  - Downloading fideloper/proxy (4.4.0)
  - Downloading graham-campbell/security-core (v1.0.3)
  - Downloading graham-campbell/security (v6.2.0)
  - Downloading graham-campbell/binput (v6.2.0)
  - Downloading graham-campbell/exceptions (v11.3.0)
  - Downloading graham-campbell/markdown (v10.3.1)
  - Downloading jakub-onderka/php-console-color (v0.2)
  - Downloading jenssegers/date (v3.5.0)
  - Downloading nikic/php-parser (v4.7.0)
  - Downloading jakub-onderka/php-console-highlighter (v0.4)
  - Downloading dnoegel/php-xdg-base-dir (v0.1.1)
  - Downloading psy/psysh (v0.9.12)
  - Downloading laravel/tinker (v1.0.10)
  - Downloading mccool/laravel-auto-presenter (7.4.1)
  - Downloading symfony/polyfill-util (v1.18.0)
  - Downloading symfony/polyfill-php56 (v1.18.0)
  - Downloading paragonie/constant_time_encoding (v2.3.0)
  - Downloading pragmarx/google2fa (v5.0.0)
  - Downloading predis/predis (v1.1.1)
  - Downloading twig/twig (v2.13.0)
  - Installing kylekatarnls/update-helper (1.2.1): Extracting archive
  - Installing symfony/polyfill-ctype (v1.18.0): Extracting archive
  - Installing vlucas/phpdotenv (v2.6.6): Extracting archive
  - Installing symfony/css-selector (v4.4.11): Extracting archive
  - Installing tijsverkoyen/css-to-inline-styles (2.2.3): Extracting archive
  - Installing symfony/polyfill-php80 (v1.18.0): Extracting archive
  - Installing symfony/polyfill-php72 (v1.18.0): Extracting archive
  - Installing symfony/var-dumper (v4.4.11): Extracting archive
  - Installing symfony/routing (v4.4.11): Extracting archive
  - Installing symfony/process (v4.4.11): Extracting archive
  - Installing symfony/polyfill-php73 (v1.18.0): Extracting archive
  - Installing symfony/polyfill-php70 (v1.18.0): Extracting archive
  - Installing symfony/polyfill-intl-normalizer (v1.18.0): Extracting archive
  - Installing symfony/polyfill-intl-idn (v1.18.0): Extracting archive
  - Installing symfony/mime (v4.4.11): Extracting archive
  - Installing symfony/http-foundation (v4.4.11): Extracting archive
  - Installing symfony/event-dispatcher-contracts (v1.1.9): Extracting archive
  - Installing symfony/event-dispatcher (v4.4.11): Extracting archive
  - Installing psr/log (1.1.3): Extracting archive
  - Installing symfony/debug (v4.4.11): Extracting archive
  - Installing symfony/error-handler (v4.4.11): Extracting archive
  - Installing symfony/http-kernel (v4.4.11): Extracting archive
  - Installing symfony/finder (v4.4.11): Extracting archive
  - Installing psr/container (1.0.0): Extracting archive
  - Installing symfony/service-contracts (v1.1.9): Extracting archive
  - Installing symfony/console (v4.4.11): Extracting archive
  - Installing symfony/polyfill-iconv (v1.18.0): Extracting archive
  - Installing doctrine/lexer (1.0.2): Extracting archive
  - Installing egulias/email-validator (2.1.18): Extracting archive
  - Installing swiftmailer/swiftmailer (v6.2.3): Extracting archive
  - Installing ramsey/uuid (3.9.3): Extracting archive
  - Installing psr/simple-cache (1.0.1): Extracting archive
  - Installing opis/closure (3.5.5): Extracting archive
  - Installing symfony/translation-contracts (v1.1.9): Extracting archive
  - Installing symfony/translation (v4.4.11): Extracting archive
  - Installing nesbot/carbon (1.39.1): Extracting archive
  - Installing monolog/monolog (1.25.5): Extracting archive
  - Installing league/flysystem (1.0.70): Extracting archive
  - Installing ralouphie/getallheaders (3.0.3): Extracting archive
  - Installing psr/http-message (1.0.1): Extracting archive
  - Installing guzzlehttp/psr7 (1.6.1): Extracting archive
  - Installing guzzlehttp/promises (v1.3.1): Extracting archive
  - Installing guzzlehttp/guzzle (6.5.5): Extracting archive
  - Installing laravel/slack-notification-channel (v1.0.3): Extracting archive
  - Installing php-http/promise (1.1.0): Extracting archive
  - Installing php-http/httplug (v1.1.0): Extracting archive
  - Installing php-http/guzzle6-adapter (v1.1.1): Extracting archive
  - Installing psr/http-factory (1.0.1): Extracting archive
  - Installing zendframework/zend-diactoros (2.2.1): Extracting archive
  - Installing lcobucci/jwt (3.3.2): Extracting archive
  - Installing nexmo/client-core (1.8.1): Extracting archive
  - Installing nexmo/client (1.9.1): Extracting archive
  - Installing laravel/nexmo-notification-channel (v1.0.1): Extracting archive
  - Installing erusev/parsedown (1.7.4): Extracting archive
  - Installing dragonmantank/cron-expression (v2.3.0): Extracting archive
  - Installing doctrine/inflector (1.3.1): Extracting archive
  - Installing laravel/framework (v5.7.29): Extracting archive
  - Installing alt-three/badger (v5.1.0): Extracting archive
  - Installing alt-three/bus (v4.5.0): Extracting archive
  - Installing league/commonmark (0.18.5): Extracting archive
  - Installing graham-campbell/guzzle-factory (v3.0.4): Extracting archive
  - Installing alt-three/emoji (v7.0.0): Extracting archive
  - Installing alt-three/twitter (v3.1.0): Extracting archive
  - Installing alt-three/validator (v4.5.0): Extracting archive
  - Installing mtdowling/jmespath.php (2.6.0): Extracting archive
  - Installing aws/aws-sdk-php (3.147.10): Extracting archive
  - Installing asm89/stack-cors (1.3.0): Extracting archive
  - Installing barryvdh/laravel-cors (v0.11.4): Extracting archive
  - Installing composer/ca-bundle (1.2.7): Extracting archive
  - Installing bugsnag/bugsnag (v3.21.0): Extracting archive
  - Installing bugsnag/bugsnag-psr-logger (v1.4.3): Extracting archive
  - Installing bugsnag/bugsnag-laravel (v2.19.0): Extracting archive
  - Installing chillerlan/php-traits (1.1.13): Extracting archive
  - Installing chillerlan/php-qrcode (2.0.8): Extracting archive
  - Installing doctrine/event-manager (1.1.0): Extracting archive
  - Installing doctrine/cache (1.10.2): Extracting archive
  - Installing doctrine/dbal (v2.9.3): Extracting archive
  - Installing fideloper/proxy (4.4.0): Extracting archive
  - Installing graham-campbell/security-core (v1.0.3): Extracting archive
  - Installing graham-campbell/security (v6.2.0): Extracting archive
  - Installing graham-campbell/binput (v6.2.0): Extracting archive
  - Installing graham-campbell/exceptions (v11.3.0): Extracting archive
  - Installing graham-campbell/markdown (v10.3.1): Extracting archive
  - Installing jakub-onderka/php-console-color (v0.2): Extracting archive
  - Installing jenssegers/date (v3.5.0): Extracting archive
  - Installing nikic/php-parser (v4.7.0): Extracting archive
  - Installing jakub-onderka/php-console-highlighter (v0.4): Extracting archive
  - Installing dnoegel/php-xdg-base-dir (v0.1.1): Extracting archive
  - Installing psy/psysh (v0.9.12): Extracting archive
  - Installing laravel/tinker (v1.0.10): Extracting archive
  - Installing mccool/laravel-auto-presenter (7.4.1): Extracting archive
  - Installing symfony/polyfill-util (v1.18.0): Extracting archive
  - Installing symfony/polyfill-php56 (v1.18.0): Extracting archive
  - Installing paragonie/constant_time_encoding (v2.3.0): Extracting archive
  - Installing pragmarx/google2fa (v5.0.0): Extracting archive
  - Installing predis/predis (v1.1.1): Extracting archive
  - Installing twig/twig (v2.13.0): Extracting archive
Package alt-three/badger is abandoned, you should avoid using it. Use cachethq/badger instead.
Package alt-three/emoji is abandoned, you should avoid using it. Use cachethq/emoji instead.
Package alt-three/twitter is abandoned, you should avoid using it. Use cachethq/twitter instead.
Package jakub-onderka/php-console-color is abandoned, you should avoid using it. Use php-parallel-lint/php-console-color instead.                                                                                                           
Package jakub-onderka/php-console-highlighter is abandoned, you should avoid using it. Use php-parallel-lint/php-console-highlighter instead.                                                                                               
Package zendframework/zend-diactoros is abandoned, you should avoid using it. Use laminas/laminas-diactoros instead.
Generating optimized autoload files
Carbon 1 is deprecated, see how to migrate to Carbon 2.
https://carbon.nesbot.com/docs/#api-carbon-2
    You can run &#039;./vendor/bin/upgrade-carbon&#039; to get help in updating carbon and other frameworks and libraries that depend on it.
&gt; Illuminate\Foundation\ComposerScripts::postAutoloadDump
&gt; @php artisan package:discover
Discovered Package: alt-three/badger
Discovered Package: alt-three/emoji
Discovered Package: alt-three/twitter
Discovered Package: barryvdh/laravel-cors
Discovered Package: fideloper/proxy
Discovered Package: graham-campbell/binput
Discovered Package: graham-campbell/exceptions
Discovered Package: graham-campbell/markdown
Discovered Package: graham-campbell/security
Discovered Package: jenssegers/date
Discovered Package: laravel/nexmo-notification-channel
Discovered Package: laravel/slack-notification-channel
Discovered Package: laravel/tinker
Discovered Package: mccool/laravel-auto-presenter
Discovered Package: nesbot/carbon
Package manifest generated successfully.
38 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
</pre>
<pre class="remontti-code"># php artisan key:generate</pre>
<pre class="remontti-code-plain">
Application key set successfully.
</pre>
<pre class="remontti-code"># php artisan cachet:install</pre>
<pre class="remontti-code-plain">
 Do you want to configure Cachet before installing? (yes/no) [no]:
 &gt; no

Installing Cachet...
Clearing settings cache...
Settings cache cleared!
System was installed!
**************************************
*     Application In Production!     *
**************************************

 Do you really wish to run this command? (yes/no) [no]:
 &gt; no

Command Cancelled!
Configuration cache cleared!
Configuration cached successfully!
Route cache cleared!
Routes cached successfully!
Copied Directory [/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views] To [/resources/views/errors]
Copied Directory [/vendor/laravel/framework/src/Illuminate/Notifications/resources/views] To [/resources/views/vendor/notifications]                                                                                                        
Copied Directory [/vendor/laravel/framework/src/Illuminate/Pagination/resources/views] To [/resources/views/vendor/pagination]                                                                                                              
Copied Directory [/vendor/laravel/framework/src/Illuminate/Mail/resources/views] To [/resources/views/vendor/mail]
Publishing complete.
Migration table created successfully.
Migrating: 2015_01_05_201324_CreateComponentGroupsTable
Migrated:  2015_01_05_201324_CreateComponentGroupsTable
Migrating: 2015_01_05_201444_CreateComponentsTable
Migrated:  2015_01_05_201444_CreateComponentsTable
Migrating: 2015_01_05_202446_CreateIncidentTemplatesTable
Migrated:  2015_01_05_202446_CreateIncidentTemplatesTable
Migrating: 2015_01_05_202609_CreateIncidentsTable
Migrated:  2015_01_05_202609_CreateIncidentsTable
Migrating: 2015_01_05_202730_CreateMetricPointsTable
Migrated:  2015_01_05_202730_CreateMetricPointsTable
Migrating: 2015_01_05_202826_CreateMetricsTable
Migrated:  2015_01_05_202826_CreateMetricsTable
Migrating: 2015_01_05_203014_CreateSettingsTable
Migrated:  2015_01_05_203014_CreateSettingsTable
Migrating: 2015_01_05_203235_CreateSubscribersTable
Migrated:  2015_01_05_203235_CreateSubscribersTable
Migrating: 2015_01_05_203341_CreateUsersTable
Migrated:  2015_01_05_203341_CreateUsersTable
Migrating: 2015_01_09_083419_AlterTableUsersAdd2FA
Migrated:  2015_01_09_083419_AlterTableUsersAdd2FA
Migrating: 2015_01_16_083825_CreateTagsTable
Migrated:  2015_01_16_083825_CreateTagsTable
Migrating: 2015_01_16_084030_CreateComponentTagTable
Migrated:  2015_01_16_084030_CreateComponentTagTable
Migrating: 2015_02_28_214642_UpdateIncidentsAddScheduledAt
Migrated:  2015_02_28_214642_UpdateIncidentsAddScheduledAt
Migrating: 2015_05_19_214534_AlterTableComponentGroupsAddOrder
Migrated:  2015_05_19_214534_AlterTableComponentGroupsAddOrder
Migrating: 2015_05_20_073041_AlterTableIncidentsAddVisibileColumn
Migrated:  2015_05_20_073041_AlterTableIncidentsAddVisibileColumn
Migrating: 2015_05_24_210939_create_jobs_table
Migrated:  2015_05_24_210939_create_jobs_table
Migrating: 2015_05_24_210948_create_failed_jobs_table
Migrated:  2015_05_24_210948_create_failed_jobs_table
Migrating: 2015_06_10_122216_AlterTableComponentsDropUserIdColumn
Migrated:  2015_06_10_122216_AlterTableComponentsDropUserIdColumn
Migrating: 2015_06_10_122229_AlterTableIncidentsDropUserIdColumn
Migrated:  2015_06_10_122229_AlterTableIncidentsDropUserIdColumn
Migrating: 2015_08_02_120436_AlterTableSubscribersRemoveDeletedAt
Migrated:  2015_08_02_120436_AlterTableSubscribersRemoveDeletedAt
Migrating: 2015_08_13_214123_AlterTableMetricsAddDecimalPlacesColumn
Migrated:  2015_08_13_214123_AlterTableMetricsAddDecimalPlacesColumn
Migrating: 2015_10_31_211944_CreateInvitesTable
Migrated:  2015_10_31_211944_CreateInvitesTable
Migrating: 2015_11_03_211049_AlterTableComponentsAddEnabledColumn
Migrated:  2015_11_03_211049_AlterTableComponentsAddEnabledColumn
Migrating: 2015_12_26_162258_AlterTableMetricsAddDefaultViewColumn
Migrated:  2015_12_26_162258_AlterTableMetricsAddDefaultViewColumn
Migrating: 2016_01_09_141852_CreateSubscriptionsTable
Migrated:  2016_01_09_141852_CreateSubscriptionsTable
Migrating: 2016_01_29_154937_AlterTableComponentGroupsAddCollapsedColumn
Migrated:  2016_01_29_154937_AlterTableComponentGroupsAddCollapsedColumn
Migrating: 2016_02_18_085210_AlterTableMetricPointsChangeValueColumn
Migrated:  2016_02_18_085210_AlterTableMetricPointsChangeValueColumn
Migrating: 2016_03_01_174858_AlterTableMetricPointsAddCounterColumn
Migrated:  2016_03_01_174858_AlterTableMetricPointsAddCounterColumn
Migrating: 2016_03_08_125729_CreateIncidentUpdatesTable
Migrated:  2016_03_08_125729_CreateIncidentUpdatesTable
Migrating: 2016_03_10_144613_AlterTableComponentGroupsMakeColumnInteger
Migrated:  2016_03_10_144613_AlterTableComponentGroupsMakeColumnInteger
Migrating: 2016_04_05_142933_create_sessions_table
Migrated:  2016_04_05_142933_create_sessions_table
Migrating: 2016_04_29_061916_AlterTableSubscribersAddGlobalColumn
Migrated:  2016_04_29_061916_AlterTableSubscribersAddGlobalColumn
Migrating: 2016_06_02_075012_AlterTableMetricsAddOrderColumn
Migrated:  2016_06_02_075012_AlterTableMetricsAddOrderColumn
Migrating: 2016_06_05_091615_create_cache_table
Migrated:  2016_06_05_091615_create_cache_table
Migrating: 2016_07_25_052444_AlterTableComponentGroupsAddVisibleColumn
Migrated:  2016_07_25_052444_AlterTableComponentGroupsAddVisibleColumn
Migrating: 2016_08_23_114610_AlterTableUsersAddWelcomedColumn
Migrated:  2016_08_23_114610_AlterTableUsersAddWelcomedColumn
Migrating: 2016_09_04_100000_AlterTableIncidentsAddStickiedColumn
Migrated:  2016_09_04_100000_AlterTableIncidentsAddStickiedColumn
Migrating: 2016_10_24_183415_AlterTableIncidentsAddOccurredAtColumn
Migrated:  2016_10_24_183415_AlterTableIncidentsAddOccurredAtColumn
Migrating: 2016_10_30_174400_CreateSchedulesTable
Migrated:  2016_10_30_174400_CreateSchedulesTable
Migrating: 2016_10_30_174410_CreateScheduleComponentsTable
Migrated:  2016_10_30_174410_CreateScheduleComponentsTable
Migrating: 2016_10_30_182324_AlterTableIncidentsRemoveScheduledColumns
Migrated:  2016_10_30_182324_AlterTableIncidentsRemoveScheduledColumns
Migrating: 2016_12_04_163502_AlterTableMetricsAddVisibleColumn
Migrated:  2016_12_04_163502_AlterTableMetricsAddVisibleColumn
Migrating: 2016_12_05_185045_AlterTableComponentsAddMetaColumn
Migrated:  2016_12_05_185045_AlterTableComponentsAddMetaColumn
Migrating: 2016_12_29_124643_AlterTableSubscribersAddPhoneNumberSlackColumns
Migrated:  2016_12_29_124643_AlterTableSubscribersAddPhoneNumberSlackColumns
Migrating: 2016_12_29_155956_AlterTableComponentsMakeLinkNullable
Migrated:  2016_12_29_155956_AlterTableComponentsMakeLinkNullable
Migrating: 2017_01_03_143916_create_notifications_table
Migrated:  2017_01_03_143916_create_notifications_table
Migrating: 2017_02_03_222218_CreateActionsTable
Migrated:  2017_02_03_222218_CreateActionsTable
Migrating: 2017_06_13_181049_CreateMetaTable
Migrated:  2017_06_13_181049_CreateMetaTable
Migrating: 2017_07_18_214718_CreateIncidentComponents
Migrated:  2017_07_18_214718_CreateIncidentComponents
Migrating: 2017_09_14_180434_AlterIncidentsAddUserId
Migrated:  2017_09_14_180434_AlterIncidentsAddUserId
Migrating: 2018_04_02_163328_CreateTaggablesTable
Migrated:  2018_04_02_163328_CreateTaggablesTable
Migrating: 2018_04_02_163658_MigrateComponentTagTable
Migrated:  2018_04_02_163658_MigrateComponentTagTable
Migrating: 2018_06_14_201440_AlterSchedulesSoftDeletes
Migrated:  2018_06_14_201440_AlterSchedulesSoftDeletes
Migrating: 2018_06_17_182507_AlterIncidentsAddNotifications
Migrated:  2018_06_17_182507_AlterIncidentsAddNotifications
Migrating: 2019_12_12_131400_AlterJobsDropReserved
Migrated:  2019_12_12_131400_AlterJobsDropReserved
Database seeding completed successfully.
Clearing cache...
Application cache cleared!
Cache cleared!
The [public/storage] directory has been linked.
Cachet is installed <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a1.png" alt="⚡" class="wp-smiley" style="height: 1em; max-height: 1em;" />
</pre>
<p>Acredito que esteja criando para rodalo em um <a href="https://blog.remontti.com.br/3464" rel="noopener" target="_blank">domínio virtual</a>, então segue um exemplo:</p>
<pre class="remontti-code"># vim /etc/apache2/sites-available/cachet.conf</pre>
<pre class="remontti-code">
&lt;virtualhost *:80&gt;
        ServerName status.remontti.com.br
        ServerAlias cachet.remontti.com.br
        ServerAdmin noc@remontti.com.br
 
        DocumentRoot /var/www/cachet/public
 
        &lt;directory /var/www/cachet/public/ &gt;
                Options FollowSymLinks
                AllowOverride All
        &lt;/directory&gt; 
 
        LogLevel warn 
        ErrorLog ${APACHE_LOG_DIR}/error_cachet.log
        CustomLog ${APACHE_LOG_DIR}/access_cachet.log combined
&lt;/virtualhost&gt;
</pre>
<p>Habilite as configurações</p>
<pre class="remontti-code"># a2ensite cachet</pre>
<p>Caso irá roda-lo em um IP edite as configurações default, se fez da forma acima pode pular esta parte.</p>
<pre class="remontti-code"># vim /etc/apache2/sites-available/000-default.conf</pre>
<pre class="remontti-code">
&lt;VirtualHost *:80&gt;
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/cachet/public
    &lt;directory /var/www/cachet/public/ &gt;
        Options FollowSymLinks
        AllowOverride All
    &lt;/directory&gt;
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
&lt;/VirtualHost&gt;
</pre>
<p>Ativaremos o mod de rescrita, ajustaremos as permissões do diretório para www-data e reiniciaremos o serviço apache2.</p>
<pre class="remontti-code"># a2enmod rewrite
# chown www-data. /var/www/cachet -R
# systemctl restart apache2</pre>
<p>Agora acesse &#8220;<strong>http://status.remontti.com.br/setup</strong>&#8221; para concluir a instalação</p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2021/02/c1.png" data-rel="lightbox-gallery-k0MI2byr" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/02/c1.png" alt="" width="1680" height="920" class="alignnone size-full wp-image-5298" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/02/c1.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2021/02/c1-300x164.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/02/c1-1024x561.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/02/c1-768x421.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/02/c1-1536x841.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2021/02/c2.png" data-rel="lightbox-gallery-k0MI2byr" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/02/c2.png" alt="" width="1680" height="854" class="alignnone size-full wp-image-5306" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/02/c2.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2021/02/c2-300x153.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/02/c2-1024x521.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/02/c2-768x390.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/02/c2-1536x781.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2021/02/c3.png" data-rel="lightbox-gallery-k0MI2byr" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/02/c3.png" alt="" width="1680" height="854" class="alignnone size-full wp-image-5307" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/02/c3.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2021/02/c3-300x153.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/02/c3-1024x521.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/02/c3-768x390.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/02/c3-1536x781.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2021/02/c4.png" data-rel="lightbox-gallery-k0MI2byr" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/02/c4.png" alt="" width="1680" height="854" class="alignnone size-full wp-image-5308" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/02/c4.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2021/02/c4-300x153.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/02/c4-1024x521.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/02/c4-768x390.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/02/c4-1536x781.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2021/02/c5-1.png" data-rel="lightbox-gallery-k0MI2byr" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/02/c5-1.png" alt="" width="1680" height="854" class="alignnone size-full wp-image-5309" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/02/c5-1.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2021/02/c5-1-300x153.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/02/c5-1-1024x521.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/02/c5-1-768x390.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/02/c5-1-1536x781.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2021/02/c5-2.png" data-rel="lightbox-gallery-k0MI2byr" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/02/c5-2.png" alt="" width="1680" height="854" class="alignnone size-full wp-image-5310" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/02/c5-2.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2021/02/c5-2-300x153.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/02/c5-2-1024x521.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/02/c5-2-768x390.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/02/c5-2-1536x781.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a></p>
<p>Para acessar sua Dashboard<br />
http://status.remontti.com.br/dashboard<br />
http://ou_seu_ip/dashboard</p>
<p>E em sua home você tem a página de status.<br />
http://status.remontti.com.br<br />
http://ou_seu_ip/</p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2021/02/c7.png" data-rel="lightbox-gallery-k0MI2byr" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/02/c7.png" alt="" width="1680" height="1583" class="alignnone size-full wp-image-5311" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/02/c7.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2021/02/c7-300x283.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/02/c7-1024x965.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/02/c7-768x724.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/02/c7-1536x1447.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2021/02/c7-1.png" data-rel="lightbox-gallery-k0MI2byr" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/02/c7-1.png" alt="" width="1680" height="1583" class="alignnone size-full wp-image-5312" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/02/c7-1.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2021/02/c7-1-300x283.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/02/c7-1-1024x965.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/02/c7-1-768x724.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/02/c7-1-1536x1447.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a></p>
<p>Para deixar mais profissional <a href="https://blog.remontti.com.br/3548" rel="noopener" target="_blank">instale o Let’s Encrypt</a> para assinar seu domínio.</p>
<p>Espero que tenha gostado!</p>
<p><strong>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!</strong><br />
<a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a></p>
<p>Participe do canal no <a href="https://t.me/blogremontti" rel="noopener noreferrer" target="_blank">telegram</a> para ficar atualizado sempre que publicar um novo tutorial. </p>
<p>Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato <a href="https://blog.remontti.com.br/meucontato" rel="noopener noreferrer" target="_blank">clique aqui.</a></p>
<p><em>Fontes</em><br />
<a href="https://docs.cachethq.io/" rel="noopener" target="_blank">https://docs.cachethq.io/</a><br />
<a href="https://github.com/CachetHQ/Cachet" rel="noopener" target="_blank">https://github.com/CachetHQ/Cachet</a></p>
<p>O post <a href="https://blog.remontti.com.br/5296">Instalando o Cachet um sistema de página de status open source</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/5296/feed</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title>Solução de backup completa Open Source: Bacula Community 9.6.x e Baculum 9.6.x</title>
		<link>https://blog.remontti.com.br/4460</link>
					<comments>https://blog.remontti.com.br/4460#comments</comments>
		
		<dc:creator><![CDATA[Lenon Correa]]></dc:creator>
		<pubDate>Wed, 10 Jun 2020 19:38:02 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Segurança]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[bacula]]></category>
		<category><![CDATA[baculum]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[passo a passo]]></category>
		<category><![CDATA[php]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=4460</guid>

					<description><![CDATA[<p>O Bacula é um software que permite você (ou o administrador de sistema) administrar backup, restauração e verificação dos dados de computadores em uma rede de sistemas mistos. Por ser tão flexível o Bacula&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/4460">Solução de backup completa Open Source: Bacula Community 9.6.x e Baculum 9.6.x</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="wp-image-4535" src="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-27-44-300x148.png" alt="" width="709" height="350" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-27-44-300x148.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-27-44-1024x505.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-27-44-768x379.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-27-44.png 1366w" sizes="auto, (max-width: 709px) 100vw, 709px" /></p>
<p>O <strong>Bacula</strong> é um software que permite você (ou o administrador de sistema) administrar backup, restauração e verificação dos dados de computadores em uma rede de sistemas mistos.<br />
Por ser tão flexível o Bacula é considerado um framework de backup, podendo ser implementado nas mais diferentes estruturas corporativas.</p>
<h3>Funcionalidades:</h3>
<ul>
<li>Geração de formato aberto (não proprietário) de gravação (pode ser lido pelo tar e dump do Unix) – adeus ao aprisionamento tecnológico;</li>
<li>Armazenamento do seu catálogo em banco de dados padrão SQL: SQLite,PostgreSQL ou MySQL;</li>
<li>Suporte a compressão dos backups nos algorítimos livres GZIP e LZO;</li>
<li>GPL – sem custos com licenças, conhecimento e possibilidade de customização da ferramenta na versão community.</li>
</ul>
<p>E de quebra, ainda vamos instalar o<strong> Baculum</strong>, que é  a Web Gui  (interface gráfica) Oficial do Bacula Community, permitindo que o administrador de backup altere configurações de backup sem precisar editar arquivos texto. Além disso uma API é disponibilizada, facilitando a integração com outros softwares, interfaces e consoles.</p>
<p>Primeiramente me chamo<strong> Lenon Corrêa</strong>, trabalho em uma empresa de Cloud Computing, a <a href="https://staybox.com.br">Staybox</a>, fornecemos serviços de hospedagem, máquinas virtuais, backup em nuvem, licenciamento de software e outros do nível (se precisar de algo, me chame kkkk). Já trabalhei com o Rudimar, assim veio a oportunidade deste post. Antes de mais nada, é o 1º post, então deem seus feedbacks sobre o conteúdo e tirem suas dúvidas, criticas construtivas sempre serão aceitas. Sem mais delongas, vamos ao que realmente interessa!</p>
<p>Requisitos:<br />
<a href="https://blog.remontti.com.br/2966" target="_blank" rel="noopener noreferrer">* Debian 10 (Buster) -&gt; Instalação Limpa</a></p>
<p><a href="https://blog.remontti.com.br/arquivos/Home/Scripts/tunning.bash.sh" target="_blank" rel="noopener noreferrer">* Tunning Bash -&gt; Bash colorido</a> (Este tique aprendi com o Rudimar kkk)</p>
<h2><strong>Instalação<br />
</strong></h2>
<p>Na primeira etapa, instalamos pacotes necessários para a compilação do <strong>Bacula</strong>, estas bibliotecas são indispensáveis para o bom funcionamento do software e andamento da instalação.</p>
<pre class="remontti-code"># su -
# apt install vim make gcc build-essential perl unp mc mtx libreadline7 \
  libreadline5-dbg libreadline-gplv2-dev zlib1g-dev lzop liblzo2-dev python-lzo sudo \
  gawk gdb libacl1 libacl1-dev libssl-dev lsscsi apt-transport-https qt4-dev-tools \
  qt4-qtconfig libqt4-dev libqwt5-qt4 libqwt5-qt4-dev pkg-config wget -y</pre>
<h2>:: Instalação do banco de dados ::</h2>
<p>Os banco de dados homologados pelo <strong>Bacula</strong> são: PostgreSQL, SQLite e MySQL. Então sinta-se livre para usar qualquer um deles, os passos que se alteram desta instalação são minímos.<br />
Já vi pessoas também instalando com o MariaDB, em suma ele é praticamente igual ao MySQL, então não deve acarretar inconsistências. Mas vamos seguir a risca as recomendações da comunidade e vamos instalar a versão 5.7 Community do MySQL (Também já fui orientado a usar PostgreSQL, pois o desempenho é superior, mas como meu conhecimento é relativamente baixo, prefiro ir de MySQL mesmo, que sei tratar erros, se acontecerem).</p>
<p>Primeiro, adicionamos a chave GPG do MySQL Community, em seguida adicionamos em nossa máquina para reconhecer o reposítório.</p>
<pre class="remontti-code"># wget -qO - https://repo.mysql.com/RPM-GPG-KEY-mysql --no-check-certificate | apt-key add -</pre>
<p>Agora, adicionamos os repositórios, em seguida update.</p>
<pre class="remontti-code"># cat &lt;&lt;EOF &gt;/etc/apt/sources.list.d/mysql.list 
deb http://repo.mysql.com/apt/debian/ buster mysql-apt-config
deb http://repo.mysql.com/apt/debian/ buster mysql-5.7
deb http://repo.mysql.com/apt/debian/ buster mysql-tools
deb http://repo.mysql.com/apt/debian/ buster mysql-tools-preview
deb-src http://repo.mysql.com/apt/debian/ buster mysql-5.7
EOF</pre>
<p>Atualize os repositórios.</p>
<pre class="remontti-code"># apt update</pre>
<p>Se tudo correu bem até aqui, vamos finalmente aos pacotes do MySQL:</p>
<pre class="remontti-code"># apt install mysql-community-server libmysqlclient-dev -y</pre>
<p>Durante a instalação, o MySQL oferta se você deseja adicionar uma senha ao <strong>root</strong> para acessar o banco, se sim, insira a senha, caso contrário apenas tecle enter e prossiga.</p>
<p><img loading="lazy" decoding="async" class=" wp-image-4519" src="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-20-42-38-300x152.png" alt="" width="718" height="364" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-20-42-38-300x152.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-20-42-38-1024x520.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-20-42-38-768x390.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-20-42-38.png 1366w" sizes="auto, (max-width: 718px) 100vw, 718px" /></p>
<p>Agora vamos criar um usuário para o <strong>Bacula</strong> no banco de dados, entre no banco com o comando a seguir:</p>
<pre class="remontti-code"># mysql</pre>
<p>Ou, caso você tenha inserido uma senha de <strong>root</strong> no banco:</p>
<pre class="remontti-code"># mysql -u root -p</pre>
<p style="text-align: left">Os comandos abaixo são executados dentro do banco de dados, por tanto cuidado. Gere uma hash de senha e faça a alteração na linha 3.<br />
O que estas linhas fazem são, simplesmente adicionar um usuário ao banco e dar os devidos privilégios para que ele possa inserir, deletar e alterar registros das tabelas que criaremos no futuro deste tutorial.</p>
<pre class="remontti-code">CREATE USER bacula;
GRANT ALL ON *.* TO &#039;bacula&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;SUA_SENHA_AQUI&#039; WITH GRANT OPTION;
GRANT SELECT ON mysql.proc TO &#039;bacula&#039;;
FLUSH PRIVILEGES;
QUIT</pre>
<p><img loading="lazy" decoding="async" class=" wp-image-4520" src="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-20-45-34-300x144.png" alt="" width="704" height="338" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-20-45-34-300x144.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-20-45-34-1024x490.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-20-45-34.png 1363w" sizes="auto, (max-width: 704px) 100vw, 704px" /></p>
<p>Para as alterações terem eficácia, restarte o serviço SQL.</p>
<pre class="remontti-code"># /etc/init.d/mysql restart</pre>
<p>Nos comandos seguintes, vamos entrar no diretório onde serão compilados os pacotes do <strong>Bacula</strong>. Na data de hoje 05/06 se encontra na versão 9.6.4, você pode conferir atualizar <a href="https://sourceforge.net/projects/bacula/files/bacula/" target="_blank" rel="noopener noreferrer">neste link</a>. Vamos baixar o fonte, descompactá-lo e entrar na pasta seguinte.</p>
<pre class="remontti-code"># cd /usr/src
# wget --no-check-certificate https://sourceforge.net/projects/bacula/files/bacula/9.6.4/bacula-9.6.4.tar.gz
# tar xvzf bacula-9.6.4.tar.gz
# cd bacula-9.6.4</pre>
<p><img loading="lazy" decoding="async" class="wp-image-4522" src="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-20-48-15-300x31.png" alt="" width="726" height="75" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-20-48-15-300x31.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-20-48-15-1024x107.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-20-48-15-768x80.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-20-48-15.png 1356w" sizes="auto, (max-width: 726px) 100vw, 726px" /></p>
<p>Dentro da pasta &#8216;bacula-9.6.4&#8217;, execute o comando abaixo, ele vai configurar algumas diretivas que interferem diretamente na compilação do <strong>Bacula</strong>, portanto altere usuário e senha do banco de dados, conforme criou anteriormente, em:<br />
&#8211;with-db-user=&#8217;usuario_do_banco&#8217;<br />
&#8211;with-db-password=&#8217;SENHA_DO_BANCO_AQUI&#8217;<br />
&#8211;with-hostname=&#8217;ip_da_sua_maquina&#8217;<br />
<strong> Qualquer outra alteração faça com cuidado.</strong></p>
<pre class="remontti-code"># ./configure \
 --enable-smartalloc \
 --with-mysql \
 --with-db-user=bacula \
 --with-db-password=&#039;SENHA_DO_BANCO_AQUI&#039; \
 --with-db-port=3306 \
 --with-openssl \
 --with-readline=/usr/include/readline \
 --sysconfdir=/etc/bacula \
 --bindir=/usr/bin \
 --sbindir=/usr/sbin \
 --with-scriptdir=/etc/bacula/scripts \
 --with-plugindir=/etc/bacula/plugins \
 --with-pid-dir=/var/run \
 --with-subsys-dir=/etc/bacula/working \
 --with-working-dir=/etc/bacula/working \
 --with-bsrdir=/etc/bacula/bootstrap \
 --with-basename=bacula \
 --with-hostname=10.246.247.90 \
 --with-systemd \
 --disable-conio \
 --disable-nls \
 --with-logdir=/var/log/bacula</pre>
<p>O retorno será conforme na imagem:<br />
<img loading="lazy" decoding="async" class="wp-image-4524" src="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-20-51-53-300x179.png" alt="" width="657" height="392" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-20-51-53-300x179.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-20-51-53-1024x610.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-20-51-53-768x457.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-20-51-53.png 1107w" sizes="auto, (max-width: 657px) 100vw, 657px" /></p>
<p>Chegamos na compilação dos pacotes, até aqui tudo certo, né?<br />
A seguir, temos os comandos que compilam o <strong>Bacula</strong>. Rode-os e aguarde!</p>
<pre class="remontti-code"># make -j 8
# make install
# make install-autostart</pre>
<p>Os próximos comandos alteram permissão de escrita e leitura da pasta onde fica o <strong>Bacula</strong>, e após entra na pasta.</p>
<pre class="remontti-code"># chmod -R 775 /etc/bacula
# cd /etc/bacula/scripts</pre>
<p>Agora vamos criar o banco de dados, tabelas e dar privilégios ao usuário do bacula. (Dependendo como você instalou o banco você usa o &#8216;-u root -p&#8217; ou não).</p>
<pre class="remontti-code"># /etc/bacula/scripts/create_mysql_database -u root -p
# /etc/bacula/scripts/make_mysql_tables -u root -p
# /etc/bacula/scripts/grant_mysql_privileges -u root -p</pre>
<p><img loading="lazy" decoding="async" class=" wp-image-4525" src="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-20-55-55-300x139.png" alt="" width="695" height="322" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-20-55-55-300x139.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-20-55-55-1024x475.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-20-55-55-768x356.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-20-55-55.png 1366w" sizes="auto, (max-width: 695px) 100vw, 695px" /></p>
<p>Para fazer atualização do bacula você repete o mesmo procedimento da instalação, porém execute: </p>
<pre class="remontti-code"># /etc/bacula/scripts/update_bacula_tables -u root -p
# /etc/bacula/scripts/update_mysql_tables -u root -p
# /etc/bacula/scripts/grant_mysql_privileges -u root -p</pre>
<p>Feito isso com sucesso, vamos restartar o bacula e checar o status com os comandos.</p>
<pre class="remontti-code"># bacula restart
# bacula status</pre>
<p>O retorno dos comandos deverá ser o seguinte:</p>
<p><img loading="lazy" decoding="async" class=" wp-image-4526" src="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-20-57-14-300x89.png" alt="" width="826" height="245" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-20-57-14-300x89.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-20-57-14-768x228.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-20-57-14.png 872w" sizes="auto, (max-width: 826px) 100vw, 826px" /></p>
<p>Agora vamos entrar no console do <strong>bacula</strong> com o comando:</p>
<pre class="remontti-code"># bconsole</pre>
<p>Se tudo correu bem, receberá o retorno de acordo com a imagem abaixo:</p>
<p><img loading="lazy" decoding="async" class=" wp-image-4527" src="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-20-58-16-300x58.png" alt="" width="699" height="135" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-20-58-16-300x58.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-20-58-16-768x147.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-20-58-16.png 844w" sizes="auto, (max-width: 699px) 100vw, 699px" /></p>
<p>Para sair do console:</p>
<pre class="remontti-code">* exit</pre>
<h2>:: Instalação do Baculum 9.6.x ::</h2>
<p>Antes de instalarmos o <strong>baculum</strong>, precisamos do <strong>Apache</strong> e do <strong>PHP</strong>, usaremos a versão 7.3. A versão recomendada é a 7.2, mas em meus testes a 7.3 funcionou bem, não apresentando falhas, (aqui saí das recomendações kkk), use a versão que desejar.<br />
Entre com os comandos abaixo pra instalar os pacotes citados anteriormente.</p>
<pre class="remontti-code"># apt install php7.3-{common,bcmath,bz2,intl,gd,mbstring,mysql,zip,curl} -y
# apt install apache2 libapache2-mod-php7.3 -y</pre>
<p>Vamos a instalação do <strong>Baculum</strong>, baixamos a chave e ativamos em nossa máquina.</p>
<pre class="remontti-code"># wget -qO - http://bacula.org/downloads/baculum/baculum.pub | apt-key add -</pre>
<p>Agora, adicionamos os repositórios, em seguida update.</p>
<pre class="remontti-code"># cat &lt;&lt;EOF &gt;/etc/apt/sources.list.d/baculum.list
deb [ arch=amd64 ] http://bacula.org/downloads/baculum/stable/debian buster main
deb-src http://bacula.org/downloads/baculum/stable/debian buster main
EOF</pre>
<pre class="remontti-code"># apt update</pre>
<p>Após, vamos verificar uma coisa, se o repositório encontrado foi da versão 9.6.&#8221;4&#8243;. O retorno deve ser como na imagem na sequência.</p>
<pre class="remontti-code"># apt info baculum-web</pre>
<p><img loading="lazy" decoding="async" class=" wp-image-4530" src="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-10-27-300x96.png" alt="" width="744" height="238" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-10-27-300x96.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-10-27-1024x329.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-10-27-768x247.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-10-27.png 1054w" sizes="auto, (max-width: 744px) 100vw, 744px" /></p>
<p>Agora sim, finalmente vamos instalar os pacotes do <strong>Baculum.</strong></p>
<pre class="remontti-code"># apt install baculum-api baculum-api-apache2 baculum-common bacula-console baculum-web baculum-web-apache2 -y</pre>
<p>Durante a instalação, vamos receber o questionamento como na imagem abaixo. Selecione &#8220;manter a versão local atualmente instalada&#8221;.</p>
<p><img loading="lazy" decoding="async" class=" wp-image-4531" src="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-11-59-300x154.png" alt="" width="781" height="401" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-11-59-300x154.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-11-59-1024x525.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-11-59-768x394.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-11-59.png 1366w" sizes="auto, (max-width: 781px) 100vw, 781px" /></p>
<p>Aqui damos algumas permissões necessárias para que o <strong>Baculum</strong> consiga rodar comando em nosso <strong>bconsole</strong>.</p>
<pre class="remontti-code"># cat &lt;&lt;EOF &gt;/etc/sudoers.d/baculum
www-data ALL=NOPASSWD: /usr/sbin/bconsole
www-data ALL=NOPASSWD: /etc/bacula/confapi
www-data ALL=NOPASSWD: /usr/sbin/bdirjson
www-data ALL=NOPASSWD: /usr/sbin/bbconsjson
www-data ALL=NOPASSWD: /usr/sbin/bfdjson
www-data ALL=NOPASSWD: /usr/sbin/bsdjson
www-data ALL=NOPASSWD: /usr/bin/systemctl
EOF</pre>
<p>Adicionamos o <strong>bacula</strong> ao grupo do apache e mudamos as permissões da pasta onde fica.<br />
Necessário para que o <strong>baculum</strong> consiga editar arquivos da pasta.</p>
<pre class="remontti-code"># usermod -aG bacula www-data 
# chown -R www-data:bacula /etc/bacula</pre>
<p>Aqui ativamos o modo rewrite do apache, as interfaces do <strong>baculum</strong> e da <strong>api</strong>. Em seguida restartamos o apache.</p>
<pre class="remontti-code"># a2enmod rewrite ldap
# a2ensite baculum-web baculum-api
# systemctl restart apache2</pre>
<p>Agora vamos a parte Web, acesse o ip da máquina e a porta 9096, no meu caso <strong>10.246.247.90:9096</strong>, faça login com usuário: admin. Senha: admin. E chegará na tela a seguir, selecione o idioma e avance, aqui nesta parte é tudo muito intuítivo.</p>
<p><img loading="lazy" decoding="async" width="1366" height="676" class="wp-image-4547" src="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-16-51.png" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-16-51.png 1366w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-16-51-300x148.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-16-51-1024x507.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-16-51-768x380.png 768w" sizes="auto, (max-width: 1366px) 100vw, 1366px" /></p>
<p>Selecione Sim, e insira a senha do dados do banco de dados (usuário bacula), Endereço IP informe 127.0.0.1, Teste e Prossiga.</p>
<p><img loading="lazy" decoding="async" width="1366" height="673" class=" wp-image-4548" src="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-17-17.png" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-17-17.png 1366w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-17-17-300x148.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-17-17-1024x505.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-17-17-768x378.png 768w" sizes="auto, (max-width: 1366px) 100vw, 1366px" /></p>
<p>Selecione sim e marque a opção &#8220;Obter configuração do sudo&#8221; teste e avance.</p>
<p><img loading="lazy" decoding="async" width="1366" height="672" class=" wp-image-4550" src="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-20-45-1.png" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-20-45-1.png 1366w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-20-45-1-300x148.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-20-45-1-1024x504.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-20-45-1-768x378.png 768w" sizes="auto, (max-width: 1366px) 100vw, 1366px" /></p>
<p>Selecione sim. Em &#8220;Diretório de trabalho do Baculum para a configuração do Bacula&#8221; insira &#8220;<strong>/etc/bacula/working</strong>&#8220;, marque &#8220;Obter configuração do sudo&#8221; teste as configurações e avance para a etapa seguinte.</p>
<p><img loading="lazy" decoding="async" width="1366" height="673" class="wp-image-4552" src="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-21-08.png" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-21-08.png 1366w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-21-08-300x148.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-21-08-1024x505.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-21-08-768x378.png 768w" sizes="auto, (max-width: 1366px) 100vw, 1366px" /></p>
<p>Selecione Sim, marque a opção &#8220;Obter configuração do sudo&#8221; e prossiga.</p>
<p><img loading="lazy" decoding="async" width="1366" height="675" class="wp-image-4553" src="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-25-44.png" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-25-44.png 1366w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-25-44-300x148.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-25-44-1024x506.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-25-44-768x380.png 768w" sizes="auto, (max-width: 1366px) 100vw, 1366px" /></p>
<p>Crie um usuário para acessar a interface da API, avance.</p>
<p><img loading="lazy" decoding="async" width="1366" height="668" class="wp-image-4554" src="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-26-01.png" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-26-01.png 1366w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-26-01-300x147.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-26-01-1024x501.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-26-01-768x376.png 768w" sizes="auto, (max-width: 1366px) 100vw, 1366px" /></p>
<p>Aqui você vera uma revisão das configurações criadas anteriomente, ao avançar esta etapa o login será solicitado. Realize-o com as credenciais criadas.</p>
<p><img loading="lazy" decoding="async" width="1366" height="674" class=" wp-image-4555" src="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-26-08.png" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-26-08.png 1366w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-26-08-300x148.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-26-08-1024x505.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-26-08-768x379.png 768w" sizes="auto, (max-width: 1366px) 100vw, 1366px" /></p>
<p>Eu optei por criar um usuário específico para usar a API. Clique em &#8220;Listar usuários HTTP Básico&#8221; e em &#8220;Novo usuário HTTP Básico&#8221;, informe os dados e clique em adicionar, conforme abaixo.</p>
<p><img loading="lazy" decoding="async" width="1366" height="656" class=" wp-image-4556" src="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-26-33.png" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-26-33.png 1366w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-26-33-300x144.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-26-33-1024x492.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-26-33-768x369.png 768w" sizes="auto, (max-width: 1366px) 100vw, 1366px" /></p>
<p>Acesse seus IP na na porta 9095, para finalmente configurarmos o Baculum. (Entre com admin/admin).</p>
<p>Selecione o idioma e avance.<br />
<img loading="lazy" decoding="async" width="1366" height="673" class=" wp-image-4557" src="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-26-52.png" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-26-52.png 1366w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-26-52-300x148.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-26-52-1024x505.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-26-52-768x378.png 768w" sizes="auto, (max-width: 1366px) 100vw, 1366px" /></p>
<p>Insira as credenciais criadas antes (no meu ex eu criei um usuário api), para que o baculum acesse a API, clique em testar e avance.</p>
<p><img loading="lazy" decoding="async" width="1366" height="671" class=" wp-image-4558" src="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-27-07.png" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-27-07.png 1366w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-27-07-300x147.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-27-07-1024x503.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-27-07-768x377.png 768w" sizes="auto, (max-width: 1366px) 100vw, 1366px" /></p>
<p>Ajuste o usuário para acessar o Baculum nesta etapa e prossiga.</p>
<p><img loading="lazy" decoding="async" width="1366" height="673" class=" wp-image-4559" src="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-27-25.png" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-27-25.png 1366w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-27-25-300x148.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-27-25-1024x505.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-27-25-768x378.png 768w" sizes="auto, (max-width: 1366px) 100vw, 1366px" /></p>
<p>Novamente uma revisão das informações, clique em &#8220;Salvar&#8221;.</p>
<p><img loading="lazy" decoding="async" width="1366" height="675" class=" wp-image-4560" src="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-27-33.png" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-27-33.png 1366w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-27-33-300x148.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-27-33-1024x506.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-27-33-768x380.png 768w" sizes="auto, (max-width: 1366px) 100vw, 1366px" /></p>
<p>E pronto, chegamos ao fim. Bacula com interface gráfica prontinho para uso.</p>
<p><img loading="lazy" decoding="async" width="1366" height="674" class=" wp-image-4561" src="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-27-44-1.png" alt="" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-27-44-1.png 1366w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-27-44-1-300x148.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-27-44-1-1024x505.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-04-21-27-44-1-768x379.png 768w" sizes="auto, (max-width: 1366px) 100vw, 1366px" /></p>
<p>Vamos conferir se o endereço IP (Address) está o IP de localhost, a alteraremos para o IP da interface do servidor.</p>
<pre class="remontti-code"># vim /etc/bacula/bacula-dir.conf</pre>
<p>Localize Storage {} e confira o parâmetro &#8216;Address&#8217;, altere o IP de localhost 127.0.0.1 para o IP da interface de rede da sua maquina. Se esses endereços ficarem incorretos, o bacula até consegue conversar com nosso cliente, porém nosso cliente não sabe para onde deve enviar os backup&#8217;s (a explicação é um pouco mais longa que isso, mas brevemente é o que acontece).</p>
<pre class="remontti-code">#...
Storage {
  Name = &quot;File1&quot;
  SdPort = 9103
  Address = &quot;SEU_IP_AQUI&quot; 
  Password = &quot;xxxxxxxxxxxxxxxxxx&quot;
  Device = &quot;FileChgr1&quot;
  MediaType = &quot;File1&quot;
  Autochanger = &quot;File1&quot;
  MaximumConcurrentJobs = 10
}
Storage {
  Name = &quot;File2&quot;
  SdPort = 9103
  Address = &quot;SEU_IP_AQUI&quot;
  Password = &quot;xxxxxxxxxxxxxxxxxxxxxxxx&quot;
  Device = &quot;FileChgr2&quot;
  MediaType = &quot;File2&quot;
  Autochanger = &quot;File2&quot;
  MaximumConcurrentJobs = 10
}
#...</pre>
<p>Feito essa alteração, vamos conferir, não é mesmo?</p>
<pre class="remontti-code"># bacula restart
# bconsole</pre>
<p>Dentro do console, você pode verificar um cliente (deixarei o exemplo já já):</p>
<pre class="remontti-code">* status network client=deb10-fd</pre>
<p>Agora você pode gerar seus backups de máquinas Linux, Windows, Banco de dados&#8230; As possibilidades são infinitas. Crie suas rotinas, escolha do que fazer backup e faça seus testes. PS: Ainda pode ser necessário atualizar algumas diretivas direto no terminal, nos arquivos de configuração, portanto recomendo que leia a documentação, <a href="https://www.bacula.org/documentation/documentation/" target="_blank" rel="noopener noreferrer">neste link</a>.</p>
<h3>:: Extras &#8211; Add um cliente::</h3>
<p>Aqui vou deixar ainda, um exemplo de configuração de um cliente Linux, para que você não fique tão perdido assim em meio a tanta informação.</p>
<h4>:: No lado do cliente ::</h4>
<p>Para isso instale bacula-fd</p>
<pre class="remontti-code"># apt install bacula-fd -y</pre>
<p>Ajuste as configurações em /etc/bacula/bacula-fd.conf</p>
<pre class="remontti-code"># vim /etc/bacula/bacula-fd.conf</pre>
<pre class="remontti-code">Director {
  Name = bacula-dir
  Password = &quot;4nyrNNFD1IyWlQNgjXorr4bdWx8_kgHCP&quot;
}
#Director {
#  Name = deb10-mon
#  Password = &quot;GjRiOZ1KxjAXw2_LVe2H4ruZShoZIdnCQ&quot;
#  Monitor = yes
#}
FileDaemon {                    
  Name = deb10-fd
  FDport = 9102                 
  WorkingDirectory = /var/lib/bacula
  Pid Directory = /run/bacula
  Maximum Concurrent Jobs = 20
  Plugin Directory = /usr/lib/bacula
  #FDAddress = 127.0.0.1
}
Messages {
  Name = Standard
  director = deb10-dir = all, !skipped, !restored
}</pre>
<p>O campo &#8216;Name&#8217;, em Director é o nome do nosso servidor, por padrão ele vem com &#8216;<strong>bacula-dir</strong>&#8216;, e em nosso servidor criamos assim então não precisamos alterar, o campo &#8216;Password&#8217; é a senha que o Bacula usará para se conectar em nossa máquina (precisaremos dela adiante). Em &#8216;FileDaemon&#8217; vamos pegar o &#8216;Name&#8217;, que vamos usar para criar nosso cliente na interface gráfica. Basicamente isso, existem outros parâmetros que podem ser usados, para ver quais são consulte a documentação, mas com essas informações básicas já faremos um backup funcionar!</p>
<p>Restarte o bacula-fd</p>
<pre class="remontti-code"># systemctl restart bacula-fd</pre>
<h4>:: No lado do servidor ::</h4>
<p>Agora voltamos ao Baculum, IP:9095.<br />
Na sidebar da esquerda clique em &#8216;Clientes&#8221;, em seguida na tela que vai aparecer, clique em &#8216;Adicionar cliente&#8217;.<br />
<img loading="lazy" decoding="async" width="1366" height="630" class="wp-image-4611 aligncenter" src="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-05-17-24-25.png" alt="" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-05-17-24-25.png 1366w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-05-17-24-25-300x138.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-05-17-24-25-1024x472.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-05-17-24-25-768x354.png 768w" sizes="auto, (max-width: 1366px) 100vw, 1366px" /></p>
<p>Agora vamos adicionar nosso 1º cliente de backup. Entre com as informações, &#8216;Name&#8217; insira o nome que estava na aba &#8216;FileDaemon&#8217; de nosso cliente, &#8216;Address&#8217; é o IP da máquina do cliente, &#8216;Password&#8217; é a senha, que também estava no cliente (como falei antes). Em &#8216;Catalog&#8217; selecione &#8216;MyCatalog&#8217;, clique em &#8216;Criar&#8217;, um pop-up se abrirá indicando sucesso na adição do cliente, clique em &#8216;Ok&#8217;.</p>
<p><img loading="lazy" decoding="async" width="1366" height="632" class="wp-image-4619 aligncenter" src="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-05-18-56-20.png" alt="" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-05-18-56-20.png 1366w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-05-18-56-20-300x139.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-05-18-56-20-1024x474.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-05-18-56-20-768x355.png 768w" sizes="auto, (max-width: 1366px) 100vw, 1366px" /></p>
<p>Agora, clique na flecha azul, ao lado do cliente que adicionamos e em seguida clique em &#8216;Detalhar&#8217;.</p>
<p><img loading="lazy" decoding="async" width="1366" height="628" class="wp-image-4613 aligncenter" src="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-05-17-28-11.png" alt="" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-05-17-28-11.png 1366w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-05-17-28-11-300x138.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-05-17-28-11-1024x471.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-05-17-28-11-768x353.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-05-17-28-11-980x450.png 980w" sizes="auto, (max-width: 1366px) 100vw, 1366px" /></p>
<p>Nesta aba, clique &#8216;Status do cliente&#8217;, e rapidamente será feita uma captura de informações sobre nosso cliente de backup. Tudo pronto para o backup.</p>
<p><img loading="lazy" decoding="async" width="1366" height="633" class="wp-image-4615 aligncenter" src="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-05-17-31-20.png" alt="" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-05-17-31-20.png 1366w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-05-17-31-20-300x139.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-05-17-31-20-1024x475.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/06/Captura-de-tela-de-2020-06-05-17-31-20-768x356.png 768w" sizes="auto, (max-width: 1366px) 100vw, 1366px" /></p>
<p>Confira também o GitHub do <a href="https://github.com/wanderleihuttel" target="_blank" rel="noopener noreferrer">Wanderlei Huttel</a>, a base deste tuto veio de lá, e também tem muito material complementar lá, como scripts de envio de dados para o Telegram e muito mais. Não trataremos aqui pra não ficar muito extenso.</p>
<p>Acompanhe a comunidade do Bacula no Telegram <a href="https://t.me/baculabr" target="_blank" rel="noopener noreferrer">neste link</a>, boa parte das suas dúvidas outras pessoas já tiveram, então é só pesquisar no grupo.</p>
<p>Se tiver qualquer pergunta deixe nos comentários. Espero que tenha ajudado você, qualquer dúvida você me encontra la no grupo <a href="https://t.me/remontticombr" target="_blank" rel="noopener noreferrer">https://t.me/remontticombr</a> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /><br />
Abraço!</p>
<p>Autor: Lenon Correa <a href="https://t.me/lenon_correa">https://t.me/lenon_correa</a></p>
<p><a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a></p>
<p>Fontes:</p>
<p>http://softwarelivre.org/heitorfaria/blog/baculum-9-configuracao-grafica-do-bacula-administracao-e-api<br />
https://github.com/wanderleihuttel/bacula-utils/blob/master/tutorial/bacula_install_debian10.txt<br />
https://github.com/wanderleihuttel/bacula-utils/blob/master/tutorial/baculum_install_debian9.sh</p>
<blockquote class="wp-embedded-content" data-secret="iSxcEGAs72"><p><a href="https://www.bacula.lat/o-que-e-o-bacula/">O que é o Bacula?</a></p></blockquote>
<p><iframe loading="lazy" class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;O que é o Bacula?&#8221; &#8212; Bacula Brasil e América Latina" src="https://www.bacula.lat/o-que-e-o-bacula/embed/#?secret=iSxcEGAs72" data-secret="iSxcEGAs72" width="500" height="282" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></p>
<blockquote class="wp-embedded-content" data-secret="WKwPMUP69q"><p><a href="https://www.bacula.lat/">Página Inicial</a></p></blockquote>
<p><iframe loading="lazy" class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;Página Inicial&#8221; &#8212; Bacula Brasil e América Latina" src="https://www.bacula.lat/embed/#?secret=WKwPMUP69q" data-secret="WKwPMUP69q" width="500" height="282" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></p>
<p>O post <a href="https://blog.remontti.com.br/4460">Solução de backup completa Open Source: Bacula Community 9.6.x e Baculum 9.6.x</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/4460/feed</wfw:commentRss>
			<slash:comments>19</slash:comments>
		
		
			</item>
		<item>
		<title>Servidor Looking Glass simples e rápido!</title>
		<link>https://blog.remontti.com.br/4243</link>
					<comments>https://blog.remontti.com.br/4243#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Fri, 27 Mar 2020 20:54:36 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mikrotik]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[bgp]]></category>
		<category><![CDATA[cisco]]></category>
		<category><![CDATA[Comware]]></category>
		<category><![CDATA[Huawei]]></category>
		<category><![CDATA[juniper]]></category>
		<category><![CDATA[lg]]></category>
		<category><![CDATA[looking glass]]></category>
		<category><![CDATA[OpenBGPD]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Quagga]]></category>
		<category><![CDATA[RADb]]></category>
		<category><![CDATA[routeros]]></category>
		<category><![CDATA[Zebra]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=4243</guid>

					<description><![CDATA[<p>Um servidor Looking Glass (ou servidor LG) é muito útil para acesso remoto com o objetivo de disponibilizar informações de roteamento publicamente. O servidor atua como um portal limitado e somente leitura para roteadores&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/4243">Servidor Looking Glass simples e rápido!</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Um servidor Looking Glass (ou servidor LG) é muito útil para acesso remoto com o objetivo de disponibilizar informações de roteamento publicamente. O servidor atua como um portal limitado e somente leitura para roteadores de qualquer organização que esteja executando o servidor LG.</p>
<p>Para montar o servidor vamos usar um projeto muito simples que basicamente tem 2 arquivos, o <a href="https://github.com/remontti/lg" rel="noopener noreferrer" target="_blank">PHP Looking Glass</a> qual é um fork do projeto russo <a href="https://github.com/hsdn/lg" rel="noopener noreferrer" target="_blank">hsdn</a>.<br />
<center><a href="https://blog.remontti.com.br/wp-content/uploads/2020/03/Looking_Glass_debina_10_graph.png" data-rel="lightbox-gallery-dQEB14k8" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/03/Looking_Glass_debina_10_graph-300x265.png" alt="" width="300" height="265" class="alignnone size-medium wp-image-4254" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/03/Looking_Glass_debina_10_graph-300x265.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/03/Looking_Glass_debina_10_graph-768x677.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/03/Looking_Glass_debina_10_graph.png 848w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2020/03/show-ip-bgp.png" data-rel="lightbox-gallery-dQEB14k8" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/03/show-ip-bgp-300x265.png" alt="" width="300" height="265" class="alignnone size-medium wp-image-4256" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/03/show-ip-bgp-300x265.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/03/show-ip-bgp-768x677.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/03/show-ip-bgp.png 862w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></center></p>
<p>Você encontra outros projetos legais também como o da <a href="https://github.com/respawner/looking-glass" rel="noopener noreferrer" target="_blank">respawner</a> qual o pessoal da <a href="https://wiki.brasilpeeringforum.org/w/Como_Ter_Seu_Proprio_Looking_Glass" rel="noopener noreferrer" target="_blank">BPF</a> já fez tutorial sobre o mesmo. </p>
<h3>Características do PHP Looking Glass</h3>
<p>Suporte a Telnet e SSH (plink ou sshpass).<br />
Suporte aos roteadores <strong>Cisco, MikroTik (RouterOS), Juniper, Huawei (Comware), Quagga (Zebra) e OpenBGPD</strong>.<br />
Suppores aos protocolos IPv4 e IPv6.<br />
Conversão automática de IPs em sub-redes usando Merit RADb para MikroTik (http://www.ra.net/).<br />
Desenho do gráfico BGP AS usando o kit de ferramentas GraphViz.<br />
Funciona no php 5.2.0 e superiores.</p>
<p>Para subir o projeto em seu servidor você precisa ter um serviço web como apache por exemplo e PHP basicamente. Você pode subir ele em um servido já em produção, não é necessário criar um servidor apenas para essa finalidade. (Porém fica a seu critério) </p>
<p>Vou trazer uma instalação limpa com base na <a href="https://blog.remontti.com.br/2966" rel="noopener noreferrer" target="_blank">instalação zerada do Debian 10</a>. </p>
<p>Com Debian instalado vamos instalar os pacotes necessários:</p>
<pre class="remontti-code"># apt install apache2 apache2-utils sshpass graphviz
# apt install libapache2-mod-php php php-cli php-pear php-gmp php-gd php-bcmath php-mbstring php-curl php-xml php-zip
# pear install Image_GraphViz-1.3.0</pre>
<p>Vou colocar o projeto no diretório padrão do apache /var/www/html/, mas você pode criar um <a href="https://blog.remontti.com.br/3464" rel="noopener noreferrer" target="_blank">domínio virtual </a>para isso ficar muito mais legal e ainda criar um <a href="https://blog.remontti.com.br/3548" rel="noopener noreferrer" target="_blank">certificado gratuitamente</a> com o  Let’s Encrypt</p>
<pre class="remontti-code"># mkdir /var/www/html/lg
# cd /var/www/html/lg
# apt install wget
# wget https://github.com/remontti/lg/raw/master/htdocs/favicon.ico
# wget https://github.com/remontti/lg/raw/master/htdocs/lg_logo.gif
# wget https://raw.githubusercontent.com/remontti/lg/master/htdocs/index.php
# wget https://raw.githubusercontent.com/remontti/lg/master/htdocs/lg_config.php</pre>
<p>Agora basta vocÊ editar o arquivo <strong>lg_config.php</strong> e alterar os valores das variáveis:</p>
<p><strong>$_CONFIG[&#8216;asn&#8217;]</strong> &#8211; Seu AS para exibição na página LG.<br />
<strong>$_CONFIG[&#8216;company&#8217;]</strong> &#8211; Nome da empresa para exibição na página LG.<br />
<strong>$_CONFIG[&#8216;logo&#8217;]</strong> &#8211; O logotipo da sua empresa para exibição na página LG.<br />
<strong>$_CONFIG[&#8216;color&#8217;]</strong> &#8211; Cor principal dos elementos de design na página LG.</p>
<p>A configuração dos roteadores é especificada em $_CONFIG[&#8216;routers&#8217;], no seguinte formato:</p>
<pre class="remontti-code-plain">$_CONFIG[&#039;routers&#039;] = array
(
    &#039;router1&#039; = array
    (
        // Router valores
    ),
    &#039;router2&#039; = array
    (
        // Router valores
    ),
    // etc.
);</pre>
<p>No nosso arquivo atual já consta com 3 exemplos sendo um o do IX.BR (SP). Basta você configurar seu roteado seguindo os padrões:</p>
<p><strong>url</strong> &#8211; Endereço no formato: [ssh|telnet]://[login]:[password]@[host]:[port].<br />
<strong>pingtraceurl</strong> &#8211; Endereço URL para ferramentas de ping e traceroute para roteadores Quagga (ou * FALSE *).<br />
<strong>description</strong> &#8211; Descrição do roteador.<br />
<strong>group</strong> &#8211; Nome do grupo de roteadores (AS) (ou FALSE).<br />
<strong>ipv6</strong> &#8211; Suporte IPv6? (TRUE ou FALSE).<br />
<strong>os</strong> &#8211; Tipo do Router (ios, mikrotik, quagga, junos, openbgpd, huawei).</p>
<p>Configurações ajustada basta acessar o endereço http://ip-servidor/lg ou se você fez bonitinho via domínio <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/03/Looking_Glass_debina_10.png" data-rel="lightbox-gallery-dQEB14k8" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/03/Looking_Glass_debina_10.png" alt="" width="978" height="544" class="alignnone size-full wp-image-4250" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/03/Looking_Glass_debina_10.png 978w, https://blog.remontti.com.br/wp-content/uploads/2020/03/Looking_Glass_debina_10-300x167.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/03/Looking_Glass_debina_10-768x427.png 768w" sizes="auto, (max-width: 978px) 100vw, 978px" /></a></p>
<p>Curtiu o conteúdo? Quer me ajudar? <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><strong>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento! (Esse deu trabalho!)</strong><br />
<a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a></p>
<p>Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato <a href="https://blog.remontti.com.br/meucontato" rel="noopener noreferrer" target="_blank">clique aqui.</a></p>
<p>Participe do canal no <a href="https://t.me/blogremontti" rel="noopener noreferrer" target="_blank">telegram</a> para ficar atualizado sempre que publicar um novo tutorial. </p>
<p>Abraço!</p>
<p><strong>Demos</strong><br />
<a href="http://dev.hsdn.org/lg/" rel="noopener noreferrer" target="_blank">http://dev.hsdn.org/lg/</a><br />
<a href="http://lg.campus-rv.net/" rel="noopener noreferrer" target="_blank">http://lg.campus-rv.net/</a><br />
<a href="http://lg.lankabell.com/" rel="noopener noreferrer" target="_blank">http://lg.lankabell.com/</a></p>
<p><strong>Gráfico da demonstração (BGP AS)</strong><br />
<a href="http://dev.hsdn.org/lg/?command=graph&#038;protocol=ipv4&#038;query=8.8.8.8&#038;router=example1" rel="noopener noreferrer" target="_blank">http://dev.hsdn.org/lg/?command=graph&#038;protocol=ipv4&#038;query=8.8.8.8&#038;router=example1</a></p>
<p>O post <a href="https://blog.remontti.com.br/4243">Servidor Looking Glass simples e rápido!</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/4243/feed</wfw:commentRss>
			<slash:comments>36</slash:comments>
		
		
			</item>
		<item>
		<title>Criando um servidor de virtualização super leve com Debian 10 e Virtualbox WEB</title>
		<link>https://blog.remontti.com.br/3670</link>
					<comments>https://blog.remontti.com.br/3670#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Tue, 08 Oct 2019 21:06:21 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[dell]]></category>
		<category><![CDATA[leve]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[virtualbox]]></category>
		<category><![CDATA[virtualização]]></category>
		<category><![CDATA[webserver]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=3670</guid>

					<description><![CDATA[<p>Com VirtualBox é possivel executar diversos sistemas operacionais (Windows, Linux, UNIX, BSD) simultaneamente no mesmo hardware, que são chamados de máquinas virtuais. Uma das características é o mascaramento dos recursos físicos (incluindo processadores, quantidade&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/3670">Criando um servidor de virtualização super leve com Debian 10 e Virtualbox WEB</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Com VirtualBox é possivel executar diversos sistemas operacionais (Windows, Linux, UNIX, BSD) simultaneamente no mesmo hardware, que são chamados de máquinas virtuais. Uma das características é o mascaramento dos recursos físicos (incluindo processadores, quantidade de memória, interfaces de rede), o que permite diminuir a administração de drivers nas máquinas virtuais, e transferir uma máquina virtual entre servidores físicos diferentes.</p>
<p>Existem várias ferramentas de virtualização disponíveis.</p>
<p><strong>Microsoft Virtual Server 2005 R2</strong> &#8211; disponível para plataforma x86 e x86_64 bits. Suporte: Somente Windows.<br />
<strong>Qemu</strong> &#8211; ferramenta de virtualização de código aberto disponível para windows, mac e Linux.<br />
<strong>Vmware </strong>&#8211; Disponível para Windows e Linux.<br />
<strong>VirtualBox </strong>&#8211; Aplicativo de código aberto disponível para Windows, Mac, Linux e Solaris.<br />
<strong>Xen </strong>&#8211; Suporta Windows, bem como distribuições Linux.</p>
<p>O <strong>VirtualBox </strong> inicialmente foi lançado sob licença proprietária, mas mais tarde (2007) a Oracle Corporation começou a lançá-lo sob GNU General Public License. Escrito completamente em C, C ++ e Assembly Language está disponível para Windows, OS X, Linux e Solaris.</p>
<p>Recomendo já baixar a ISO nonfree: <a href="https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/" target="_blank" rel="noopener noreferrer">https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/</p>
<p>Adicione o repositório do <a href="https://www.virtualbox.org/" target="_blank" rel="noopener noreferrer">virtualbox</a></p>
<p><strong>Debian 10 Buster</strong></p>
<pre class="remontti-code"># apt install wget vim apt-transport-https gnupg
# echo &#039;deb [arch=amd64] http://download.virtualbox.org/virtualbox/debian buster contrib&#039; &gt; /etc/apt/sources.list.d/virtualbox.list
# wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | apt-key add -
# wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | apt-key add -</pre>
<p>Vamos a instalação, a versão 5.2 (nesta data 08/10/19) ainda não tem uma versão (Oficial) 6 compatível com o phpVirtualbox. Mas se você é expert existe alguns <a href="https://github.com/phpvirtualbox/phpvirtualbox/network/members">forks</a> compatível com 6.0.</p>
<p>Certifique-se que seu repositório esteja usando os repositórios <strong>nonfree e contrib</strong>.</p>
<pre class="remontti-code"># vim /etc/apt/sources.list</pre>
<p>Ao final de cada linha verifique se consta:  <strong>nonfree e contrib</strong>, se não tiver adicione, ficando assim:</p>
<pre class="remontti-code">deb http://deb.debian.org/debian/ buster main contrib non-free
deb-src http://deb.debian.org/debian/ buster main contrib non-free

deb http://security.debian.org/debian-security buster/updates main contrib non-free
deb-src http://security.debian.org/debian-security buster/updates main contrib non-free

# buster-updates, previously known as &#039;volatile&#039;
deb http://deb.debian.org/debian/ buster-updates main contrib non-free
deb-src http://deb.debian.org/debian/ buster-updates main contrib non-free</pre>
<p>Atualize o repositório</p>
<pre class="remontti-code"># apt update
# apt install firmware-linux firmware-linux-free firmware-linux-nonfree</pre>
<p>Já vamos aproveitar para otimizar a parametrização do uso da memoria SWAP do nosso debian. Ajustaremos o swappiness para 10, assim o SWAP só começará a ser usado quando a memória RAM estiver 90% cheia.</p>
<pre class="remontti-code"># echo &quot;# Reduz o uso de SWAP&quot; &gt;&gt; /etc/sysctl.conf
# echo &quot;vm.swappiness=10&quot; &gt;&gt; /etc/sysctl.conf
# echo &quot;# Melhora a gestão de cache&quot; &gt;&gt; /etc/sysctl.conf
# echo &quot;vm.vfs_cache_pressure=50&quot; &gt;&gt; /etc/sysctl.conf
# echo &quot;vm.dirty_background_ratio = 5&quot; &gt;&gt; /etc/sysctl.conf</pre>
<p>Reinicia a máquina para carregar os novos módulos do kernel.</p>
<pre class="remontti-code"># apt install virtualbox-5.2
# reboot</pre>
<p>Verifique se swappiness retorna o valor 10</p>
<pre class="remontti-code"># cat /proc/sys/vm/swappiness</pre>
<p>Faça download dos pacotes extras: <a href="https://www.virtualbox.org/wiki/Download_Old_Builds_5_2" rel="noopener noreferrer" target="_blank">https://www.virtualbox.org/wiki/Download_Old_Builds_5_2</a> como instalei a versão 5.2 irei baixar a versão correspondente: <em>(If you&#8217;re looking for the latest VirtualBox 5.2 packages, see VirtualBox 5.2 builds.)</em></p>
<pre class="remontti-code"># su -
# cd /tmp/ 
# wget https://download.virtualbox.org/virtualbox/5.2.44/Oracle_VM_VirtualBox_Extension_Pack-5.2.44.vbox-extpack</pre>
<p>Instale os pacotes extras</p>
<pre class="remontti-code"># VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.2.44.vbox-extpack</pre>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1871" src="https://blog.remontti.com.br/wp-content/uploads/2017/05/vb1.png" alt="" width="618" height="325" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/05/vb1.png 618w, https://blog.remontti.com.br/wp-content/uploads/2017/05/vb1-300x158.png 300w" sizes="auto, (max-width: 618px) 100vw, 618px" /><br />
Responta Yes <strong>(y)</strong></p>
<p>Vamos executá-lo como o nosso usuário <strong>vbox</strong>, porque ele não precisa acessar o resto do seu sistema.</p>
<pre class="remontti-code"># useradd -d /home/vbox -m -g vboxusers -s /bin/bash vbox</pre>
<p>Defina uma senha para seu usuario vbox</p>
<pre class="remontti-code"># passwd vbox</pre>
<p>Diga ao seu sistema qual usuário vai executar o VirtualBox.</p>
<pre class="remontti-code"># echo &#039;VBOXWEB_USER=vbox&#039; &gt; /etc/default/virtualbox 
# echo &#039;VBOXWEB_HOST=127.0.0.1&#039; &gt;&gt; /etc/default/virtualbox</pre>
<p>Faça com que o vboxweb-service inicie no boot. Como dito acima nosso usuário não precisa ter acesso total ao sistema, entao vamos instalar o sudo e roda-lo via sudo.</p>
<pre class="remontti-code"># apt install sudo</pre>
<p>Adicione no /etc/rc.local o comando para iniciar junto com o boot.</p>
<pre class="remontti-code"># vim /etc/rc.local</pre>
<p>Adicione</p>
<pre class="remontti-code">#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will &quot;exit 0&quot; on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Solução para inicialização automatica:
# use o comando la listar as VMs criadas
# sudo -u vbox VBoxManage list vms
# Colete as ID
# &quot;Debian&quot; {d288884d-a3d4-4903-b84e-5c6039af13b5}
# Pegue o &quot;ID&quot; da VM e use o Comando a baixo descomentando a linha:
# Adicione um sleep para aguardar 30seg para dar tempo do modulo do kernel ter tempo de iniciar
# sleep 30
# sudo -u vbox VBoxHeadless -s d288884d-a3d4-4903-b84e-5c6039af13b5 &amp;


exit 0</pre>
<p>Alterare as permissões:</p>
<pre class="remontti-code"># chmod +x /etc/rc.local
# ln -s /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service</pre>
<p>Vamos instalar o serviço web + php</p>
<pre class="remontti-code"># apt install apache2 libapache2-mod-php\
 php-cli php-bcmath php-gmp php-mbstring php-zip php-curl\
 php php-common php-soap php-gd unzip php-pear php-mysql php-xml php-soap</pre>
<p>Por segurança recomendo remover a assinatura do servidor, para isso:</p>
<pre class="remontti-code"># sed -i &#039;s/ServerTokens OS/ServerTokens Prod/&#039; /etc/apache2/conf-available/security.conf
# sed -i &#039;s/ServerSignature On/ServerSignature Off/&#039; /etc/apache2/conf-available/security.conf</pre>
<p>Vamos também configurar nosso <a href="https://blog.remontti.com.br/3464" rel="noopener noreferrer" target="_blank">domínio virtual</a> para acessar o servidor via domínio (ex vbox.remontti.com.br) e restringir ele apenas para nossos IP de gerencia. </p>
<pre class="remontti-code"># vim /etc/apache2/sites-available/000-default.conf</pre>
<p>Faça as devidas alterações, não esqueça de alterar em <strong>Require ip</strong> para os IPs que você vai autorizar as conexões.</p>
<pre class="remontti-code">&lt;virtualhost *:80&gt;
        Protocols h2 http/1.1
        ServerName vm.remontti.com.br
        ServerAdmin noc@remontti.com.br
        ErrorDocument 403 http://www.remontti.com.br/
 
        DocumentRoot /var/www/html
 
        &lt;Directory /var/www/html/&gt;
                Options FollowSymLinks
                AllowOverride All
                Require ip 127.0.0.1 ::1 192.168.0.0/16 172.16.0.0/12 100.64.0.0/10 10.0.0.0/8 250.0.0.0/22 2000:000::/32
        &lt;/Directory&gt;
 
        LogLevel warn 
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
&lt;/virtualhost&gt;</pre>
<p>Habilite os módulos</p>
<pre class="remontti-code"># a2enmod http2
# systemctl restart apache2</pre>
<p>Que tal configurar um certificado grátis com let&#8217;s encrypt?</p>
<pre class="remontti-code"># apt install apache2 apache2-utils letsencrypt python-certbot-apache
# systemctl stop apache2
# letsencrypt --authenticator standalone --installer apache -d vm.remontti.com.br</pre>
<p>Agora já é possível acessar <em>&#8220;vm.remontti.com.br&#8221;</em> com HTTPS, faça um teste se seu domínio esta respondendo corretamente.</p>
<p>Para evitar que o certificado expire faça um script e colocando ele no cron para que o mesmo renove automaticamente.</p>
<pre class="remontti-code"># vim  /etc/renovassl.sh</pre>
<p>Adicione</p>
<pre class="remontti-code">#!/bin/bash
/usr/bin/systemctl stop apache2
/usr/bin/certbot -q renew
/usr/bin/systemctl start apache2</pre>
<p>De permissão de execução: </p>
<pre class="remontti-code"># chmod +x /etc//renovassl.sh</pre>
<p>Adicione ao cron e restarte o cron</p>
<pre class="remontti-code"># echo &#039;00 00   * * *   root    /etc/renovassl.sh&#039; &gt;&gt; /etc/crontab
# systemctl restart cron</pre>
<p>Vamos configurar o projeto <a href="https://phpvirtualbox.github.io/" target="_blank" rel="noopener noreferrer">phpvirtualbox</a>, dentro do diretório padrão do apache.</p>
<pre class="remontti-code"># cd /var/www/
# rm -rf /var/www/html/
# wget https://github.com/phpvirtualbox/phpvirtualbox/archive/5.2-1.tar.gz  -O phpvirtualbox-5.2-1.tar.gz
# tar -vxzf phpvirtualbox-5.2-1.tar.gz
# mv phpvirtualbox-5.2-1 html
# rm phpvirtualbox-5.2-1.tar.gz
# chown vbox:vboxusers html  -R
# cd /var/www/html/
# cp config.php-example config.php
# vim config.php</pre>
<pre class="remontti-code"> // ... //
var $username = &#039;vbox&#039;;
var $password = &#039;pass&#039;;
// ... //
var $language = &#039;pt_br&#039;;
var $vrdeports = &#039;9000-9100&#039;;
var $vrdeaddress = &#039;0.0.0.0&#039;;
// ... //
var $enableAdvancedConfig = true; </pre>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1876" src="https://blog.remontti.com.br/wp-content/uploads/2017/05/VirtualBox_Debian-Z_08_05_2017_16_15_25.png" alt="" width="720" height="400" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/05/VirtualBox_Debian-Z_08_05_2017_16_15_25.png 720w, https://blog.remontti.com.br/wp-content/uploads/2017/05/VirtualBox_Debian-Z_08_05_2017_16_15_25-300x167.png 300w" sizes="auto, (max-width: 720px) 100vw, 720px" /></p>
<p>É altamente recomendado que você tenha um firewall em cima da range de portas 9000 a 9100, pois é onde será possível fazer acesso remoto, e recomendo que depois da instalação sempre desative o acesso remoto a VM, segue um exemplo de firewall, no exemplo já irei proteger tb a porta do SSH, lembre-se de deixar seu ip na ACL de permissões.</p>
<pre class="remontti-code"># apt install nftables
# systemctl enable nftables</pre>
<p>Modelo fechando as portas do SSH [22] e a range de acesso remoto [9000-9100], você pode personalizar de acordo com sua instalação.</p>
<pre class="remontti-code">#!/usr/sbin/nft -f
  
flush ruleset

table inet filter {
    # IPv4 que terao acesso 
    set acesso-total4 {
        type ipv4_addr
        flags interval
        elements = { 200.200.200.16/28, 200.200.200.0/28}
    }
    # IPv6 que terao acesso 
    set acesso-total6 {
        type ipv6_addr
        flags interval
        elements = { 2804:1234:bebe::48, 2804:4321:bebe::/48  }
    }
    chain input {
        type filter hook input priority 0;

        #ip saddr  @acesso-total4 accept
        #ip6 saddr @acesso-total6 accept

        # Permite acesso SSH na porta 22
        ip saddr  @acesso-total4 tcp dport 22 counter accept
        ip6 saddr @acesso-total6 tcp dport 22 counter accept

        # Permite acesso tela remota portas padões Vbox
        ip saddr  @acesso-total4 tcp dport { 9000-9100 } counter accept
        ip6 saddr @acesso-total6 tcp dport { 9000-9100 } counter accept

        # Drop nas portas para demais IPs
        
        # SSH
        tcp dport 22 counter drop
        # Vbox Remote
        tcp dport { 9000-9100 } counter drop
        
        type filter hook input priority 0;
    }
    chain forward {
        type filter hook forward priority 0;
    }
    chain output {
        type filter hook output priority 0;
    }
}</pre>
<p>Reinicie o nftables e verifique se o mesmo foi carregado:</p>
<pre class="remontti-code"># systemctl enable nftables
# nft list ruleset</pre>
<pre class="remontti-code"># sudo -u vbox vboxwebsrv &amp;
# usermod -a -G vboxusers vbox
# reboot</pre>
<p>Agora acesse:<br />
<strong>https://DOMINIO/</strong><br />
<strong>Usuário:</strong> admin<br />
<strong>Senha: </strong>admin</p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2019/10/virtualbox-debian-10-webserver-1.png" data-rel="lightbox-gallery-KgSH6Ln3" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/10/virtualbox-debian-10-webserver-1-1024x306.png" alt="" width="1024" height="306" class="alignnone size-large wp-image-3674" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/10/virtualbox-debian-10-webserver-1-1024x306.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/10/virtualbox-debian-10-webserver-1-300x90.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/10/virtualbox-debian-10-webserver-1-768x229.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/10/virtualbox-debian-10-webserver-1.png 1680w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></p>
<p>Não esqueça de alterar a senha do usuário admin!</p>
<p>O mais legal que você está usando quase nada do hardware da máquina para &#8220;subir&#8221; seu sistema de virtualização.</p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2019/10/htop.png" data-rel="lightbox-gallery-KgSH6Ln3" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/10/htop-1024x539.png" alt="" width="1024" height="539" class="alignnone size-large wp-image-3675" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/10/htop-1024x539.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/10/htop-300x158.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/10/htop-768x404.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/10/htop.png 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></p>
<p>Virtulabox peca em não dar uma solução para inicialização automática, mas é muito fácil fazer isso incluindo no rc.local. Use o comando:</p>
<pre class="remontti-code"># sudo -u vbox VBoxManage list vms</pre>
<p>Vai ser listado os ID das suas VMs. Ex:<br />
<em>&#8220;ns1&#8221; {d288884d-a3d4-4903-b84e-5c6039af13b5}<br />
&#8220;ns2&#8221; {a2893475-atd4-4973-b81e-6039af13bss5}</em></p>
<p>Agora que você ja tem as IDs adicione em <strong>/etc/rc.local:</strong> da seguinte forma, alterando pelas suas ID.</p>
<pre class="remontti-code">sleep 30 #  sleep para aguardar 30seg para dar tempo do modulo do kernel ter tempo de iniciar
sudo -u vbox VBoxHeadless -s d288884d-a3d4-4903-b84e-5c6039af13b5 &amp;
sudo -u vbox VBoxHeadless -s a2893475-atd4-4973-b81e-6039af13bss5 &amp;</pre>
<p>Agora quando o servidor reiniciar suas VMs vão iniciar automaticamente, (Não esqueça de quando for desligar o servidor fazer o processo de desligamento de cada VM)</p>
<p>Uma das vantagens deste servidor é que é o virtualbox é muito simples!!! Dentro de /home/vbox/ vão estar suas imagens sendo muito facil de fazer uma copia e migrada para algum outro servidor em caso de &#8220;pau&#8221;. É claro tenha sempre redundância de hardware em seu servidor, faça sempre pelo menos um RAID1 (espelhamento de disco) eu gosto de fazer RAID10 com pelo menos 5 SSDs, onde 1 dos SSDs eu instalo o sistema e os outros 4 (ou 6 ou 8 &#8230;) somo ex 2 (RAID0) e espelho nos outros 2 (RAID1) logo temos o RAID10.</p>
<p><strong>Acesso remoto</strong><br />
No windows você pode usar o famoso <strong>mstsc</strong> e informar seu IP:PORTA, no linux tem um pacote chamado <strong>vinagre</strong> basta instala-lo.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/10/vbox-remote.png" alt="" width="1173" height="495" class="alignnone size-full wp-image-5460" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/10/vbox-remote.png 1173w, https://blog.remontti.com.br/wp-content/uploads/2019/10/vbox-remote-300x127.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/10/vbox-remote-1024x432.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/10/vbox-remote-768x324.png 768w" sizes="auto, (max-width: 1173px) 100vw, 1173px" /><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/10/vbox-remote-a.png" alt="" width="1308" height="704" class="alignnone size-full wp-image-5461" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/10/vbox-remote-a.png 1308w, https://blog.remontti.com.br/wp-content/uploads/2019/10/vbox-remote-a-300x161.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/10/vbox-remote-a-1024x551.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/10/vbox-remote-a-768x413.png 768w" sizes="auto, (max-width: 1308px) 100vw, 1308px" /></p>
<p><strong>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!</strong><br />
<a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a></p>
<p>Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato <a href="https://blog.remontti.com.br/meucontato" rel="noopener noreferrer" target="_blank">clique aqui.</a></p>
<p>Abraço!</p>
<p>O post <a href="https://blog.remontti.com.br/3670">Criando um servidor de virtualização super leve com Debian 10 e Virtualbox WEB</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/3670/feed</wfw:commentRss>
			<slash:comments>18</slash:comments>
		
		
			</item>
		<item>
		<title>Criando certificado grátis com  Let’s Encrypt para o Apache  no Debian 10</title>
		<link>https://blog.remontti.com.br/3548</link>
					<comments>https://blog.remontti.com.br/3548#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Tue, 17 Sep 2019 19:19:05 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[certificado]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[Domínio]]></category>
		<category><![CDATA[Let’s Encrypt]]></category>
		<category><![CDATA[letsencrypt]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php7]]></category>
		<category><![CDATA[Virtual]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=3548</guid>

					<description><![CDATA[<p>Let’s Encrypt entrega certificados digitais que permite HTTPS (SSL/TLS) para sites gratuitamente, de maneira fácil. É um serviço fornecido pelo Internet Security Research Group Requisitos: Debian 10 Stretch / Instalação Limpa (Funciona no Deb9)&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/3548">Criando certificado grátis com  Let’s Encrypt para o Apache  no Debian 10</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><a href="https://letsencrypt.org" rel="noopener noreferrer" target="_blank">Let’s Encrypt</a> entrega certificados digitais que permite HTTPS (SSL/TLS) para sites gratuitamente, de maneira fácil. É um serviço fornecido pelo Internet Security Research Group</p>
<p>Requisitos:<br />
<a href="https://blog.remontti.com.br/2966" rel="noopener noreferrer" target="_blank">Debian 10 Stretch / Instalação Limpa</a><br />
<em>(Funciona no Deb9)</em></p>
<p>Let’s Encrypt apresentado, vamos a instalação.</p>
<pre class="remontti-code"># su - 
# apt update
# apt upgrade
# apt install letsencrypt python-certbot-apache</pre>
<p>Para nosso exemplo crie um domínio virtual nas configurações do apache.<br />
Lei mais em: <a href="https://blog.remontti.com.br/3464" rel="noopener noreferrer" target="_blank">Como ter diversos sub/domínios no mesmo servidor? (Domínios virtuais com Apache2)</a></p>
<p>Lembre de em seu servidor DNS ter configurado do host (no meu ex.: &#8220;blog&#8221;) apontando para o IP de seu servidor.</p>
<p>Criamos o arquivo que vai representar o host blog. Vou utilizar como base o diretório /var/www/blog que vamos criar em seguida.</p>
<pre class="remontti-code"># vim /etc/apache2/sites-available/cloud.conf</pre>
<pre class="remontti-code">&lt;virtualhost *:80&gt;
        ServerName blog.remontti.com.br
        ServerAdmin noc@remontti.com.br
 
        DocumentRoot /var/www/blog 
 
        &lt;directory /var/www/blog/ &gt;
                Options FollowSymLinks
                AllowOverride All
        &lt;/directory&gt; 
 
        LogLevel warn 
        ErrorLog ${APACHE_LOG_DIR}/error_cloud.log
        CustomLog ${APACHE_LOG_DIR}/access_cloud.log combined
&lt;/virtualhost&gt;</pre>
<p>Por segurança recomendo remover a assinatura do servidor, evitando os &#8220;espertinhos&#8221;</p>
<pre class="remontti-code"># sed -i &#039;s/ServerTokens OS/ServerTokens Prod/&#039; /etc/apache2/conf-available/security.conf
# sed -i &#039;s/ServerSignature On/ServerSignature Off/&#039; /etc/apache2/conf-available/security.conf</pre>
<p>Crie o diretório e uma uma index só para representar nosso &#8220;olá mundo&#8221;.</p>
<pre class="remontti-code"># mkdir /var/www/blog/
#  echo &#039;&lt;h1&gt;Hello world!&lt;/h1&gt;&#039; &gt; /var/www/blog/index.html</pre>
<p>Antes de gerar o certificado pare &#8220;blog.remontti.com.br&#8221;.</p>
<pre class="remontti-code"># systemctl stop apache2</pre>
<pre class="remontti-code"># letsencrypt --authenticator standalone --installer apache -d blog.remontti.com.br</pre>
<p>Responda como abaixo:</p>
<pre class="remontti-code">Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter &#039;c&#039; to
cancel): seu@email.com.br
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let&#039;s Encrypt project and the non-profit
organization that develops Certbot? We&#039;d like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: N
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for blog.remontti.com.br
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/blog-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/blog-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/blog-le-ssl.conf
 
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you&#039;re confident your site works on HTTPS. You can undo this
change by editing your web server&#039;s configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press &#039;c&#039; to cancel): 2
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://blog.remontti.com.br
 
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=blog.remontti.com.br
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/blog.remontti.com.br/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/blog.remontti.com.br/privkey.pem
   Your cert will expire on 2019-10-24. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the &quot;certonly&quot; option. To non-interactively renew *all* of
   your certificates, run &quot;certbot renew&quot;
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:
 
   Donating to ISRG / Lets Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le</pre>
<p>Já pode acessar no navegador o domínio com HTTPS &#8220;blog.remontti.com.br&#8221;</p>
<p>Dica, se desejar desativar o TLS1.0 e TLS1.1 após criar um certificado um arquivo é criado /etc/letsencrypt/options-ssl-apache.conf, então edite e inclua no SSLProtocol TLSv1 -TLSv1.1</p>
<pre class="remontti-code"># vim /etc/letsencrypt/options-ssl-apache.conf</pre>
<p>Ficando</p>
<pre class="remontti-code">#SSLProtocol            all -SSLv2 -SSLv3
SSLProtocol             all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1</pre>
<p>Reinicie o Apache:</p>
<pre class="remontti-code"># systemctl restart apache2</pre>
<p>Para testar acesse: <a href="https://www.cdn77.com/tls-test/" rel="noopener" target="_blank">https://www.cdn77.com/tls-test/</a><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste.png" data-rel="lightbox-gallery-o9xFAoZp" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-300x182.png" alt="" width="300" height="182" class="alignnone size-medium wp-image-6158" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-300x182.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-1024x620.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-768x465.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste.png 1099w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Para renovar automaticamente crie um script e adicione ao cron.</p>
<pre class="remontti-code"># vim  /etc/renova-cert.sh</pre>
<p>Adicione</p>
<pre class="remontti-code">#!/bin/bash
/usr/bin/systemctl stop apache2
/usr/bin/certbot -q renew
/usr/bin/systemctl start apache2</pre>
<p>Damos permissão para executar</p>
<pre class="remontti-code"># chmod +x /etc/renova-cert.sh</pre>
<p>Adicionamos ao Cron para toda meia noite renovar</p>
<pre class="remontti-code"># echo &#039;00 00   * * *   root    /etc/renova-cert.sh&#039; &gt;&gt; /etc/crontab
# systemctl restart cron</pre>
<p>Agora você já tem seu domínio com certificado! Esse certificado pode ser utilizado para outro serviços.</p>
<p><center><strong>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!</strong><br />
<a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a></center></p>
<p>Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato <a href="https://blog.remontti.com.br/meucontato" rel="noopener noreferrer" target="_blank">clique aqui.</a></p>
<p>Abraço!</p>
<p>O post <a href="https://blog.remontti.com.br/3548">Criando certificado grátis com  Let’s Encrypt para o Apache  no Debian 10</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/3548/feed</wfw:commentRss>
			<slash:comments>15</slash:comments>
		
		
			</item>
		<item>
		<title>Passo-a-passo como criar um servidor WEB Apache + PHP + MariaDB + phpMyAdmin no Debian 10 Buster &#8220;LAMP&#8221;</title>
		<link>https://blog.remontti.com.br/3006</link>
					<comments>https://blog.remontti.com.br/3006#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Tue, 16 Jul 2019 19:05:12 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[buster]]></category>
		<category><![CDATA[debian 10]]></category>
		<category><![CDATA[debian buster]]></category>
		<category><![CDATA[debian10]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[MariaDB]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phpMyAdmin]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=3006</guid>

					<description><![CDATA[<p>Distribuição utilizada: Debian 10 Stretch / Instalação Limpa Vale lembrar que desde o Debian 9 o PHP foi atualizado para a versão 7 e agora para 7.3, e o MySQL foi substituído pelo seu&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/3006">Passo-a-passo como criar um servidor WEB Apache + PHP + MariaDB + phpMyAdmin no Debian 10 Buster &#8220;LAMP&#8221;</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/debian10-lamp.jpg" alt="" width="800" height="376" class="alignnone size-full wp-image-3028" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/debian10-lamp.jpg 800w, https://blog.remontti.com.br/wp-content/uploads/2019/07/debian10-lamp-300x141.jpg 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/debian10-lamp-768x361.jpg 768w, https://blog.remontti.com.br/wp-content/uploads/2019/07/debian10-lamp-520x245.jpg 520w" sizes="auto, (max-width: 800px) 100vw, 800px" /><br />
Distribuição utilizada: <strong><a href="https://blog.remontti.com.br/2966" rel="noopener noreferrer" target="_blank">Debian 10 Stretch / Instalação Limpa</a></strong><br />
Vale lembrar que desde o Debian 9 o PHP foi atualizado para a versão 7 e agora para 7.3, e o MySQL foi substituído pelo seu fork MariaBD<br />
Antes de mais nada tenha seu repositório atualizado</p>
<pre class="remontti-code"># su -
# apt update
# apt upgrade</pre>
<h3>:: Instalação do Apache 2.4 ::</h3>
<pre class="remontti-code"># apt install apache2 apache2-utils</pre>
<p>Vamos habilitar o mod_rewrite do Apache que é muito utilizado.<br />
Este é um módulo do Apache que utiliza um mecanismo baseado em regras de reescrita.<br />
Vamos ao comando para habilita-lo:</p>
<pre class="remontti-code"># a2enmod rewrite</pre>
<p>A página que vimos ao abri o ip do nosso servidor no navegador fica no diretório /var/www/html, isso está sendo informado no arquivo default do apache que fica em /etc/apache2/sites-enabled/000-default.conf, e para que nosso mod_rewrite funcione corretamente será necessário adicionar alguma linhas.</p>
<pre class="remontti-code"># vim /etc/apache2/sites-enabled/000-default.conf</pre>
<p>Adicione abaixo de &#8220;DocumentRoot /var/www/html&#8221; o seguinte:</p>
<pre class="remontti-code">	&lt;Directory /var/www/html/&gt;
    		Options FollowSymLinks
    		AllowOverride All
	&lt;/Directory&gt;</pre>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/apache2-deb10-rewrite.png" data-rel="lightbox-gallery-c27YSocP" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/apache2-deb10-rewrite-300x251.png" alt="" width="300" height="251" class="alignnone size-medium wp-image-3012" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/apache2-deb10-rewrite-300x251.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/apache2-deb10-rewrite-768x642.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/07/apache2-deb10-rewrite.png 887w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><br />
Agora precisamos restartar o apache2 para que tenha efeito as alterações.</p>
<pre class="remontti-code"># systemctl restart apache2</pre>
<p>http://[SERVER_IP]/<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/apache-debian-10-buster.png" data-rel="lightbox-gallery-c27YSocP" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/apache-debian-10-buster-230x300.png" alt="" width="230" height="300" class="alignnone size-medium wp-image-3010" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/apache-debian-10-buster-230x300.png 230w, https://blog.remontti.com.br/wp-content/uploads/2019/07/apache-debian-10-buster-768x1003.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/07/apache-debian-10-buster-784x1024.png 784w, https://blog.remontti.com.br/wp-content/uploads/2019/07/apache-debian-10-buster.png 941w" sizes="auto, (max-width: 230px) 100vw, 230px" /></a><br />
Por segurança remova a assinatura do apache.</p>
<pre class="remontti-code"># sed -i &#039;s/ServerTokens OS/ServerTokens Prod/&#039; /etc/apache2/conf-available/security.conf
# sed -i &#039;s/ServerSignature On/ServerSignature Off/&#039; /etc/apache2/conf-available/security.conf</pre>
<h3>:: Instalação do MariaDB 10.3 ::</h3>
<pre class="remontti-code"># apt install mariadb-server mariadb-client </pre>
<p>Por padrão o pacote MaraiDB no Debian usa unix_socket para autenticar o login do usuário, o que basicamente significa que você pode usar o nome de usuário e a senha do sistema operacional para efetuar login no console do MariaDB.<br />
Assim, você pode logar diretamente sem fornecer a senha root do MariaDB. Mas isso é estranho, pois minha senha do root do MariaDB é diferente do meu usuário unix.<br />
Bom se você é meio paranoico com segurança, para alterar a senha do usuário root do MariaDB de forma bruta faça o seguinte:</p>
<pre class="remontti-code"># mariadb -u root</pre>
<pre class="remontti-code">USE mysql;
UPDATE user SET password=PASSWORD(&#039;SENHA.db.ROOT&#039;) WHERE User=&#039;root&#039;;
UPDATE user SET plugin=&quot;mysql_native_password&quot;;
FLUSH PRIVILEGES;
quit;</pre>
<h3>:: Instalação do PHP 7.3 ::</h3>
<p>Vou incluir algumas extensões do PHP que são normalmente utilizada</p>
<pre class="remontti-code"># apt install libapache2-mod-php php php-mysql php-cli php-pear php-gmp php-gd php-bcmath php-mbstring php-curl php-xml php-zip</pre>
<p>É necessário reiniciar o apache para que o php tenha efeito.</p>
<pre class="remontti-code"># systemctl restart apache2</pre>
<p>Consultado informações de versão:</p>
<pre class="remontti-code"># php --version</pre>
<pre class="remontti-code">PHP 7.3.4-2 (cli) (built: Apr 13 2019 19:05:48) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.4, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.4-2, Copyright (c) 1999-2018, by Zend Technologies</pre>
<p>Você pode criar um arquivo php com a função <a href="https://php.net/manual/pt_BR/function.phpinfo.php" rel="noopener noreferrer" target="_blank">phpinfo()</a> para mostrar todas as informações.</p>
<pre class="remontti-code"># echo &#039;&lt;?php phpinfo(); ?&gt;&#039; &gt; /var/www/html/phpinfo.php</pre>
<p>http://[SERVER_IP]/phpinfo.php<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/phpinfo-debian-10-buster.png" data-rel="lightbox-gallery-c27YSocP" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/phpinfo-debian-10-buster-300x261.png" alt="" width="300" height="261" class="alignnone size-medium wp-image-3018" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/phpinfo-debian-10-buster-300x261.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/phpinfo-debian-10-buster-768x668.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/07/phpinfo-debian-10-buster.png 994w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<h3>:: phpMyAdmin ::</h3>
<p>Cade ele do repositório?<br />
O PHPMyAdmin não está mais disponível como pacote .deb no Debian 10. Fazendo um pesquisa o motivo é que o &#8220;pessoal&#8221; que faz empacotamento não tem uma versão estável. <a href="https://security-tracker.debian.org/tracker/CVE-2018-19968" rel="noopener noreferrer" target="_blank">https://security-tracker.debian.org/tracker/CVE-2018-19968</a><br />
Desta forma debian &#8220;obriga&#8221; com que o usuário instale-o a partir da fonte. <a href="https://www.phpmyadmin.net/downloads/" rel="noopener noreferrer" target="_blank">https://www.phpmyadmin.net/downloads/</a></p>
<pre class="remontti-code"># apt install wget</pre>
<p>Escolha qual versão do irá utilizar phpMyAdmin 5.x.x ou 4.x.x</p>
<pre class="remontti-code"># cd /tmp/</pre>
<p>Para <strong>phpMyAdmin 5</strong> (06/04/2020)</p>
<pre class="remontti-code"># wget https://files.phpmyadmin.net/phpMyAdmin/5.0.4/phpMyAdmin-5.0.4-all-languages.tar.gz
# tar -vxzf phpMyAdmin-5.0.4-all-languages.tar.gz -C /usr/share/
# mv /usr/share/phpMyAdmin-5.0.4-all-languages /usr/share/phpmyadmin</pre>
<p>Para <strong>phpMyAdmin 4</strong> (06/04/2020)</p>
<pre class="remontti-code"># wget https://files.phpmyadmin.net/phpMyAdmin/4.9.5/phpMyAdmin-4.9.5-all-languages.tar.gz
# tar -vxzf phpMyAdmin-4.9.5-all-languages.tar.gz -C /usr/share/
# mv /usr/share/phpMyAdmin-4.9.5-all-languages /usr/share/phpmyadmin</pre>
<p>Seguimos para <strong>phpMyAdmin 5 ou 4</strong> </p>
<pre class="remontti-code"># mkdir /etc/phpmyadmin
# touch /etc/phpmyadmin/htpasswd.setup
# mkdir -p /var/lib/phpmyadmin/tmp
# chown www-data. /var/lib/phpmyadmin/ -R</pre>
<p>Criaremos o arquivo de configuração do Apache.</p>
<pre class="remontti-code"># vim /etc/apache2/conf-available/phpmyadmin.conf</pre>
<pre class="remontti-code"># phpMyAdmin default Apache configuration

Alias /phpmyadmin /usr/share/phpmyadmin

&lt;Directory /usr/share/phpmyadmin&gt;
 Options FollowSymLinks
 DirectoryIndex index.php

 &lt;IfModule mod_php7.c&gt;
 AddType application/x-httpd-php .php

 php_flag magic_quotes_gpc Off
 php_flag track_vars On
 php_flag register_globals Off
 php_value include_path .
 &lt;/IfModule&gt;

&lt;/Directory&gt;

# Authorize for setup
&lt;Directory /usr/share/phpmyadmin/setup&gt;
 &lt;IfModule mod_authn_file.c&gt;
 AuthType Basic
 AuthName &quot;phpMyAdmin Setup&quot;
 AuthUserFile /etc/phpmyadmin/htpasswd.setup
 &lt;/IfModule&gt;
 Require valid-user
&lt;/Directory&gt;

# Disallow web access to directories that don&#039;t need it
&lt;Directory /usr/share/phpmyadmin/libraries&gt;
 Order Deny,Allow
 Deny from All
&lt;/Directory&gt;
&lt;Directory /usr/share/phpmyadmin/setup/lib&gt;
 Order Deny,Allow
 Deny from All
&lt;/Directory&gt;</pre>
<p>Se deseja deixar o atalho para o phpmyadmin restrito apenas aos seus IP de gerencia faça da seguinte forma. Lembre-se de alterar os IPs 200.200.200.0/26 2001:db8:cafe:d0ce::/64 para os seus.</p>
<pre class="remontti-code"># phpMyAdmin default Apache configuration
 
Alias /phpmyadmin /usr/share/phpmyadmin
 
&lt;Directory /usr/share/phpmyadmin&gt;
 Options FollowSymLinks
 DirectoryIndex index.php

 AllowOverride All
 Require ip 127.0.0.1 ::1 200.200.200.0/26 2001:db8:cafe:d0ce::/64

 &lt;IfModule mod_php7.c&gt;
 AddType application/x-httpd-php .php
 
 php_flag magic_quotes_gpc Off
 php_flag track_vars On
 php_flag register_globals Off
 php_value include_path .
 &lt;/IfModule&gt;
 
&lt;/Directory&gt;
 
# Authorize for setup
&lt;Directory /usr/share/phpmyadmin/setup&gt;
 AllowOverride All
 Require ip 127.0.0.1 ::1 200.200.200.0/26 2001:db8:cafe:d0ce::/64
 &lt;IfModule mod_authn_file.c&gt;
 AuthType Basic
 AuthName &quot;phpMyAdmin Setup&quot;
 AuthUserFile /etc/phpmyadmin/htpasswd.setup
 &lt;/IfModule&gt;
 Require valid-user
&lt;/Directory&gt;
 
# Disallow web access to directories that don&#039;t need it
&lt;Directory /usr/share/phpmyadmin/libraries&gt;
 AllowOverride All
 Require ip 127.0.0.1 ::1 200.200.200.0/26 2001:db8:cafe:d0ce::/64
 Order Deny,Allow
 Deny from All
&lt;/Directory&gt;
&lt;Directory /usr/share/phpmyadmin/setup/lib&gt;
 AllowOverride All
 Require ip 127.0.0.1 ::1 200.200.200.0/26 2001:db8:cafe:d0ce::/64
 Order Deny,Allow
 Deny from All
&lt;/Directory&gt;
</pre>
<p>Ative a configuração e reinicie o Apache.</p>
<pre class="remontti-code"># a2enconf phpmyadmin
# systemctl restart apache2
# systemctl status apache2</pre>
<p>Na próxima etapa, vamos configurar o armazenamento de configuração do phpMyadmin (banco de dados).<br />
Faça o login no MariaDB como usuário root:</p>
<pre class="remontti-code"># mariadb -p</pre>
<p>Criamos um novo banco de dados para o chamado phpmyadmin e um usuario pma (altere para sua senha). Em seguida, concedemos as permissões do banco de dados.<br />
Você pode gerar uma senha acessando <a href="https://senhasegura.remontti.com.br/" rel="noopener noreferrer" target="_blank">https://senhasegura.remontti.com.br/</a></p>
<pre class="remontti-code">CREATE DATABASE phpmyadmin;
CREATE USER &#039;pma&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;SUA_SENHA&#039;;
GRANT ALL PRIVILEGES ON phpmyadmin.* TO &#039;pma&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;SUA_SENHA&#039; WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;</pre>
<p>Carregue as tabelas do banco de dados: (Informe a senha do root do MariaDB)</p>
<pre class="remontti-code"># mariadb -u root -p phpmyadmin &lt; /usr/share/phpmyadmin/sql/create_tables.sql</pre>
<p>Agora é necessário ajustar o arquivo de configuração do phpmyadmin.<br />
Definir:<br />
* senha segura (blowfish secret) que deve ter 32 caracteres. Não use o meu exemplo blowfish secreto, defina o seu próprio! Use o gerador <a href="https://senhasegura.remontti.com.br" rel="noopener noreferrer" target="_blank">https://senhasegura.remontti.com.br</a><br />
* diretório que o PHPMyAdmin deve usar para armazenar arquivos temporários.<br />
* Descomentar as linhas $cfg['Servers']<br />
- controlhost : localhost<br />
- controlpass : SUA_SENHA</p>
<pre class="remontti-code"># cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
# vim /usr/share/phpmyadmin/config.inc.php</pre>
<pre class="remontti-code">$cfg[&#039;blowfish_secret&#039;] = &#039;dkJhGx83XR3JjuFrDn8kPp9NtXnkLptl&#039;;
/* Adicione esta linha */
$cfg[&#039;TempDir&#039;] = &#039;/var/lib/phpmyadmin/tmp&#039;;

/* User used to manipulate with storage */
$cfg[&#039;Servers&#039;][$i][&#039;controlhost&#039;] = &#039;localhost&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;controlport&#039;] = &#039;&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;controluser&#039;] = &#039;pma&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;controlpass&#039;] = &#039;SUA_SENHA&#039;;

/* Storage database and tables */
$cfg[&#039;Servers&#039;][$i][&#039;pmadb&#039;] = &#039;phpmyadmin&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;bookmarktable&#039;] = &#039;pma__bookmark&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;relation&#039;] = &#039;pma__relation&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;table_info&#039;] = &#039;pma__table_info&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;table_coords&#039;] = &#039;pma__table_coords&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;pdf_pages&#039;] = &#039;pma__pdf_pages&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;column_info&#039;] = &#039;pma__column_info&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;history&#039;] = &#039;pma__history&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;table_uiprefs&#039;] = &#039;pma__table_uiprefs&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;tracking&#039;] = &#039;pma__tracking&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;userconfig&#039;] = &#039;pma__userconfig&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;recent&#039;] = &#039;pma__recent&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;favorite&#039;] = &#039;pma__favorite&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;users&#039;] = &#039;pma__users&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;usergroups&#039;] = &#039;pma__usergroups&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;navigationhiding&#039;] = &#039;pma__navigationhiding&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;savedsearches&#039;] = &#039;pma__savedsearches&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;central_columns&#039;] = &#039;pma__central_columns&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;designer_settings&#039;] = &#039;pma__designer_settings&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;export_templates&#039;] = &#039;pma__export_templates&#039;;</pre>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster.png" data-rel="lightbox-gallery-c27YSocP" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster-300x296.png" alt="" width="300" height="296" class="alignnone size-medium wp-image-3021" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster-300x296.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster-768x757.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster.png 901w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><br />
http://[SERVER_IP]/phpmyadmin/<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster-1.png" data-rel="lightbox-gallery-c27YSocP" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster-1-300x155.png" alt="" width="300" height="155" class="alignnone size-medium wp-image-3022" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster-1-300x155.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster-1-768x397.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster-1-1024x530.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster-1.png 1680w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster-2.png" data-rel="lightbox-gallery-c27YSocP" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster-2-300x156.png" alt="" width="300" height="156" class="alignnone size-medium wp-image-3023" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster-2-300x156.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster-2-768x399.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster-2-1024x532.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster-2.png 1680w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Gostou?</p>
<p><center><strong>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!</strong><br />
<a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a></center></p>
<p>Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato <a href="https://blog.remontti.com.br/meucontato" rel="noopener noreferrer" target="_blank">clique aqui.</a></p>
<p>Abraço!</p>
<p>O post <a href="https://blog.remontti.com.br/3006">Passo-a-passo como criar um servidor WEB Apache + PHP + MariaDB + phpMyAdmin no Debian 10 Buster &#8220;LAMP&#8221;</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/3006/feed</wfw:commentRss>
			<slash:comments>70</slash:comments>
		
		
			</item>
		<item>
		<title>Acessando logs do rsyslog via web com Log Analyzer</title>
		<link>https://blog.remontti.com.br/2687</link>
					<comments>https://blog.remontti.com.br/2687#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Wed, 12 Sep 2018 09:05:47 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[analyzer]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[Log Analyzer]]></category>
		<category><![CDATA[Mikrotik]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[rsyslog]]></category>
		<category><![CDATA[syslog]]></category>
		<category><![CDATA[web]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=2687</guid>

					<description><![CDATA[<p>O projeto LogAnalyzer já é antigo, não tem um interface muito bonita mas fornece um frontend fácil de usar e poderoso, permite pesquisar, revisar e analisar dados de eventos de rede, incluindo syslog. É&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/2687">Acessando logs do rsyslog via web com Log Analyzer</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>O projeto LogAnalyzer já é antigo, não tem um interface muito bonita mas fornece um frontend fácil de usar e poderoso, permite pesquisar, revisar e analisar dados de eventos de rede, incluindo syslog. É um aplicativo gratuito de código aberto GPL escrito principalmente em php. Os dados podem ser obtidos de bancos de dados, mas também de arquivos de texto simples, por exemplo, aqueles que são escritos pelo rsyslog.</p>
<p>Para dar inicio vamos precisar ter um serviço Web rodado em nosso servidor<br />
<strong>Requisitos</strong>: <a href="https://blog.remontti.com.br/2024" rel="noopener" target="_blank">Passo-a-passo como criar um servidor web Apache2, PHP 7.0, MariaDB, PHPMyAdmin “LAMP” no Debian 9 Stretch</a></p>
<p><strong>Sugerido</strong>: <a href="https://blog.remontti.com.br/2674" rel="noopener" target="_blank">Servidor de log para registros remoto do RouterOS/Mikrotik</a></p>
<p>Agora já com nosso servidor LAMP pronto vamos criar nossa base de dados chamada Syslog (sim com S maiúsculo) e criar o usuario rsyslog para acessar esse banco.</p>
<pre class="remontti-code"># mysql -p</pre>
<pre class="remontti-code">
CREATE DATABASE Syslog;
GRANT ALL PRIVILEGES ON Syslog.* TO &#039;rsyslog&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;SUA-SENHA&#039;;
FLUSH PRIVILEGES;
quit;</pre>
<p>Instalaremos o modulo rsyslog-mysql para fazer a integração </p>
<pre class="remontti-code"># apt install rsyslog-mysql</pre>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2018/09/1.png" data-rel="lightbox-gallery-lrfEU2Gh" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/09/1-300x169.png" alt="" width="300" height="169" class="alignnone size-medium wp-image-2690" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/09/1-300x169.png 300w, https://blog.remontti.com.br/wp-content/uploads/2018/09/1-768x432.png 768w, https://blog.remontti.com.br/wp-content/uploads/2018/09/1-1024x576.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2018/09/1.png 1600w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><br />
Responda Sim</p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2018/09/2.png" data-rel="lightbox-gallery-lrfEU2Gh" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/09/2-300x169.png" alt="" width="300" height="169" class="alignnone size-medium wp-image-2691" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/09/2-300x169.png 300w, https://blog.remontti.com.br/wp-content/uploads/2018/09/2-768x432.png 768w, https://blog.remontti.com.br/wp-content/uploads/2018/09/2-1024x576.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2018/09/2.png 1600w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><br />
Informe a senha criada para o usuário rsyslog <em>(&#8216;rsyslog&#8217;@&#8217;localhost&#8217; IDENTIFIED BY &#8216;SUA-SENHA&#8217;)</em></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2018/09/3.png" data-rel="lightbox-gallery-lrfEU2Gh" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/09/3-300x169.png" alt="" width="300" height="169" class="alignnone size-medium wp-image-2692" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/09/3-300x169.png 300w, https://blog.remontti.com.br/wp-content/uploads/2018/09/3-768x432.png 768w, https://blog.remontti.com.br/wp-content/uploads/2018/09/3-1024x576.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2018/09/3.png 1600w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Repita a senha</p>
<p>Verifique se o arquivo /etc/rsyslog.d/mysql.conf foi criado</p>
<pre class="remontti-code">cat /etc/rsyslog.d/mysql.conf</pre>
<p>Vai retornar:</p>
<pre class="remontti-code">	$ModLoad ommysql
	*.* :ommysql:localhost,Syslog,rsyslog,SUA-SENHA</pre>
<p>Agora reinicie o serviço do rsyslog para atualizar as configurações</p>
<pre class="remontti-code"># /etc/init.d/rsyslog restart</pre>
<p>Pronto seu rsyslog já esta guardado todos os logs no seu banco de dados, agora vamos a instalação e configuração do <a href="https://loganalyzer.adiscon.com/" rel="noopener" target="_blank">LogAnalyzer</a></p>
<p>Na data de hoje o projeto encontra-se na versão 4.1.6<br />
Acesse <a href="https://loganalyzer.adiscon.com/download/" rel="noopener" target="_blank">https://loganalyzer.adiscon.com/download/</a> e verifique se já  não existe uma nova versão.</p>
<p>Nos comandos a seguir vamos fazer o download do projeto, em seguida extrair o mesmo, e mover o projeto para dentro da pasta padrão do servidor web (/var/www/html/) faça de acordo com sua realidade, e ultimo estaremos dando permissões ao usuário apache (www-data) a escrever nos arquviso  .   </p>
<pre class="remontti-code"># cd /tmp/
# wget http://download.adiscon.com/loganalyzer/loganalyzer-4.1.6.tar.gz
# tar -vxzf loganalyzer-4.1.6.tar.gz
# cd loganalyzer-4.1.6/
# mv src/ /var/www/html/logs
# chown www-data. /var/www/html/logs -R</pre>
<p>Existe um pacote de tradução, porém o mesmo não foi traduzido, caso tenha interesse em baixar, e fazer a tradução:</p>
<pre class="remontti-code"># cd /tmp/
# wget https://loganalyzer.adiscon.com/plugins/files/translations/loganalyzer_lang_pt_BR_3.2.3.zip
# apt install  unzip
# unzip loganalyzer_lang_pt_BR_3
# unzip loganalyzer_lang_pt_BR_3.2.3.zip
# mv pt_BR /var/www/html/logs/lang/
# chown www-data. /var/www/html/logs -R</pre>
<p>Agora acesse: http://SEU-IP_OU-DOMINIO/logs/<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2018/09/4.png" data-rel="lightbox-gallery-lrfEU2Gh" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/09/4-300x206.png" alt="" width="300" height="206" class="alignnone size-medium wp-image-2693" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/09/4-300x206.png 300w, https://blog.remontti.com.br/wp-content/uploads/2018/09/4-768x528.png 768w, https://blog.remontti.com.br/wp-content/uploads/2018/09/4-1024x704.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2018/09/4.png 1235w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><br />
Vamos ser avisados que o sistema precisa ser instalado/configurado. Clique em &#8220;here&#8221;.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2018/09/5.png" data-rel="lightbox-gallery-lrfEU2Gh" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/09/5-300x206.png" alt="" width="300" height="206" class="alignnone size-medium wp-image-2694" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/09/5-300x206.png 300w, https://blog.remontti.com.br/wp-content/uploads/2018/09/5-768x528.png 768w, https://blog.remontti.com.br/wp-content/uploads/2018/09/5-1024x704.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2018/09/5.png 1235w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><br />
Next<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2018/09/6.png" data-rel="lightbox-gallery-lrfEU2Gh" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/09/6-300x206.png" alt="" width="300" height="206" class="alignnone size-medium wp-image-2695" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/09/6-300x206.png 300w, https://blog.remontti.com.br/wp-content/uploads/2018/09/6-768x528.png 768w, https://blog.remontti.com.br/wp-content/uploads/2018/09/6-1024x704.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2018/09/6.png 1235w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><br />
Next<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2018/09/7.png" data-rel="lightbox-gallery-lrfEU2Gh" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/09/7-300x206.png" alt="" width="300" height="206" class="alignnone size-medium wp-image-2696" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/09/7-300x206.png 300w, https://blog.remontti.com.br/wp-content/uploads/2018/09/7-768x528.png 768w, https://blog.remontti.com.br/wp-content/uploads/2018/09/7-1024x704.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2018/09/7.png 1235w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><br />
Selecione YES em Enabled User Database, e configure em Database User o usuário rsyslog e sua senha.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2018/09/8.png" data-rel="lightbox-gallery-lrfEU2Gh" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/09/8-300x206.png" alt="" width="300" height="206" class="alignnone size-medium wp-image-2697" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/09/8-300x206.png 300w, https://blog.remontti.com.br/wp-content/uploads/2018/09/8-768x528.png 768w, https://blog.remontti.com.br/wp-content/uploads/2018/09/8-1024x704.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2018/09/8.png 1235w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><br />
Next<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2018/09/9.png" data-rel="lightbox-gallery-lrfEU2Gh" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/09/9-300x206.png" alt="" width="300" height="206" class="alignnone size-medium wp-image-2698" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/09/9-300x206.png 300w, https://blog.remontti.com.br/wp-content/uploads/2018/09/9-768x528.png 768w, https://blog.remontti.com.br/wp-content/uploads/2018/09/9-1024x704.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2018/09/9.png 1235w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><br />
Se não tiver nenhum erro, clique em next.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2018/09/10.png" data-rel="lightbox-gallery-lrfEU2Gh" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/09/10-300x206.png" alt="" width="300" height="206" class="alignnone size-medium wp-image-2699" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/09/10-300x206.png 300w, https://blog.remontti.com.br/wp-content/uploads/2018/09/10-768x528.png 768w, https://blog.remontti.com.br/wp-content/uploads/2018/09/10-1024x704.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2018/09/10.png 1235w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><br />
Crie um usuário e senha para o administrador<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2018/09/11.png" data-rel="lightbox-gallery-lrfEU2Gh" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/09/11-300x206.png" alt="" width="300" height="206" class="alignnone size-medium wp-image-2700" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/09/11-300x206.png 300w, https://blog.remontti.com.br/wp-content/uploads/2018/09/11-768x528.png 768w, https://blog.remontti.com.br/wp-content/uploads/2018/09/11-1024x704.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2018/09/11.png 1235w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><br />
Crie uma fonte de coleta, no nosso caso vamos usar os logs do mysql, siga de acordo com a imagem. Posteriormente você pode criar outras fontes.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2018/09/12.png" data-rel="lightbox-gallery-lrfEU2Gh" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/09/12-300x206.png" alt="" width="300" height="206" class="alignnone size-medium wp-image-2701" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/09/12-300x206.png 300w, https://blog.remontti.com.br/wp-content/uploads/2018/09/12-768x528.png 768w, https://blog.remontti.com.br/wp-content/uploads/2018/09/12-1024x704.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2018/09/12.png 1235w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><br />
Next<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2018/09/Screenshot_20180912_110022.png" data-rel="lightbox-gallery-lrfEU2Gh" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/09/Screenshot_20180912_110022-300x188.png" alt="" width="300" height="188" class="alignnone size-medium wp-image-2703" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/09/Screenshot_20180912_110022-300x188.png 300w, https://blog.remontti.com.br/wp-content/uploads/2018/09/Screenshot_20180912_110022-768x480.png 768w, https://blog.remontti.com.br/wp-content/uploads/2018/09/Screenshot_20180912_110022-1024x640.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2018/09/Screenshot_20180912_110022.png 1680w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a>  </p>
<p>Parabéns você concluiu! </p>
<p>Gostou? Deixe seu comentário ficarei feliz em saber que lhe ajudei, e se tiver qualquer pergunta deixe-a também, se preferir acesse o menu Consultoria lá você encontra meios de falar comigo!</p>
<p>Abraço!</p>
<p>O post <a href="https://blog.remontti.com.br/2687">Acessando logs do rsyslog via web com Log Analyzer</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/2687/feed</wfw:commentRss>
			<slash:comments>13</slash:comments>
		
		
			</item>
		<item>
		<title>Gerencie suas máquinas virtuais do VirtualBox via Web #phpVirtualBox</title>
		<link>https://blog.remontti.com.br/1865</link>
					<comments>https://blog.remontti.com.br/1865#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Mon, 08 May 2017 20:44:35 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[jessie]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phpvirtualbox]]></category>
		<guid isPermaLink="false">http://blog.remontti.com.br/?p=1865</guid>

					<description><![CDATA[<p>→→→ UM TUTORIAL MAIS RECENTE AQUI! ←←← Com VirtualBox é possivel executar diversos sistemas operacionais (Windows, Linux, UNIX, BSD) simultaneamente no mesmo hardware, que são chamados de máquinas virtuais. Uma das características é o&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/1865">Gerencie suas máquinas virtuais do VirtualBox via Web #phpVirtualBox</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><strong><a href="https://blog.remontti.com.br/3670" rel="noopener noreferrer" target="_blank"><font color="red"> →→→ UM TUTORIAL MAIS RECENTE AQUI! ←←← </font></a></strong></p>
<p>Com VirtualBox é possivel executar diversos sistemas operacionais (Windows, Linux, UNIX, BSD) simultaneamente no mesmo hardware, que são chamados de máquinas virtuais. Uma das características é o mascaramento dos recursos físicos (incluindo processadores, quantidade de memória, interfaces de rede), o que permite diminuir a administração de drivers nas máquinas virtuais, e transferir uma máquina virtual entre servidores físicos diferentes.</p>
<p>Existem várias ferramentas de virtualização disponíveis.</p>
<p><strong>Microsoft Virtual Server 2005 R2</strong> &#8211; disponível para plataforma x86 e x86_64 bits. Suporte: Somente Windows.<br />
<strong>Qemu</strong> &#8211; ferramenta de virtualização de código aberto disponível para windows, mac e Linux.<br />
<strong>Vmware </strong>&#8211; Disponível para Windows e Linux.<br />
<strong>VirtualBox </strong>&#8211; Aplicativo de código aberto disponível para Windows, Mac, Linux e Solaris.<br />
<strong>Xen </strong>&#8211; Suporta Windows, bem como distribuições Linux.</p>
<p>O <strong>VirtualBox </strong> inicialmente foi lançado sob licença proprietária, mas mais tarde (2007) a Oracle Corporation começou a lançá-lo sob GNU General Public License. Escrito completamente em C, C ++ e Assembly Language está disponível para Windows, OS X, Linux e Solaris.</p>
<p><strong>INSTALAÇÃO:</strong><br />
Debian 9 Stretch, recomendo uma <a href="https://blog.remontti.com.br/1152" target="_blank" rel="noopener noreferrer">instalação limpa do Debian</a></p>
<p>Recomendo já baixar a ISO nonfree: <a href="https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/" target="_blank" rel="noopener noreferrer">https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/</p>
<p>Adicione o repositório do <a href="https://www.virtualbox.org/" target="_blank" rel="noopener noreferrer">virtualbox</a></p>
<p><strong>Debian 9 Stretch</strong></p>
<pre class="remontti-code"># echo &#039;deb http://download.virtualbox.org/virtualbox/debian stretch contrib&#039; &gt; /etc/apt/sources.list.d/virtualbox.list
# wget --no-check-certificate -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | apt-key add -</pre>
<p>Vamos a instalação, a versão 5.2 (nesta data 28/03/19) ainda não tem uma versão 6 compatível com o phpVirtualbox.</p>
<p>Certifique-se que seu repositório esteja usando os repositórios <strong>nonfree e contrib</strong>.</p>
<pre class="remontti-code">#vim /etc/apt/sources.list</pre>
<p>Ao final de cada linha verifique se consta:  <strong>nonfree e contrib</strong>, se não tiver adicione, ficando assim:</p>
<pre class="remontti-code">deb http://ftp.br.debian.org/debian/ stretch main contrib non-free
deb-src http://ftp.br.debian.org/debian/ stretch main contrib non-free

deb http://security.debian.org/debian-security stretch/updates main contrib non-free
deb-src http://security.debian.org/debian-security stretch/updates main contrib non-free

# stretch-updates, previously known as &#039;volatile&#039;
deb http://ftp.br.debian.org/debian/ stretch-updates main contrib non-free
deb-src http://ftp.br.debian.org/debian/ stretch-updates main contrib non-free</pre>
<pre class="remontti-code"># apt update
# apt install firmware-linux firmware-linux-free firmware-linux-nonfree
# apt install virtualbox-5.2</pre>
<p>Faça download dos pacotes extras: https://www.virtualbox.org/wiki/Downloads como instalei a versão 5.2 irei baixar a versão correspondente: <em>(If you&#8217;re looking for the latest VirtualBox 5.2 packages, see VirtualBox 5.2 builds.)</em></p>
<pre class="remontti-code"># wget --no-check-certificate https://download.virtualbox.org/virtualbox/5.2.26/Oracle_VM_VirtualBox_Extension_Pack-5.2.26.vbox-extpack</pre>
<p>Instale os pacotes extras</p>
<pre class="remontti-code"># VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.2.26.vbox-extpack</pre>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1871" src="https://blog.remontti.com.br/wp-content/uploads/2017/05/vb1.png" alt="" width="618" height="325" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/05/vb1.png 618w, https://blog.remontti.com.br/wp-content/uploads/2017/05/vb1-300x158.png 300w" sizes="auto, (max-width: 618px) 100vw, 618px" /><br />
Responta Yes <strong>(y)</strong></p>
<p>Vamos executá-lo como o nosso usuário <strong>vbox</strong>, porque ele não precisa acessar o resto do seu sistema.</p>
<pre class="remontti-code"># useradd -d /home/vbox -m -g vboxusers -s /bin/bash vbox</pre>
<p>Defina uma senha para seu usuario vbox</p>
<pre class="remontti-code"># passwd vbox</pre>
<p>Diga ao seu sistema qual usuário vai executar o VirtualBox.</p>
<pre class="remontti-code"># echo &#039;VBOXWEB_USER=vbox&#039; &gt; /etc/default/virtualbox 
# echo &#039;VBOXWEB_HOST=127.0.0.1&#039; &gt;&gt; /etc/default/virtualbox</pre>
<p>Faça com que o vboxweb-service inicie no boot. Como dito acima nosso usuário não precisa ter acesso total ao sistema, entao vamos instalar o sudo e roda-lo via sudo.</p>
<pre class="remontti-code"># apt install sudo</pre>
<p>Adicione no /etc/rc.local o comando para iniciar junto com o boot.</p>
<pre class="remontti-code"># vim /etc/rc.local</pre>
<p>No debian 9 esse arquivo é necessário criá-lo</p>
<pre class="remontti-code">#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will &quot;exit 0&quot; on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.


# Solução para inicialização automatica:
# use o comando la listar as VMs criadas
# sudo -u vbox VBoxManage list vms
# Colete as ID
# &quot;Debian&quot; {d288884d-a3d4-4903-b84e-5c6039af13b5}
# Pegue o &quot;ID&quot; da VM e use o Comando a baixo descomentando a linha:
# Adicione um sleep para aguardar 30seg para dar tempo do modulo do kernel ter tempo de iniciar
# sleep 30
# sudo -u vbox VBoxHeadless -s d288884d-a3d4-4903-b84e-5c6039af13b5 &amp;

</pre>
<p>No Debian 9 precisa alterar as permissões:</p>
<pre class="remontti-code"># chmod +x /etc/rc.local</pre>
<p>Vamos instalar o serviço web + php</p>
<pre class="remontti-code"># apt install apache2 php7.0 php7.0-common php7.0-soap php7.0-gd unzip php-pear php7.0-mysql php-xml php-soap</pre>
<p>Entre no diretório do usuário vbox, baixe o <a href="https://phpvirtualbox.github.io/" target="_blank" rel="noopener noreferrer">phpvirtualbox</a>, extraia o mesmo e altere as configurações necessárias. Nosso arquivos vão ficar todos nesta pasta.</p>
<pre class="remontti-code"># cd /home/vbox/
# wget --no-check-certificate https://github.com/phpvirtualbox/phpvirtualbox/archive/5.2-1.tar.gz -O phpvirtualbox.5.2-1.tar.gz
# tar -vxzf phpvirtualbox.5.2-1.tar.gz
# mv phpvirtualbox-5* phpvirtualbox
# rm phpvirtualbox.5.2-1.tar.gz
# chown vbox:vboxusers phpvirtualbox  -R
# cd phpvirtualbox
# cp config.php-example config.php
# vim config.php</pre>
<pre class="remontti-code"> // ... //
var $username = &#039;vbox&#039;;
var $password = &#039;pass&#039;;
 // ... //
</pre>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1876" src="https://blog.remontti.com.br/wp-content/uploads/2017/05/VirtualBox_Debian-Z_08_05_2017_16_15_25.png" alt="" width="720" height="400" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/05/VirtualBox_Debian-Z_08_05_2017_16_15_25.png 720w, https://blog.remontti.com.br/wp-content/uploads/2017/05/VirtualBox_Debian-Z_08_05_2017_16_15_25-300x167.png 300w" sizes="auto, (max-width: 720px) 100vw, 720px" /></p>
<p>Crie um atalho dentro do diretório do apache para podermos acessar via web.</p>
<pre class="remontti-code"># ln -s /home/vbox/phpvirtualbox /var/www/html/</pre>
<p>Agora acesse:<br />
<strong>http://IP-SERVIDOR/phpvirtualbox/</strong><br />
<strong>Usuário:</strong> admin<br />
<strong>Senha: </strong>admin</p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_160938.png" data-rel="lightbox-gallery-YcaJD1jt" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-1877" src="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_160938-300x199.png" alt="" width="300" height="199" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_160938-300x199.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_160938-768x509.png 768w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_160938-1024x678.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_160938.png 1256w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_phpvirtualbox.png" data-rel="lightbox-gallery-YcaJD1jt" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-1878" src="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_phpvirtualbox-300x199.png" alt="" width="300" height="199" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_phpvirtualbox-300x199.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_phpvirtualbox-768x509.png 768w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_phpvirtualbox-1024x678.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_phpvirtualbox.png 1256w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p><strong>Alterando a senha padrão.</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_161957.png" data-rel="lightbox-gallery-YcaJD1jt" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-1879" src="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_161957-300x199.png" alt="" width="300" height="199" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_161957-300x199.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_161957-768x509.png 768w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_161957-1024x678.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_161957.png 1256w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><br />
Clique no menu: <em>File -> Change Password</em></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162038.png" data-rel="lightbox-gallery-YcaJD1jt" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-1880" src="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162038-300x199.png" alt="" width="300" height="199" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162038-300x199.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162038-768x509.png 768w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162038-1024x678.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162038.png 1256w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><br />
Insira a nova senha.</p>
<p><strong>Alterando o idioma para PT-BR.</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_161955.png" data-rel="lightbox-gallery-YcaJD1jt" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-1881" src="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_161955-300x199.png" alt="" width="300" height="199" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_161955-300x199.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_161955-768x509.png 768w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_161955-1024x678.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_161955.png 1256w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Clique no menu: <em>File -> Preferences&#8230;</em><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162315.png" data-rel="lightbox-gallery-YcaJD1jt" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-1882" src="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162315-300x199.png" alt="" width="300" height="199" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162315-300x199.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162315-768x509.png 768w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162315-1024x678.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162315.png 1256w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><br />
Selecione na esquerda Language, e escolha Português (Brasil)</p>
<p><strong>Criando uma maquina virtual.</strong><br />
O procedimento para criação de uma VM é igual ao que você já conhece na versão desktop.</p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162604.png" data-rel="lightbox-gallery-YcaJD1jt" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="alignnone size-thumbnail wp-image-1883" src="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162604-150x150.png" alt="" width="150" height="150" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162604-150x150.png 150w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162604-160x160.png 160w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162604-320x320.png 320w" sizes="auto, (max-width: 150px) 100vw, 150px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162646.png" data-rel="lightbox-gallery-YcaJD1jt" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="alignnone size-thumbnail wp-image-1884" src="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162646-150x150.png" alt="" width="150" height="150" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162646-150x150.png 150w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162646-160x160.png 160w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162646-320x320.png 320w" sizes="auto, (max-width: 150px) 100vw, 150px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162705.png" data-rel="lightbox-gallery-YcaJD1jt" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="alignnone size-thumbnail wp-image-1885" src="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162705-150x150.png" alt="" width="150" height="150" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162705-150x150.png 150w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162705-160x160.png 160w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162705-320x320.png 320w" sizes="auto, (max-width: 150px) 100vw, 150px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162724.png" data-rel="lightbox-gallery-YcaJD1jt" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="alignnone size-thumbnail wp-image-1886" src="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162724-150x150.png" alt="" width="150" height="150" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162724-150x150.png 150w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162724-160x160.png 160w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162724-320x320.png 320w" sizes="auto, (max-width: 150px) 100vw, 150px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162743.png" data-rel="lightbox-gallery-YcaJD1jt" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="alignnone size-thumbnail wp-image-1887" src="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162743-150x150.png" alt="" width="150" height="150" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162743-150x150.png 150w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162743-160x160.png 160w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162743-320x320.png 320w" sizes="auto, (max-width: 150px) 100vw, 150px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162803.png" data-rel="lightbox-gallery-YcaJD1jt" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="alignnone size-thumbnail wp-image-1888" src="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162803-150x150.png" alt="" width="150" height="150" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162803-150x150.png 150w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162803-160x160.png 160w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162803-320x320.png 320w" sizes="auto, (max-width: 150px) 100vw, 150px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162832.png" data-rel="lightbox-gallery-YcaJD1jt" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="alignnone size-thumbnail wp-image-1889" src="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162832-150x150.png" alt="" width="150" height="150" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162832-150x150.png 150w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162832-160x160.png 160w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162832-320x320.png 320w" sizes="auto, (max-width: 150px) 100vw, 150px" /></a></p>
<p>Para acessar remotamente você precisa ativar a tela remota:<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162914.png" data-rel="lightbox-gallery-YcaJD1jt" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-1890" src="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162914-300x199.png" alt="" width="300" height="199" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162914-300x199.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162914-768x509.png 768w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162914-1024x678.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_162914.png 1256w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_163155.png" data-rel="lightbox-gallery-YcaJD1jt" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-1892" src="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_163155-300x210.png" alt="" width="300" height="210" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_163155-300x210.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_163155-768x537.png 768w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_163155-1024x717.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_163155.png 1256w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Você pode colocar suas ISOs no diretório do usuário vbox:<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_163015.png" data-rel="lightbox-gallery-YcaJD1jt" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-1891" src="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_163015-300x199.png" alt="" width="300" height="199" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_163015-300x199.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_163015-768x509.png 768w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_163015-1024x678.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2017/05/Screenshot_20170508_163015.png 1256w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>O post <a href="https://blog.remontti.com.br/1865">Gerencie suas máquinas virtuais do VirtualBox via Web #phpVirtualBox</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/1865/feed</wfw:commentRss>
			<slash:comments>17</slash:comments>
		
		
			</item>
		<item>
		<title>Criando uma maquina virtual com linux (Debian) para Desenvolvedores Web (LDAMPS)</title>
		<link>https://blog.remontti.com.br/1730</link>
					<comments>https://blog.remontti.com.br/1730#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Mon, 20 Feb 2017 02:08:28 +0000</pubDate>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[SFTP]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[xamp]]></category>
		<category><![CDATA[xampp]]></category>
		<guid isPermaLink="false">http://blog.remontti.com.br/?p=1730</guid>

					<description><![CDATA[<p>LDAMPS (Linux / DNS / Apache / MySQL / PHP / SFTP) A ideia deste tutorial é criar um cenário mais legal que um simples &#8220;xampp/easyphp&#8221;, e sim criar nosso próprio &#8220;servidor de hospedagem&#8221;&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/1730">Criando uma maquina virtual com linux (Debian) para Desenvolvedores Web (LDAMPS)</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><strong></strong><strong>LDAMPS</strong> (Linux / DNS / Apache / MySQL / PHP / SFTP)</p>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2017/02/web-dev-icon.jpg" alt="" width="800" height="510" class="alignnone size-full wp-image-1764" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/02/web-dev-icon.jpg 800w, https://blog.remontti.com.br/wp-content/uploads/2017/02/web-dev-icon-300x191.jpg 300w, https://blog.remontti.com.br/wp-content/uploads/2017/02/web-dev-icon-768x490.jpg 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></p>
<p>A ideia deste tutorial é criar um cenário mais legal que um simples &#8220;xampp/easyphp&#8221;, e sim criar nosso próprio &#8220;servidor de hospedagem&#8221; onde vamos criar domínios virtuais quais poderemos acessá-los para fazer simulações em cima de ambientes mais reais. </p>
<p>Para crianção da maquina virtual no VirtualBox e a Instalação do Debian siga os tutoriais abaixo.</p>
<p><a href="https://blog.remontti.com.br/1134" target="_blank" rel="noopener">Criando uma máquina virtual no Virtual Box</a></p>
<p>Na instalação, na parte da configuração não é necessário fixar um IP, pode recebe-lo automaticamente via DHCP, assim se você sair da sua rede pode levar a experiência para outras redes, porém será necessário alterar o endereço IP nas configurações do bind cada vez que seu servidor receber um novo IP, falarei disso nas configurações do BIND (é apenas um arquivo nada d+).</p>
<p><a href="https://blog.remontti.com.br/1152" target="_blank" rel="noopener">Instalação do Debian 8 Jessie Limpa passo-a-passo</a></p>
<p>Após instalação do Debina, instalaremos o SSH para acessamos remotamente via Terminal ou com Putty (Windows). Vou ainda instalar o editor vim, que é meu preferido, mas você pode usar nano, pico entre outros.</p>
<pre class="remontti-code"># apt install ssh vim</pre>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2017/02/VirtualBox_Debian-Dev-Web_19_02_2017_15_46_54.png" data-rel="lightbox-gallery-O8Os4lrd" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2017/02/VirtualBox_Debian-Dev-Web_19_02_2017_15_46_54-300x167.png" alt="" width="300" height="167" class="alignnone size-medium wp-image-1735" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/02/VirtualBox_Debian-Dev-Web_19_02_2017_15_46_54-300x167.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/02/VirtualBox_Debian-Dev-Web_19_02_2017_15_46_54.png 720w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><br />
Lembre-se que no processo da criação da maquina virtual nossa placa de rede ficou em modo bridge, ou seja isso faz com que a comunicação existente em sua rede seja de ponto-a-ponto entre todos que nela estão conectados.</p>
<p>Sempre que iniciar sua máquina virtual será necessário verificar qual IP recebeu. </p>
<pre class="remontti-code"># ifconfig </pre>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2017/02/VirtualBox_Debian-Dev-Web_19_02_2017_15_52_46.png" data-rel="lightbox-gallery-O8Os4lrd" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2017/02/VirtualBox_Debian-Dev-Web_19_02_2017_15_52_46-300x167.png" alt="" width="300" height="167" class="alignnone size-medium wp-image-1736" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/02/VirtualBox_Debian-Dev-Web_19_02_2017_15_52_46-300x167.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/02/VirtualBox_Debian-Dev-Web_19_02_2017_15_52_46.png 720w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><br />
No meu caso minha maquina está com o IP 10.0.0.109. Agora vamos acessar nosso servidor por SSH, se você já utiliza linux abra em seu terminal e digite $ ssh seuusuario@ip-do-seu-servidor ou abra o Putty e informe o IP do seu servidor.<br />
Entre com sua senha, e após vire administrador (root) com o comando #su<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_155718.png" data-rel="lightbox-gallery-O8Os4lrd" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_155718-300x201.png" alt="" width="300" height="201" class="alignnone size-medium wp-image-1737" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_155718-300x201.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_155718-768x515.png 768w, https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_155718.png 842w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Tem duas coisar que sempre faço após instalar um debian, faça se desejar.<br />
A primeira é colorir o bash.</p>
<pre class="remontti-code"># vim /root/.bashrc</pre>
<p>Descomente </p>
<pre class="remontti-code">
export LS_OPTIONS=&#039;--color=auto&#039;
eval &quot;`dircolors`&quot;
alias ls=&#039;ls $LS_OPTIONS&#039;
alias ll=&#039;ls $LS_OPTIONS -l&#039;
alias l=&#039;ls $LS_OPTIONS -lha&#039;
</pre>
<p>Insira ao final:</p>
<pre class="remontti-code">
PS1=&#039;${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u\[\033[00m\]@\[\033[01;36m\]\h\[\033[00m\]:\[\033[01;37m\]\w\[\033[01;32m\]\$\[\033[00m\] &#039;
</pre>
<p>Deslogue do root <em>(# exit)</em>, e logue novamente <em>(# su)</em><br />
Pronto nosso bash está com &#8220;mais vida&#8221; <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Você encontra mais detalhes em: <a href="https://blog.remontti.com.br/141" target="_blank" rel="noopener">Colorindo seu Bash</a></p>
<p>A segunda é melhorar o autocomplete:<br />
<a href="https://blog.remontti.com.br/1318" target="_blank" rel="noopener">Bash com autocomplete “turbinado” no Debian</a></p>
<p>Precisamos instalar nosso servidor web, para isso siga o tutorial abaixo.</p>
<p><a href="https://blog.remontti.com.br/1296" target="_blank" rel="noopener">Passo-a-passo como criar um servidor web Apache2, PHP5, MySQL, PHPMyAdmin “LAMP” no Debian 8</a></p>
<p>Agora vem a parte legal!! Configurar nosso servidor para resolver nomes (Sevidor DNS) e nele configurar alguns domínios &#8220;fake&#8221; quais poderemos acessar.<br />
<font color="red"><br />
<i>Vale lembrar que você não deve fazer isso em uma máquina com IP válido, caso fizer isso vai estar deixando consultas recursivas aberta para o mundo &#8220;escravizar-lo&#8221;, não vou entrar em detalhes das configurações avançadas do bind, o intuito aqui é ensinar pessoas a ter um cenário para programação web, em um ambiente local. Se deseja saber como configurar um servidor DNS acesse:</font> <a href="https://blog.remontti.com.br/1397">Servidor DNS Recursivo, Autoritativo e Reverso com Bind9 (IPv4+IPv6)</a>. </i></p>
<p>No exemplo vou inventar dois domínios fake:<br />
dominio1.com.br<br />
dominio2.com.br</p>
<p>Instalaremos o <a href="https://pt.wikipedia.org/wiki/BIND" target="_blank" rel="noopener">BIND</a> </p>
<pre class="remontti-code"># apt install bind9</pre>
<p>Altere o DNS do seus servidor para ele mesmo</p>
<pre class="remontti-code"># echo &#039;nameserver 127.0.0.1&#039; &gt; /etc/resolv.conf
</pre>
<p>Para prevenir que o DHCP não mude novamente seu DNS vamos alterar um configuração no arquivo de configuração do DHCP Cliente. Assim sempre vamos receber o 127.0.0.1</p>
<pre class="remontti-code"># sed -i &quot;s/#prepend domain-name-servers/prepend domain-name-servers/g&quot; /etc/dhcp/dhclient.conf</pre>
<p>Se quiser garantia que irá receber o 127.0.0.1 de um reboot em sua VM, e após reiniciar de um cat /etc/resolv.conf e veja se  <em>nameserver 127.0.0.1</em> se encontra no arquivo.</p>
<pre class="remontti-code"># reboot</pre>
<p>Vamos criar nossa zona fake, que fará com que todos os domínios que adicionaremos nela o servidor faça responder que o domínios é o seu próprio servidor. </p>
<pre class="remontti-code"># echo &#039;include &quot;/etc/bind/fakes.zone&quot;;&#039; &gt;&gt; /etc/bind/named.conf.local

# echo &#039;zone &quot;web.local&quot; IN { type master; file &quot;/etc/bind/db.web.local&quot;; };&#039; &gt;&gt; /etc/bind/named.conf.local</pre>
<pre class="remontti-code"># vim /etc/bind/db.web.local </pre>
<p><font color="red">Lembrando que 10.0.0.109 é o IP que estou recebendo via DHCP, SEMPRE que sua interface receber um novo IP será necessário altera-lo, e  restartar o serviço bind9.</font></p>
<pre class="remontti-code">
$ORIGIN .
$TTL 86400
web.local         IN SOA  ns1.web.local. ns2.web.local. (
                        2017021901 ; serial
                        28800      ; refresh (8 hours)
                        1800       ; retry (30 minutes)
                        2419200    ; expire (4 weeks)
                        10800      ; minimum (3 hours)
                        )
                        NS web.local
                        A 10.0.0.109
</pre>
<p>Vou ensinar como fazer script (shell script) que fará com que sempre fique o IP recebido via DHCP.<br />
Insira no final do arquivo /etc/rc.local as linhas abaixo, o rc.local é carregado na inicialização.</p>
<pre class="remontti-code"># vim /etc/rc.local</pre>
<p>Insira antes de exit 0</p>
<pre class="remontti-code">
pegaip=$(ifconfig eth0 | grep &quot;inet end&quot; | awk &#039;{print $3}&#039;)
sed -i &quot;s/ A .*/ A $pegaip/g&quot; /etc/bind/db.web.local
/etc/init.d/bind9  restart
</pre>
<p>Criaremos nosso arquivo fakes.zone quais adicionaremos os domínios fake.</p>
<p># vim /etc/bind/fakes.zone</p>
<pre class="remontti-code">
zone &quot;fakes.zone&quot; {
        type master;
        file &quot;/etc/bind/db.fakes.zone&quot;;
        allow-query {none;};
};
</pre>
<pre class="remontti-code"># vim /etc/bind/db.fakes.zone</pre>
<pre class="remontti-code">
$TTL 1H
@       IN      SOA LOCALHOST. NS.LOCALHOST (
                        2017021900      ; Serial  
                        1h              ; Refresh
                        15m             ; Retry
                        30d             ; Expire 
                        2h              ; Negative Cache TTL
                )
                NS  LOCALHOST.

*.dominio1.com.br       IN CNAME .
dominio1.com.br         IN CNAME .

*.dominio2.com.br       IN CNAME .
dominio2.com.br         IN CNAME .

</pre>
<pre class="remontti-code"># vim /etc/bind/named.conf.options</pre>
<p>Insira no arquivo antes de fechar a chave options.</p>
<pre class="remontti-code">response-policy {
	zone &quot;fakes.zone&quot; policy CNAME web.local;
};</pre>
<p>Ficando assim:</p>
<pre class="remontti-code">
options {
        directory &quot;/var/cache/bind&quot;;

        // If there is a firewall between you and nameservers you want
        // to talk to, you may need to fix the firewall to allow multiple
        // ports to talk.  See http://www.kb.cert.org/vuls/id/800113

        // If your ISP provided one or more IP addresses for stable
        // nameservers, you probably want to use them as forwarders.
        // Uncomment the following block, and insert the addresses replacing
        // the all-0 s placeholder.

        // forwarders {
        //      0.0.0.0;
        // };


        //========================================================================
        // If BIND logs error messages about the root key being expired,
        // you will need to update your keys.  See https://www.isc.org/bind-keys
        //========================================================================
        dnssec-validation auto;

        auth-nxdomain no;    # conform to RFC1035
        listen-on-v6 { any; };

        response-policy {
                zone &quot;fakes.zone&quot; policy CNAME web.local;
        };
};
</pre>
<p>Restarte o bind toda vez que fizer alguma alteração (ex adicionar um novo domínio)</p>
<pre class="remontti-code"># /etc/init.d/bind9  restart</pre>
<p>Ping para seus domínios e veja se responde o IP do seu servidor.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_180743.png" data-rel="lightbox-gallery-O8Os4lrd" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_180743-300x201.png" alt="" width="300" height="201" class="alignnone size-medium wp-image-1734" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_180743-300x201.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_180743-768x515.png 768w, https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_180743.png 842w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Altere os DNS de seu computador para o IP do seu servidor &#8220;no meu caso 10.0.0.109&#8221;. Seu computador vai fazer as consultas DNS em seu servidor, qual responde como autoritativo pelos domínios fakes. Agora Acesse seus domínios em seu navegador.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_183202.png" data-rel="lightbox-gallery-O8Os4lrd" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_183202-300x213.png" alt="" width="300" height="213" class="alignnone size-medium wp-image-1745" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_183202-300x213.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_183202-768x544.png 768w, https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_183202-1024x726.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_183202.png 1043w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><br />
Recebemos a tela padrão, que esta é o arquivo que está em /var/www/html/index.html<br />
Como padrão então já sabemos que o diretório padrão do apaches (www-data) é /var/www/html/. Bom precisamos fazer nosso apache interpretar que cada site fique em um diretório diferente. Então vamos criar esses diretórios.</p>
<pre class="remontti-code"># mkdir -p /var/www/dom_fakes/dominio1.com.br
# mkdir /var/www/dom_fakes/dominio2.com.br</pre>
<p>Agora criamos nossos 2 arquivos de configurações em /etc/apache2/sites-enabled/ para cada domínio.</p>
<p><strong>dominio1.com.br</strong></p>
<pre class="remontti-code"># vim /etc/apache2/sites-enabled/dominio1.com.br.conf</pre>
<pre class="remontti-code">&lt;VirtualHost *:80&gt;
	ServerName dominio1.com.br
	ServerAlias www.dominio1.com.br

        ServerAdmin seu@email.com.br
        DocumentRoot /var/www/dom_fakes/dominio1.com.br
	&lt;Directory /var/www/dom_fakes/dominio1.com.br/&gt;
    		Options Indexes FollowSymLinks
    		AllowOverride All
	&lt;/Directory&gt;

	LogLevel warn

        ErrorLog ${APACHE_LOG_DIR}/dominio1.com.br_error.log
        CustomLog ${APACHE_LOG_DIR}/dominio1.com.br_access.log combined

&lt;/VirtualHost&gt;</pre>
<p><strong>dominio2.com.br</strong></p>
<pre class="remontti-code"># vim /etc/apache2/sites-enabled/dominio2.com.br.conf</pre>
<pre class="remontti-code">&lt;VirtualHost *:80&gt;
	ServerName dominio2.com.br
	ServerAlias www.dominio2.com.br
        ServerAdmin seu@email.com.br
        DocumentRoot /var/www/dom_fakes/dominio2.com.br

	&lt;Directory /var/www/dom_fakes/dominio2.com.br/&gt;
    		Options Indexes FollowSymLinks
    		AllowOverride All
	&lt;/Directory&gt;

	LogLevel warn

        ErrorLog ${APACHE_LOG_DIR}/dominio2.com.br_error.log
        CustomLog ${APACHE_LOG_DIR}/dominio2.com.br_access.log combined

&lt;/VirtualHost&gt;</pre>
<p>Criamos um arquivo em cada diretório para que possamos visualizar que estamos acessando o domínio corretamente.</p>
<pre class="remontti-code"># echo &gt; /var/www/dom_fakes/dominio1.com.br/d1.html
# echo &gt; /var/www/dom_fakes/dominio2.com.br/d2.html</pre>
<p>Agora restart o apache.</p>
<pre class="remontti-code"># /etc/init.d/apache2 restart</pre>
<p>Bingo!<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_184336.png" data-rel="lightbox-gallery-O8Os4lrd" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_184336-300x230.png" alt="" width="300" height="230" class="alignnone size-medium wp-image-1747" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_184336-300x230.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_184336.png 750w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_184339.png" data-rel="lightbox-gallery-O8Os4lrd" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_184339-300x230.png" alt="" width="300" height="230" class="alignnone size-medium wp-image-1748" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_184339-300x230.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_184339.png 750w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Vamos remover o /var/www/html/index.html e criar um link dos domínios fakes em /var/www/html/ assim quando você não quiser trocar o IP para resolver nomes, você pode acessar o http://IP/dominiofake&#8230;. </p>
<pre class="remontti-code"># rm /var/www/html/index.html 
# ln -s /var/www/dom_fakes/ /var/www/html/</pre>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170221_133530.png" data-rel="lightbox-gallery-O8Os4lrd" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170221_133530-300x203.png" alt="" width="300" height="203" class="alignnone size-medium wp-image-1800" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170221_133530-300x203.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170221_133530-768x520.png 768w, https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170221_133530.png 912w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170221_133757.png" data-rel="lightbox-gallery-O8Os4lrd" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170221_133757-300x203.png" alt="" width="300" height="203" class="alignnone size-medium wp-image-1804" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170221_133757-300x203.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170221_133757-768x520.png 768w, https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170221_133757.png 912w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Para enviarmos os arquivos podemos usar um cliente SFTP como o FileZilla, Winscp entre outros. Mas para logar no nosso cliente SFTP vamos ter que fazer alguns ajustes no usuário www-data (usuário do apache), primeiramente ele não vem com permissão para logar, vale lembrar que eu não recomendo faze isso em servidores convencionais, este é um ambiente de &#8220;local&#8221; para estudos&#8230; </p>
<pre class="remontti-code"># usermod -s /bin/bash www-data</pre>
<p>Sete uma senha para o usuário www-data com o comando. (Vamos usar ela para logar posteriormente no FileZilla)</p>
<pre class="remontti-code"># passwd www-data</pre>
<p>Altere as permissões do diretório/subdir em /var/www para seu usuário www-data</p>
<pre class="remontti-code"># chown  www-data. /var/www/ -R</pre>
<p>Agora basta você conectar-se para enviar os arquivos: (ex. FileZilla)<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_223559.png" data-rel="lightbox-gallery-O8Os4lrd" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_223559-300x242.png" alt="" width="300" height="242" class="alignnone size-medium wp-image-1757" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_223559-300x242.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_223559-768x619.png 768w, https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_223559.png 789w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_223836.png" data-rel="lightbox-gallery-O8Os4lrd" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_223836-300x236.png" alt="" width="300" height="236" class="alignnone size-medium wp-image-1761" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_223836-300x236.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_223836-768x604.png 768w, https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_223836-1024x805.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2017/02/Screenshot_20170219_223836.png 1164w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Se você deseja arriscar e elevar o nível e criar um servidor FTP você pode seguir o tutorial: <a href="https://blog.remontti.com.br/136" target="_blank" rel="noopener">Servidor FTP com usuários no banco de dados MySQL</a></p>
<p>Como está criando um ambiente para programar é interessante receber os erros do PHP, então edite as configurações do php.ini ele fica em <strong>/etc/php5/apache2/php.ini</strong><br />
Procure por <strong>display_errors</strong> e altere para <strong>On</strong> </p>
<pre class="remontti-code">display_errors = On</pre>
<p>O padrão para upload de arquivos no PHP é de 2M. Você este valor procurando por <strong>upload_max_filesize</strong> e colocando o valor que achar melhor.</p>
<pre class="remontti-code">upload_max_filesize = 20M</pre>
<p>A cada alteração feita no php.ini deve ser restartado o apache.</p>
<pre class="remontti-code"># /etc/init.d/apache2 restart</pre>
<p>Se precisar ver os logs você encontra em <strong>/var/log/apache2/</strong>. Se você reparar vai ver que la na configuração do domínio no apache temos o valor <em>[ErrorLog ${APACHE_LOG_DIR}/dominio2.com.br_error.log]</em>.<br />
Ex de comando para  visualizar:</p>
<pre class="remontti-code"># tail -f /var/log/apache2/dominio1.com.br_error.log </pre>
<p>Agora cada vez que deseja criar um domínio fake:<br />
<strong>1 &#8211;</strong> Crie um arquivo/etc/apache2/sites-enabled/dominiofake.com.conf  (sempre terminando em .conf)</p>
<pre class="remontti-code">Conforme modelos acima.</pre>
<p><strong>2 &#8211;</strong> Insira no /etc/bind/db.fakes.zone seu dominofake.com </p>
<pre class="remontti-code">*.dominiofake.com       IN CNAME .
dominiofake.com         IN CNAME .</pre>
<p><strong>3 &#8211; </strong> Restart o apcache e o Bind</p>
<pre class="remontti-code">/etc/init.d/bind9  restart
/etc/init.d/apache2 restart</pre>
<p>Você pode criar também um usuário MySQL para cada aplicação sua, para separar as bases de dados, segue um ex. onde criamos a base de dados dominio1 com o usuario dominio1 e SENHA:</p>
<pre class="remontti-code"># mysql -u root -p</pre>
<p>Você pode usar o phpmyadmin também.</p>
<pre class="remontti-code">CREATE DATABASE dominio1;
GRANT ALL PRIVILEGES ON dominio1.* TO &#039;dominio1&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;SUA-SENHA-DOM1&#039;;
FLUSH PRIVILEGES;
quit;</pre>
<p><strong>Pensando em facilitar sua vida, vou criar dois shell script. Uma para adicionar um domínio com apenas um comando, e outro para remover.</strong></p>
<pre class="remontti-code">vim /bin/adddominio</pre>
<pre class="remontti-code">#!/bin/bash

DOMINIO=$1

if [ -z $DOMINIO ];then
        echo
        echo &quot;Comando imcompleto!&quot;
        echo &quot; Use ex.: adddominio dominio.tld&quot;
        echo
else
        EXITE=`ls -lh /etc/apache2/sites-enabled/ |grep ${DOMINIO} |wc -l`
        echo
        if [ $EXITE = 1 ]; then
                        printf &quot;\033[1;31m ${DOMINIO} \033[0m já cadastrado! \n&quot;
        else

                mkdir /var/www/dom_fakes/${DOMINIO}

                cat &lt;&lt;&lt; &quot;
                &lt;VirtualHost *:80&gt;
                        ServerName ${DOMINIO}
                        ServerAlias www.${DOMINIO}

                        ServerAdmin seu@email.com.br
                        DocumentRoot /var/www/dom_fakes/${DOMINIO}
                        &lt;Directory /var/www/dom_fakes/${DOMINIO}/&gt;
                                Options Indexes FollowSymLinks
                                AllowOverride All
                        &lt;/Directory&gt;

                        LogLevel warn

                        ErrorLog ${APACHE_LOG_DIR}/${DOMINIO}_error.log
                        CustomLog ${APACHE_LOG_DIR}/${DOMINIO}_access.log combined
                &lt;/VirtualHost&gt;
                &quot; &gt; /etc/apache2/sites-enabled/${DOMINIO}.conf

                echo &quot;*.${DOMINIO}       IN CNAME .&quot; &gt;&gt; /etc/bind/db.fakes.zone
                echo &quot;${DOMINIO}         IN CNAME .&quot; &gt;&gt; /etc/bind/db.fakes.zone

                chown  www-data. /var/www/dom_fakes/${DOMINIO}

                /etc/init.d/bind9 restart
                /etc/init.d/apache2 restart

                echo

                printf &quot;\033[1;32m$DOMINIO \033[0m configurado com sucesso! \n&quot;
        fi
        echo
fi</pre>
<pre class="remontti-code">vim /bin/deldominio</pre>
<pre class="remontti-code">#!/bin/bash

DOMINIO=$1

if [ -z $DOMINIO ];then
        echo
        echo &quot;Comando imcompleto!&quot;
        echo &quot; Use ex.: deldominio dominio.tld&quot;
        echo
else
        EXITE=`ls -lh /etc/apache2/sites-enabled/ |grep ${DOMINIO} |wc -l`
        echo
        if [ $EXITE = 0 ]; then
                        printf &quot;\033[1;31m ${DOMINIO} \033[0m não encontrado! \n&quot;
        else
                rm -rf /var/www/dom_fakes/${DOMINIO}

                rm -f /etc/apache2/sites-enabled/${DOMINIO}.conf

                sed -i &quot;/${DOMINIO}/d&quot; /etc/bind/db.fakes.zone

                /etc/init.d/bind9 restart
                /etc/init.d/apache2 restart
                echo
                printf &quot;\033[1;32m$DOMINIO \033[0m removido com sucesso! \n&quot;
        fi
        echo
fi
</pre>
<p>Altere as permissões.</p>
<pre class="remontti-code"># chmod +x /bin/adddominio
# chmod +x /bin/deldominio</pre>
<p>Pronto agora bastar você usar o comando adddominio para adicionar todas as configurações automaticamente e deldominio para remove-las.<br />
Adicionando:</p>
<pre class="remontti-code">adddominio dominio3.com</pre>
<p>Removendo:</p>
<pre class="remontti-code">deldominio dominio3.com</pre>
<p>Parabéns! Você montou um servidor próprio! </p>
<p>Agora se você quer dar uma de preguiçoso vou deixar aqui o link para você importar a VM em seu virtual box.<br />
<strong><a href="https://mega.nz/#!FtYhCLLY!3Hyjmp2u0fNVXmLe0RUi18NEb8oJv08ZxrPgXeFMN_A" target="_blank" rel="noopener">Dev Web Server.ova</a> 765MB (64bits)</strong><br />
Abra seu Virtual Box vá em: Arquivo &#8211;>  Importar Amppliance e selecione o arquivo.</p>
<pre class="remontti-code">Usuários / Senhas
SSH:
webdev / remontti
root / remontti
www-data / remontti (SFTP)

MySQL
root / remontti
phpmyadmin / remontti</pre>
<p>Se gostou, ficou com dúvida deixe seu comentário.</p>
<p>Abraço!</p>
<p>O post <a href="https://blog.remontti.com.br/1730">Criando uma maquina virtual com linux (Debian) para Desenvolvedores Web (LDAMPS)</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/1730/feed</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
		<item>
		<title>FreeBSD v8.0 +  Apache + Mysql + PHP “FAMP”</title>
		<link>https://blog.remontti.com.br/648</link>
					<comments>https://blog.remontti.com.br/648#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Mon, 04 Jan 2010 19:23:42 +0000</pubDate>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[apache22]]></category>
		<category><![CDATA[famp]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[php]]></category>
		<guid isPermaLink="false">http://www.remontti.com.br/blog/?p=648</guid>

					<description><![CDATA[<p>Primeiramente vamos instalar o mysql, para não ficarmos com dependências&#8230; para os amigos de primeira viagem no freebsd usamos os ports para instalação de pacotes, vamos suporte que eu esteja querendo instalar algum pacote&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/648">FreeBSD v8.0 +  Apache + Mysql + PHP “FAMP”</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><a href="http://www.remontti.com.br/blog/wp-content/uploads/2010/01/postcard2.gif" data-rel="lightbox-gallery-alAcrYuR" data-rl_title="" data-rl_caption=""><img loading="lazy" decoding="async" class="size-full wp-image-655 alignleft" title="" src="https://www.remontti.com.br/blog/wp-content/uploads/2010/01/postcard2.gif" alt="" width="260" height="328" srcset="https://blog.remontti.com.br/wp-content/uploads/2010/01/postcard2.gif 260w, https://blog.remontti.com.br/wp-content/uploads/2010/01/postcard2-237x300.gif 237w" sizes="auto, (max-width: 260px) 100vw, 260px" /></a>Primeiramente vamos instalar o mysql, para não ficarmos com dependências&#8230; para os amigos de primeira viagem no freebsd usamos os ports para instalação de pacotes, vamos suporte que eu esteja querendo instalar algum pacote e não sei seu diretório, entre em http://www.freshports.org/ e em search faça sua busca, não vou entrar em detalhes. Vamos à instalação:</p>
<p><span id="more-648"></span></p>
<h2><strong>ATUALIZANDO PORTS</strong></h2>
<p><span style="color: #ff6600;"># portsnap fetch<br />
# portsnap extract<br />
# portsnap update</span></p>
<h2><strong>MYSQL </strong></h2>
<p><span style="color: #ff6600;"># cd /usr/ports/databases/mysql51-server/<br />
# make install clean</span></p>
<p>Options for libiconv (padrão)</p>
<p>O processo de compilação pode demorar vários minutos&#8230;</p>
<p>Agora vamos ativa-lo, após starta-lo e reiniciar nosso server para verificar se tudo esta ok.</p>
<p><span style="color: #ff6600;"># echo &#8216;mysql_enable=&#8221;YES&#8221;&#8216; &gt;&gt; /etc/rc.conf<br />
# /usr/local/etc/rc.d/mysql-server start<br />
# reboot<br />
Adicionando uma senha a seu usuário root<br />
# mysqladmin -u root password SUA_SENHA<br />
# history -c</span></p>
<h2><strong>APACHE</strong></h2>
<p><span style="color: #ff6600;"># cd /usr/ports/www/apache22/<br />
# make config </span></p>
<p>Quando for solicitado marque apenas as opções a baixo:</p>
<pre class="remontti-code">Apache2 Options

[X] THREADS               Enable threads support in APR
[X] MYSQL                 Enable MySQL support for apr-dbd
[X] IPV6                  Enable IPv6 support
[X] BDB                   Enable BerkeleyDB dbm
[X] AUTH_BASIC            Enable mod_auth_basic
[X] AUTH_DIGEST           Enable mod_auth_digest
[X] AUTHN_FILE            Enable mod_authn_file
[X] AUTHN_DBD             Enable mod_authn_dbd
[X] AUTHN_DBM             Enable mod_authn_dbm
[X] AUTHN_ANON            Enable mod_authn_anon
[X] AUTHN_DEFAULT         Enable mod_authn_default
[X] AUTHN_ALIAS           Enable mod_authn_alias
[X] AUTHZ_HOST            Enable mod_authz_host
[X] AUTHZ_GROUPFILE       Enable mod_authz_groupfile
[X] AUTHZ_USER            Enable mod_authz_user
[X] AUTHZ_DBM             Enable mod_authz_dbm
[X] AUTHZ_OWNER           Enable mod_authz_owner
[X] AUTHZ_DEFAULT         Enable mod_authz_default
[X] CACHE                 Enable mod_cache
[X] DISK_CACHE            Enable mod_disk_cache
[X] FILE_CACHE            Enable mod_file_cache
[X] DAV                   Enable mod_dav
[X] DAV_FS                Enable mod_dav_fs
[X] ACTIONS               Enable mod_actions
[X] ALIAS                 Enable mod_alias
[X] ASIS                  Enable mod_asis
[X] AUTOINDEX             Enable mod_autoindex
[X] CERN_META             Enable mod_cern_meta
[X] CHARSET_LITE          Enable mod_charset_lite
[Y] DBD                   Enable mod_dbd
[X] DEFLATE               Enable mod_deflate
[X] DIR                   Enable mod_dir
[X] DUMPIO                Enable mod_dumpio
[X] ENV                   Enable mod_env
[X] EXPIRES               Enable mod_expires
[X] HEADERS               Enable mod_headers
[X] IMAGEMAP              Enable mod_imagemap
[X] INCLUDE               Enable mod_include
[X] INFO                  Enable mod_info
[X] LOG_CONFIG            Enable mod_log_config
[X] LOGIO                 Enable mod_logio
[X] MIME                  Enable mod_mime
[X] MIME_MAGIC            Enable mod_mime_magic
[X] NEGOTIATION           Enable mod_negotiation
[X] REWRITE               Enable mod_rewrite
[X] SETENVIF              Enable mod_setenvif
[X] SPELING               Enable mod_speling
[X] STATUS                Enable mod_status
[X] UNIQUE_ID             Enable mod_unique_id
[X] USERDIR               Enable mod_userdir
[X] USERTRACK             Enable mod_usertrack
[X] VHOST_ALIAS           Enable mod_vhost_alias
[X] FILTER                Enable mod_filter
[X] VERSION               Enable mod_version
[X] PROXY                 Enable mod_proxy
[X] SSL                   Enable mod_ssl
[X] SUEXEC                Enable mod_suexec
</pre>
<pre class="remontti-code">Options for perl 5.8

[X] PERL_MALLOC    Use Perl malloc
[X] PERL_64BITINT  Use 64 bit integers (on i386)
[X] USE_PERL       Rewrite links in /usr/bin
</pre>
<pre class="remontti-code">Options for m4 (não marque nada)
[ ] LIBSIGSEGV  Use libsigsegv for better diagnostics</pre>
<p><span style="color: #ff6600;"># make install clean clean-depends</span></p>
<p>Uma vez que o Apache está instalado corretamente, você deve configurar seu servidor. Primeiro, ativar o suporte a SSL e criar o certificado e arquivos fundamentais.</p>
<p><span style="color: #ff6600;"># echo &#8216;apache22_enable=&#8221;YES&#8221;&#8216; &gt;&gt; /etc/rc.conf</span></p>
<p><span style="color: #ff6600;"># echo &#8216;apache22ssl_enable=&#8221;YES&#8221;&#8216; &gt;&gt; /etc/rc.conf<br />
# echo &#8216;accf_http_ready=&#8221;YES&#8221;&#8216; &gt;&gt; /etc/rc.conf<br />
# kldload accf_http</span></p>
<p><span style="color: #ff6600;"># /usr/local/etc/rc.d/apache22 start</span></p>
<p><span style="color: #ff6600;"># cd /usr/local/etc/apache22/<br />
# openssl genrsa -des3 -out server.key 1024</span><br />
Generating RSA private key, 1024 bit long modulus<br />
.++++++<br />
&#8230;&#8230;&#8230;&#8230;&#8230;++++++<br />
e is 65537 (0x10001)<br />
Enter pass phrase for server.key:<strong> SUA_SENHA</strong><br />
Verifying &#8211; Enter pass phrase for server.key: <strong>SUA_SENHA</strong></p>
<p><span style="color: #ff6600;"># openssl req -new -key server.key -out server.csr</span><br />
Enter pass phrase for server.key: <strong>SUA_SENHA</strong><br />
You are about to be asked to enter information that will be incorporated<br />
into your certificate request.<br />
What you are about to enter is what is called a Distinguished Name or a DN.<br />
There are quite a few fields but you can leave some blank<br />
For some fields there will be a default value,<br />
If you enter &#8216;.&#8217;, the field will be left blank.<br />
&#8212;&#8211;<br />
Country Name (2 letter code) [AU]:BR<br />
State or Province Name (full name) [Some-State]:Rio Grande do Sul<br />
Locality Name (eg, city) []:Fred. West.<br />
Organization Name (eg, company) [Internet Widgits Pty Ltd]:remontti<br />
Organizational Unit Name (eg, section) []:<br />
Common Name (eg, YOUR name) []:<br />
Email Address []:</p>
<p>Please enter the following &#8216;extra&#8217; attributes<br />
to be sent with your certificate request<br />
A challenge password []:<br />
An optional company name []:</p>
<p><span style="color: #ff6600;"># openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt</span><br />
Signature ok<br />
subject=/C=BR/ST=Rio Grande do Sul/L=Fred. West./O=remontti<br />
Getting Private key<br />
Enter pass phrase for server.key: <strong>SUA_SENHA</strong></p>
<p><span style="color: #ff6600;"># chmod 0400 server.key server.crt<br />
# cd /usr/local/www/apache22/<br />
# mkdir ssl<br />
# cd /usr/local/etc/apache22/<br />
# vi httpd.conf</span></p>
<p>Comente as seguintes linhas:<br />
<span style="color: #3366ff;"><em>#LoadModule authz_owner_module libexec/apache22/mod_authz_owner.so<br />
#LoadModule file_cache_module libexec/apache22/mod_file_cache.so<br />
#LoadModule cache_module libexec/apache22/mod_cache.so<br />
#LoadModule disk_cache_module libexec/apache22/mod_disk_cache.so<br />
#ScriptAlias /cgi-bin/ &#8220;/usr/local/www/apache22/cgi-bin/&#8221;</em></span></p>
<p>Descomente:<br />
<span style="color: #3366ff;">Include etc/apache22/extra/httpd-ssl.conf </span> #(Fazendo isso quando vc reiniciar o serviço ou o Server será solicitado senha)<br />
<span style="color: #3366ff;">AddType text/html .shtml<br />
AddOutputFilter INCLUDES .shtml<br />
MIMEMagicFile etc/apache22/magic </span></p>
<p>Altere:<br />
<span style="color: #3366ff;">ServerAdmin seu@email.com<br />
DirectoryIndex index.html index.htm</span></p>
<p>Adicione:<br />
<span style="color: #3366ff;">ServerSignature Off</span></p>
<p># vi /usr/local/etc/apache22/extra/httpd-ssl.conf<br />
Se vc desejar trocar o diretório do DocumentRoot para o seu diretório entre outras de acordo com suas necessidades.<br />
DocumentRoot &#8220;/usr/local/www/apache22/XXXX&#8221;</p>
<p><span style="color: #ff9900;"># /usr/local/etc/rc.d/apache22 restart</span><br />
Enter pass phrase: <strong>SUA_SENHA do ssl</strong></p>
<h2><strong>PHP5 </strong></h2>
<p><span style="color: #ff6600;"># cd /usr/ports/lang/php5<br />
# make config </span></p>
<pre class="remontti-code">Options for php5 5.2.12   

[X] CLI        Build CLI version
[X] CGI        Build CGI version
[X] APACHE     Build Apache module
[X] DEBUG      Enable debug
[X] SUHOSIN    Enable Suhosin protection system (not for jails)
[X] MULTIBYTE  Enable zend multibyte support
[X] IPV6       Enable ipv6 support
[X] MAILHEAD   Enable mail header patch
[X] REDIRECT   Enable force-cgi-redirect support (CGI only)
[X] DISCARD    Enable discard-path support (CGI only)
[X] FASTCGI    Enable fastcgi support (CGI only)
[X] PATHINFO   Enable path-info-check support (CGI only)</pre>
<p><span style="color: #ff6600;"># make install clean<br />
# cp /usr/local/etc/php.ini-recommended /usr/local/etc/php.ini<br />
# echo &#8216;#CONFIGURACAO PHP5&#8217; &gt;&gt; /usr/local/etc/apache22/httpd.conf<br />
# echo &#8216;AddType application/x-httpd-php .php&#8217; &gt;&gt; /usr/local/etc/apache22/httpd.conf<br />
# echo &#8216;AddType application/x-httpd-php-source .phps&#8217; &gt;&gt; /usr/local/etc/apache22/httpd.conf<br />
# vi /usr/local/etc/apache22/httpd.conf</span></p>
<p>Adicione ao DirectoryIndex deixando assim:<br />
<span style="color: #3366ff;">DirectoryIndex index.html index.htm <strong>index.php</strong></span></p>
<p><span style="color: #ff6600;"># vi /usr/local/etc/php.ini</span><br />
<span style="color: #3366ff;">Altere: short_open_tag = On</span></p>
<h2>PHP5-Extensions</h2>
<p><span style="color: #ff6600;"># cd /usr/ports/lang/php5-extensions<br />
# make install clean</span></p>
<pre class="remontti-code">PHP5-Extensions Options
[X] BZ2         bzip2 library support
[X] CTYPE       ctype functions
[X] CURL        CURL support
[X] DBA         dba support
[X] DOM         DOM support
[X] FILEINFO    fileinfo support
[X] FILTER      input filter support
[X] FTP         FTP support
[X] GD          GD library support
[X] HASH        HASH Message Digest Framework
[X] ICONV       iconv support
[X] IMAP        IMAP support
[X] JSON        JavaScript Object Serialization support
[X] MCRYPT      Encryption support
[X] MHASH       Crypto-hashing support
[X] MYSQL       MySQL database support
[X] PDO         PHP Data Objects Interface (PDO)
[X] PDO_SQLITE  PDO sqlite driver
[X] POSIX       POSIX-like functions
[X] SESSION     session support
[X] SHMOP       shmop support
[X] SIMPLEXML   simplexml support
[X] SOAP        SOAP support
[X] SOCKETS     sockets support
[X] SPL         Standard PHP Library
[X] SQLITE      sqlite support
[X] TOKENIZER   tokenizer support
[X] XML         XML support
[X] XMLREADER   XMLReader support
[X] XMLRPC      XMLRPC-EPI support
[X] XMLWRITER   XMLWriter support
[X] ZIP         ZIP support</pre>
<p>Deixe marcado o que esta por padrão para todas as próximas opções</p>
<p><span style="color: #ff6600;"># /usr/local/etc/rc.d/apache22 restart</span></p>
<h2>PhpMyAdmin</h2>
<p><span style="color: #ff6600;"># cd /usr/ports/databases/phpmyadmin211/</span></p>
<p><span style="color: #ff6600;"># make install clean</span></p>
<pre class="remontti-code">Options for phpMyAdmin211 2.11.9.6

[ ] SUPHP     suPHP support
[X] BZ2       bzip2 library support
[X] GDGD 	  library support
[X] OPENSSL   OpenSSL support
[X] PDF       PDFlib support (implies GD)
[X] ZLIB      ZLIB support
[X] MCRYPT    MCrypt library support
[X] MBSTRING  Multi-byte character-set string support</pre>
<p><span style="color: #ff6600;"># cp /usr/local/www/phpMyAdmin211/libraries/config.default.php /usr/local/www/phpMyAdmin211/config.inc.php</span></p>
<p><span style="color: #ff6600;"># vim /usr/local/www/phpMyAdmin211/config.inc.php</span><br />
Altere: <span style="color: #3366ff;">$cfg[&#8216;Servers&#8217;][$i][&#8216;auth_type&#8217;] = &#8216;config&#8217;;</span><br />
para: <span style="color: #3366ff;">$cfg[&#8216;Servers&#8217;][$i][&#8216;auth_type&#8217;] = &#8216;<strong>http</strong>&#8216;;</span></p>
<p>Adicione no httpd.conf<br />
<span style="color: #ff6600;"># /usr/local/etc/apache22/httpd.conf</span></p>
<pre class="remontti-code">Alias /phpmyadmin &quot;/usr/local/www/phpMyAdmin211/&quot;

&lt;Directory &quot;/usr/local/www/phpMyAdmin211/&quot;&gt;
    Options none
    AllowOverride Limit

    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1 ip_da_sua_rede


</pre>
<p>Isso ai galera, abraço!</p>
<p>O post <a href="https://blog.remontti.com.br/648">FreeBSD v8.0 +  Apache + Mysql + PHP “FAMP”</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/648/feed</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
	</channel>
</rss>
