Table of Contents

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:

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

http://docs.slackware.com/howtos:network_services:setup_apache_php_mysql

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