Guia do Administrador do Zope
Aviso: Esta é a visão de impressão com todas as páginas do Manual de Referência em uma página. A versão paginada está disponível aqui, se você preferir esta.
1. Introdução
Este é o Guia do Administrador do Zope para Windows, assim, o enfoque deste guia é para rodar Zope no Windows 95, Windows 98 e Windows NT. Se você desejar rodar Zope em algum sistema operacional derivado do Unix, por favor leia o Guia do Administrador do Zope para Unix.
Este guia mostrará quase tudo o que qualquer pessoa gostaria de saber sobre os diferentes plataformas em que o Zope pode ser instalado e rodado. Este guia é para desenvolvedores que desejam começar imediatamente a desenvolver aplicações para Web, administradores de sistema que estão instalando o Zope dentro da atual infraestrutura de suas organizações, usuários que desejam rodar Zope com seus ISP ou ISPs que desejam oferecer o Zope como um serviço para seus clientes.
Os detalhes da construção de um Web Site usando Zope estão além do escopo deste documento. Veja "Guia do Administrador de Conteúdo do Zope" para mais informações sobre este assunto. Este documento enfoca como o Zope pode ser instalado para rodar com vários servidores Web como o Apache, Microsoft's Internet Information Server, Netscape's Enterprise Server ou ZServer que está incluido com a distribuição do Zope. Embora tenhamos feito poucas associações do seu background técnico; mas saber como instalar e rodar scripts CGI usando seu respectivo servidor Web seria bom. Você pode querer ler a documentação do seu servidor primeiro, antes de ler o resto desta documentação.
NOTA: a Digital Creations fez um compromisso com a comunidade do Zope de entregar uma documentação que vai clarear os "mistérios internos do Zope" e remover algumas das barreiras que um usuário novato do Zope atualmente deve encarar. Desenvolver uma documentação de qualidade leva tempo. Freqüentemente leva-se mais tempo para documentar corretamente um grande sistema do que para fazê-lo. No interesse de prover a comunidade uma documentação, este guia foi publicado em um estado que se apresenta longe de estar completo. Espera-se que a comunidade possa beneficiar-se da informação contida de forma imediata nesta documentação, ao invés de fazê-la esperar pelo prolongado processo de documentação. De resto, asseguramos que a incompletude desta documentação será melhorada brevemente.
Começando
O que é Zope
"Zope" é um acrônimo para "Ambiente Z para Publicação de Objetos". No Zope as páginas web são construídas pela adição de objetos e pela modificação das propriedade dos objetos. Inúmeros objetos embutidos, como Folders (Pastas), Documents (Documentos) e Images (Imagens), estão incluídos no software. O sistema é organizado em Hierarquias de Objetos, muito mais que como um sistema de arquivos convencional. Uma simples hierarquia de objetos deve incluir um folder contendo documentos, imagens chamados nesses documentos, e também sub-folders para organizar ou delegar conteúdos. Tudo isso é feito através do browser ao invés de acessar o sistema de arquivos diretamente¹.
Obtendo o Zope
O Zope é distribuído em dois formatos pré-compilados para seu sistema operacional respectivo ou na forma de código-fonte. Você vai precisar de uma destas distribuições se você planeja executar o Zope standalone com o Zserver ou em conjunto com servidores Web terceirizados. As versões pré-compiladas são mais simples de instalar e mais convenientes pois não requerem download de componentes adicionais e um programa de instalação está incluído, o qual prontamente fornecerá as informações necessárias para rodar a aplicação. Por outro lado a distribuição do fonte é menor e leva menos tempo de download pois você não precisa fazer o download de programas adicionais ou bibliotecas se você já os têm instalados em seu computador. Instruções detalhadas sobre a compilação do Zope pela distribuição do fonte estão disponíveis nos capítulos de Manutenção e Administração.
Nota: Por alguma razão a maioria dos browsers para Windows mudará o nome do arquivo de Zope-x.x.x.-win32-x36.exe para Zope-x_x_x-win32-x36.exe que não fará diferença quando você instalar o programa.
Instalando o Zope
As distribuições do Zope para a plataforma Windows são arquivos compactados auto-extraíveis. Para iniciar o processo de instalação nós precisamos executar o arquivo, dê um clique duplo ou execute-o através de uma janela do DOS. Você será noticificado que o arquivo tem ambos o número da versão do Zope e a plataforma sobre a qual você está rodando.
Você deverá ver uma janela de instalação padrão do Windows com uma janela de boas vindas pela instalação do Zope. A janela mostrará qual versão do Zope você está instalando. Clique em Next para iniciar a instalação.
A janela mostrará agora os termos da Zope Public License (Licença Pública do Zope). Você deve ler e ter certeza de que entendeu os termos e as condições da licença. Quando você terminar, clique em Accept para aceitar os termos e as condições, e continue a instalação.
Logo depois, será pedido o nome do site. Este nome será usado como o nome do diretório onde o Zope será instalado. Por isso este nome que será usado como o nome de um diretório não deve ter nenhum espaço ou caracter de pontuação. Este nome também aparecerá na lista Add/Remove Programs (Adicionar/Remover Programas) no Painel de Controle do Windows para que você possa facilmente desinstalar cada um separadamente. Clique em Next quando tiver preenchido o o campo do nome do site.
Será pedido para você escolher o local para instalar o Zope. Seja qual for o diretório que você escolher esse será o diretório de instalação do Zope. Este é o local onde todos os arquivos do Zope serão colocados. Esta tela também mostra quanto de espaço em disco você tem e quanto sobrará depois que você tiver instalado o Zope. Clique em Next depois que você escolher o diretório.
Finalmente você deverá informar um username (nome de usuário) e uma password (senha) para serem usados na conta do super administrador. Esta é a conta que lhe dará acesso total ao site inteiro. Escolha um nome de usuário e uma senha e clique em Next.
Estas são todas as informações que o Zope precisa para iniciar a instalação. Clique em Next para iniciar o processo de instalação. Você verá o programa iniciando a cópia dos arquivos. Se você está instalando o Zope no Windows NT o programa de instalação irá perguntar se você quer que o Zope seja inicializado automaticamente como um serviço do NT ou se você quer inicializar o Zope manualmente. Quando a instalação estiver completa, clique em Finish para sair da instalação.
Rodando o Zope pela Primeira Vez
Partindo do pressuposto que você escolheu as opções padrões durante a instalação do Zope você deveria agora ter uma cópia do Zope instalado em c:\arquivo de programas\website. O Zope vem com o seu prório servidor web, chamado ZServer, que é um servidor muito rápido e fácil de usar. O programa de instalação já tem o ZServer configurado para ser rodado em sua máquina, a única coisa que você pode precisar fazer é inicializá-lo. Se você está usando o Windows NT e escolheu usar o Zope como um serviço do NT quando você o instalou, você pode pular os próximos cinco passos e continuar lendo dali. Se você não usa o Zope como um serviço do Windows NT ou você está usando o Windows 95 ou 98 você precisará iniciar manualmente o processo do Zope. Siga os passos abaixo.
- Inicie o Windows Explorer clicando em Iniciar->Programas->Windows Explorer.
- Dê um clique duplo no drive c janela esquerda do Explorer.
- Dê um clique duplo na pasta "Arquivos de Programas" na janela do lado direito.
- Dê um clique duplo na pasta chamada "Website" na janela do lado direito.
- Inicie o Zope com um clique duplo em start.bat.
É claro que se você escolheu um drive ou um diretório diferente quando você instalou o Zope, você precisará ajustar os passos acima de acordo.
Uma vez iniciado o Zope, você pode apontar o seu browser (navegador) favorito para http://localhost:80802. Se tudo funcionou você deverá ver a página de boas-vindas, a qual lhe dá opção para visitar as telas de gerenciamento. Se você selecionar este link será exigido um username e uma password. Digite o nome do usuário e a senha que você colocou quando instalou o Zope, você ainda lembra deles não? Se não, consulte a seção mais adiante neste documento sobre como trocar a senha do super administrador.
Se a sua intenção era ter o Zope instalado e funcionando de forma que você pudesse começar a desenvolver web-sites, sinta-se a vontade para parar aqui. No próximo capítulo nós iremos examinar as tecnologias subjacentes que um administrador Zope precisa para ter consciência de como conseguir o maior número de benefícios que o Zope pode proporcionar.
2. Background
O que é CGI?
CGI é um acrônimo de "Common Gateway Interface" (Interface Comum de Gateway). CGI é o método que servidores web usam para comunicar-se com programas que desenvolvedores web escrevem para responder a entrada de dados de usuários pela web. Se você alguma vez preencheu um formulário na internet para comentar um artigo ou adquirir alguma coisa online, possivelmente seus dados foram processados por um script CGI em Background. O diagrama abaixo descreve um pedido genérico pela web que é processado por um request do CGI.
- Alguém pede um documento do servidor web3.
- O servidor determina que o documento pedido é atualmente um programa² e roda o programa passando os dados do usuário.
- O servidor CGI processa os dados e faz algo especial com eles, possivelmente armazena em um banco de dados ou usa os dados para executar uma consulta no mecanismo de busca. O script devolve ao servidor os resultados formatados como um documento HTML apropriado .
- O servidor devolve os resultados para o browser do usuário.

