Como instalar o servidor web Apache em CentOS 7

introdução

o Servidor HTTP Apache é o servidor web mais amplamente utilizado no mundo. Ele fornece muitos recursos poderosos, incluindo módulos carregáveis dinamicamente, suporte de mídia robusto, e ampla integração com outros softwares populares.

neste guia, irá instalar um servidor web Apache com máquinas virtuais no seu servidor CentOS 7.

pré-requisitos

você precisará do seguinte para completar este guia:

  • um utilizador não root com privilégios de sudo configurados no seu servidor, configurados seguindo o Guia Inicial de configuração do servidor para CentOS 7.
  • uma firewall básica configurada seguindo os passos adicionais recomendados para o novo Guia de servidores CentOS 7.

Step 1-Instalar o Apache

Apache está disponível nos repositórios de software predefinidos do CentOS, o que significa que pode instalá-lo com o yum Gestor de pacotes.

Como não-root sudo usuário configurado no pré-requisitos, atualizar o local do Apache httpd índice de pacotes para refletir as mais recentes mudanças upstream:

  • sudo yum update httpd

uma Vez que os pacotes são atualizados, instale o pacote Apache:

  • sudo yum install httpd

Após a confirmação da instalação, yum irá instalar o Apache e todas as dependências necessárias.

Se tiver completado os passos adicionais recomendados para o novo Guia de servidores CentOS 7 mencionados na secção Pré-requisitos, terá instalado firewalld no seu servidor e terá de abrir o porto 80 para permitir que o Apache sirva os pedidos em HTTP. Se ainda não o tiver feito, poderá fazê-lo activando ofirewalld‘shttp serviço com o seguinte comando:

  • sudo firewall-cmd --permanent --add-service=http

Se você planeja configurar o Apache para servir de conteúdo através de HTTPS, você também vai querer abrir a porta 443 habilitando o https serviço:

  • sudo firewall-cmd --permanent --add-service=https

em seguida, recarregar o firewall para colocar essas novas regras em vigor:

  • sudo firewall-cmd --reload

Após o firewall recarrega, você está pronto para iniciar o serviço e consulte o web server.

Passo 2-Verificar o seu servidor web

Apache não inicia automaticamente em CentOS assim que a instalação terminar. Você vai precisar para começar o processo do Apache manualmente:

  • sudo systemctl start httpd

Verifique se o serviço está em execução com o seguinte comando:

  • sudo systemctl status httpd

Você vai ver um active status quando o serviço está em execução:

Output
Redirecting to /bin/systemctl status httpd.service● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2019-02-20 01:29:08 UTC; 5s ago Docs: man:httpd(8) man:apachectl(8) Main PID: 1290 (httpd) Status: "Processing requests..." CGroup: /system.slice/httpd.service ├─1290 /usr/sbin/httpd -DFOREGROUND ├─1291 /usr/sbin/httpd -DFOREGROUND ├─1292 /usr/sbin/httpd -DFOREGROUND ├─1293 /usr/sbin/httpd -DFOREGROUND ├─1294 /usr/sbin/httpd -DFOREGROUND └─1295 /usr/sbin/httpd -DFOREGROUND...

Como você pode ver este resultado, o serviço parece ter iniciado com êxito. No entanto, a melhor maneira de testar isso é solicitar uma página do Apache.

pode aceder à página de aterragem Apache por omissão para confirmar que o software está a correr correctamente através do seu endereço IP. Se você não sabe o endereço IP do seu servidor, você pode obtê-lo de algumas maneiras diferentes da linha de comando.

escreva isto na linha de comandos do seu servidor:

  • hostname -I

Este comando irá mostrar todos os endereços de rede da máquina, para que possa obter de volta alguns endereços IP separados por espaços. Você pode tentar cada um em seu navegador web para ver se eles funcionam.

