「You don't have permission to access / on this server」の意味・原因・解決

Webサイトにアクセスした際に、「you don't have permission to access」と表示され、Webサイトにアクセスできないことがありませんでしょうか。この記事では具体的な意味から解決策と、その事象や類似事象について説明します。

具体的な事象には、「WordPress」と、「Apache」を取り上げています。類似事象のエラーには、「403 Forbidden」と、「404 Not Found」になります。

「You don't have permission to access / on this server」の意味

You don't have permission to access on this server

You don't have permission to access / on this serverの意味は、サーバーへアクセスすPPる際のパーミッション(権限)をあなたは持っていませんといった、意味になります。パーミッションを設けることでファイルの保護などといったセキュリティを考慮する役割があります。

permission to accessの意味

permission to accessの意味は、~へのアクセス権という意味です。類似事象がいくつかあるので、解説していきます。

you don't have permission on this server.

「403 Forbidden」と一緒に表示されることが多いです。基本的には、『You don't have permission to access / on this server』と同じ意味になります。

違いとしては、クライアント側に問題がある(You don't have permission to access / on this server)対して、サーバー側に問題側がある(you don't have permission on this server.)と行った違いがあります。

パーミッションとは、権限という意味になるため、この場合はaccess(アクセス)の権限がないということになります。

you don't have permission to access /gadgets/ifr on this server.

アクセス権限がないとアップロードしたディレクトリや、ファイルをサーバー側で処理ができずエラーが起きます。

you don't have permission to access this resource.

you don't have permission to access this resource.
こちらは、Apacheで見かけるエラーになります。Apacheのドキュメントルートを変更した際に起きます。

変更したドキュメントルート先(ディレクトorフォルダ)のアクセス権限がないので、
you don't have permission to access this resource.と言ったエラーになります。

なお、resourceがつくのはドキュメントルートのリソースとなるディレクトリを示しているためです。

you don't have permission to access /index.php on this server.

you don't have permission to access index.php on this server.

index.phpは、PHPを使用したサービスで重要な役割を持ったファイルになります。WordPress(ワードプレス)や、Laravel(ララベル)などがその例です。

こちらは、index.phpを表示する際にアクセス権限がないので「httpd.conf」などでindex.phpへのアクセス権限を確認したりするのが良いでしょう。

you do not have permission to access this document.

you do not have permission to access this document.

主に、macOSで起きるエラーになります。document(ドキュメント)に、パーミッションがないためアクセスできないといった意味にないます。

macOSのdocument(ドキュメント)は、デフォルトでApacheやWordPressへの権限は付与されていません。そのため、文末にdocument.が付いたパーミッションのエラーになります。

you don't have permission to access /index.html on this server.

you don't have permission to access index.html on this server.
you don't have permission to access this resource.と同じようにApacheで見かけるエラーになります。

Apacheのapache.confか、.htaccessが原因で、中身がRequire 192.168.xx.xxとなっている場合はアクセス制限が掛かっています。

you don't have permission to access /download/dl3.cgi on this server.

こちらも、you don't have permission to access /index.html on this server.と同じようにApacheで見かけるエラーになります。

この場合は、LinuxにApacheを導入している時になります。GUIでの、権限の変更などができないのが特徴です。

you don't have permission to access /wp-login.php on this server.

you don't have permission to access wp-login.php on this server.

「wp-login.php」となっているので、WordPressのログイン画面へアクセスする際のアクセス権限のエラーです。「htaccess」で、「Require ip 自分のグローバルIPアドレス」となっているか確認してください。

「You don't have permission to access / on this server」の原因

原因としては、Webページを開く際に、参照したいディレクトリやファイルの権限がない場合に起きるエラーになります。

原因1.Apacheのドキュメントルートの問題

デフォルトのApacheのドキュメントルートは、「htdocs」ディレクトになりますが、
ドキュメントルートの変更先のパーミッション(権限)がない場合にエラーになります。

原因2.WordPressディレクトリ(サイトURL)の問題

WordPressをインストールする際に、WordPressディレクトリを権限のないディレクトリ配下でインストールを実行する際にエラーになります。または、WordPressディレクトリを移動した際に、上層ディレクトリのパーミション(権限)がない場合にエラーになります。

原因3.ディレクトリやファイルの権限がない

セキュリティの観点から、デフォルトで外部からアクセスできないように、パーミッション(権限)をない状態にしています。MacならDocument、WindowsならDドライブなどになります。

