Como hospedar um site de forma gratuita no sistema Linux em casa

O termo servidor web pode ser usado para se referir tanto ao hardware quanto ao software, ou ambos trabalhando juntos. Para o propósito deste guia, vamos nos concentrar no lado do software e ver como você pode hospedar um site em sua caixa Linux.

A web server is a software program that receives and responds to client requests via the HTTP/HTTPS protocols. Its primary purpose is to display website content which, oftentimes, is in the form of text, images, and video.

A web server can either serve static or dynamic content. Static content, as the name infers, refers to content that hardly changes and is bound to remain the same. The server sends back content to the user’s browser as is.

O conteúdo dinâmico é conteúdo que muda frequentemente ou é constantemente atualizado. Para servir conteúdo dinâmico, um servidor web também deve funcionar ao lado de um servidor de banco de dados e linguagens de script do lado do servidor.

Este guia demonstrará como configurar um servidor web Apache para hospedar um site em seu sistema Linux gratuitamente.

Requisitos

Para acompanhar este guia, certifique-se de ter os seguintes itens em mãos.

  • A dedicated Public IP address can be obtained from your ISP.
  • A Linux box, which can be a Linux server installation of your preferred OS variant. For this guide, we will use Debian 11.

Confira alguns guias que podem lhe dar insights sobre como instalar um servidor Linux.

Você também precisará de um servidor LAMP instalado, que é um acrônimo para Linux, Apache e MySQL (isso também pode ser MariaDB). Aqui estão alguns guias sobre como instalar o conjunto LAMP no Linux.Como Instalar o LAMP no Servidor Debian 11

Nesta seção, procederemos e discutiremos os principais componentes de um servidor web.

O que é o Apache?

O Apache é um servidor web gratuito e de código aberto muito popular e multiplataforma, lançado sob a Licença Apache 2.0. É um dos servidores web mais amplamente utilizados, representando quase 32,2% do mercado de servidores web.

Para verificar a última versão do Apache disponível e se está instalado no seu servidor, execute o comando:

# apt-cache policy apache2 (On Debian-based OS)

A partir da saída, você pode ver o parâmetro Instalado: (nenhum), o que implica que ainda não está instalado. Você também obtém informações sobre a última versão oferecida pelo repositório Debian / Ubuntu, que neste caso é 2.4.52.

Check Apache Package Availability

Nas distribuições modernas Red Hat, você pode verificar a disponibilidade do Apache usando o seguinte comando dnf como segue.

# dnf search httpd
Search Apache Package Availability

A partir da saída acima, você pode ver que o pacote httpd do Apache está disponível para download. Se o Apache não estiver instalado no seu sistema, use os gerenciadores de pacotes ‘apt‘ ou ‘dnf‘ para instalar o Apache, conforme mostrado. Em sistemas baseados em Debian: Em sistemas baseados em Red Hat:

Em sistemas baseados em Debian:

$ sudo apt install apache2 -y 	 
$ sudo systemctl start apache2	 
$ sudo systemctl enable apache2	 
$ sudo systemctl status apache2
Check Apache2 Status

Em sistemas baseados em Red Hat:

# dnf install httpd -y 	 
# systemctl start httpd	 
# systemctl enable httpd	 
# systemctl status httpd
Check httpd Status

O que é MariaDB?

A fork of MySQL, MariaDB is one of the most popular and open-source relational database management systems. Nowadays, it’s preferred to MySQL due to its faster speeds in replication and performing queries as well as security and a vast array of storage engines.

Para instalar MariaDB, Em sistemas baseados em Debian:

	 
$ sudo apt install mariadb-server mariadb-client -y	 
$ sudo systemctl start mariadb	 
$ sudo systemctl enable mariadb	 
$ sudo systemctl status mariadb	 

O seguinte resultado mostra que MariaDB está instalado e funcionando conforme o esperado.

Check MariaDB Status

Para instalar MariaDB, Em sistemas baseados em RHEL:

	 
# dnf install mariadb-server -y	 
# systemctl start mariadb	 
# systemctl enable mariadb	 
# systemctl status mariadb	 
Verify MariaDB Status

O que é PHP?

PHP é um acrônimo recursivo para PHP Hypertext Preprocessor, que é uma linguagem de script geral popular que é usada principalmente no desenvolvimento web.