Alternativamente, você pode usar curl para solicitar o seu IP a partir de icanhazip.com, que lhe dará o seu endereço IPv4 público, visto de outro local na internet:

  • curl -4 icanhazip.com

Quando você tiver o seu endereço IP de servidor, digite-o na barra de endereço do navegador:

http://your_server_ip

Você vai ver o padrão do CentOS 7 Apache página da web:

página Padrão do Apache para CentOS 7

Esta página indica que o Apache está funcionando corretamente. Ele também inclui algumas informações básicas sobre arquivos Apache importantes e localizações de diretórios. Agora que o serviço está instalado e em execução, você pode agora usar diferentes comandos systemctl para gerenciar o serviço.

Passo 3-Gestão do processo Apache

Agora que tem o seu servidor web a funcionar, vamos rever alguns comandos básicos de gestão.

Para parar o seu servidor web, tipo:

  • sudo systemctl stop httpd

Para iniciar o servidor web quando está parado, tipo:

  • sudo systemctl start httpd

Para parar e, em seguida, iniciar o serviço novamente, digite:

  • sudo systemctl restart httpd

Se você está simplesmente fazendo alterações de configuração do Apache pode, muitas vezes, recarregar, sem ter de interromper as ligações. Para fazer isso, use este comando:

  • sudo systemctl reload httpd

por omissão, o Apache está configurado para iniciar automaticamente quando o servidor iniciar. Se isto não for o que deseja, desactive este comportamento escrevendo:

  • sudo systemctl disable httpd

para reactivar o serviço para iniciar no arranque, escreva:

  • sudo systemctl enable httpd

Apache irá agora iniciar automaticamente quando o servidor reiniciar de novo.

a configuração padrão do Apache permitirá ao seu servidor hospedar um único site. Se planeia hospedar vários domínios no seu servidor, terá de configurar as máquinas virtuais no seu servidor web Apache.

Passo 4-Configurar Hosts virtuais (recomendado)

ao usar o servidor web Apache, você pode usar hosts virtuais (semelhantes aos blocos do servidor em Nginx) para encapsular detalhes de configuração e host mais de um domínio de um único servidor. Neste passo, você irá configurar um domínio chamado example.com, mas você deve substituir isso com o seu próprio nome de domínio. Para saber mais sobre a criação de um nome de domínio com DigitalOcean, consulte a nossa introdução ao DNS DigitalOcean.

Apache on CentOS 7 tem um bloco de servidor ativado por padrão que é configurado para servir documentos do diretório /var/www/html. Enquanto isso funciona bem para um único site, ele pode se tornar pesado se você estiver hospedando vários sites. Em vez de modificar /var/www/html, você irá criar uma estrutura de diretórios dentro de /var/www para example.com site, deixando /var/www/html no lugar como o diretório padrão para ser servido, se um pedido de um cliente não corresponder a quaisquer outros sites.

Criar html diretório de example.com da seguinte forma, usando o -p sinalizador para criar qualquer necessárias diretórios pai:

  • sudo mkdir -p /var/www/example.com/html

Cria um diretório adicional para armazenar arquivos de log para o site:

  • sudo mkdir -p /var/www/example.com/log

em seguida, atribuir a propriedade de html diretório com o $USER variável de ambiente:

  • sudo chown -R $USER:$USER /var/www/example.com/html

certifique-se de que o seu web raiz tem o conjunto de permissões padrão:

  • sudo chmod -R 755 /var/www

Next, create a sample index.html page using vi or your favorite editor:

  • sudo vi /var/www/example.com/html/index.html

Press i to switch to INSERT mode and add the following sample HTML to the file:

/var/www/example.com/html/index.html
<html> <head> <title>Welcome to Example.com!</title> </head> <body> <h1>Success! The example.com virtual host is working!</h1> </body></html>

Save and close the file by pressing ESC, typing :wq, and pressing ENTER.

