Os scripts CGI no Apache2 proíbem 403 quando o CGI está em uma pasta vinculada

2

Estou executando o Ubuntu 16.04 como uma máquina virtual. Eu tenho o Apache2 2.4.18 instalado.

Eu tenho uma pasta com scripts cgi que eu quero usar. Para fazer isso, coloquei um link simbólico para essa pasta em / usr / lib / cgi-bin.

Quando eu chamo o script do firefox localhost/cgi-bin/linkName/script.cgi , recebo o erro 403 proibido.

Quando copio o script.cgi para /usr/lib/cgi-bin e o chamo com localhost/cgi-bin/script.cgi , ele é executado, mas apresenta um erro de software, pois não possui os arquivos e pastas adjacentes.

Eu tenho chmod 777 no link e na pasta que ele vincula, mas ainda recebo o erro.

O que mais posso fazer além de lidar com todos os arquivos e pastas em /usr/lib/cgi-bin ?

    
por Gadi Armony 01.12.2016 / 09:07

1 resposta

0

É porque o link simbólico aponta para um diretório, que está localizado fora dos diretórios listados em seus arquivos "virtualhost".conf . Portanto, você precisa anotar as diretivas necessárias em seu arquivo /etc/apache2/apache2.conf (ou /etc/apache2/sites-available/*.conf ou /etc/apache2/conf-available/*.conf ) para acessar /usr/lib/cgi-bin . Algo como:

Alias /cgi-bin/linkName /usr/lib/cgi-bin

<Directory /usr/lib/cgi-bin>
        Options +ExecCGI FollowSymLinks
        DirectoryIndex disabled
        AllowOverride None
        Require all granted
        # etc..   
</Directory>

E talvez (mas não tenho certeza de que seja necessário): sudo chown -R www-data:www-data /usr/lib/cgi-bin .

Se você criar Alias /cgi-bin/linkName /usr/lib/cgi-bin , não precisará criar um link simbólico.

    
por pa4080 01.12.2016 / 09:28