====== 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 AllowOverride none Require all denied DocumentRoot "/srv/httpd/htdocs" Options Indexes FollowSymLinks AllowOverride None Require all granted DirectoryIndex index.html index.htm index.pl index.php 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 AllowOverride FileInfo AuthConfig Limit Indexes Options MultiViews Indexes SymLinksIfOwnerMatch Require method GET POST OPTIONS 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 ScriptAlias /cgi-bin/ "/srv/httpd/cgi-bin/" AllowOverride None Options None Require all granted AddHandler cgi-script .cgi .pl 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 Options ExecCGI SetHandler cgi-script Reinicie o Apache /etc/rc.d/rc.httpd restart ====== Habilitar PHP ====== [[howtos:network_services:setup_apache_php_mysql|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 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 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 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 Options ExecCGI SetHandler cgi-script Reinicie o Apache /etc/rc.d/rc.httpd restart **DICA:** Eu normalmente coloco esses trechos junto com as respectivas entradas . **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 [[wiki:user:arfon | arfon]] {{tag>howtos network_services apache httpd author_arfon translator_carriunix}}