6.2. Compilando e Instalando as Páginas Web

Após obter os arquivos fontes da documentação e web site, o site pode ser compilado.

Uma instalação real do web site precisa ser executada pelo usuário root porque as permissões no diretório do servidor web não permitirão a instalação de arquivos por um usuário não privilegiado. Para testar, pode ser útil instalar os arquivos com um usuário normal em um diretório temporário.

Nestes exemplos, os arquivos do web site são criados pelo usuário jru em seu diretório home, ~/doc, com um caminho completo de /usr/home/jru/doc.

Dica:

A compilação do web site utiliza o arquivo INDEX da Coleção de Ports e pode falhar se este arquivo ou /usr/ports não estiver presente no sistema. A abordagem mais simples é instalar a Coleção de Ports.

Exemplo 6.1. Compile o Web Site Completo e Todos Documentos

Compile o web site e todos os documentos. Os arquivos finais são deixados na árvore de documento:

% cd ~/doc/en_US.ISO8859-1/htdocs/
% make all

Exemplo 6.2. Compile Apenas o Web Site em Inglês

Compile o web site apenas em Inglês, como usuário jru, e instale os arquivos finais em /tmp/www para teste:

% cd ~/doc/en_US.ISO8859-1/htdocs/
% env DESTDIR=/tmp/www make ENGLISH_ONLY=yes WEB_ONLY=yes all install

Alterações em arquivos estáticos geralmente podem ser testadas visualizando os arquivos modificados diretamente com um navegador web. Se o web site foi construído como apresentado acima, a página principal modificada pode ser visualizada com:

% firefox /tmp/www/data/index.html

Modificações em arquivos dinâmicos podem ser testadas com um servidor web rodando no sistema local. Depois de construir o site como apresentado acima, o /usr/local/etc/apache24/httpd.conf pode ser usado com www/apache24:

# httpd.conf for testing the FreeBSD website
Define TestRoot "/tmp/www/data"

# directory for configuration files
ServerRoot "/usr/local"

Listen 80

# minimum required modules
LoadModule authz_core_module libexec/apache24/mod_authz_core.so
LoadModule mime_module libexec/apache24/mod_mime.so
LoadModule unixd_module libexec/apache24/mod_unixd.so
LoadModule cgi_module libexec/apache24/mod_cgi.so
LoadModule dir_module libexec/apache24/mod_dir.so

# run the webserver as user and group
User www
Group www

ServerAdmin you@example.com
ServerName fbsdtest

# deny access to all files
<Directory />
    AllowOverride none
    Require all denied
</Directory>

# allow access to the website directory
DocumentRoot "${TestRoot}"
<Directory "${TestRoot}">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

# prevent access to .htaccess and .htpasswd files
<Files ".ht*">
    Require all denied
</Files>

ErrorLog "/var/log/httpd-error.log"
LogLevel warn

# set up the CGI script directory
<Directory "${TestRoot}/cgi">
    AllowOverride None
    Options None
    Require all granted
    Options +ExecCGI
    AddHandler cgi-script .cgi
</Directory>

Include etc/apache24/Includes/*.conf

Inicie o servidor web com

# service apache24 onestart

O web site pode ser visualizado em http://localhost. Esteja ciente de que muitos links se referem ao site real do FreeBSD por nome, e esses links ainda levar para o site externo em vez da versão de teste local. O teste completo do web site local exigirá a configuração temporária do DNS para que o endereço www.FreeBSD.org seja resolvido como localhost ou o endereço IP local.


Exemplo 6.3. Compile e Instale o Web Site

Compile o web site e todos os documentos como usuário jru. Instale os arquivos finais como root no diretório padrão, /root/public_html:

% cd ~/doc/en_US.ISO8859-1/htdocs
% make all
% su -
Password:
# cd /usr/home/jru/doc/en_US.ISO8859-1/htdocs
# make install

O processo de instalação não exclui nenhum arquivo antigo ou desatualizado que existia anteriormente no mesmo diretório. Se uma nova cópia do web site for criada e instalada todos os dias, esse comando localizará e excluirá todos os arquivos que não foram atualizados em três dias:

# find /usr/local/www -ctime 3 -delete

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