なぜMac版XAMPPでhtdocsの権限エラーが頻発するのか
Mac版XAMPPで開発していると、こんなエラーに悩まされていませんか?
アクセス権限がありません
ファイルを開けませんでしたhtdocsフォルダ内でファイルを作成するたびに、以下の画像の部分を手動で権限変更したり、chmodやchownコマンドで権限変更が必要になる…この繰り返しにうんざりしている方も多いはずです。

ここで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.confVS 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ファイルを作成して、権限エラーが出ないことを確認
- ファイル作成後、
chmodやchownなしでブラウザからアクセスできることを確認
よくあるトラブルと解決法
トラブル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
- 一度設定すれば、今後は
chmodやchown不要で快適開発
この設定により、ホームディレクトリ配下で自由にファイルを作成・編集できるようになり、開発効率が大幅に向上します。なお、この設定はLaravelやWordPress、静的HTML開発などすべてに共通して有効で、DockerやLinux環境へ移行した際にも違和感なく対応できます。Mac版XAMPPを使っている方は、ぜひ試してみてください!
