[2025-jun-17] The SlackDocs Wiki has moved to a new server, in order to make it more performant.
Tabela de conteúdos
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
- Originalmente escrito por arfon