O termo servidor web pode ser usado para se referir tanto ao hardware quanto ao software, ou ambos trabalhando juntos. Para os propósitos deste guia, vamos nos concentrar no lado do software e ver como você pode hospedar um site em seu sistema 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 é atualizado constantemente. Para servir conteúdo dinâmico, um servidor web também deve trabalhar em conjunto com 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.
Sumário
Requisitos
Para seguir este guia, certifique-se de ter o seguinte em vigor.
- 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 fornecer insights sobre a instalação de um servidor Linux.
- Como Instalar um Servidor Mínimo Debian 11 (Bullseye)
- Como Instalar um Servidor Mínimo Debian 10 (Buster)
- Como Instalar o Ubuntu 20.04 Server
- Como Instalar o Servidor Rocky Linux 9
- Como Instalar o Servidor AlmaLinux 9
- Como Instalar o RHEL 9 Gratuitamente
Você também precisa 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 10
- Como Instalar o LAMP Stack no Ubuntu 20.04
- Como Instalar o LAMP no Rocky Linux 9/8
- Como Instalar o LAMP Stack no AlmaLinux 9/8
- Como Instalar o LAMP no RHEL 9/8
- Como Hospedar um Site no Servidor Linux
Nesta seção, vamos avançar e discutir os principais componentes de um servidor web.
O que é o Apache?
O Apache é um servidor web popular, gratuito e de código aberto, compatível com várias plataformas, lançado sob a Licença Apache 2.0. É um dos servidores web mais utilizados, representando cerca de 32,2% do mercado de servidores web.
Para verificar a última versão do Apache disponível e se ele 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.

Nas distribuições Red Hat modernas, você pode verificar a disponibilidade do Apache usando o seguinte comando dnf da seguinte forma.
# dnf search httpd

A partir da saída acima, você pode ver que o pacote Apache httpd 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:
$ sudo apt install apache2 -y $ sudo systemctl start apache2 $ sudo systemctl enable apache2 $ sudo systemctl status apache2

Em sistemas baseados em Red-Hat:
# dnf install httpd -y # systemctl start httpd # systemctl enable httpd # systemctl status httpd

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
A saída a seguir mostra que MariaDB está instalado e funcionando conforme o esperado.

Para instalar MariaDB, em sistemas baseados em RHEL:
# dnf install mariadb-server -y # systemctl start mariadb # systemctl enable mariadb # systemctl status mariadb

O que é PHP?
PHP é um acrônimo recursivo para PHP Hypertext Preprocessor, que é uma linguagem de script geral popular que é principalmente usada 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 habilitar 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, habilite 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 os repositórios EPEL e Remi estiverem habilitados no sistema, você poderá 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 gerenciarem 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 fins de demonstração, instalaremos o WordPress nos sistemas Debian11 e RHEL9, 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.
Passo1: Instalar Módulos PHP Adicionais
Para prosseguir, instale módulos PHP adicionais necessários para o WordPress, conforme mostrado.
Para instalar módulos PHP, 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 módulos PHP, 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
Passo2: Criar um Banco de Dados para o WordPress
Escrito em PHP, o WordPress é um sistema de gerenciamento de conteúdo livre e de código aberto. 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 e arquivos de configuração do WordPress.
Para criar um banco de dados para o 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;
Etapa3: 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 de propriedade.
$ sudo chmod755 -R /var/www/html/wordpress/
$ sudo chown -R www-data:www-data /var/www/html/wordpress/
Etapa4: 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.
Nesse 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 aqui as seguintes linhas 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 se conectar 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 do banco de dados e diretivas de senha com os detalhes do banco de dados.
Em seguida, ative o novo site do WordPress da seguinte forma em sistemas baseados no 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]
Passo 4: Concluir a Configuração do WordPress em um Navegador
Para concluir a configuração, acesse o endereço IP do seu servidor web conforme mostrado:
http://server-ip
Você deverá ver a página de boas-vindas do WordPress exibida conforme mostrado. Selecione o idioma desejado e clique em ‘Continuar’ (‘Continue‘).

Em seguida, preencha os detalhes do site.

Em seguida, clique em ‘Instalar WordPress’ (‘Install WordPress‘) para concluir a configuração do WordPress.

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

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

Passo 5: Acessar o WordPress Usando Encaminhamento de Porta
Já que você está hospedando seu servidor web a partir de um sistema Linux em casa ou 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 que entra o encaminhamento de porta.
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, essa é 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á para a seção de encaminhamento de portas. No nosso exemplo, estamos usando o roteador DLink para encaminhar as portas do servidor web (80 e 443) e o IP privado (192.168.0.100) para o IP Público Dedicado atribuído pelo provedor de internet.
No seu caso, especifique as portas e o IP privado do servidor web e salve as alterações.

Para salvar as alterações, talvez seja necessário reiniciar o roteador. Então, siga em frente e faça exatamente isso.
Depois que o redirecionamento de portas for realizado corretamente, agora você pode acessar seu servidor web fora da sua rede através do endereço IP público.
Conclusão
Neste guia, demonstramos como você pode hospedar seu próprio servidor web usando o Apache em um sistema Linux. Seu feedback sobre este guia é bem-vindo.