XAMPP for Macでhtdocsの権限エラー『アクセス権限がありません』が毎回出る問題を3ステップで解決

目次

なぜMac版XAMPPでhtdocsの権限エラーが頻発するのか

Mac版XAMPPで開発していると、こんなエラーに悩まされていませんか?

アクセス権限がありません
ファイルを開けませんでした

htdocsフォルダ内でファイルを作成するたびに、以下の画像の部分を手動で権限変更したり、chmodchownコマンドで権限変更が必要になる…この繰り返しにうんざりしている方も多いはずです。

htdocsフォルダの権限変更画面

ここでchmod 777を使って解決しようとする方もいますが、これは「とりあえず動く」だけの対処法です。本番環境やDocker、Linux環境では通用しませんし、セキュリティ上も推奨されません。

この問題の根本原因は、htdocsフォルダ自体ではなく、ApacheがmacOSの管理領域(/Applications)配下をDocumentRootとして使用していることです。/Applicationsはroot管理のディレクトリであり、Apacheの実行ユーザーとGUI操作ユーザーが一致しないため、ファイル作成時に権限エラーが頻発します。

【結論】DocumentRootを変更すれば解決

この問題を根本から解決する方法は、ApacheのDocumentRoot設定を変更して、ホームディレクトリ配下の新しいフォルダを使うことです。

やること:Apache設定ファイルの編集

XAMPPのApache設定ファイル(httpd.conf)を編集して、DocumentRootと<Directory>の指定を新しいフォルダに変更します。これにより、htdocsが果たしていた「Webのルートディレクトリ」という役割を、新しいフォルダが担うようになります。

重要なのは、htdocsはフォルダ名ではなく「役割」だということです。Apacheに「このパスをWebのルートとして使え」と教えているだけなので、設定を変えればどのフォルダでもhtdocsになれます。

やってはいけないこと

  • XAMPP本体を別の場所に移動する
  • htdocsフォルダを物理的に別の場所に移動する

これらは絶対に避けてください。XAMPPは内部で絶対パスを前提としており、移動すると起動スクリプトや権限設定が壊れ、予期しないトラブルの原因になります。

【3ステップ】DocumentRoot変更手順

ステップ1: 新しい作業フォルダを作成

まず、ホームディレクトリ配下に新しい作業フォルダを作成します。ターミナルを開いて以下のコマンドを実行してください。

mkdir -p ~/Sites/xampp-projects

フォルダ名は自由に変更できます。例えば~/web-development~/localhostなどでも構いません。

ステップ2: httpd.confの編集

XAMPPのApache設定ファイルを編集します。ターミナルで以下のコマンドを実行してください。

sudo nano /Applications/XAMPP/xamppfiles/etc/httpd.conf

VS Codeを使っている方は、以下のコマンドでも開けます。

sudo code /Applications/XAMPP/xamppfiles/etc/httpd.conf

ファイルが開いたら、以下の2箇所を探して編集します。

【編集箇所1】DocumentRoot

以下の行を探します(240行目付近):

DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs"

これを以下のように変更します:

DocumentRoot "/Users/あなたのユーザー名/Sites/xampp-projects"

【編集箇所2】Directory

次に、すぐ下にある<Directory>の行を探します(245行目付近):

<Directory "/Applications/XAMPP/xamppfiles/htdocs">

これも同じように変更します:

<Directory "/Users/あなたのユーザー名/Sites/xampp-projects">

重要: あなたのユーザー名の部分は、実際のmacOSのユーザー名に置き換えてください。ユーザー名が分からない場合は、ターミナルでwhoamiコマンドを実行すると確認できます。

編集が完了したら、ファイルを保存して閉じてください(nanoの場合はCtrl + Oで保存、Ctrl + Xで終了)。

※ 環境によっては/Applications/XAMPP/htdocs(xamppfilesなし)になっている場合もあります。httpd.conf内のDocumentRootの記述を確認して、実際のパスに合わせてください。

ステップ3: Apache再起動と動作確認

設定を反映させるために、XAMPPのApacheを再起動します。XAMPP Control Panelを開いて、Apacheの「Stop」→「Start」をクリックしてください。

次に、動作確認用のファイルを作成します。

echo "<?php phpinfo(); ?>" > ~/Sites/xampp-projects/test.php

ブラウザでhttp://localhost/test.phpにアクセスして、PHPの情報ページが表示されれば成功です!

設定後の確認ポイント

正しく変更されたか確認する方法

設定が正しく反映されているか、以下の方法で確認できます。

  • http://localhost/にアクセスして、「Welcome to XAMPP」ページが表示されなくなる(新フォルダは空なので何も表示されない)
  • 新フォルダ内にHTMLファイルを作成して、権限エラーが出ないことを確認
  • ファイル作成後、chmodchownなしでブラウザからアクセスできることを確認

よくあるトラブルと解決法

トラブル1: Apacheが起動しない

設定ファイルに記述ミスがある可能性があります。以下のコマンドでエラーログを確認してください。

tail -f /Applications/XAMPP/xamppfiles/logs/error_log

トラブル2: 403 Forbiddenエラーが出る

<Directory>ブロック内の設定を確認してください。以下のようにRequire all grantedが設定されているか確認します。

<Directory "/Users/あなたのユーザー名/Sites/xampp-projects">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

トラブル3: パスの指定が間違っている

パスは必ず絶対パスで指定してください。~は使えません。正しいパスは/Users/あなたのユーザー名/Sites/xampp-projectsの形式です。

まとめ:一度設定すれば権限エラーから解放

Mac版XAMPPでhtdocsの権限エラーに悩まされていた方も、DocumentRootを変更することで完全に解決できます。

  • 原因はhtdocsフォルダではなく、Apacheが/Applications配下をDocumentRootにしていること
  • 解決策はApacheの設定でDocumentRootを変更すること
  • XAMPP本体やhtdocsフォルダの物理的な移動は絶対にNG
  • 一度設定すれば、今後はchmodchown不要で快適開発

この設定により、ホームディレクトリ配下で自由にファイルを作成・編集できるようになり、開発効率が大幅に向上します。なお、この設定はLaravelやWordPress、静的HTML開発などすべてに共通して有効で、DockerやLinux環境へ移行した際にも違和感なく対応できます。Mac版XAMPPを使っている方は、ぜひ試してみてください!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次