MacOS 10.15「Catalina」でMAMPなどのApacheのドキュメントルートを外付けHDDに設定する
何も考えずにMacOSをCatalina
にアップデートしたら外付けHDDに置いているサイトデータにアクセスできなくなってえらい目にあった。
403 Forbidden
普段はMAMPを使用していて、ノートパソコンなもので内臓HDDの容量も少ないため、サイトデータを外付けHDDに入れてドキュメントルートも当然そこに設定している。
Catalinaにアップデートし、楽しみにしていたサイドカーも調べてみたところ自分のMacもiPadも古くて対応していないとのことで、なんだよと。
まぁ仕事するかと、いつもの象のアイコンをクリックしてmysql
とApache
を起動。制作中のサイトのIPアドレスを叩くと403エラー。あれ、なんで?MAMP
を再起動しても403、HDDを挿し直しても403。
最初はパーミッションがおかしくなったのかと思ったけど問題なさそう。ググるとQiitaに一つ、同じ目にあっている人を発見。
この方の場合はポートを変更(localhost → localhost:8888)する事で対応したそう。
でも自分の場合はWordPressの案件が圧倒的に多く、その全てのデータベースの書き換えをするのは現実的ではないのでできれば避けたい。それにURLにポート番号がつかない方がスッキリしてて気持ちいい。
そこから数時間ググりまくるも、海外で同じ内容の記事はいくつか見つかるものの、どれも解決には至っておらず。。
Catalinaで変わったこと
調べているうちにわかったことは、Catalinaではファイルとかフォルダへのアクセス権周りが厳しくなったらしく、どうやらApacheから/Volumes/
へのアクセス権がないのではないかということ。
そこで、Macのシステム環境設定のセキュリティとプライバシー
内のフルディスクアクセス
にMAMPとMAMP内のapacheを追加してみた。でも403。本当はファイルとフォルダ
項目なのかなと思うんだけど、ここの「+」「ー」ボタンはグレーアウトしていて手動での追加/削除はできないみたい。ちなみにMAMPはここに登録されていて、リムーバブルボリューム
にチェックが入っている。アクセスできないくせに。
数時間あれこれしても解決できず、仕方なくその時制作しているサイトデータは残り少ない内臓HDDにコピーして、そこで作業することにした。残り14GB。。ちなみに外付けHDDのシンボリックリンクを例えばホームディレクトリなどに制作して、そこをドキュメントルートに設定してみたけどダメだった。まぁそりゃそうか。
毎日ググり続ける
そこから数日、合間合間にググり続けてはみたけど、新情報はなし。Stackのポストにも新しいレスもつかず。自分のようにドキュメントルートを外付けHDDにしてる人ってそんなにいないのかな。
少しでも容量を使わないようにiCloud Drive
にサイトデータを置いて作業していたんだけど、クラウド上にしかないファイルはgitでは削除扱いになるので、本当は必要なファイルなのにうっかりコミットしてしまうとまずい。クライアントソフトとしてSource Tree
を使っているが、ファイルステータス欄に削除されたファイルとしていくつもクラウド上のファイルがリストアップされているがそれは無視しないといけない。ミスりそうで危ない上になんとも気持ちが悪い。内臓HDDの容量残り10GB。。
半分諦めつつ、Qiitaで「MacOS Catalina」とだいぶ広めの検索をかけてみた。ドンピシャなものがなくても、何かヒントになるものがあるかもしれない。すると、こんなポストが。
目的はよくわからなかったポストだけど、mount
なるコマンドがあることを知った。あまりターミナルでの作業をすることがないのでコマンドのことは詳しくない。なんとなくこのmountコマンドについて調べてみると、このコマンドでマウントポイントの変更などができるらしい。...ん??
閃いた
前述の通り/Volumes以下の外付けHDDでは403エラーが出る。ではマウントする場所を変えて、例えば正常に動作をするホームディレクトリ以下にマウントして、そこをドキュメントルートにしてみたらどうだろうか!!
あれこれ調べて、最終的にはmountコマンドではなく、以下の記事を参考にdiskutil
コマンドでマウントポイントを変更することに。
まずは接続している外付けHDDの情報を見る。
$ df -H
すると、/Volumes/HDD
にマウントされているデバイスは/dev/disk3s2
だということがわかった。(こういう言い方で合ってるのかわかんないけど)
そして一回アンマウント。
$ diskutil unmount /dev/disk3s2
さらにホームディレクトリにWeb
というディレクトリを作って、そこにマウントしてみる。
$ sudo mkdir ~/Web
sudo diskutil mount -mountPoint ~/Web /dev/disk3s2
再度df -H
で状況を確認してみると、正しく/dev/disk3s2のマウントポイントが/Users/(ユーザー名)/Web
になっている。恐る恐るMAMPを起動し、ルートディレクトリを/Users/(ユーザー名)/Webに変更。ブラウザでlocalhostにアクセスしてみると、、、、
アクセスできたーーーー
思惑は大成功!見事アクセスできました!!!
どこにも載っていない(見つけられなかった)状況を自力で解決できたのは嬉しかったし、何よりスッキリした。気づけば朝の4:00。お疲れ様でした。
コメント2
(No Name)
8時間格闘の末この記事に辿り着き、お陰様で無事ローカル環境構築できました!
ありがとうございました!!
Author
年末にお疲れ様です!!