Hospedagem compartilhada: usando uma versão personalizada do Perl para CGI

2

Estou tentando renovar alguns sites antigos desagradáveis em um host compartilhado barato usando um desses novos frameworks Perl (Dancer). Eu tive problemas de dependência de módulo com a instalação de Perl existente (5.6.1) então eu construí uma nova versão (5.12) localmente.

A nova versão Perl parece funcionar bem ao testar meu aplicativo ou ao usar o servidor de desenvolvimento, e eu esperava poder mudar o shebang do script CGI para apontar para o novo Perl e o Apache serviria bem. Infelizmente, no log de erros do Apache, acabei de receber:

failed to open log file
fopen: Permission denied
[Thu Dec  9 14:45:21 2010] [error] [client 138.***.***.***] Premature end of script headers: /home/www/hosts/blahblah/cgi-bin/bb/public/dispatch.cgi

Isso parece indicar que o Apache não pode encontrar ou executar minha nova versão do Perl, mas não vejo por que não.

Eu verifiquei as permissões no meu Perl local e elas são todas 755, que eu acho que o usuário www poderia acessar e executar ok. Agora eu fiquei sem ideias? Há mais alguma coisa que eu possa tentar?

Eu posso conectar o SSH ao servidor de hospedagem, mas não tenho root perms nem acesso à configuração do Apache.

Obrigado.

    
por mikesname 09.12.2010 / 16:09

1 resposta

2

Não tenho certeza se devo "responder" isso sozinho, mas acabei descobrindo o problema. Eu tinha instalado minha própria versão do Perl em um diretório ~ / perl5, mas aparentemente o Apache só via dentro ~ / www (um link simbólico apontando para o meu nome de domínio). Reconstruindo o Perl e todos os módulos dentro do / www / perl5 .

Lições aprendidas:

  • se eu tivesse configurado o Perl com a opção "relative @INC paths" ativada, eu poderia ter movido o lote todo e economizado um bom tempo - não é o padrão.
  • O
  • cpanm (App :: cpanminus no CPAN) é uma verdadeira economia de tempo para a instalação de módulos Perl e suas dependências, se você estiver em um ambiente restrito e não conseguir que o CPAN regular funcione.

É improvável que isso ajude alguém em uma situação semelhante, mas você nunca sabe.

(Incidentalmente, agora eu resolvi os problemas de compilação / execução, executando uma estrutura moderna como Dancer não parece estar funcionando com CGI antigo regular. Pode haver alguns problemas de configuração restantes, mas parece incrivelmente lento para servir meu minúsculo aplicativo, mas esses são problemas para uma pergunta diferente sobre SF.

    
por 10.12.2010 / 01:18