[Mac]Web共有(ローカルWebサーバー)機能を復活

カテゴリー:Mac

2022.04.07公開

2022.04.18更新

Web共有という名前を聞かなくなって久しいですが、過去のMac OS Xの時代に、システム環境設定でWebサーバ機能のオン・オフが簡単にできました。アプリ上からは消えましたが、機能としては残っています。Macを更新したりOSをアップデートした際に改めて設定しなおしましたので作業記録として残します。

Web共有

Web共有のおさらい

Web共有とは、主にローカルネットワーク上でMacからWebサイトを公開できる機能です。それぞれのユーザーにwebディレクトリが用意されていてhttp://192.168.x.x/~ユーザID/のようなURLでローカルネットワーク上の他のMacから閲覧することができるようになります。

システム環境設定の共有パネルにファイル共有などと並んでWeb共有はありました。

かつてのWeb設定画面(v10.6)
Mac OS X 10.6のWeb共有画面

手作業で作業するためには、ターミナル(Terminal.app)を使わなければなりません。あとターミナル上で開くエディタを使います。個人的にはSierra、high Sierra、Catallinaに続き4バージョン目になります。それでは進めていきましょう。

公開するディレクトリ(フォルダ)を作る

1)ホームフォルダにSitesフォルダを作成する。

まず、ホームフォルダ内にサイトフォルダを作ります。Finderから新規フォルダで作ってもかまいませんが、あえてターミナル.appで行うと

mkdir ~/Sites

2)日本語化する

次にSitesフォルダ内に「.localized」ファイルを作成します。「.(ピリオド)」始まりはFInder上で非表示になってしまうので素直にターミナル.appを使います。

touch ~/Sites/.localized

これを作るとフォルダ名がユーザ環境の言語に変換されます。日本語なので「サイト」に変わります。

Apacheで有効化の設定

ユーザーのごとのサイト作ることができる設定を有効化します。ここからの作業は管理者権限が必要になります。適宜ファイルのバックアップをとりながら進めていきます。例えばこんな感じです。ファイル名の後ろに「.bak」をつけるようにしています。

sudo cp /private/etc/apache2/httpd.conf /private/etc/apache2/httpd.conf.bak

1) http.confを編集

Apacheの設定ファイルを編集します。ここでよく使われるのがviというエディタですが、ぼくは慣れていないので初心者にも優しい「pico」というものを使います。確かApple技術認定関係の参考書で知りました。httpd.confを開くためにターミナルで以下のコマンドを実行します。

sudo pico /private/etc/apache2/httpd.conf

ファイルが開いてターミナルのウィンドウ内に表示されます。次の2行を先頭の#を削除してコメントアウトを解除します。ちなみにぼくの環境では行数は以下のようでした。環境によって異なるかもしれません。

184行目
#LoadModule userdir_module libexec/apache2/mod_userdir.so
521行目
#Include /private/etc/apache2/extra/httpd-userdir.conf

control+Wのショートカットキーで「mod_userdir」を検索します。先頭の#を削除します。

LoadModule userdir_module libexec/apache2/mod_userdir.so

control+Wでhttpd-userdirを検索します。先頭の#を削除します。

Include /private/etc/apache2/extra/httpd-userdir.conf

control+Oでenterキーを押して上書き保存します。control+Xでファイルを閉じます。

ユーザーサイトを用意する設定をする

1) httpd-userdir.confを編集

次に「httpd-userdir.conf」ファイルをpicoで開きます。

sudo pico /private/etc/apache2/extra/httpd-userdir.conf

control+Wでconfを検索します。先頭の#を削除します。

16行目
#Include /private/etc/apache2/users/*.conf

control+Oでenterキーを押して上書き保存します。control+Xでファイルを閉じます。

Include /private/etc/apache2/users/*.conf

control+Oでenterキーを押して上書き保存します。control+Xでファイルを閉じます。

2) ユーザーごとの設定ファイルを作成

テキストエディット.app以外のテキストエディタで新規書類を作成します。古くからあるものとしてはJeditとか、miとか、最近だとVS Codeなんかが流行ってますね。そして以下の内容を入力します。<UserName>のところはWeb共有したいホームフォルダ名(ユーザーのID)に書き換えます。そして適当な場所に”あなたのユーザーID”.confというファイル名で保存します。

<Directory "/Users/<UserName>/Sites/">
    Options Indexes Multiviews FollowSymlinks
    AllowOverride All
    Require all granted    
</Directory>

出来上がったファイルをターミナル.appで、「/private/etc/apache2/users/」へコピーします。

sudo cp ~/Desktop/<UserName>.conf /private/etc/apache2/users/

Apacheを起動

Apacheを起動します。

sudo apachectl start

もう起動している場合は、再起動します。

sudo apachectl restart

実際に開けるかWebブラウザで確認してみます。以下のURLをブラウザのアドレスバーに入力して開きます。ユーザIDはデフォルトではホームフォルダの名前と同じになります。

http://localhost/~ユーザーID
web共有サーバにアクセス
サイトフォルダに何もない時の表示画面

何もファイルがないと図のような感じになると思います。

ドキュメントルートの設定

Web共有の設定は終わりましたが、Webサイト構築に利用する時に不便が生じるのでルートをユーザのSIteフォルダに変更します。

ちなみにデフォルトのルートは「/Library/WebServer/Documents/」になります。

Apache設定ファイルの編集

ターミナルでhttpd.confを編集します。picoで開きます。

sudo pico /private/etc/apache2/httpd.conf

control+WでDocumentRootを検索します。以下の二行をコメントアウトして新たにユーザーフォルダの設定を作ります。ぼくの環境では255行目、256行目でした。

255行目
DocumentRoot "/Library/WebServer/Documents"
256行目
<Directory "/Library/WebServer/Documents">

<UserName>は、前述と同様にホームフォルダ名(ユーザID)です。

#DocumentRoot "/Library/WebServer/Documents"
DocumentToot "/Users/<UserName>/Sites"
#<Directory "/Library/WebServer/Documents">
<Directory "/Users/digitalsmith/Sites">

Apacheを再起動します。

sudo apachectl restart

ブラウザで確認します。ブラウザのアドレスバーに「localhost」と入力してページを開き、ユーザサイトに用意したページにアクセスできればOKです。

http://localhost/

まとめ

MacでWeb共有の設定手順をまとめました。今回はBig SurとMontereyで設定してちゃんと動作することが確認できました。

こういう分野は苦手なので、仕事で設定していた時はただただ手順通りに進めただけだったのですが、記事を書きながら設定ファイルの文字列を見ていたら意味がなんとなくわかってきました。仕事中に設定していた時はそんな余裕がなかったので(苦笑)。

Reference: Apacheの起動・停止・再起動

Apacheの起動・停止・再起動コマンドのおさらいです。

起動

sudo apachectl start

停止

sudo apachectl stop

再起動

sudo apachectl restart

参考サイト

以下のサイトを参考にさせていただきました。ありがとうございました。

この記事のカテゴリー:Mac

Author

digital smith - N.A.
Old schoolなMacユーザー。DTPっぽいことや、WebコーディングやMacサポートとかでご飯を食べてきました。興味のあることはとりあえずやってみたいと思っている面倒くさい人。服が作りたくてIllustratorを使ったパターンメイキングを勉強しています。将来は有機農業をやってみたい。

コメントはこちらからどうぞ

CAPTCHA


同一カテゴリーの投稿