Proibido (403), ao acessar o status do servidor no apache 2.2.22

2

Estou recebendo o erro "Proibido" ao tentar acessar www.website.com/server-status

mod_status está ativado

O VirtualHost:

<VirtualHost *:8080>
   ServerName  website.com
   ServerAlias www.website.com
   DocumentRoot /var/www/wordpress/
   DirectoryIndex index.php
   <Directory /var/www/wordpress/>
      AllowOverride All
      Order Deny,Allow
      Allow from all
      Options +Indexes
   </Directory>

<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from .website.com
</Location>

   ErrorLog /var/www/wordpress/logs/error.log
   CustomLog /var/www/wordpress/logs/access.log combined
</VirtualHost>

Eu tentei alterar o Permitir de .website.com para o IP do site e ocorreu o mesmo problema. Quando tento alterá-lo para Permitir de todos, obtenho um 404.

Outra tentativa que fiz foi configurar o allow from 127.0.0.1 e acessar via lynx de dentro do servidor, o mesmo problema.

Aqui está o erro recebido no error.log:

[error] [client 127.0.0.1] client denied by server configuration: /var/www/wordpress/server-status

Além disso, desativei a substituição do local status.conf para garantir que a única definição de status do servidor esteja no VirtualHost. Definir o local do status do servidor no apache.conf fornece os mesmos resultados.

Alguma ideia do que estou perdendo?

Eu tentei ajudar os recursos a seguir, o que nenhum me forneceu uma solução:

  1. Módulo do Apache mod_status
  2. Status do servidor Apache 403 em porta não padrão
  3. postagem do Apachelounge

Obrigado

    
por Shahar Galukman 26.11.2014 / 08:02

3 respostas

1

A linha Permitir de não tem a ver com o seu site. Allow from permite que pessoas com um endereço IP especificado (ou nome de domínio que resolva um IP) acessem seu website.

Portanto, se sua casa tiver um endereço IP 2.2.2.2, você deve colocar allow from 2.2.2.2 e NÃO allow from yourownwebsite.com .

Isso deve corrigir o seu 403 (proibido), embora eu saiba que você disse que tentou mudar isso para 127.0.0.1, e acessá-lo diretamente do servidor. Você já tentou mudar 127.0.0.1 para localhost ?

Agora, em relação ao 404. Essa é uma questão totalmente diferente. Isso é um erro "Não encontrado" e não um erro "proibido".

Os contêineres do VirtualHost, por padrão, não devem ser usados com o mod_status. Simplesmente não vai funcionar. De acordo com este site , você tem duas opções:

  1. Faça o servidor escutar em uma porta alternativa (como 8080)
  2. Altere o asterisco para o endereço IP público do seu servidor - então, você pode acessar o status do servidor somente de localhost / 127.0.0.1
por 26.11.2014 / 10:06
2

Verifique se você tem a configuração certa do VertualHost. Você pode tentar criar a configuração do VirtualHost para 127.0.0.1, desta forma:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName 127.0.0.1
    DocumentRoot /var/www
    <Directory />
            Options FollowSymLinks
            AllowOverride All
    </Directory>
    <Directory /var/www>
      Options +FollowSymLinks
      AllowOverride None
      order allow,deny
      allow from all

    </Directory>

</VirtualHost>

Encontrou aqui

    
por 19.12.2014 / 10:05
0

Eu não sei muito sobre o WordPress, mas se é algo como o Laravel, Magento, ou qualquer outro software web que roda no Apache, existe um arquivo .htaccess que está localizado no diretório raiz, um exemplo simples do link está bem aqui:

 # BEGIN WordPress
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Eu apostaria dinheiro real que, se você mudar

AllowOverrides All

para

AllowOverrides None

a página aparece, no entanto para mim a conflação do arquivo .htaccess e o httpd.conf, junto com a terrível bagunça de Deus que são todos os arquivos conf do Apache, eu escolho atender a isso de uma maneira diferente .

Eu escolho alterar o arquivo .htaccess do que é mostrado acima, por exemplo, para:

 # BEGIN WordPress
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} /server-status
    RewriteRule ".?" "-" [S=1]
    RewriteRule . /index.php [L]
</IfModule>
# END WordPress

isso fará com que o RewriteCond corresponda ao ponto de extremidade uri, e então faça o RewriteRule pular a regra de controle que reescreve todos os endpoints para index.php para que o mecanismo wordpress possa trabalhar com URLs dinâmicos.

Há talvez uma maneira mais simples, mas eu teria meu http.conf da seguinte forma:

<VirtualHost *:8080>
    ServerName  website.com
    ServerAlias www.website.com
    DocumentRoot /var/www/wordpress/
    DirectoryIndex index.php
    <Directory /var/www/wordpress/>
        AllowOverride All
        Order Deny,Allow
        Allow from all
        Options +Indexes
    </Directory>
    <Location /server-status>
        SetHandler server-status
        Order deny,allow
        Deny from all
        Allow from 10.0.0.0/24
    </Location>
    ErrorLog /var/www/wordpress/logs/error.log
    CustomLog /var/www/wordpress/logs/access.log combined
</VirtualHost>

alguma leitura de acompanhamento?

link

link

    
por 14.11.2018 / 11:28