Para instalar PHP, Em sistemas baseados em Debian:

	 
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install  ca-certificates apt-transport-https software-properties-common
$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt update
$ sudo apt install php8.0 libapache2-mod-php8.0 

Para instalar PHP, Em sistemas baseados em RHEL, você precisa primeiro ativar o repositório EPEL.

$ sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm  [RHEL 9]
$ sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm  [RHEL 8]

Em seguida, ative o repositório Remi, que oferece a versão mais recente do PHP em sistemas baseados em RHEL.

$ sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm  [RHEL 8]
$ sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm  [RHEL 8]

Depois que EPEL e Remi repositórios estão ativados no sistema, você pode instalar PHP como mostrado.

# dnf module list php
# dnf module enable php:remi-8.0 -y 
# dnf install php php-cli php-common

Com todos os componentes instalados, agora você pode criar seu site usando o CMS WordPress, que é um software que facilita para os usuários desenvolverem e gerenciem um site sem necessariamente ter conhecimento de linguagens de design web, como HTML, CSS, PHP e Javascript.

Criando um Site Simples Usando WordPress no Linux

Para demonstração, instalaremos WordPress em Debian 11 e RHEL 9 sistemas, o que fornecerá um site de amostra que pode ser personalizado ainda mais de acordo com sua preferência.

Esta seção pressupõe que você já tenha o LAMP stack instalado.

Passo 1: Instalar Módulos PHP Adicionais

Para prosseguir, instale módulos PHP adicionais que são necessários para o WordPress, conforme mostrado.

Para instalar PHP módulos, Em sistemas baseados em Debian:

$ sudo apt install php libapache2-mod-php php-pear php-cgi php-common php-mbstring php-zip php-net-socket php-gd php-mysql php-bcmath

Para instalar PHP módulos, Em sistemas baseados em RHEL:

# dnf install php-gd php-soap php-intl php-mysqlnd php-pdo php-bcmath php-curl php-zip php-xmlrpc wget

Passo 2: Criar um Banco de Dados para WordPress

Escrito em PHP, WordPress é um sistema de gerenciamento de conteúdo livre e de código aberto, orientado a dados. Um banco de dados é um componente essencial do WordPress.

O banco de dados é usado para armazenar todos os posts de blog, páginas, categorias, comentários, temas, plugins, bem como arquivos de configuração do WordPress.

Para criar um banco de dados para WordPress, faça login no servidor de banco de dados MariaDB:

$ sudo mysql -u root -p

Em seguida, crie um banco de dados conforme mostrado

CREATE DATABASE wordpress_db;

Em seguida, crie um usuário de banco de dados e atribua todos os privilégios ao usuário no banco de dados.

GRANT ALL PRIVILEGES ON wordpress_db.* to wordpress_user@localhost identified by 'P@ssword321';

Então, finalmente, recarregue as tabelas de concessão para salvar as alterações feitas e saia do banco de dados.

FLUSH PRIVILEGES;
QUIT;

Passo 3: Baixe o WordPress

Com o banco de dados em vigor, prossiga e baixe o arquivo tarball do WordPress mais recente usando o comando wget.

$ wget https://wordpress.org/latest.tar.gz

Depois de baixado, extraia o arquivo compactado usando o comando tar.

$ tar -xvzf latest.tar.gz

O comando extrai o conteúdo do arquivo em uma pasta chamada wordpress. Mova ou copie a pasta para o Document Root para o servidor Apache.

$ sudo mv wordpress/ /var/www/html/

Em seguida, atribua os seguintes direitos de permissão e propriedade.

$ sudo chmod 755 -R /var/www/html/wordpress/

$ sudo chown -R www-data:www-data /var/www/html/wordpress/

Passo 4: Crie um Host Virtual do Apache para o WordPress

O termo host virtual refere-se à prática de hospedar vários sites em um único servidor. Se você pretende hospedar vários sites em um único servidor, você precisa criar um host virtual para cada site.

Neste caso, você precisa criar um host virtual para o site do WordPress da seguinte maneira.

$ sudo nano /etc/apache2/sites-available/wordpress.conf  [On Debian]
# vi /etc/httpd/conf/httpd.conf [On RHEL]

