[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

Configurando um servidor httpd Apache

Este é um exemplo geral de como obter um serviço básico de httpd instalado e funcionando.

Aplica-se a:

  • Slackware 14.1 (e possivelmente versões anteriores)
  • Apache 2 (e possivelmente versões anteriores)

Configuração básica

Edite /etc/httpd/httpd.conf - Aqui está o que interessa, altere/descomente as seguintes linhas conforme necessário:

vi /etc/httpd/httpd.conf

  # opcional, exige a configuração de DNS apropriada
  ServerAdmin you@myawesomeserver.com
  ServerName www.myawesomeserver.com:80
  
  <Directory />
      AllowOverride none
      Require all denied
  </Directory>

  DocumentRoot "/srv/httpd/htdocs"
  <Directory "/srv/httpd/htdocs">
      Options Indexes FollowSymLinks
      AllowOverride None
      Require all granted
  </Directory>

  <IfModule dir_module>
      DirectoryIndex index.html index.htm index.pl index.php
  </IfModule>
  
  ErrorLog "/var/log/httpd/error_log"
  
  CustomLog "/var/log/httpd/access_log" common
  
  # Opcional, mas interessante: cria uma lista de diretórios se o index.html não existe.
  Include /etc/httpd/extra/httpd-autoindex.conf
  # Opcional
  Include /etc/httpd/extra/httpd-default.conf

Todas as outras configurações padrão são apropriadas.

Fazer o httpd iniciar com o boot.

chmod 755 /etc/rc.d/rc.httpd
/etc/rc.d/rc.httpd start

DICA: Com essas configurações, suas páginas da web devem ser colocadas em /srv/httpd/htdocs por padrão. Seus logs devem estar em /var/log/httpd por padrão.

Diretórios de usuários

Isso permitirá que os usuários tenham espaço web individual (/home/user/public_html). Eles podem ser acessados da web adicionando “~username” ao URL.

Exemplo: http://www.slackware.com/~pat

Edite /etc/httpd/httpd.conf - Aqui está o que interessa, altere/descomente as seguintes linhas conforme necessário:

 vi /etc/httpd/httpd.conf

  LoadModule authz_host_module lib64/httpd/modules/mod_authz_host.so
  LoadModule authz_user_module lib64/httpd/modules/mod_authz_user.so
  LoadModule authz_core_module lib64/httpd/modules/mod_authz_core.so
  LoadModule userdir_module lib64/httpd/modules/mod_userdir.so
  Include /etc/httpd/extra/httpd-userdir.conf

Edite /etc/httpd/extra/httpd-userdir.conf, altere/descomente as seguintes linhas:

vi /etc/httpd/extra/httpd-userdir.conf

  <Directory "/home/*/public_html">
      AllowOverride FileInfo AuthConfig Limit Indexes
      Options MultiViews Indexes SymLinksIfOwnerMatch
      Require method GET POST OPTIONS
  </Directory>

Reinicie o Apache

/etc/rc.d/rc.httpd restart

Habilitar CGI-BIN

Isso permite a execução de scripts CGI em seu servidor web.

Edite /etc/httpd/httpd.conf - Aqui está o que interessa, altere/descomente as seguintes linhas conforme necessário:

 vi /etc/httpd/httpd.conf

  LoadModule proxy_module      lib64/httpd/modules/mod_proxy.so
  LoadModule proxy_fcgi_module lib64/httpd/modules/mod_proxy_fcgi.so
  LoadModule proxy_scgi_module lib64/httpd/modules/mod_proxy_scgi.so
  LoadModule cgid_module       lib64/httpd/modules/mod_cgid.so

  <IfModule alias_module>
      ScriptAlias /cgi-bin/ "/srv/httpd/cgi-bin/"
  </IfModule>

  <Directory "/srv/httpd/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
  </Directory>

  <IfModule mime_module>
    AddHandler cgi-script .cgi .pl
  </IfModule>

Reinicie o Apache

/etc/rc.d/rc.httpd restart

DICA: Seu diretório cgi-bin será /srv/httpd/cgi-bin/. Os scripts podem ser acessados adicionando /cgi-bin/SCRIPTNAME ao URL do site.

Exemplo: http://www.slackware.com/cgi-bin/awesomescript.pl

NOTA: Isso não se aplica a scripts PHP, veja abaixo.

CGI-BIN de usuários

Isso permitirá que os usuários executem scripts CGI a partir de seu diretório /home/user/public_html/cgi-bin. Seus scripts podem ser acessados através de seus diretórios de usuário.

Exemplo: http://www.slackware.com/~pat/cgi-bin/webform.pl

A configuração do CGI-BIN foi descrita acima.

Edite /etc/httpd/extra/httpd-userdir.conf - Aqui está o que interessa, altere/descomente as seguintes linhas conforme necessário:

vi /etc/httpd/extra/httpd-userdir.conf

  <Directory "/home/*/public_html/cgi-bin">
    Options ExecCGI
    SetHandler cgi-script
  </Directory>

Reinicie o Apache

/etc/rc.d/rc.httpd restart

Habilitar PHP

Hosts virtuais

Edite /etc/httpd/httpd.conf - Aqui está o que interessa, altere/descomente as seguintes linhas conforme necessário:

vi /etc/httpd/httpd.conf

  Include /etc/httpd/extra/httpd-vhosts.conf

Edite /etc/httpd/extra/httpd-vhosts.conf - Aqui está o que interessa, adicione uma dessas entradas para cada host virtual:

vi /etc/httpd/extra/httpd-vhosts.conf

  <VirtualHost *:80>
      ServerAdmin webmaster@www.server1.com
      DocumentRoot "/home/server1/public_html/"
      ServerName server1.com
      ServerAlias www.server1.com
      ErrorLog "/var/log/httpd/server1.com-error.log"
      CustomLog "/var/log/httpd/server1.com-access.log" common
  </VirtualHost>
  
    <VirtualHost *:80>
      ServerAdmin webmaster@www.server2.com
      DocumentRoot "/home/server2/public_html/"
      ServerName server2.com
      ServerAlias www.server2.com
      ErrorLog "/var/log/httpd/server2.com-error.log"
      CustomLog "/var/log/httpd/server2.com-access.log" common
  </VirtualHost>

Reinicie o Apache

/etc/rc.d/rc.httpd restart

NOTA: Eu executo meus vhosts como usuários, então, os Document Root estão nos diretórios /home/user. Você não tem que fazer isso. Você pode colocar os Document Root em qualquer lugar que desejar.

Exemplo:

/srv/www/htdocs/server1
/srv/www/htdocs/server2

NOTA 2: Isso não afeta a configuração padrão do seu servidor web em /etc/httpd/httpd.conf. Essa instância do servidor web ainda funcionará e será o padrão se um IP simples for usado como URL.

Vhosts com diretórios CGI-BIN individuais

Se você tiver hosts virtuais que precisam de CGI (ou precisam de CGI em seu próprio diretório), você pode fazer assim:

Edite /etc/httpd/extra/httpd-vhosts.conf - Adicione uma dessa entradas para cada vhost que exige um diretório cgi-bin único:

vi /etc/httpd/extra/httpd-vhosts.conf

  <Directory /home/server1/public_html/cgi-bin/>
      Options ExecCGI
      SetHandler cgi-script
  </Directory>

Reinicie o Apache

/etc/rc.d/rc.httpd restart

DICA: Eu normalmente coloco esses trechos junto com as respectivas entradas <VirtualHost *:80>.

NOTA: Mude o “/home/server1/public_html/cgi-bin/” para o endereço correto do diretório.

HTTPS / SSL

A ser adicionado no arquivo original.

SNI HTTPS / SSL (Name based https)

A ser adicionado no arquivo original.

Fontes

 pt-br:howtos:network_services:setup_apache ()