検索
ホームページ運用・保守ApacheApache 403 の禁止を解決する方法

Apache 403 の禁止を解決する方法

Apache 403 の禁止を解決するにはどうすればよいですか?

apache httpd サーバー 403 禁止問題

1. 問題の説明

apache2 の httpd 設定では、 403 はさまざまな場面で登場します。

httpd サービスをインストールしたばかりなので、もちろん 403 問題は発生しません。この問題は主に、いくつかの構成を変更した後に発生します。問題の説明は次のとおりです:

DocumentRoot ディレクトリのポイントを変更した後、サイトで 403 エラーが発生しました。

仮想ホスト ディレクトリを設定すると 403 が発生する場合もあります。

Apache の httpd サービスは正常に開始されました。正常に見えますが、アクセスする権限がありません。

ログが表示されます: へのアクセス / 拒否 (ファイルシステム パス '/srv/lxyproject/wsgi/) django.wsgi ') パスのコンポーネントに検索権限がないためです。

仮想ディレクトリを設定した後、エラー ログが表示されます: サーバー構成によりクライアントが拒否されました: /srv/lxyproject/wsgi/django.wsgi

2. 問題と解決策の分析

以下の手順に従って問題を解決するときは、エラー ログの内容に注意してください。はい、始めます。

1. httpd.conf のディレクトリ設定ファイル

たとえば、DocumentRoot が変更されたことが示されている場合は、「/usr/local/site/test」に変更されます。 mkdirを使用してsiteディレクトリとtestディレクトリを作成し、testディレクトリ配下にindex.htmlを配置します。この場合、httpd.conf の設定を確認する必要があります。

あなたの は DocumentRoot と一致している必要があります。このディレクトリは Apache のディレクトリへのアクセス許可設定であるためです。正しいディレクトリのみが設定されており、DocumentRoot は効果。

<Directory "/usr/local/site/test">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn&#39;t give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks
    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride None
    #
    # Controls who can get stuff from this server.
    #
    Require all granted
</Directory>

2. ディレクトリ アクセス許可

設定が 403 のままの場合、最初の手順は正しいです。ディレクトリ設定 すべて。そうしないと、当然のことながら、すべてのアクセスが拒否されます (403)。

[すべてから許可] または [すべての処理許可を要求] に設定できます。

のルート ディレクトリにある Deny from all を変更しないでください。

3. ディレクトリのアクセス許可

まだ 403 である場合は、Web サイトのディレクトリのアクセス許可に問題がある可能性があります。

Apache では、ディレクトリに実行権限 (x ) が必要です。ディレクトリ ツリーにはこれらの権限が必要であることに注意してください。

ディレクトリが /usr/local/site/test の場合、/usr、/usr/local、/usr/local/site、/usr/local/site/test の 4 つのレベルがすべてのディレクトリであることを確認します。 755の権限を持っています。

#chmod 755 /usr/local/site
#chmod 755 /usr/local/site/test

私が犯した間違いの 1 つは、最終レベルのディレクトリのアクセス許可のみを設定し、上位レベルのディレクトリのアクセス許可を設定しなかったことで、結果は 403 になりました。

4. 仮想ディレクトリ

[このように書いたことがないので、この問題に遭遇したことはありません。オンライン情報には次のように書かれており、参考になります]

仮想ディレクトリに設定されている場合は、httpd.conf で仮想ディレクトリを定義する必要があります。これは次のフラグメントのようになります。

Alias /folder "/usr/local/folder"                       
<Directory "/usr/local/folder">                         
    Options FollowSymLinks                            
    AllowOverride None                              
    Order deny,allow                               
    Deny from all                                 
    Allow from 127.0.0.1 192.168.1.1                       
</Directory>

この場合、次のように記述します。上記のコードと同様に、3 つのどのフォルダーも同じです。間違いなく 403 になります。解決方法は、Aliasの後ろのスラッシュ以降の文字列を、仮想ディレクトリのフォルダ名と異なる名前に変更すれば、変更した仮想ディレクトリを使用してアクセスできるようになります。フォルダーでも問題ありませんが、トラブルを恐れず、Alias の後ろにある仮想ディレクトリ定義文字 (赤色) と実際のフォルダー名 (黒色) が異なっていれば問題ありません。

5. Selinux の問題

それでも 403 のままの場合は、selinux が問題を引き起こしているため、ディレクトリに selinux 権限を設定できます。

今日この問題に遭遇しました。

#chcon -R -t httpd_sys_content_t /usr/local/site
#chcon -R -t httpd_sys_content_t /usr/local/site/test

オンライン情報によると、この手順のほとんどは実行されません。しかし、私の問題は、それがシステムに関連している可能性があり、具体的な原理がよくわからないということです。

6. wsgi に関する問題

仮想ホスト構成は次のとおりです:

<VirtualHost *:80>
WSGIScriptAlias / /srv/lxyproject/wsgi/django.wsgi
Alias /static/ /srv/lxyproject/collectedstatic/
ServerName 10.1.101.31
#ServerName example.com
#ServerAlias www.example.com
<Directory /srv/lxyproject/collectedstatic>
  Options Indexes  FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>
<Directory /srv/lxyproject/wsgi/>
    Allow from all
</Directory>
ErrorLog   /etc/httpd/logs/lxyproject.error.log
LogLevel warn
</VirtualHost>

ログ エラーにアクセスします:

client denied by server configuration: /srv/lxyproject/wsgi/django.wsgi

解決策方法:

の「すべてから許可」を「すべて許可する必要がある」に変更します。

この問題はバージョンが原因です。

私の httpd バージョンは:

[root@yl-web conf.d]# rpm -qa |grep httpd
httpd-devel-2.4.6-31.el7.centos.x86_64
httpd-tools-2.4.6-31.el7.centos.x86_64
httpd-2.4.6-31.el7.centos.x86_64

2.3 より前のバージョンの場合は「すべてから許可」を使用し、バージョン 2.3 以降の場合は「すべてから許可」を使用します。すべて許可する必要があります。

rree

以上がApache 403 の禁止を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Apache80ポートが占有されている場合はどうすればよいですかApache80ポートが占有されている場合はどうすればよいですかApr 13, 2025 pm 01:24 PM

Apache 80ポートが占有されている場合、ソリューションは次のとおりです。ポートを占有するプロセスを見つけて閉じます。ファイアウォールの設定を確認して、Apacheがブロックされていないことを確認してください。上記の方法が機能しない場合は、Apacheを再構成して別のポートを使用してください。 Apacheサービスを再起動します。

Apacheを開始できない問題を解決する方法Apacheを開始できない問題を解決する方法Apr 13, 2025 pm 01:21 PM

Apacheは、次の理由で起動できません。構成ファイル構文エラー。他のアプリケーションポートとの競合。権限の問題。メモリから。デッドロックを処理します。デーモン障害。 Selinux許可の問題。ファイアウォールの問題。ソフトウェアの競合。

ApacheでCGIディレクトリを設定する方法ApacheでCGIディレクトリを設定する方法Apr 13, 2025 pm 01:18 PM

ApacheでCGIディレクトリを設定するには、次の手順を実行する必要があります。「CGI-Bin」などのCGIディレクトリを作成し、Apacheの書き込み許可を付与します。 Apache構成ファイルに「Scriptalias」ディレクティブブロックを追加して、CGIディレクトリを「/cgi-bin」URLにマッピングします。 Apacheを再起動します。

Apacheバージョンを表示する方法Apacheバージョンを表示する方法Apr 13, 2025 pm 01:15 PM

Apacheサーバーでバージョンを表示するには3つの方法があります。コマンドライン(Apachectl -vまたはapache2ctl -v)を介して、サーバーステータスページ(http://&lt; server ipまたはdomain name&gt;/server -status)を確認します。

Apacheサーバーを再起動する方法Apacheサーバーを再起動する方法Apr 13, 2025 pm 01:12 PM

Apacheサーバーを再起動するには、次の手順に従ってください。Linux/MacOS:sudo systemctl restart apache2を実行します。 Windows:Net Stop apache2.4を実行し、ネット開始apache2.4を実行します。 Netstat -A |を実行しますサーバーのステータスを確認するには、STR 80を見つけます。

Apacheのサーバー名以上の削除方法Apacheのサーバー名以上の削除方法Apr 13, 2025 pm 01:09 PM

Apacheから追加のservernameディレクティブを削除するには、次の手順を実行できます。追加のservernameディレクティブを識別して削除します。 Apacheを再起動して変更を有効にします。構成ファイルを確認して、変更を確認します。サーバーをテストして、問題が解決されていることを確認します。

Apacheを始める方法Apacheを始める方法Apr 13, 2025 pm 01:06 PM

Apacheを開始する手順は次のとおりです。Apache(コマンド:sudo apt-get install apache2または公式Webサイトからダウンロード)をインストールします(linux:linux:sudo systemctl start apache2; windows:apache2.4 "serviceを右クリックして「開始」を右クリック) (オプション、Linux:Sudo SystemCtl

Apacheのデータベースに接続する方法Apacheのデータベースに接続する方法Apr 13, 2025 pm 01:03 PM

Apacheはデータベースに接続するには、次の手順が必要です。データベースドライバーをインストールします。 web.xmlファイルを構成して、接続プールを作成します。 JDBCデータソースを作成し、接続設定を指定します。 JDBC APIを使用して、接続の取得、ステートメントの作成、バインディングパラメーター、クエリまたは更新の実行、結果の処理など、Javaコードのデータベースにアクセスします。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。