Figura 1 - Visão Geral do CGI
Este método trabalha com a maioria das tarefas que os websities modernos necessitam realizar, tais como coletar dados de um formulário e mandá-los por e-mail para alguém. Uma desvantagem deste método é que o servidor web deve iniciar o script CGI cada vez que processar a requisição. Isto desperdiça os ciclos valiosos da CPU carregando o programa para a memória, não mencionando os ciclos da CPU que são perdidos se o programa CGI tiver que trabalhar com qualquer arquivo de configuração ou executar alguma outra forma de processamento de dados. No Zope é um pouco mais complicado que com o script CGI típico e inclui seu prórpio banco de dados para armazenar milhares senão milhões de objetos. Você pode imaginar quão vagarosamente o Zope pode responder se ele tiver que ser reiniciado toda vez que o servidor web recebe um novo requerimento.
Zope é um "processo de constante execução" assim nomeado porque roda como um serviço em backgrond (ou daemon na linguagem UNIX) que não encerra após a requesição web. Desta maneira, o Zope pode responder a próxima requisição que é recebida pelo servidor web e evita uma overhead (sobrecarga) na inicialização que o programa CGI provoca. Se você não está utilizando ZServer, o servidor web que vem com o Zope, então você vai precisar configurar seu servidor web para usar junto um aplicativo de "ajuda" chamado PCGI. PCGI é um programa leve que seu servidor web envia a cada requisição para conversar com o Zope. PCGI está rodando geralmente em background ou você pode usar um plug-in especial escrito especificamente para seu servidor web, se disponível.
O Que é PCGI?
PCGI é um acrônimo que significa "CGI Persistente". É um método desenvolvido originalmente pela Digital Creations para iludir alguns processos que ocasionavam sobrecarga que foi mencionado na seção CGI acima. Funciona da seguinte maneira um pequeno aplicativo conhecido como "pcgi-wrapper" passa uma requisição do servidor web para um aplicativo externo que está escutando uma porta INET específica ou um socket se estiver rodando no UNIX. O diagrama abaixo ilustra o processo.

