Arquivo da categoria: Apache

Criando múltiplos Virtual Hosts no XAMPP

Ao tentar criar múltiplos virtual hosts no XAMPP eu sempre tinha o mesmo problema: qualquer um dos domínios que eu utilizasse, o Apache redirecionava apenas para a mesma pasta.

O que acontece é que qualquer erro que seja encontrado em um arquivo, o Apache utiliza a pasta do primeiro Virtual Host como padrão. Então para que isso não ocorra, siga este passo-a-passo:

1 – Edite seu arquivos de hosts, para que ao acessar o domínio o navegador seja redirecionado para seu endereço IP. Este arquivo poderá ser encontrado no endereço “C:\Windows\System32\drivers\etc\hosts”. siga o exemplo abaixo:

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
#	127.0.0.1       localhost
#	::1             localhost

127.0.0.1	dominio1.com.br
127.0.0.1	www.dominio1.com.br
127.0.0.1	dominio2.com.br
127.0.0.1	www.dominio2.com.br

Agora, é necessário modificar o arquivo de configurações do XAMPP que estará na pasta C:\xampp\apache\conf\extra\httpd-vhosts.conf

Siga o exemplo abaixo:

# Virtual Hosts
#
# Required modules: mod_log_config

# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at 
# <URL:http://httpd.apache.org/docs/2.4/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.

#
# Use name-based virtual hosting.
#

NameVirtualHost 127.0.0.1:80

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ##ServerName or ##ServerAlias in any <VirtualHost> block.
#

<VirtualHost *:80>
    ServerName default
    DocumentRoot "C:\xampp\htdocs"
    ErrorLog "logs/default-error.log"
    CustomLog "logs/default-access.log" common
    <Directory "C:\xampp\htdocs">
        DirectoryIndex index.php index.html index.htm
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName dominio1.com.br
    ServerAlias www.dominio1.com.br
    DocumentRoot "C:\xampp\htdocs\dominio1.com.br"
    ErrorLog "logs/dominio1-error.log"
    CustomLog "logs/dominio1-access.log" common
    <Directory "C:\xampp\htdocs\dominio1.com.br">
        DirectoryIndex index.php index.html index.htm
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName dominio2.com.br
    ServerAlias www.dominio2.com.br
    DocumentRoot "C:\xampp\htdocs\dominio2.com.br"
    ErrorLog "logs/dominio2-error.log"
    CustomLog "logs/dominio2-access.log" common
    <Directory "C:\xampp\htdocs\dominio2.com.br">
        DirectoryIndex index.php index.html index.htm
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

3 – Crie as pastas “C:\xampp\htdocs\dominio1.com.br” e “C:\xampp\htdocs\dominio2.com.br” – Dentro delas ficarão os arquivos de cada um de seus sites.

4 – Inicie o Apache.

Observação 01: Este arquivo foi escrito levando em consideração os diretórios padrão de instalação do Windows (c:\windows) e do XAMPP (C:\xampp). No Linux ubunto, o arquivo de configuração do apache 2 fica localizado no endereço “/etc/apache2/sites-available/000-default.conf”

Observação 02: Nunca se esqueça de adicionar os comandos NameVirtualHost e a sub-tag Directory, estes erros são um dos maiores motivos para criar o problema do único redirecionamento.

Observação 03: Verifique a direção das barras, isso pode causar o mesmo erro citado acima, siga o exemplo.

Observação 04: Se você utilizar um proxy para acessar a internet, não esqueça de adicionar os domínios que você incluiu no arquivo de hosts na lista de exceções (“Não usar servidor de proxy para endereços iniciados por”).

Natural de Salvador-BA, é graduado em Analise de Sistemas pela Universidade Católica do Salvador (UCSal, 2003), e Especialista em Engenharia de Software pela Universidade Salvador (2010).

Onde fica o arquivo httpd.conf do Apache?

Se você é usuário do Linux e o Apache 2 foi instalado no local padrão, então o arquivo poderá ser encontrado na pasta /etc/apache2/

Porém, as configurações principais do servidor Apache2 devem ser feitas no arquivo apache2.conf, que se encontra no mesmo diretório citado no parágrafo anterior.

Caso você esteja procurando o local onde se configura os domínios para a criação de múltiplos sites em um mesmo servidor (Virtual Host) o arquivo onde se encontram estas configurações é o /etc/apache2/sites-available/default ou, em algumas distros do linux, em “/etc/apache2/sites-available/000-default.conf”

Natural de Salvador-BA, é graduado em Analise de Sistemas pela Universidade Católica do Salvador (UCSal, 2003), e Especialista em Engenharia de Software pela Universidade Salvador (2010).

Como melhorar a segurança de um servidor Apache desabilitando as funções ServerTokens e ServerSignature

Quando um servidor Apache gera uma página ou uma mensagem de erro, algumas informações importantes sobre a versão e outros detalhes de implementação do sistema são exibido no cabeçalho de resposta do servidor. Como por exemplo:

Server: Apache/1.3.37 (Unix) mod_auth_passthrough/1.8 mod_log_bytes/1.2 mod_bwlimited/1.4 FrontPage/5.0.2.2635.SR1.2 mod_ssl/2.8.28 OpenSSL/0.9.7a PHP-CGI/0.1b

Server: Apache/2.0.53 (Ubuntu) PHP/4.3.10-10ubuntu4 Server at xx.xx.xx.xx Port 80

Estas informações irão expor o servidor à alguma brecha conhecida para aquela versão utilizada.

Para garantir que o servidor Apache não irá divulgar estas informações para todos. É necessário modificar o valor das propriedades ServerTokes e ServerSignature no arquivo httpd.conf, para os valores abaixo:

ServerSignature Off
ServerTokens Prod

Pronto, agora resta apenas reiniciar o servidor Apache para que as modificações entrem em vigor. A partir de agora a informação exibida será apenas: Apache Server at www.seudomínio.com.br Port 80

Natural de Salvador-BA, é graduado em Analise de Sistemas pela Universidade Católica do Salvador (UCSal, 2003), e Especialista em Engenharia de Software pela Universidade Salvador (2010).

Instalando o Nginx via aptitude no Ubuntu

Desde que comecei a ler sobre o Nginx fiquei curioso para utilizá-lo substituindo o Apache nos servidores das minhas aplicações. O apache é muito bom, porém, algumas vezes parece utilizar mais memória do que deveria.

Para quem não sabe, o Nginx é um servidor web muito popular, e muito leve, que é utilizado na maioria das vezes para servir arquivos estáticos como imagens, arquivos HTML. Porém, ele também pode ser utilizado junto ao PHP para servir aplicações completas.

A sua instalação utilizando o Aptitude é muito simples. Digite na linha de comando do terminal:

sudo aptitude install nginx

Reinicie o servidor e pronto! Incrível, não?

Natural de Salvador-BA, é graduado em Analise de Sistemas pela Universidade Católica do Salvador (UCSal, 2003), e Especialista em Engenharia de Software pela Universidade Salvador (2010).

Como reinicializar o Apache no Linux Ubuntu

Depois de editar qualquer arquivo de configuração do Apache não conseguimos observar as modificações funcionando pois é necessário que o mesmo seja reinicializado para que as novas configurações entrem em vigor. Para fazer isso, no Ubuntu, digite na linha de comando:

sudo /etc/init.d/apache2 stop
sudo /etc/init.d/apache2 start

Ou somente:

sudo /etc/init.d/apache2 restart
Natural de Salvador-BA, é graduado em Analise de Sistemas pela Universidade Católica do Salvador (UCSal, 2003), e Especialista em Engenharia de Software pela Universidade Salvador (2010).