29.8. Servidor HTTP Apache

Contribuido por Murray Stokely.

O open source Apache HTTP Server é o servidor Web mais utilizado. O FreeBSD não instala este servidor web por padrão, mas ele pode ser instalado a partir do pacote ou Port www/apache24.

Esta seção resume como configurar e iniciar a versão 2.x do Servidor HTTP Apache no FreeBSD. Para informações mais detalhadas sobre o Apache2.X e suas diretivas de configuração, consulte httpd.apache.org.

29.8.1. Configurando e Iniciando o Apache

No FreeBSD, o arquivo de configuração principal do Apache HTTP Server é instalado como /usr/local/etc/apache2x/httpd.conf, onde x representa o número da versão. Este arquivo ASCII de texto inicia as linhas de comentário com um #. As diretivas modificadas com mais freqüência são:

ServerRoot "/usr/local"

Especifica a hierarquia de diretório padrão para a instalação do Apache. Os binários são armazenados nos subdiretórios bin e sbin da raiz do servidor e os arquivos de configuração são armazenados no subdiretório etc/apache2x.

ServerAdmin you@example.com

Altere isso para seu endereço de e-mail para receber problemas com o servidor. Esse endereço também aparece em algumas páginas geradas pelo servidor, como documentos de erro.

ServerName www.example.com:80

Permite que um administrador defina um nome de host que é enviado de volta aos clientes pelo servidor. Por exemplo, www pode ser usado em vez do nome do host real. Se o sistema não tiver um nome registrado no DNS, insira seu endereço IP. Se o servidor irá escutar em um relatório alternativo, altere a porta 80 para o número de porta alternativa.

DocumentRoot "/usr/local/www/apache2x/data"

O diretório no qual os documentos serão exibidos. Por padrão, todas as solicitações são obtidas desse diretório, mas os links e aliases simbólicos podem ser usados ​​para apontar para outros locais.

É sempre uma boa ideia fazer uma cópia de backup do arquivo de configuração do Apache padrão antes de fazer alterações. Quando a configuração do Apache estiver concluída, salve o arquivo e verifique a configuração usando o apachectl. A execução do apachectl configtest deve retornar Syntax OK.

Para iniciar o Apache na inicialização do sistema, adicione a seguinte linha ao /etc/rc.conf:

apache24_enable="YES"

Se o Apache deve ser iniciado com opções não-padrão, a seguinte linha pode ser adicionada ao /etc/rc.conf para especificar os flags necessários:

apache24_flags=""

Se o apachectl não relatar erros de configuração, inicie o httpd agora:

# service apache24 start

O serviço httpd pode ser testado inserindo http://localhost em um navegador da Web, substituindo localhost pelo nome de domínio totalmente qualificado da máquina que está executando o httpd. A página padrão da Web exibida é /usr/local/www/apache24/data/index.html.

A configuração do Apache pode ser testada quanto a erros depois de fazer alterações subsequentes de configuração enquanto o httpd está em execução usando o seguinte comando:

# service apache24 configtest

Nota:

É importante notar que o configtest não é um padrão rc(8) e não se espera que funcione para todos os scripts de inicialização.

29.8.2. Hospedagem Virtual

A hospedagem virtual permite que vários sites sejam executados em um servidor Apache. Os hosts virtuais podem ser baseados em IP ou baseados em nome. A hospedagem virtual baseada em IP usa um endereço IP diferente para cada site. A hospedagem virtual baseada em nome usa os cabeçalhos HTTP/1.1 do cliente para descobrir o nome do host, o que permite que os sites compartilhem o mesmo endereço de IP.

Para configurar o Apache para usar hospedagem virtual baseada em nome, adicione um bloco VirtualHost para cada site. Por exemplo, para o servidor Web denominado www.domain.tld com um domínio virtual de www.someotherdomain.tld, adicione as seguintes entradas ao arquivo httpd.conf:

<VirtualHost *>
    ServerName www.domain.tld
    DocumentRoot /www/domain.tld
</VirtualHost>

<VirtualHost *>
    ServerName www.someotherdomain.tld
    DocumentRoot /www/someotherdomain.tld
</VirtualHost>

Para cada host virtual, substitua os valores de ServerName e DocumentRoot pelos valores a serem usados.

Para obter mais informações sobre como configurar hosts virtuais, consulte a documentação oficial do Apache em: http://httpd.apache.org/docs/vhosts/.

29.8.3. Módulos Apache

O Apache usa módulos para aumentar a funcionalidade fornecida pelo servidor básico. Consulte o http://httpd.apache.org/docs/current/mod/ para uma lista completa e detalhes de configuração para os módulos disponíveis.

No FreeBSD, alguns módulos podem ser compilados com o port www/apache24. Digite make config dentro do diretório /usr/ports/www/apache24 para ver quais módulos estão disponíveis e quais estão ativados por padrão. Se o módulo não é compilado com o port, a Coleção de Ports do FreeBSD fornece uma maneira fácil de instalar vários módulos. Esta seção descreve três dos módulos mais usados.

