Este é um servidor da web simples escrito em Plain Erlang.
Erlang/OTP 23 é necessário para executar este servidor. Erlang/OTP 24 é recomendado.
A melhor maneira de depurar o programa é apenas fazer o seguinte:
$ cd src/
$ erlc *.erl && erl; rm -rf ./*.beam # This will rebuild everything from scratch, so there would be no problems with cached files
...
Eshell V11.2 (abort with ^G)
1> server:start().
Antes de usar essa abordagem, não se esqueça de criar arquivos de configuração:
$ cp -r configs/ /etc/MeowMeow/ # Porbably you will need root(i.e. sudo)
Compilar usando o verificador3:
$ rebar3 as prod release
Então você precisa criar configurações em /etc/MeowMeow/ . Depois disso, você pode executar o servidor:
$ ./_build/prod/rel/MeowMeow/bin/MeowMeow <desired mode of running>
Se você precisar de ajuda nos modos de execução, execute apenas um script sem argumentos para obter ajuda.
Coloque seus arquivos em /var/www/ diretório, eles serão servidos estaticamente. Atualmente, o suporte fastcgi disponível para servir arquivos que não são estáticos.
Aviso importante: Na versão atual, os erros de sintaxe na configuração não são verificados, portanto, a configuração incorreta pode levar a erros fatais.
A configuração do servidor é armazenada em /etc/MeowMeow/meow.conf . A sintaxe é a seguinte:
Directive1 Args
Directive2 Args
Suporte atual a seguir Diretivas:
LogLevel <<LEVEL>> Defina o nível de registro de 0 a 4 (0 - Nothing, 4 - registre tudo)KeepAlive <<MS>> Conexão padrão de Keep-alive Time em milissegundosListenPort <<PORT>> Porta onde ouvir conexõesListenHost <<HOSTNAME/IP>> nome de host para ouvirDocDir <<DIRECTORY>> Diretório com arquivos para servir Para configurar rotas, você precisa editar /etc/MeowMeow/routes.conf . A sintaxe é a seguinte:
Route <wildcard pattern>
Directive1 Args
Directive2 Args
Host <wildcard pattern>
Directive3 Args
End
End
Route define o padrão dos caminhos de solicitação para os quais as diretrizes seriam aplicadas. Além disso, as diretivas podem ser aplicadas pelo cabeçalho Host (como em um exemplo acima). As diretivas são aplicadas em ordem, conforme adicionadas no arquivo de configuração. As diretivas atualmente suportadas pelo servidor:
Abort <<CODE>> - Parar de processamento Solicitação e envie Código de Status HTTP/1.1 <<CODE>> para o ClienteNo-Content - envia HTTP/1.1 204 No Content para o clienteDisallow - envia HTTP/1.1 403 Forbidden para o clienteSet-Header <<HEADER>> <<VALUE>> - Define o cabeçalho da resposta <<HEADER>> para <<VALUE>>ExecFCGI <<FILE>> <<FCGI_HOST>> <<FCGI_PORT>> <<FCGI_TIMEOUT>> - pergunta o fastcgi em execução <<FCGI_HOST>>:<<FCGI_PORT>> para executar <<FILE>> com o tempo de <<FCGI_TIMEOUT>>Set-Code <<CODE>> Define o código de status para uma resposta.Send-File <<PATH>> envia o arquivo como uma resposta.Você pode ver um exemplo de configuração de regras de roteamento aqui
src/erl_fastcgi.erl ): Os direitos autorais do Código definidos em alguns dos arquivos no src/ Diretório não são aconselhados e propostos apenas para uso interno. Todo o código, exceto mencionado na seção de créditos , está licenciado sob licença do MIT (consulte a licença para obter mais informações)