ConteúdosDeAjuda > AjudaNaAdministração > AjudaNaInstalação

Instalar o MoinMoin com Apache utilizando ftp

Este documento descreve como instalar o MoinMoin no servidor web do seu ISP.

Vamos assumir que:

Siga estes passos:

Descarregue a distribuição mais recente do MoinMoin

Descarregue a distribuição mais recente do MoinMoin a partir da página DescarregarMoinMoin. Extraia os fiheiros do arquivo para uma directoria local. Não é necessário executar o script setup.py, só trabalhamos com o código-fonte!

Explore a configuração do servidor web

Agora é a altura de descobrir a forma como o seu ISP suporta Python. Se suportar Python, provavelmente suporta Common Gateway Interface (CGI). Como dissemos em cima, só descrevemos esta opção de instalação. Aqui fica algum trabalho de casa para fazer:

   1 #!/usr/bin/python
   2 
   3 import os.path
   4 import os
   5 import sys
   6 
   7 tente:
   8     __file__
   9 except NameError:
  10     __file__ = '?'
  11 
  12 print """Content-type: text/html
  13 
  14 <html>
  15 <head>
  16  <title>À Descoberta de Python</title>
  17 </head>
  18 <body>
  19  <table border=1>
  20  <tr><th colspan=2>1. Informação de Sistema</th></tr>
  21  <tr><td>Python</td><td>%s</td></tr>
  22  <tr><td>Platforma</td><td>%s</td></tr>
  23  <tr><td>Caminho absoluto deste script</td><td>%s</td></tr>
  24  <tr><td>Nome do ficheiro</td><td>%s</td></tr>
  25 """ % (sys.version,
  26        sys.platform,
  27        os.path.abspath('.'),
  28        __file__)
  29 print "<th colspan=2>2. Variáveis de ambiente</th>"
  30 para variáveis em os.environ:
  31     print "<tr><td>%s</td><td>%s</td></tr>\n" % (variable, os.environ[variable])
  32 print """
  33 </table>
  34 </body>
  35 </html>
  36 """

Descarregar: explore.py

Podem surgir alguns dos seguintes problemas:

Se tudo funcionar, deve surgir uma tabela no seu ecrã. Esta tabela fornece alguma informação básica sobre o seu servidor web. Depois, precisaremos da versão do Python, do Caminho absoluto deste script, do DOCUMENT_ROOT e do SITE_URI.

Copie as directorias

Tem de transferir quatro directorias da directoria moin para o seu servidor web.

AVISO DE SEGURANÇA: Se não puder optar e tiver de colocar MoinMoin, underlay ou data dentro do DOCUMENT_ROOT do apache, é muito importante que impeça o apache de lhes aceder directamente.

1. Utilize o seu editor favorito para criar um ficheiro com o nome .htaccess.

2. Insira o texto deny from all neste ficheiro

3. Copie-o para a directoria que quer proteger através de FTP.

4. Tente aceder à directoria protegida através do seu navegador web. Se a protecção funcionar, deve obter Access denied.

5. Se não conseguir proteger estas directorias, por favor, elimine-as do seu servidor web imediatamente. Não prossiga com a sua instalação.

Configure

Existem dois ficheiros que precisam de afinação:

Escolha uma directoria para estes ficheiros no seu servidor web. Pode escolher livremente, mas o apache tem de conseguir executar o moin.cgi. Pode ainda renomear o moin.cgi, para moin.py por exemplo, se for necessário. Recomendamos que coloque o wikiconfig.py numa directoria config que não esteja acessível ao apache. Não comece a enviar. É preciso fazer algumas modificações primeiro.#

moin.cgi

Agora abra o ./wiki/server/moin.cgi no seu editr favorito.

(1) Adjuste o caminho do python. Em primeiro lugar, tem de ajustas o caminho do seu python na linha 1. O novo valor depende da configuração do seu ISP.

(2) Defina o caminho para o MoinMoin. Encontrará uma linha

## sys.path.insert(0, 'PREFIX/lib/pythonX.X/site-packages')

Remova o comentário desta linha e substitua a informação do caminho. Se executou o explore.py no seu servidor web, pode utilizar a sua experiência do Caminho absoluto deste script para adivinhar o caminho absoluto para a directoria MoinMoin.

Exemplo: Transferiu o explore.py com o seu cliente FTP para a directoria /public_html no seu servidor web. O Caminho absoluto deste script revela /home/nowhere.com/public_html. Transferiu o MoinMoin para /MoinMoin. Planeia colocar o moin.cgi na /pubic_html/index.py no seu servidor web. Teria de inserir

sys.path.insert(0, '/home/nowhere.com')   # SUBSTITUÍDO!

Claro que um caminho relativo também funciona. Assim, seguindo o nosso exemplo, pode também inserir

sys.path.insert(0, '..')

(3) Set the path to wikiconfig.py. Agora procure

