web-dev-qa-db-ja.com

禁止(403)、Apache 2.2.22でサーバーステータスにアクセスする場合

Www.website.com/server-statusにアクセスしようとするとForbiddenエラーが発生します

mod_statusが有効になっている

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>

許可を.website.comからWebサイトのIPに変更しようとすると、同じ問題が発生します。すべてから許可に変更しようとすると、404が表示されます。

私が行ったもう1つの試みは、127.0.0.1から許可を設定し、サーバー内からlynx経由でアクセスすることでした。同じ問題がかなりありました。

Error.logで受け取ったエラーは次のとおりです。

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

さらに、status.confの場所のオーバーライドを無効にして、唯一のサーバーステータス定義がVirtualHostに存在するようにしました。 Apache.confでサーバーステータスの場所を設定しても、同じ結果が得られます。

何が欠けているのですか?

私は解決策を提供していない次のリソースを支援しようとしました:

  1. Apacheモジュールmod_status
  2. 非標準ポートのApacheサーバーステータス4
  3. Apacheloungeポスト

ありがとう

2
Shahar Galukman

Allow from行は、Webサイトとは関係ありません。 Allow fromは、指定されたIPアドレス(またはIPに解決されるドメイン名)を持つユーザーがWebサイトにアクセスすることを許可します。

したがって、自宅のIPアドレスが2.2.2.2の場合は、allow from 2.2.2.2および[〜#〜]ない[〜#〜]allow from yourownwebsite.com

403(禁止)を修正する必要がありますが、これを127.0.0.1に変更して、サーバーから直接アクセスしようとしたとお聞きしました。 127.0.0.1をlocalhostに変更してみましたか?

さて、404に関してです。それはまったく別の問題です。これは「見つかりません」エラーであり、「禁止」エラーではありません。

VirtualHostコンテナーは、デフォルトでは、実際にはmod_statusでの使用を意図していません。それは単に機能しません。 このWebサイト によると、2つのオプションがあります。

  1. サーバーを代替ポート(8080など)で待機させる
  2. アスタリスクをサーバーのパブリックIPアドレスに変更します。その後、localhost/127.0.0.1からサーバーのステータスのみにアクセスできます。
2
David W

VertualHostの構成が正しいかどうかを確認します。次のように、127.0.0.1のVirtualHost構成を作成してみることができます。

<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>

見つけた ここ

2
druss

WordPressについてはあまり知りませんが、Laravel、Magento、またはApacheで実行される他のWebソフトウェアのようなものであれば、。htaccessルートディレクトリにあるファイル https://codex.wordpress.org/htaccess の簡単な例はここにあります:

 # 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

あなたが変えれば

AllowOverrides All

AllowOverrides None

ページが表示されますが、.htaccessファイルとhttpd.confの統合、およびApacheのすべてのconfファイルである神のひどい混乱とともに、私はこれに別の方法で参加することを選択しました。

.htaccessファイルを上記の例から次のように変更することを選択します。

 # 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

これにより、RewriteCondがエンドポイントuriに一致し、RewriteRuleがすべてのエンドポイントをindex.phpに書き換える制御ルールをスキップして、wordpressエンジンが動的URLで動作できるようになります。

より簡単な方法があるかもしれませんが、私は自分のhttp.confを次のようにしています:

<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>

一部のフォローアップ読書?

https://httpd.Apache.org/docs/2.2/en/mod/mod_rewrite.html

https://httpd.Apache.org/docs/2.2/howto/htaccess.html

0
Chris