29.8.3.1. mod_ssl

O módulo mod_ssl usa a biblioteca OpenSSL para fornecer criptografia robusta via SSL (SSLv3) e protocolos de Segurança da Camada de Transporte (TLSv1). Este módulo fornece todo o necessário para solicitar um certificado assinado de uma autoridade de assinatura de certificado confiável para executar um servidor web seguro no FreeBSD.

No FreeBSD, o módulo mod_ssl é habilitado por padrão tanto no pacote quanto no port. As diretivas de configuração disponíveis são explicadas em http://httpd.apache.org/docs/current/mod/mod_ssl.html.

29.8.3.2. mod_perl

O módulo mod_perl torna possível escrever módulos Apache em Perl. Além disso, o intérprete persistente embutido no servidor evita a sobrecarga de iniciar um intérprete externo e a penalidade do tempo de inicialização do Perl.

O mod_perl pode ser instalado usando o pacote ou port www/mod_perl2. A documentação para usar este módulo pode ser encontrada em http://perl.apache.org/docs/2.0/index .html.

29.8.3.3. mod_php

Escrito porTom Rhodes.

PHP: Pré-processador de hipertexto ( PHP ) é uma linguagem de script de propósito geral que é especialmente adequada para desenvolvimento web. Capaz de ser incorporada em HTML, sua sintaxe se baseia em C, Java™ e Perl com a intenção de permitir desenvolvedores web para escrever rapidamente páginas da web geradas dinamicamente.

Para obter suporte para PHP5 para o servidor da web Apache, instale o pacote ou port www/mod_php56. Isso instalará e configurará os módulos necessários para suportar aplicativos dinâmicos PHP. A instalação adicionará automaticamente esta linha ao arquivo /usr/local/etc/apache24/httpd.conf:

LoadModule php5_module        libexec/apache24/libphp5.so

Em seguida, execute uma reinicialização normal para carregar o módulo PHP:

# apachectl graceful

O suporte a PHP fornecido pelo www/mod_php56 é limitado. Suporte adicional pode ser instalado usando o port lang/php56-extensions que fornece uma interface baseada em menus para as extensões PHP disponíveis.

Como alternativa, extensões individuais podem ser instaladas usando a porta apropriada. Por exemplo, para adicionar suporte PHP para o servidor de banco de dados MySQL, instale o databases/php56-mysql.

Depois de instalar uma extensão, o servidor Apache deve ser recarregado para selecionar as novas alterações de configuração:

# apachectl graceful

29.8.4. Websites Dinâmicos

Além do mod_perl e do mod_php, outras linguagens estão disponíveis para a criação de conteúdo dinâmico da web. Estes incluem o Django e o Ruby on Rails.

29.8.4.1. Django

O Django é um framework de licença BSD projetado para permitir que desenvolvedores escrevam aplicações web elegantes e de alto desempenho rapidamente. Ele fornece um mapeador relacional de objeto para que os tipos de dados sejam desenvolvidos como objetos Python. Uma API rica e dinâmica de acesso ao banco de dados é fornecida para os objetos sem que o desenvolvedor tenha que escrever SQL. Ele também fornece um sistema de template extensível para que a lógica do aplicativo seja separada da apresentação HTML.

Django depende de mod_python, e um mecanismo de banco de dados SQL. No FreeBSD, o port www/py-django instala automaticamente o mod_python e suporta os banco de dados PostgreSQL, MySQL, ou SQLite, com o padrão sendo o SQLite. Para trocar o mecanismo de banco de dados, digite make config dentro do diretório /usr/ports/www/py-django, então instale o port.

Uma vez instalado o Django, a aplicação precisará de um diretório de projeto junto com a configuração Apache para usar o interpretador Python incorporado. Este intérprete é usado para chamar o aplicativo para URLs específicas no site.

Para configurar o Apache para que passe a fazer solicitações para determinadas URLs para a aplicação Web, adicione o seguinte ao httpd.conf, especificando o caminho completo para o diretório do projeto:

<Location "/">
    SetHandler python-program
    PythonPath "['/dir/to/the/django/packages/'] + sys.path"
    PythonHandler django.core.handlers.modpython
    SetEnv DJANGO_SETTINGS_MODULE mysite.settings
    PythonAutoReload On
    PythonDebug On
</Location>

Consulte https://docs.djangoproject.com para maiores informações sobre como usar o Django.

29.8.4.2. Ruby on Rails

O Ruby on Rails é outro framework de software livre da Web que fornece uma stack de desenvolvimento completa. Ele é otimizado para tornar os desenvolvedores da Web mais produtivos e capazes de criar rapidamente aplicativos poderosos. No FreeBSD, ele pode ser instalado usando o pacote ou port www/rubygem-rails.

Consulte http://guides.rubyonrails.org para maiores informações sobre como usar o Ruby on Rails .

All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.