O ScriptAlias é necessário no Apache 2 se o caminho estiver definido em conf.d?

1

Estou instalando o apcupsd em uma nova instalação do CentOS 7 que está executando o Apache / 2.4.6 (CentOS).

Instalei o status CGI para o apcupsd, mas continuo recebendo a mensagem de erro ao tentar acessar a página de outra estação de trabalho:

Forbidden

You don't have permission to access /apcupsd/upsstats.cgi on this server.

O URL para ele na LAN é assim:

http://mysite/apcupsd/upsstats.cgi?host=127.0.0.1&temp=F

Se eu executar este URL em um navegador da web no servidor, tudo funcionará bem.

Então eu percebi que o Apache não sabe que o apcupsd está localizado em / var / www / apcupsd, então é melhor eu dizer isso.

No entanto, quando eu olho em /etc/httpd/conf.d eu vejo que há um apcupsd.conf que se parece com isso:

#
# apcupsd configuration file for Apache Web server
#

# files are off the documentroot of Web server
Alias /apcupsd /var/www/apcupsd
<Directory /var/www/apcupsd>
 AddHandler cgi-script cgi pl
 Options ExecCGI
</Directory>

#
# Allow only local access at default
# Change the ".example.com" to match your domain or modify
# access rights to your needs to enable remote access also.
#
<Directory "/var/www/apcupsd">
    DirectoryIndex upsstats.cgi
    AllowOverride None
    Options ExecCGI Indexes
  <IfModule mod_authz_core.c>
    # Apache 2.4
    Require local
  </IfModule>
  <IfModule !mod_authz_core.c>
    # Apache 2.2
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
    Allow from ::1
  </IfModule>
</Directory>

Então eu vejo que já existe script lá para dizer que o / apcupsd é / var / www / apcupsd.

Ainda não está funcionando para o CGI porque recebo a mensagem de erro acima.

Preciso fazer outra coisa para que este arquivo em conf.d seja carregado / executado? O /etc/httpd/conf/httpd.conf precisava ser editado, se sim, por que e para quê, porque eu vejo que o "alias" está sendo feito no conf.d para o arquivo apcupsd.conf. Parece que tudo isso está funcionando e deve funcionar.

O que eu estou negligenciando?

    
por Edward_178118 15.05.2016 / 07:27

1 resposta

0

Ter duas seções Directory exatamente para o mesmo diretório é uma má idéia na maioria das circunstâncias, então mescle-as. Por exemplo, você tem Opções em ambos, portanto, um sempre substituirá o outro, pois ambos definem as opções de maneira absoluta.

Verifique o log de erros. O Apache sempre registra algo quando gera a mensagem 403 Proibida. Se não houver nada no log, ou você está procurando no log errado ou seu CGI gerou o 403 em si (há, na verdade, uma outra possibilidade, mas é um caso de borda, se você tiver um RewriteRule com o 'F 'bandeira).

Um outro comentário, a diretiva Require local não parece válida para mim, então você está realmente usando o Apache v2.4?

    
por 01.10.2016 / 11:33