x
Figura 2
Como você pode ver o processo é similar a maneira que o Servidor Web trabalha com scripts CGI com alguns componentes adicionais.
- Alguém requer um documento do servidor web.
- O servidor web envia o programa PCGI Wrapper passando a requisição.
- O programa PCGI Wrapper envia a requisição para uma porta INET ou para um Socket UNIX (Obs: o PCGI Wrapper é capaz de enviar uma aplicação PCGI, se ela não estiver rodando atualmente).
- A aplicação PCGI recebe a requisição do socket ou porta.
- Quando a aplicação PCGI é feita, processando a requisição, ele envia o resulatdo de volta através do socket.
- O PCGI Wrapper lê os resultados do socket.
- Então o PCGI Wrapper passa o resultado de volta para o servidor web e encerra.
- O servidor então retorna os resultados de volta para o navegador web.
Se você é rápido, você deve estar se perguntando se há uma queda na performance a partir da inicialização de uma nova instância do programa PCGI Wrapper em cada requisição. A resposta para esta questão é sim. Há uma pequena queda quando estiver rodando o PCGI Wrapper mas é muito pequena para ser notada na maioria dos sites trafegados.
Se você está usando o servidor Apache, você pode querer checar qual mod_pcgi está atualmente sendo desenvolvido por alguém. Este plug-in permite que o servidor Apache se comunique com o INET ou diretamente com o socket Unix e evita a necessidade de disparar um processo intermediário para passar a requisição para a aplicação PCGI. Este módulo continua em seu estágio inicial de dessenvolvimento mas há muitos sucessos relatados sobre o uso deste módulo. Você pode encontrar mais informações sobre mod_pcgi em http://somewhere.com.
Se você planeja rodar o Zope usando PCGI você necessitará usá-lo em conjunto com o Zserver ou qualquer outro servidor web.
O Que é FastCGI?
FastCGI é uma solução para o problema de execução do processo CGI desenvolvido pelo OpenMarket que é quase idêntico ao PCGI da Digital Creations. FastCGI tem algumas vantagens sobre PCGI. FastCGI não é limitado às bibliotecas de desenvlovimento em Python existentes para C, C++, Pearl e outras linguagens. Além disso, plug-ins para múltiplos servidores web já existem então o servidor web pode comunicar-se diretamente com o "processo de permanente execução" sem ter que exeutar qualquer programa intermediário. Além disso, existe um programa chamado cgi-fcgi que trabalha apenas como o pcgi-wrapper mencionado acima para servidores que não têm um plug-in FastCGI nativo.
Infelizmente até o momento desta publicação o suporte FastCGI para Zope não está disponível para o público. Contudo, esta situação pode ser adequadamente remediada em breve. De fato, este documento mostrará tudo o que você necessita saber para obter seu servidor web para rodar com o FastCGI para futuras publicações do Zope.
A única outra diferença entre a integração do PCGI e FastCGI com Zope é que ao contrário do PCGI, o suporte do FastCGI trabalhará somente se você usar ZServer. Você verá na próxima seção que você pode rodar o ZServer sozinho, você pode rodá-lo também conjuntamente com qualquer outro servidor. Há uma série de razões pelas quais você pode querer fazer isto.
3. Rodando o Zope
ZServer
O ZServer é de longe o modo mais fácil e rápido para iniciar o uso do Zope. ZServer é a integração do Zope com a alta performance, e a ferramenta do servidor Medusa multi protocolo.
As vantagens do ZServer são:
- Você não precisa rodar o Zope atrás de um outroservidor web.
- Você pode acessar o Zope por intermédio de outros protocolos tais como WebDav e FTP.
- ZServer pode manipular várias requisições Web ao mesmo tempo por ele ser
multi-threaded (multi processado).
Instruções de Linhas de Comando do ZServer
A tabela abaixo contém uma lista com a descrição de todas as opções disponíveis que podem ser usadas no ZServer quando for iniciado pela primeira vez. Na próxima seção nós vamos mostrar como modificar o script de inicialização para usar estas instruções.
|
Instruções de Linhas de Comandos para o ZServer
|
|
|
-h
|
Mostra esta lista de comandos |
|
-z path
|
A localização da instalação do Zope. O padrão é o local deste script. |
|
-t n
|
Usa n números de linhas se estiver usando ZODB3. O padrão é 4. |
|
-D
|
Roda o Zope no modo Debug. Faz com que o processo do Zope não saia do controle do terminal, e é equivalente a fornecer a configuração da variável do ambiente Z_DEBUG_MODE=1 |
|
-a ipaddress
|
O endereço IP é listado uma vez. Se for uma string vazia (e.g. -a''), então todos os endereços da máquina serão usados. O padrão é. |
|
-d ipaddress
|
O endereço IP de seu servidor DNS. Se for uma string vazia (e.g. -d''), então o endereço IP não será logado. Se você tem um serviço DNS local então você pode setar ele para 127.0.0.1. O padrão é: . |
|
-u username or uid number
|
O nome do usuário para rodar no ZServer. Você pode querer rodar o ZServer como 'nobody' ou com algum outro usuário com recursos limitados. O only trabalha abaixo do Unix e se o ZServer é iniciado pelo root. O default é: nobody. |
|
-P number
|
Configura os números das portas da Web, FTP e monitor simultaneamente como offsets dos números. O número da porta Web será número+80.O número da porta FTP será número+21. O número da porta do monitor será número+99. |
|
-w port
|
A porta do servidor Web (HTTP). O padrão é 8080. A porta padrão para serviços HTTP é 80. Se for uma string vazia (e.g. -w''), então o HTTP é desabilitado. |
|
-f port
|
A porta FTP. Se for uma string vazia (e.g. -f''), então o FTP é desabilitado. A porta padrão para serviços FTP é 21. O padrão é 8021. |
|
-p path
|
O caminho para o arquivo de recurso do PCGI. O valor default é Zope.cgi, relativo a localização do Zope. Se for uma string vazia (-p'') ou o arquivo não existe, então PCGI é desativado. |
|
-F path or port
|
Tanto o número da porta (para inet sockets) quanto o caminho (para Unix o domínio) para o servidor FastCGI. Se o flag (marcador) e o valor não foram especificados então o Servidor FastCGI será desativado. |
|
-m port
|
A porta de segurança do servidor monitor. Se esta é uma string vazia (-m''), então o servidor monitor será desabilitado. O servidor monitor permite acesso interativo ao estilo Python com um ZServer que esteja rodando. Para acessar o servidor veja medusa/monitor_client.py ou medusa/monitor_client_win32.py. A senha do servidor monitor é a mesma senha do administrador do Zope colocada no arquivo 'access'. O padrão é 8099. |
|
-2
|
Use ZODB 2 (também conhecido como BoboPos) o mesmo que ZODB 3. |
|
-lpath
|
Caminho para o arquivo de log no ZServer. Se este é um caminho relativo então o arquivo de log será escrito no diretório 'var'. O default é Z2.log. |
|
-r
|
Rodar o Zserver no modo de leitura. O ZServer não escreve nada no disco. Nenhum arquivo de log, nenhum arquivo pid, nada. Isto significa que você pode fazer muitas coisas como usar PCGI e zdaemon. O ZServer irá logar ao STDOUT e zLOG irá logar ao STDERR. |
Uma Olhada mais de Perto na Inicialização do ZServer
Quando você instala o Zope o programa de instalação desempacota a distribuição no C:\Arquivos de Programas\WebSite\ supondo que você não tenha mudado o nome ou caminho padrão. Existe no diretório acima mencionado um arquivo com o nome de z2.py. Ele é um programa python que contém a lógica necessária para iniciar o ZServer. Não se preocupe com o conteúdo, todos têm algo de interessante para você se você for um desenvolvedor. A coisa mais importante para saber sobre este arquivo é que rodando o interpretador python e passando-o como argumento a várias linhas de comando é como se você controlasse várias das configurações do ZServer.
Para iniciar o ZServer manualmente usando Python
- Vá ao prompt de comando
- (Windows 95/98) click em Iniciar->Programas->Prompt do MS-DOS
- (Windows NT) click em Iniciar->Programas->Prompt de Comando
- Digite cd "C:\Arquivos de Programas\WebSite" incluindo as aspas duplas
- O prompt agora deve parecer com isto C:\Arquivos de Programas\WebSite> digite bin\python z2.py -xx... onde -xx é uma das opções da lista abaixo.
Para iniciar o Zserver usando um conjunto de Arquivos de Inicialização
Um arquivo com o nome start.bat está em C:\Arquivos de Programas\WebSites os conteúdos estão listados abaixo. Você pode editar este arquivo e colocar uma linha de comando adicional trocando depois o "-D" da lista acima.
"C:\Arquivos de Programas\WebSite\bin\python.exe"
"C:\Arquivos de Programas\WebSite\z2.py" -D %1 %2 %3 %4 %5 %6 %7 %8 %9
Nota: O texto acima deve estar todo em uma linha, e não separado como está. Outra coisa a ser considerada é que estas janelas precisam de aspas duplas ao redor dos nomes destes arquivos por causa dos espaços no nome do arquivo.
Para Iniciar o ZServer usando o Serviço de Administrador no NT
Se você instalou o Zope dentro do servidor NT, então você foi alertado se você gostaria de rodar o Zope como um serviço do NT. Se você selecionou sim, então você pode usar o Serviço de Administrador do NT para iniciar ou parar o ZServer. Para usar o Serviço de Administrador no NT:
- Click em Iniciar->Configurações->Painel de Controle
- Dê um clique duplo no ícone Serviços dentro de Painel de Controle
- A janela do Serviço de Administrador do NT aparecerá na tela. Baixe a lista de serviços e selecione uma classificação Zope.
- Pressione o botão iniciar ou parar
Rodando Zope com Outros Servidores Web
Antes de existir o ZServer a única maneira de rodar o Zope era em conjunto com outro¹ servidor web. Isto era feito usando PCGI que foi descrito anteriormente. Com a inclusão do ZServer a necessidade de configurar o Zope com um outro servidor web está diminuindo a cada dia. Entretanto ainda existem alguns casos que requerem o uso de outros servidores.
- Você já tem um outro servidor Web rodando que você não pode derrubar e não pode rodar o ZServer em uma porta diferente. Ou talvez o conteúdo existente é compartilhado e/ou modificado outra vez em um arquivo de sistema de algum tipo na rede, ou você está por trás de um firewall que permite somente através da porta 80.
- Você gostaria de proteger todo o conteúdo do Zope com SSL.
- Você gostaria de usar o seu servidor web exitente para fazer avançadas procuras assim você pode fazer coisas como um avançado load balancing (equilíbrio de carga) ou usar o seu servidor para mapear hosts virtuais para diferentes folders (pastas) na hierarquia do Zope.
- Você gostaira de rodar o Zope em sua máquina ISP's (Provedor de Serviços da Internet).
- Você é um ISP que gostaria de rodar uma instância de Zope para cada um dos seus usuários.
Quaisquer que sejam suas razões as próximas seções ajudarão você a rodar o Zope com os três servidores web mais usados. Nós discutiremos alguns dos tópicos mencionados acima em seções posteriores também.
1. Isto atualmente é uma pequena mentira, novas versões do Zope foram distribuídas com uma aplicação chamada ZopeHTTPServer. Ainda que o ZopeHTTPServer seja ideal para o desenvolvedor que quer configurar rapidamente um ambiente Zope, ele é funcionalmente limitado privando muitas pessoas de usá-lo em um ambiente de produção.
O Problema Número Um Quando Executa-se o Zope pela Primeira Vez
A intalação do Zope deveria ser tão fácil ou talvez tão difícil como é instalar o Script CGI normal para seu respectivo servidor web.Vale lembrar que o Zope geralmente executa ambas autenticação e autorização de usuários, entretanto alguns servidores web não passam informação de autenticação ao Script CGI. Se você continuar recebendo recusa quando você tentar acessar o Zope através da web com o usuário super administrador e senha, existe uma grande possibilidade de que seu servidor web não esteja transmitindo a informação de autenticação para o Zope. Aqui temos intruções de como conseguir três dos mais usados servidores web para transmitir informações de autenticação para o Zope.
Rodando o Zope com IIS 4.0
IIS só é disponível no Windows NT Server 4.0. O Windows NT Server inclui uma cópia gratuita do Internet Information Server 2.0 que é freqüentemente chamado de IIS. A seguintes instruções supõem que você já tenha instalado o Microsoft Options Pack que atualizará seu IIS para a versão 4.0. O pacote de opções está disponível gratuitamente em http://www.microsoft.com.
4. Manutenção e Administração
Mudando o Nome e a Senha do Administrador
Porque o Zope é gerenciado pela rede, nomes de usuários e senhas devem ser usados para garantir que somente pessoas autorizadas possam fazer mudanças em uma instalação do Zope. Nomes de usuários e senhas são normalmente definidos ao criar e modificar user folders (pastas de usuários) no Zope. Um usuário especial super manager (super administrador) e senha são definidos fora do Zope por duas razões:
- Um nome de usuário e senha são necessários para habilitar a criação de administradores iniciais no seu site do Zope.
- O super administrador oferece ao usuário plenos poderes que pode fazer qualquer coisa na aplicação e cuja senha não pode ser alterada através da interface de usuário da aplicação.
Este nome de usuário e password estão definidos no arquivo 'access' localizado no diretório do Zope. Ele pode ser lido somente pelo usuário onde o servidor web está rodando. O usuário super administrador e senha devem ser usados somente quando estiver definindo o gerenciamento normal dos usuários e senhas e quando se deparar com situações incomuns, como perda ou uso indevido de nomes de usuários e senhas de administradores.
O arquivo access deve ter uma simples linha do formulário username:password. O script construído cria automaticamente um arquivo access para você, usando o nome do usuário padrão de superuser (super usuário) e uma senha criada aleatóriamente. No Windows você terá uma oportunidade de nomear este super usuário antes da instalação. É recomendado que você troque o nome e a senha default do super administrador editando seu arquivo access depois da instalação.
Observe que você também pode adicionar um terceiro componente adicional a linha do arquivo access para restringir o acesso do super administrador pelo domínio. Por exemplo, a linha mario:nintendoRules:*.mydomain.com em seu arquivo acess vai permitir somente o acesso do super administrador à sua instalação pela máquina *.mydomain.com. Tentativas para acessar o sistema de outros domínios falharão, até mesmo se o nome correto do super usuário e senha forem usados.
Atualizando o Zope
Atualizar a instalação do seu Zope é uma tarefa bastante fácil. Ainda assim há algumas precauções que você terá que tomar, para assegurar que quaisquer problemas que possam ocorrer não se transformem em problemas sérios.
Sempre, sempre, sempre faça um back up (cópia de segurança) de seus dados antes de fazer qualquer tipo de modificação no Zope. Deste modo você sempre terá alguma coisa a que recorrer se as coisas não funcionarem como você planejou. O arquivo no qual você deve estar mais interessado, é o chamado Data.fs, ele está no diretório var da sua instalação do Zope. Você deverá copiar este arquivo para um lugar seguro. Alguém realmente paranóico pode fazer um back up de sua instalação inteira do Zope, porém o Data.fs contém todos os seus dados.
Supõe-se que agora você tenha baixado uma nova versão do Zope. Você vai precisar para descompactar o arquivo que você baixou e rodar o script de instalação se você está usando Unix, ou rodar o executável se você está usando o Windows. Você não quer sobrescrever sua antiga instalação agora, assim certifique-se de que está colocando em um novo diretório!
Agora que você tem sua nova instalação do Zope, você precisa copiar os Products (Produtos) e External Methods (Métodos Externos), que você deve ter instalado, em sua nova instalação do Zope. Você não precisa se preocupar em ter que reinstalar os Produtos, você só deve ser capaz de copiá-los do antigo diretório lib/products/ para o novo. Certifique-se que você não vai copiar um produto que já está incluido no Zope, você pode trocar um velho por um novo! Não se preocupe com a instalação de External Methods dentro do Zope, somente copie os módulos dos arquivos para o diretório Extensions. Quando movemos o banco de dados do objeto, todos os seus External Methods estarão lá.
Agora, feche seu site antigo. Nós precisamos copiar os arquivos de dados e ele é feito para que não tenha pessoas adicionando novas coisas enquanto você estiver copiando os dados para o Zope, assim se você estiver usando PCGI seria uma boa idéia fechar (shut down) seu servidor web também. O arquivo de dados, como dissemos antes, é o Data.fs e está localizado no diretório var da sua instalação do Zope. Copie-o em cima da nova instalação.
Se você está usando PCGI, mova o antigo Zope.cgi para fora deste diretório, e copie o novo que está em seu novo diretório de instalação do Zope. Certifique-se que o ambiente de configuração adapta-se ao seu novo Zope.cgi. Se você está usando PCGI e você fechou seu servidor web, você deve reinicializá-lo agora.
De outra forma, inicialize o Zope como você faz normalmente. Verifique se está funcionando visitando o site ou pela interface de gerenciamento. Certifique-se de que todos os Produtos estão instalados e funcionando indo ao Control Panel (Painel de Controle) e selecionando Products Management (Gerenciamento de Produtos).
Se houver algum problema, vá a seção Troubleshooting deste documento.
Compilando o Zope Através do Código Fonte
A primeira coisa que nós precisamos fazer é escolher um diretório para instalar o Zope. O diretório que você escolher não precisa estar acesível ao seu servidor web atual. Para este exemplo vamos usar /usr/local/. Agora você deve baixar um arquivo compactado da distribuição do Zope. Para a finalidade deste exemplo vamos usar Zope-2.0.0-src.tgz que baixamos do diretório /usr/downloads/.
Vamos mudar para o diretório que queremos instalar o Zope usando cd /usr/local.Uma vez lá, precisamos extrair o Zope do arquivo compactado. Vamos usar o comando tar xfz /usr/downloads/Zope-2.0.0-src.tgz. Dependendo em que diretõrio você pôs, você precisa ser root para fazer isto. Quando o for descompactado, ele criará um diretório chamado Zope-2.0.0-src. Este é o diretório de instalação do Zope. Se você quiser você pode renomeá-lo, mas você precisa fazer isso agora porque os scripts construídos usam o diretório de instalação do Zope durante a configuração.
Agora que nós já extraímos o fonte do Zope do arquivo, temos que ir até o diretório de instalação do Zope usando cd Zope-2.0.0-src.
Se você está querendo rodar o Zope com seu servidor web existente, então você precisa construir Zope com o suporte do PCGI.Para fazer isto você precisa rodar o comando python w_pcgi.py para construir o Zope. Se você estiver querendo usar o ZServer incluído, então use o comando python wo_pcgi.py.
Quando o script de construção estiver pronto, ele dirá que criou um super administrador chamado superuser com uma senha aleatória. Anote isto, pois você vai precisar para gerenciar sua instalação do Zope. Você também pode editar o arquivo 'access' no diretório de instalação do Zope e mudar o nome do usuário e a senha se você desejar. Nós vamos entrar em maiores detalhes sobre o arquivo access na próxima seção.
Estendendo o Zope
O Zope foi projetado desde o princípio para ser extensível, para permitir que sejam feitas inclusões funcionalmente. Existem dois modos para adicionar novas funcionalidades para o Zope: Products e External Methods. External Methods são simplesmente funções, escritas em Python, que foram importadas de dentro do Banco de Objeto, logo eles podem ser acessados no Zope. Um Product é apenas uma parte do objeto que pode estender a funcionalidade do Zope.
Produtos
Produtos são "plug-ins" para o Zope. Há um número crescente de Produtos disponíveis para download em http://www.zope.org/ bem como um tutorial para o Produto API, se você está interessado em criar seus próprios Produtos. No Zope Content Manager?s Guide (Guia do Gerenciador de Conteúdo do Zope) nós criamos um Produto simples para criar um web site. Você pode tê-lo como referência.
Instalando Novos Produtos
O procedimento de instalar novos Produtos deve ser exatamente o mesmo no Unix e Windows, com algumas diferenças sintáticas.
Antes de tudo, faça o download do Produto que você quer instalar. Tipicamente, você receberá um arquivo compactado com o nome e número da versão do Produto. Digamos por exemplo que nós baixamos há pouco o ZLDAPConnection.tgz que é o Produto de Conexão Zope LDAP e colocamos ele, no Unix, em /usr/downloads/ ou, no Windows, em C:\Downloads\.
A maioria dos Produtos, se eles tiverem sido construídos direito, vão precisar ser descompactados em seu diretório de instalação no Zope. No Unix, nós teríamos que mudar para o diretório do Zope: cd /usr/local/Zope-2.0.0. De lá, nós daríamos tar xvfz /usr/downloads/ZLDAPConnection.tgz que extraíria o Produto e o colocaria no diretório lib/python/Products/ZLDAPConnection/.
No Windows, você teria que usar um programa (WinZip) que reconhece o TAR e os tipos de compactação gzip. Um bom lugar para procurá-los é http://www.winfiles.com. Instrua seu programa para extrair os arquivos, usando informação completa do caminho, para seu diretório de instalação Zope.
Confira o diretório em que o Produto foi instalado, e observe quaisquer arquivos README ou INSTALL. Se existir qualquer um, devemos lê-los completamente e seguir qualquer outra instrução de instalação que eles possam ter.
Depois disto, seu Produto deve estar pronto para rodar! Nós apenas precisamos reiniciar nosso servidor Zope entrando no Zope Control Panel (Painel de Controle do Zope) e clicar o botão Shutdown. Inicie o seu back up do servidor Zope do jeito que você normalmente faz.
Uma vez de volta a interface de administração do Zope, nós queremos verificar que podemos usar o Produto. Tudo o que nós temos que fazer neste caso, é selecionar a lista de items para adicionar e verificar que ZLDAPConnection está listado lá.
Resolução de Problemas dos Produtos
Se o Produto não aparecer na add list (lista de adição), nós podemos obter mais informações sobre que problema poderia ser. No Control Panel, existe uma pasta especial chamada Product Management. Esta pasta tem uma lista de todos os Produtos atualmente instalados em seu sistema. Se um Produto está incompleto, isto constará muito claramente próximo ao nome do produto, como também a exibição de um ícone de uma caixa quebrada. Clicando no Produto, você será levado à uma página que tem um link para o Traceback, que lhe dirá que erro está dando no Produto.
Para mais informações sobre a resolução de problemas e solicitação de ajuda, veja a seção global de Troubleshooting.
Métodos Externos
Os External Methods (Métodos Externos) são significativamente mais fáceis de instalar e achar defeitos nos produtos, se você conhece Python. Um External Method é simplismente uma função de Python que resida dentro de um arquivo .py.
Vamos dizer, por exemplo, você tem um arquivo que chama-se spam.py com os seguintes conteúdos:
def spamandeggs():
return "Spam and Eggs!"
Se você quisesse chamar esta função dentro de Zope, você necessitaria ajustar acima um External Method.
Instalando novos External Methods
A primeira coisa que precisamos fazer é colocar o arquivo spam.py, em um diretório para que o Zope seja capaz de lê-lo. Copie o arquivo para o diretório Extensions no diretório de instalação do Zope. Se você não tem um diretório Extensions, então você deve ir em frente e criá-lo usando md Extensions do diretório de instalação do Zope.
Agora que temos o arquivo no lugar certo, nós precisamos importá-lo para o Zope. Aponte seu browser para a tela de gerência de qualquer folder do Zope. Da lista de tipos de itens para adicionar, selecione External Method.
Estamos agora na tela que pede informação do External Method que queremos criar. Temos que entrar com um id para ele no banco de dados do objeto, vamos chamá-lo de breakfast. Vamos setar o title para Spam and Eggs! Assim não esquecemos o que este External Method faz. A função name, se você lembra do conteúdo do nosso arquivo, é spamandeggs, assim digitamos ele igual.O arquivo do módulo Python é o nome do nosso arquivo, que é spam.py.
Clique no botão Add, e voila! Temos um External Method! Como é um External Method ele só retorna informação e não tem nenhum argumento, podemos chamá-lo de um DTML Document (Documento DTML) ou Method (DTML Method) usando <dtml-var breakfast>.
Problemas Comuns dos External Methods Troubleshooting
Você deve testar a função em Python fora do Zope para ter certeza que ela funciona como o esperado antes de tentar importá-la para dentro do Zope. O Zope geralmente é capaz de achar erros de sintaxe quando importa, e irá avisar você quando isso ocorrer. Se houver um erro enquanto estiver executando um External Method, você verá uma mensagem de erro padrão. Geralmente, se você olhar o código fonte da página com a mensagem de erro ela dará a você mais informações.
Para maiores informações sobre erros comuns e como obter ajuda, veja a seção global Troubleshooting.
5. Eliminando Problemas
Decifrando as Mensagens de Erro
De vez em quando, voce terá problemas com a sua instalação do Zope. Talvez você tenha instalado um produto e ele não funciona, ou talvez há alguma DTML que está lhe trazendo problema. Toda vez que o Zope dá um erro, ele irá mostrar uma página com um Traceback (Mensagem de erro) que tem a intenção de ajudá-lo a identificar o problema.
Um traceback irá parecer mais ou menos assim:
Traceback (innermost last):
File /usr/local/Zope-1.10.2-src/lib/python/ZPublisher/Publish.py, line 877, in publish_module
File /usr/local/Zope-1.10.2-src/lib/python/ZPublisher/Publish.py, line 590, in publish
(Info: /invisible)
File /usr/local/Zope-1.10.2-src/lib/python/OFS/DTMLMethod.py, line 155, in __call__
(Object: invisible)
File /usr/local/Zope-1.10.2-src/lib/python/OFS/DTMLMethod.py, line 151, in __call__
Object: invisible)
File /usr/local/Zope-1.10.2-src/lib/python/DocumentTemplate/DT_String.py, line 513, in __call__
(Object: invisible)
KeyError: (see above)
O que isto significa, começando do topo, é que a função publish_module em Publish.py chama a função publish em Publishpy, que chama a função __call__ em DTMLMethod.py a qual chama a função __call__ in DT_String.py onde um erro do tipo KeyError ocorreu. Tudo isso pelo objeto chamado invisible, cujo path é /invisible.
Se você ver a fonte deste documento você terá, acima do Traceback, um comentário que parece mais ou menos como este:
<!--
Error type:
Error value: output_data
-->
Nós sabemos que o erro criado é um KeyError, e agora nós sabemos que o error é criado sobre output_data, o que significa que a variável output_data não existe.
Por exemplo eu usei um DTML Method chamado invisível que se parece assim:
<!--#var standard_html_header-->
<!--#var output_data-->
<!--#var standard_html_footer-->
Assim eu não tenho um objeto com um nome output_data, o Zope exibe um KeyError enquanto tenta criar esta página.
Onde Buscar Suporte
Se você não consegue descobrir um problema, a ajuda é sempre um e-mail. Zope tem duas listas de e-mails para conseguir ajuda ou listas de discussões. A lista zope@zope.org oferece ajuda para end-users, enquanto a lista zope-dev@zope.org oferece um lugar para programadores em Zope para pedir ajuda ou problemas de discusão.
Ambas as listas têm um arquivo na http://www.zope.org/Support/SearchList. Você também pode se inscrever nas duas lista indo na http://www.zope.org/Community/.
Informando Erros
Em uma rara ocasião pode-se encontrar algum erro no Zope, a Digital Creations preparou um Coletor para facilitar a procura e o relato de erros. Ela tem uma completa interface de busca, então você pode descobrir se o erro que você está relatando foi reportado e se há uma solução. Entradas no Coletor são atualizadas quando as informações relativas aos erros relatados são encontradas. O coletor pode ser encontrado em http://www.zope.org/Collector/.
- Atualmente o Zope oferece poucos outros métodos para criação e manipulação
de conteúdos incluindo suporte a WebDAV. Se você está rodando o Zope junto
com o ZServer, você pode usar FTP.
- O endereço http://localhost tem um significado especial para os browsers.
Ele significa "esta máquina". Se sua máquina tem um nome diferente você pode
facilmente acessar o Zope apontando o seu navegador para http://nomedasuamaquina.com:8080.
- Alguém digitou http://algumlugar.com/algumdocumento em seu browser.
- Como foi determinado é baseado em seu servidor web, consulte a documentaçao do seu servidor web para um determinado departamento.