Arquivo da tag: 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)

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”).

Nascido em salvador, mas residindo atualmente em São Paulo-SP e Rio de Janeiro-RJ. É 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

Nascido em salvador, mas residindo atualmente em São Paulo-SP e Rio de Janeiro-RJ. É 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

Nascido em salvador, mas residindo atualmente em São Paulo-SP e Rio de Janeiro-RJ. É 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?

Nascido em salvador, mas residindo atualmente em São Paulo-SP e Rio de Janeiro-RJ. É 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
Nascido em salvador, mas residindo atualmente em São Paulo-SP e Rio de Janeiro-RJ. É graduado em Analise de Sistemas pela Universidade Católica do Salvador (UCSal, 2003), e Especialista em Engenharia de Software pela Universidade Salvador (2010).