sys.path.insert(0, '/path/to/wikiconfig')

Insira o caminho para o wikiconfig.py no seu servidor web.

Exemplo: Transferiu o explore.py com o seu cliente FTP para a directoria /public_html no seu servidor web. Caminho absoluto deste script revela /home/nowhere.com/public_html. A directoria que pensou para o wikiconfig.py é /config. Planeia colocar o moin.cgi na /pubic_html/index.py no seu servidor web. Teria de inserir

# escolha um:
sys.path.insert(0, '/home/nowhere.com/config')           # caminho absoluto
sys.path.insert(0, '../config')                          # caminho relativo para o moin.cgi

wikiconfig.py

Abra ./wiki/config/wikiconfig.py.

(1) Defina o caminho para a sua directoria data. Tente encontrar

data_dir = './data/'

Substitua a directoria './data/' com a qual acede à sua directoria data.

Exemplo: Transferiu o explore.py com o seu cliente FTP para a directoria /public_html no seu servidor web. O Caminho absoluto deste script revela /home/nowhere.com/public_html. Transferiu o data para /data. Planeia colocar o moin.cgi no /pubic_html/index.py seu servidor web. Teria de inserir

# escolha um:
data_dir = '/home/nowhere.com/data/'   # caminho absoluto
data_dir = '../data/'                  # caminho relativo para o moin.cgi

(2) Defina o caminho para a sua directoria underlay. Tente encontrar

data_underlay_dir = './underlay/'

Substitua a directoria './underlay/' com a qual acede à directoria underlay no seu servidor web.

Exemplo: Transferiu o explore.py com o seu cliente FTP para a directoria /public_html no seu servidor web. O Caminho absoluto deste script revela /home/nowhere.com/public_html. Transferiu o underlay para a /underlay. Planeia colocar o moin.cgi na /pubic_html/index.py no seu servidor web. Teria de inserir

# escolha um:
data_underlay_dir = '/home/nowhere.com/data/'   # caminho absoluto
data_underlay_dir = '../data/'                  # caminho relativo para o moin.cgi

(3) Defina o URL dos seus ficheiros estáticos.

Os ficheiros estáticos como imagens e ficheiros de css são fornecidos pelo Apache e não pelo moin. Instale-os numa directoria acessível pelo Apache, e indique ao moin qual o url desses ficheiros.

url_prefix = '/moin_static160' # depende da versão do moin

Se copiou a sua directoria htdocs para /moin_static160 dentro do seu document root, não é necessário alterar isto.

Exemplo: Colocou o explore.py dentro de /public_html e chamou-o com http://www.your-domain.com/explore.py. Colocou o htdocs na /public_html/wiki. Assim, o url_prefix está correcto, não o altere.

(4) Defina as opções de configuração. Se navegou através do wikiconfig.py, verá um conjunto de opções. Defina estas opções como quiser. Para mais informações, consulte o tópico AjudaNaConfiguração.

Envie o moin.cgi e o wikiconfig.py

Terminou! Envie o moin.cgi e o wikiconfig.py e teste o seu wiki chamando o moin.cgi através do seu navegador. Pode ter de definir as permissões de ficheiros manualmente para permitir a execução do moin.cgi. Certifique-se de que envia ambos os ficheiros para as directorias descritas em cima.

Resumo

Eis um pequeno resumo de uma instalação de exemplo. Depois de ler este documento, espero que perceba o que fizemos e porquê.

ftp       ./wiki/data       ==>           /data
ftp       ./wiki/htdocs     ==>           /moin_static160
ftp       ./wiki/underlay   ==>           /underlay
ftp       ./MoinMoin        ==>           /MoinMoin

ftp       crie directoria     /config

crie     ./.htaccess      insira conteúdo:
deny from all

ftp       ./.htaccess      ==>           /data
ftp       ./.htaccess      ==>           /underlay
ftp       ./.htaccess      ==>           /MoinMoin
ftp       ./.htaccess      ==>           /config

edite ./wiki/server/moin.cgi:

  substitua:
           #!/usr/bin/env python
    por:
           #!/usr/bin/pythonX.X

  substitua:
           ## sys.path.insert(0, 'PREFIX/lib/pythonX.X/site-packages')
    por:
           sys.path.insert(0, '.')

  substitua:
           sys.path.insert(0, '/path/to/wikiconfig')
    por:
           sys.path.insert(0, './config')

ftp      ./wiki/server/moin.cgi   ==>     /moin.py
    
edite ./wiki/config/wikiconfig.py:

   defina o data_dir:
                   data_dir = './data/'

   defina o data_underlay_dir:
                   data_underlay_dir = './underlay/'

   defina o url_prefix:
                   url_prefix = '/moin_static160'

ftp      ./wiki/config/wikiconfig.py   ==>    /config/wikiconfig.py

Se o python do seu fornecedor for da idade da pedra ...