com o seu directório do site e o ficheiro de índice de exemplo no local, está quase pronto para criar os ficheiros da máquina virtual. Os arquivos de host virtuais especificam a configuração de seus sites separados e dizem ao servidor web Apache como responder a vários pedidos de domínio.

Antes de criar as suas máquinas virtuais, terá de criar uma pastasites-available para as guardar. Você também irá criar o diretório sites-enabled que diz ao Apache que um host virtual está pronto para servir aos visitantes. O diretório sites-enabled irá conter links simbólicos para hosts virtuais que queremos publicar. Crie ambas as pastas com o seguinte comando:

  • sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled

de seguida, irá dizer ao Apache para procurar por máquinas virtuais na pasta sites-enabled. Para conseguir isso, edite o arquivo de configuração principal do Apache e adicione uma linha declarando uma diretoria opcional para arquivos de configuração adicionais:

  • sudo vi /etc/httpd/conf/httpd.conf

adicione esta linha ao fim do arquivo:

IncludeOptional sites-enabled/*.conf

Salve e feche o ficheiro quando terminar de adicionar essa linha. Agora que você tem seus diretórios de host virtuais no lugar, você vai criar seu arquivo de host virtual.

Comece criando um novo arquivo no sites-available diretório:

  • sudo vi /etc/httpd/sites-available/example.com.conf

Adicione o seguinte bloco de configuração e alterar o example.com domínio do seu nome de domínio:

/etc/httpd/sites-available/exemplo.com.conf
<VirtualHost *:80> ServerName www.example.com ServerAlias example.com DocumentRoot /var/www/example.com/html ErrorLog /var/www/example.com/log/error.log CustomLog /var/www/example.com/log/requests.log combined</VirtualHost>

Isto irá dizer ao Apache onde encontrar a raiz directamente que contém os documentos web acessíveis ao público. Ele também diz ao Apache onde armazenar erros e solicitar registros para este site em particular.

Salve e feche o ficheiro quando terminar.

Agora que você criou os arquivos host virtuais, você os habilitará para que o Apache saiba servi-los aos visitantes. Para fazer isso, crie um link simbólico para cada máquina virtual no diretório sites-enabled :

  • sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/example.com.conf

a sua máquina virtual está agora configurada e pronta para servir o conteúdo. Antes de reiniciar o serviço Apache, vamos certificar-nos de que o SELinux tem as políticas corretas em vigor para as suas hosts virtuais.

Passo 5 — Ajuste de permissões de SELinux para Hosts virtuais (recomendado)

SELinux é configurado para trabalhar com a configuração padrão do Apache. Uma vez que configurou uma pasta de Registo personalizada no ficheiro de configuração das máquinas virtuais, irá receber um erro se tentar iniciar o serviço Apache. Para resolver isso, você precisa atualizar as políticas do SELinux para permitir que o Apache escreva para os arquivos necessários. O SELinux traz maior segurança ao seu ambiente CentOS 7, Portanto não é recomendado desativar completamente o módulo do kernel.

Existem diferentes formas de definir políticas com base nas necessidades do seu ambiente, uma vez que o SELinux lhe permite personalizar o seu nível de segurança. Esta etapa cobrirá dois métodos de ajuste de políticas Apache: universalmente e em um diretório específico. Ajustar as políticas em diretórios é mais seguro, e é, portanto, a abordagem recomendada.

ajustar as Políticas Apache universalmente

definir a Política Apache universalmente dirá a SELinux para tratar todos os processos Apache identicamente usando o httpd_unified boolean. Embora esta abordagem seja mais conveniente, não lhe dará o mesmo nível de controle que uma abordagem que se concentra em um arquivo ou diretório Política.

execute o seguinte comando para definir uma política Apache universal:

  • sudo setsebool -P httpd_unified 1

o o comando altera valores booleanos. A opção-P irá actualizar o valor do tempo de arranque, fazendo com que esta alteração persista ao longo das reinicializações. httpd_unified é o booleano que vai dizer ao SELinux para tratar todos os processos Apache como o mesmo tipo, então você o ativou com um valor de 1.

ajustar as Políticas do Apache numa pasta

definir individualmente as permissões de SELinux para o /var/www/example.com/log directory dar-lhe-á mais controlo sobre as suas políticas do Apache, mas Poderá também necessitar de mais manutenção. Dado que esta opção não é uma política de definição universal, terá de definir manualmente o tipo de contexto para quaisquer novas pastas de Registo especificadas nas configurações da sua máquina virtual.

Primeiro, verifique o tipo de contexto que o SELinux deu o /var/www/example.com/log diretório:

  • sudo ls -dZ /var/www/example.com/log/

Este comando lista e imprime o contexto do SELinux do diretório. Você verá saída semelhante ao seguinte:

Output
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/example.com/log/

o contexto actual é httpd_sys_content_t, o que diz ao SELinux que o processo Apache só pode ler os ficheiros criados neste directório. Neste tutorial, você vai mudar o tipo de contexto do /var/www/example.com/log diretório parahttpd_log_t. Este tipo permitirá ao Apache gerar e Adicionar aos ficheiros de registo de aplicações web:

  • sudo semanage fcontext -a -t httpd_log_t "/var/www/example.com/log(/.*)?"

Next, usar o comando restorecon para aplicar estas alterações e fazê-las persistir nos rebots:

  • sudo restorecon -R -v /var/www/example.com/log

o -R flag executa este comando recursivamente, o que significa que irá actualizar todos os ficheiros existentes para usar o novo contexto. A opção -v irá imprimir as alterações de contexto feitas pelo comando. Você verá a seguinte saída confirmar as alterações:

Output
restorecon reset /var/www/example.com/log context unconfined_u:object_r:httpd_sys_content_t:s0->unconfined_u:object_r:httpd_log_t:s0

Você pode listar os contextos mais uma vez para ver as alterações:

  • sudo ls -dZ /var/www/example.com/log/

A saída reflete atualizado tipo de contexto:

Output
drwxr-xr-x. root root unconfined_u:object_r:httpd_log_t:s0 /var/www/example.com/log

Agora que o /var/www/example.com/log diretório está usando o httpd_log_t tipo, você está pronto para testar o seu virtual host configuration.

Step 6-testando a máquina Virtual (recomendada)

Uma vez que o contexto do SELinux tenha sido atualizado com qualquer um dos métodos, o Apache será capaz de escrever para o diretório /var/www/example.com/log. Poderá agora reiniciar com sucesso o serviço Apache:

  • sudo systemctl restart httpd

listar o conteúdo do /var/www/example.com/log directory para ver se o Apache criou os ficheiros de Registo:

  • ls -lZ /var/www/example.com/log

Você vai ver que o Apache foi capaz de criar o error.log e requests.log arquivos especificados na configuração do host virtual:

Output
-rw-r--r--. 1 root root 0 Feb 26 22:54 error.log-rw-r--r--. 1 root root 0 Feb 26 22:54 requests.log

Agora que você tem seu virtual host configurar e SELinux permissões atualizadas, O Apache vai agora servir o seu nome de domínio. Você pode testar isso navegando para http://example.com, onde você deve ver algo assim:

sucesso! O example.com a máquina virtual está a funcionar!

isto confirma que a sua máquina virtual está configurada com sucesso e a servir o conteúdo. Repetir os passos 4 e 5 para criar novas máquinas virtuais com permissões de SELinux para domínios adicionais.

conclusão

neste tutorial, você instalou e geriu o servidor web Apache. Agora que você tem seu servidor web instalado, você tem muitas opções para o tipo de conteúdo que você pode servir e as tecnologias que você pode usar para criar uma experiência mais rica.

Se quiser construir uma pilha de aplicações mais completa, poderá ver este artigo sobre como configurar uma pilha de lâmpadas em CentOS 7.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *