Locked History Actions

AjudaNaInstalling/ServidorStandalone

Instalar e configurar um servidor standalone

Veja também: AjudaNaConfiguração/IntegrarComApache

O servidor standalone foi feito especialmente para os wikis locais, por não necessitar de um servidor web instalado. São apenas necessários, o Python e o Moin!

Para instalar e executar o servidor standalone:

  1. Se o WikiMoinMoin ainda não estiver instalado, faça uma ../InstalaçãoBásica

  2. Crie uma instância do wiki como descrevemos na ../CriaçãoDeInstânciasDoWiki

  3. Copie o moin.py para a sua directoria wiki, onde se encontra o seu wikiconfig.py

  4. Se instalou com a opção --prefix, é necessário editar o moin.py e configurar a docs no caminho correcto.

  5. Execute o moin.py

  6. Aceda ao seu wiki em http://localhost:8000/

Na maioria dos casos, as definições por omissão são suficientes. Se quiser pode editar o moin.py e alterar algumas das opções, como as que descrevemos na secção seguinte.

Configurar o moin.py

Configuração do caminho de sistema

Se fez uma instalação standard, e não é um programador, deve saltar esta secção. Caso contrário, adicione o caminho para o poin e para o ficheiro config, assim:

import sys
sys.path.insert(0, '/caminho/para/moin')
sys.path.insert(0, '/caminho/para/wikiconfig')

Opções da classe Config

Opção

Por omissão

Comentário

name

'moin'

Nome do servidor, utilizado por omissão para ficheiros log e pid. (!) Novo na versão 1.5

docs

'/usr/share/moin/wiki/htdocs'

Caminho para os ficheiros do moin partilhados. Se utilizou a instalação --prefix, o caminho por omissão não funcionará, e terá de definir o caminho como 'PREFIX/share/moin/wiki/htdocs'.

user

'www-data'

Se executar como root, o servidor irá executar a partir deste utilizador

group

'www-data'

Se executar como root, o servidor irá executar a partir deste grupo

port

8000

Porto para receber. Para receber um porto privilegiado abaixo de 1024 terá de executar como root

interface

'localhost'

A interface a que o servidor prestará atenção. Por omissão, prestará atenção apenas ao localhost. Configure como '' para prestar atenção a todas.

logPath

name + '.log'

Ficheiro de acessos. O ficheiro por omissão é comentado.

serverClass

'ThreadPoolServer', 'ThreadingServer', 'ForkingServer', 'SimpleServer', 'SecureThreadPoolServer'

O tipo de servidor a utilizar. Veja os comentários no ficheiro moin.py. Por omissão é o 'ThreadPoolServer', que cria um conjunto de threads e reutiliza-os para novas ligações. (!) Novo na versão 1.3.5

threadLimit

10

Quantas threads a criar.

requestQueueSize

50

A contagem de pedidos de ligação por socket colocados em buffer pelo sistema operativo. (!) Novo na versão 1.3.5

properties

 {} 

Permite a sobreposição de qualquer propridade de pedido, definindo o valor neste dicionário. Por exemplo, properties = {'script_name': '/mywiki'}. (!) Novo na versão 1.5

ssl_privkey

 None 

Se utilizar o SecureThreadPoolServer, este terá de apontar para a chave privada do servidor (!) Novo na versão 1.6

ssl_certificate

 None 

Se utilizar o SecureThreadPoolServer, este terá de apontar para o certificado do servidor (!) Novo na versão 1.6

  • (!) Podem existir mais opções úteis para programadores do moin. Veja os comentários em moin.py

Utilizar o servidor standalone com segurança

(!) Novo na versão 1.6

O servidor standalone suporta SSL ao utilizar a classe do servidor SecureThreadPoolServer. O suporte SSL é fornecido pela TLSLite library. Todo o tráfego do wiki é forçado a passar pelo SSL ao utilizar o SecureThreadPoolServer.

São necessárias ainda duas opções de configuração adicionais ao utilizar o SecureThreadPoolServer. Em primeiro lugar, o ssl_privkey tem de apontar para a chave privada do servidor. Em segundo lugar, o ssl_certificate tem de apontar para o certificado do servidor.

/!\ O TLSLite não suporta uma senha protegida por uma chave privada sem que outras bibliotecas sejam utilizadas. Para mais informações, consulte a página web doTLSLite.

Normalmente, um certificado seria comprado a uma autoridade de certificados, como a Thawte (http://www.thawte.com). No entanto, uma vez que a utilização sugerida do servidor standalone é para uso pessoal, um certificado auto-assinado deve ser suficiente. Para mais informações sobre como gerar uma chave privada do servidor, e um certificado auto-assinado, consulte as páginas de HOWTO openssl.

Por exemplo, para criar a chave privada do servidor, execute o seguinte:

openssl genrsa -out privkey.pem 2048

Para criar um certificado auto-assinado para a nova chave privada criada, execute o seguinte:

openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095

O moin.py precisará então de tomar conhecimento da existência dos ficheiros privkey.pem e cacert.pem gerados. Para o exemplo em cima, é necessário acrescentar as seguintes linha ao moin.py:

    ssl_privkey = "/caminho/seguro/para/privkey.pem"
    ssl_certificate = "/caminho/seguro/para/cacert.pem"

/!\ Utilizar um certificado auto-assinado fará com que o seu navegador gere um aviso a dizer que não consegue verificar a identidade do servidor do wiki. Isto é porque o certificado não foi assinado por uma autoridade de certificados (CA) reconhecida. Para não ver este aviso, é necessário comprar um certificado a uma CA.

Configurar o wikiconfig.py

O ficheiro config de exemplo deve ser suficiente.

O valor do url_prefix_static por omissão é codificado no script do servidor standalone. Não o altere ou não funcionará!

Iniciar o servidor

Execute moin.py a partir da linha de comandos:

$ ./moin.py
Serving on localhost:8000

Teste o seu wiki em http://localhost:8000/

Em Windows, pode clicar duas vezes em moin.py para iniciar o servidor. Uma nova janela do terminal será aberta. Feche a janela ou pressione em Control + Pause para parar o servidor.

Em Unix, interrompa o servidor com Control + C para o desligar.

Porto 80 em Unix

Em GNU/Linux, Mac OS X ou outro sistema operativo do tipo Posix, pode ter o porto 80 standard utilizada para web serving, mas tem de executar como root para isto.

Defina o port como 80, e verifique que o user e o group existem no seu sistema. Se não, defina-os para um utilizador existente, destinado a web serving. Se necessário, faça chown à directoria do seu wiki para este utilizador e grupo.

Execute moin.py como root:

$ sudo moin.py
Password:
Serving on localhost:8000
Running as uid/gid 70/70

Teste o seu wiki em http://localhost/

Executar como daemon

Se executar em Unix, pode executar o moin.py como um processo de fundo:

  1. Tenha um moin.py a funcionar como explicamos em cima

  2. Copie o ficheiro prefix/share/moin/server/moin para a directoria do seu wiki.

  3. Inicie o servidor do moin:

./moin start

Para parar o servidor:

./moin stop

Para mais informações, execute o moin sem argumentos.

Se quiser iniciar o moin a partir de um script de iniciar de sistema, pode precisar de adicionar o caminho para o moin.py no topo do script:

# Adicione o caminho para a directoria moin.py 
import sys
sys.path.insert(0, '/path/to/moin')
  • (!) Novo na versão 1.5