Cole os seguintes trechos de código para definir o host virtual. Para a diretiva ServerName, forneça o endereço IP do servidor ou o Nome de Domínio Totalmente Qualificado, que deve apontar para o endereço IP público dedicado.

<VirtualHost *:80>
     ServerAdmin admin@your_domain.com
     DocumentRoot /var/www/html/wordpress
     ServerName 192.168.0.100

     <Directory /var/www/html/wordpress>
          Options FollowSymlinks
          AllowOverride All
          Require all granted
     </Directory>

     ErrorLog ${APACHE_LOG_DIR}/your-domain.com_error.log
     CustomLog ${APACHE_LOG_DIR}/your-domain.com_access.log combined

</VirtualHost>

Salve as alterações e saia do arquivo.

Para conectar-se ao banco de dados, são necessárias algumas modificações adicionais. Portanto, navegue até a pasta wordpress.

$ cd /var/www/html/wordpress/

Em seguida, atualize o arquivo wp-config.php com o conteúdo do arquivo wp-config-sample.php.

$ cp wp-config-sample.php wp-config.php
$ sudo nano wp-config.php

Em seguida, atualize o nome do banco de dados, nome de usuário e diretivas de senha com os detalhes do banco de dados.

Em seguida, habilite o novo site do WordPress da seguinte forma em sistemas baseados em Debian.

$ sudo ln -s /etc/apache2/sites-available/wordpress.conf /etc/apache2/sites-enabled/wordpress.conf
$ sudo a2ensite wordpress
$ sudo a2enmod rewrite
$ sudo a2dissite 000-default

Para efetuar as alterações, reinicie o Apache.

$ sudo systemctl restart apache2   [On Debian]
# systemctl restart httpd  [On RHEL]

Etapa 4: Configuração Completa do WordPress em um Navegador

Para concluir a configuração, navegue até o endereço IP do seu servidor da web conforme mostrado:

http://server-ip

Você deverá ver a página de boas-vindas do WordPress sendo exibida como mostrado. Selecione seu idioma preferido e clique em ‘Continuar’.

WordPress Installation Setup

Em seguida, preencha os detalhes do site.

WordPress Site Details

Então clique em ‘Instalar WordPress’ para concluir a configuração do WordPress.

Install WordPress

Se tudo ocorrer bem, você receberá uma confirmação de que a instalação foi bem-sucedida. Para fazer login, clique no botão ‘Log In‘.

WordPress Admin Login

Isso o leva ao painel do WordPress, como você pode ver. Neste ponto, você pode experimentar vários temas para melhorar a aparência do seu site de exemplo.

WordPress Admin Dashboard

Passo 5: Acesse o WordPress usando Encaminhamento de Porta

Já que você está hospedando seu servidor web a partir de um sistema Linux em casa ou na sua Rede Local (LAN), o próximo passo é torná-lo acessível para usuários externos ou usuários fora da sua LAN (Rede Local). Aqui é onde o encaminhamento de porta entra.

O encaminhamento de porta, também conhecido como mapeamento de porta, é uma técnica que permite que dispositivos externos acessem servidores ou recursos dentro de uma rede privada pela internet. A ideia toda é acessar redes privadas de fora, sem o qual seria impossível já que dispositivos externos não podem se comunicar com endereços IP internos.

No seu setup, você precisa encaminhar a porta na qual o servidor web está ouvindo, (na maioria dos casos, é a porta 80 para tráfego HTTP ou 443 para HTTPS), bem como o endereço IP privado estático do servidor web.

Então, faça login no seu roteador e vá até a seção de encaminhamento de porta. No nosso exemplo, estamos usando o roteador DLink para encaminhar as portas do servidor web (80 e 443) e IP privado (192.168.0.100) para o IP Público Dedicado atribuído pelo ISP.

No seu caso, especifique as portas e o IP privado do servidor web e salve as alterações.

Port Forwarding for WordPress

Para salvar as alterações, talvez seja necessário reiniciar o roteador. Então, vá em frente e faça exatamente isso.

Depois que o encaminhamento de porta for realizado corretamente, você poderá agora acessar seu servidor web fora de sua rede via o endereço IP público.

Conclusão

Neste guia, demonstramos como você pode hospedar seu próprio servidor web usando Apache em um computador Linux. Seu feedback sobre este guia é bem-vindo.

Source:
https://www.tecmint.com/host-website-locally/