Como faço para o apache executar um cgi em vez de mostrar o texto?

12

Estou tentando instalar o bugzilla 4 no ubuntu 11.04

Adicionei o seguinte ao meu httpd.conf

<Directory “/var/www/dev.spincentre/bugzilla”>
   AddHandler cgi-script .cgi
   Options +Indexes +ExecCGI
   DirectoryIndex index.cgi
   AllowOverride Limit
</Directory>

Mas quando vou para a URL, o apache mostra o texto de index.cgi em vez de executar o script. Alguma idéia de como consertar isso?

FigBug
fonte

Respostas:

18

Você carregou o módulo mod_cgi? Você pode ver se o diretório / etc / apache2 / mods-enabled / possui um link simbólico cgi.load. Se não houver esse link simbólico, você poderá criá-lo executando

sudo a2enmod cgi

e, em seguida, reinicie o Apache:

sudo service apache2 restart

Você pode correr man a2enmod para ver o que a2enmodfaz.

elmicha
fonte
Eu tive um problema semelhante no Ubuntu 14.04 em um processo de migração de servidores antigos. Eu nunca pensei que o cgi teria sido desativado por padrão, o que não está no servidor antigo. Isso consertou! Plz recomenda o mesmo em stackoverflow.com/questions/15199198/… . Obrigado!
precisa saber é o seguinte
Eu tenho o link simbólico, mas o cgi ainda não está em execução.
Whitecat
1

Ao instalar o apache 2.4, tive vários problemas a resolver e também tive o mesmo problema com o texto exibido em vez de executar o cgi. A solução não é a mesma que acima, que é a solução para o apache 2.2

primeiro você baixará o arquivo 2.4 gz e descompactará. Se você tentar compilar, ele reclamará que a TAEG não foi encontrada, pois não está mais incluída. Você precisa baixar os arquivos apr e apr-util do apache e descompactá-los no diretório em que está compilando o apache no subdiretório chamado srclib, para que seu caminho seja ./httpd/srclib/apr e ./httpd/srclib/apr -util. você também deve remover qualquer número de versão do nome do diretório.

cd para o diretório / path / httpd e compile com

$ ./configure --with-included-apr

Você configura o padrão PREFIX = / usr / local / apache2

$ make

$ make install

$ vi PREFIX / conf / httpd.conf

Você precisará editar seu arquivo httpd.conf para que os cgi sejam executados

No meu caso, fiz o seguinte:

change Listen 80 to Listen 127.0.0.1:80

ativar a linha: LoadModule cgid_module modules / mod_cgid.so

alterou SeverName para: ServerName 127.0.0.1:80

alterei os caminhos no DocumentRoot e no Directory para se adequarem ao meu sistema

mudou o caminho no ScriptAlias

ativou a linha Scriptsock cgisock

mudou o caminho no diretório após o ScriptAlias ​​para se adequar ao meu sistema

ativou a linha AddHandler cgi-script .cgi

salvou as alterações e iniciou o apache com:

$ / usr / local / apache2 / bin / apachectl -k start

Espero que isso ajude quem está lutando com isso;)

Peter Trevathan
fonte
Obrigado por compartilhar, estou tendo problemas para acompanhar. Você se importaria em organizar isso um pouco melhor?
precisa saber é o seguinte