原因4.レンタルサーバー側の問題

ディレクトリやファイルのパーミッション(権限)に問題がない場合、レンタルサーバー側の問題が挙げられます。レンタルサーバ会社側の障害や、一時的にレンタルサーバ側でアクセス制限を掛けられて場合もエラーになります。

「You don't have permission to access / on this server」の解決

「You don't have permission to access / on this server」の解決策は、Webサーバー(Apache)のドキュメントルートを権限のあるディレクトに変更するか、ディレクトまたファイルそのものの、パーミッション(権限)を変更する2つのパターンがあります。WordPressをお使いの場合は、2つのパターンに付随してWordPressディレクトリ(サイトURL)を、パーミッション(権限)のあるディレクトリ配下に設置することになります。箇条書きにまとめると、以下のようになります。

Apacheのドキュメントルートを、パーミッション(権限)のあるディレクトに変更する。
WordPressディレクトリ(サイトURL)を、パーミション(権限)のあるディレクトリ配下に設置する。
ディレクトリ、ファイルの権限を変更する。

Apacheのドキュメントルートを変更する(MAMP)

MAMPを起動してください。以下のようなが画像になると思います。(バージョンによって若干異なる)

MAMP

なお、ドキュメントルートは「User/ユーザー名/Documents」と仮定します。デフォルトのドキュメントルートはMacの場合、「/Applications/MAMP/htdocs」になります。Windowsの場合は、「C:\MAMP\htdocs」となります。「Documents」には、パーミッション(権限)がないので、エラーになります。
画像の歯車マーク「Preferences」(環境設定)をクリックしてください。環境設定画面の「Server」からドキュメントルートを変更します。デフォルトのドキュメントルートにすることで、解決できます。

※環境設定:「Server」

環境設定

デフォルトのドキュメントルート、「/Applications/MAMP/htdocs」(Mac)または「C:\MAMP\htdocs」(Windows)にして完了です。

「httpd.conf」からドキュメントルートを変更する

ファイルの場所は、「/Applications/MAMP/conf/apache」配下になります。「httpd.conf」を開き、ドキュメントルートを変更して行きます。

ドキュメントルート 変更

各自のテキストエディタで、「DocumentRoot」を、「/Applications/MAMP/htdocs」に変更すれば完了です。

WordPressディレクトリ(サイトURL)を変更(phpMyadmin)

※phpMyadminを変更する際には、必ずバックアップを取ってください。WordPress自体が機能しなくなります。行なう際は、自己責任でお願い致します。

では、phpMyadminを立ち上げてください。起動したら以下のような画面になると思います。(バージョンによって若干異なる)

phpMyadmin

なお、wpdbにWordPressの情報を保存していると仮定します。wpdbをクリックすると、テーブル情報が表示されます。表示れたらwp_optionsをクリックし、以下の画面からURLを変更します。
※wp_options

wp_options

「siteurl」と、「home」の「wp/wordpress」のwpをパーミッション(権限)のあるディレクトリに変更します。(※wpディレクトリにパーミッションがないと仮定した場合。)変更が完了がしたらWordPressディレクトリを、変更したディレクトリに移動されば完了になります。

ディレクトリや、ファイルの権限を変更する

まずは、パーミション(権限)を確認しましょう。ターミナル(Mac)または、コマンドプロント(Windows)を立ち上げます。立ち上げたら、ls -al(Mac)dir(Windows)を使います。ぼかしが掛かっていないのがパーミション(権限)になります。

パーミション

パーミッション(権限)を変更するには、chmodコマンドを使います。以下のコマンドでユーザーに対して実行権限を付与してください。

chmod u+x 「 パーミッション」(権限)を変更したディレクトまたは、ファイル名」になります。「u」はユーザーを示し、「x」は実行の意味になります。今回のコマンドは、ユーザに対しディレクトリまたはファイルにアクセスの実行権限を付与を付与することになります。

まとめ

1. permission(パーミッション)は、権限という意味です。Webサイトを表示する時に、パーミッション(権限)がないと「You don't have permission to access / on this server」といったエラーになります。

2. chmodコマンドで、パーミション(権限)が変更できます。パーミッション(権限)を確認する時は、ls -al (Mac)、dir(Windows)コマンドになります。

3. WordPressのお使いの場合は、phpMyadminを使用してWordPressアドレスをパーミッション(権限)のあるディレクトリに変更してください。注意点として、phpMyadminのバックアップをとってから行ってください。