ウェブサイト検索

Linux で Apache 403 Forbidden エラーを修正する方法


Apache Web サーバーは、その安定性と信頼性により、最も人気があり広く使用されているオープンソース Web サーバーの 1 つです。 Web サーバーは、特に Web ホスティング プラットフォームで巨大な市場を占めています。

それはともかく、ウェブサイトを設定した後、ブラウザに「禁止 – このサーバーにアクセスする権限がありません」というエラーが表示される場合があります。これは非常に一般的なエラーであり、かなりのユーザーがサイトのテスト中に経験しています。では、このエラーは何でしょうか?

403 禁止エラーとは何ですか?

403 禁止エラーとも呼ばれる Apache の「禁止エラー」は、制限または禁止されている Web サイトにアクセスしようとすると Web ページに表示されるエラーです。 。

これは、Web サーバーがリクエストを理解しているものの、権限の問題によりアクセスを承認できないことを示す標準化された HTTP ステータス コードです。

通常、図のようにブラウザ上にスプラッシュされます。

さらに、以下に示すように、エラーはブラウザ上でさまざまな方法で現れる可能性があります。

  • HTTP エラー 403 – 禁止されています
  • 禁止: このサーバー上の [ディレクトリ] にアクセスする権限がありません
  • 403禁止します
  • アクセスが拒否されました アクセスする権限がありません
  • 管理規則で禁止されている403の禁止リクエスト

403 Forbidden エラーの原因は何ですか?

403 Forbidden Error」は、次の主な理由で発生します。

1. ファイル/ディレクトリのアクセス許可が正しくない

このエラーは、Webroot ディレクトリのファイル/フォルダーのアクセス許可が正しくないために発生する可能性があります。ユーザーに Web サイトのファイルへのアクセスを許可するようにデフォルトのファイル権限が調整されていない場合、Web ブラウザーでこのエラーが発生する可能性が高くなります。

2. Apache 設定ファイルの設定ミス

このエラーは、Apache 構成ファイルのいずれかの構成ミスが原因である可能性もあります。誤ったパラメータが含まれているか、構成ファイルにディレクティブが欠落している可能性があります。

3. .htaccess ファイルの設定ミス

この HTTP 応答コードが発生するもう 1 つのよくある理由は、.htaccess ファイルが破損しているか、正しく構成されていないことです。この問題が発生した場合、403 Forbidden エラーは通常、.htaccess ファイルを変更した後に発生します。

通常、ユーザーは新しい .htaccess ファイルを生成するか、その構成を修正することでこの問題に対処できます。

Apache「403 Forbidden Error」を修正する

このエラーが発生した場合、これを解決するために実行できるいくつかの手順を次に示します。

1. ファイルのアクセス許可と Webroot ディレクトリの所有権を調整する

ファイルのアクセス許可とディレクトリの所有権が間違っていると、Web サイトのファイルへのアクセスが制限されることが知られています。したがって、まず、図に示すように、Webroot ディレクトリにファイルのアクセス許可を再帰的に割り当てるようにしてください。

Webroot ディレクトリには常に 実行 権限が必要で、index.html ファイルには読み取り 権限が必要です。

cd /path/to/webroot/directory 
sudo find . -type d -exec chmod 755 {} \;
sudo find . -type f -exec chmod 644 {} \;

上記の find コマンドは、現在のディレクトリ (.) 内のすべてのディレクトリ (フォルダー) とファイルを検索し、それらのアクセス許可を 755 (ディレクトリ) と 644 に設定するために使用されます。 (ファイル)。

さらに、次のように chown コマンドを使用して、ファイルとディレクトリの所有権を特定のユーザー (tecmint) に調整し、www-data または apache をグループ化します。 。

sudo chown -R tecmint:apache .

最後に、Apache ウェブサーバーをリロードまたは再起動して、変更を有効にします。

sudo systemctl restart apache2
OR
sudo systemctl restart httpd

これでも問題が解決しない場合は、次の手順に進みます。

2. Apache メイン設定ファイルのディレクティブを調整する

Debian ベースの Linux または RHEL ベースのディストリビューションを使用している場合は、メインの Apache 構成ファイル (通常は httpd.conf または apache2.conf という名前) を開きます。

sudo nano /etc/httpd/httpd.conf       # For Apache on CentOS/Red Hat
sudo nano /etc/apache2/apache2.conf   # For Apache on Debian/Ubuntu

Web サイトの Web ドキュメント ルートに対応する セクションを見つけて、AllowOverride ディレクティブが "All" に設定されていることを確認します。 。これにより、.htaccess ファイルが構成設定をオーバーライドできるようになります。

<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

パス /var/www/html を Web サイトのドキュメント ルートの実際のパスと一致するように置き換えます。

保存して終了し、その後、Apache を再起動します。

sudo systemctl restart httpd     # For Apache on CentOS/Red Hat
sudo systemctl restart apache2   # For Apache on Debian/Ubuntu

。 .htaccess ファイル構成を修正する

Web ディレクトリに .htaccess ファイルがある場合は、その構成を確認してください。構成設定が間違っているか、構文エラーがあると、ユーザーが特定の Web コンテンツにアクセスできなくなる可能性があります。

行をコメントアウトするか、ファイルを一時的に削除して、問題が解決するかどうかを確認します。

これらの手順をすべて試してもまだエラーが発生する場合は、仮想ホスト ファイルの構成を確認してください。

Apache 仮想ホスト ファイルを構成する方法については、次の記事で詳しく説明しています。

「禁止 – このサーバー上の/にアクセスする権限がありません」エラーを解決するには、ファイルの権限、所有権、サーバー構成を確認して調整する必要があります。

記載されている手順が 403 エラーの解決に役立つことを願っています。