テスト用に立てたMacのApachのDocumentRootを外付けHDに引っ越したら、「HTTP 403 Forbidden」you don't have permission to access this resource. が出た件で悩んだが、MacOS側のアプリケーションのアクセス権が問題だった。(chownではない)
前提:
Macにテスト用のapacheを立ててるんだけど、もともとのDocumentRootがメインのHDにある。
あまりメインHDの容量増やしたくなくて、テストWEBを外付けHDに引っ越そうとした。
(lnしようとしたけど、途中でVirtualServerでいいのでは、となった)
現象:
403エラーが出て外部HDは見れなかった。
調査:
- apache内のアクセス権
- ファイルのアクセス権
1についてはhttpd.conf と .htaccessの設定らしいが見た目問題ない。というか同一のファイルで元のdocumentrootにあるものはVirtualServerで問題なく見れる。
2.については、元のディレクトリとアクセス権を同じにしたり、オーナー変えたりしたが変わらなかった。
確認にもうえらい時間かかって、ジャングルの中彷徨ってる気分になった。
たとえばApache2.4なのでhttpd.confのデフォルトアクセス設定が
<Directory />
AllowOverride none
Require all denied
</Directory>
となってるのでこれも受け付けるようにしてみたが動かない、とか(ノーガード戦法)
(Require all allow)
解決編
・・・・焼きそば作ってて同じようなことがあったのを思い出した。
MacのOSのたしかMojaveからCatalinaにUPDATEに何か全く別のアプリで同じようなアクセス権周りの確認をサポートに何回かしたことを。
(アプリケーション側のアクセス権の話。Macでアプリで新しいディレクトリを開こうとすると権限をつけるか聞かれるやつ。
つまり、Httpdのアプリケーション(アプリケーション・・・なの?)(それはそうだけど)自体のアクセス権が足りなかった。(Macのアプリケーションかと言われるとちょっと考えるな)
設定は「システム設定」→「プライバシーとセキュリティ」→フルディスクアクセスのタブにある。こちらにhttpdのアプリを追加して権限を付与する。
普通のファイルを開くダイアログで、探させるため、/sbinとか行けないので、エイリアスをデスクトップに作っといて対応した。
これで見れるようになりました。完!
謝辞 ChatGPT3.5
もうここら辺の設定したのも昔のことなので覚えてなくて、色々聞いた。何度でも聞けるからとても助かるけど、オチは教えてくれなかった。