2013/01/24更新

[Web] Macに最初から入っているApacheのDocrootをDropboxに変更して、複数マシーンで共有する

このエントリーをはてなブックマークに追加      

こんにちは、Apache初心者の@yoheiMuneです。
本日は、ApacheのDocumentRootを任意の場所に変更する方法をブログに書きたいと思います。

画像



ApacheのDocumentRootをDropboxに変更したかった意図

自分のMacのApache上に、ブログサーバー(=レンタルサーバー)のコピーを再現しています。
ブログを書くときには、自分のMacのApacheのDocumentRoot以下にあるブログファイルに書き込んで、ブログを更新しています。

多くのブログはMac上で書くので問題ないのですが、時々iPadなどの別の機器でもブログを書きたいことが。
そんな時にDropboxにDocumentRootが入っていれば便利だなぁーと思い、今回のブログに至りました。

Evernoteでブログを書いて、それをDocumentRoot以下のブログ記事にコピーするという手順でブログ書きをやっていたこともあったのですが、 やっぱり面倒と思い、ApacheのDocumentRootごと複数マシンで共有するようにしてみました。



ApacheのDocumentRootを変更する

MacOS 10.8では、以下の場所にapacheの設定ファイルがあります。
/etc/apache2/httpd.conf

上記のファイルの中を変更することで、DocumentRootを変更することができます。
具体的には以下の部分(2カ所)を変更します。

(1カ所目)
#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
# DocumentRoot "/Library/WebServer/Documents" (変更前)
DocumentRoot "/Users/{あなたのユーザー名}/Dropbox/ApacheDocRoot" #任意のフォルダを指定する

(2カ所目)
#
# This should be changed to whatever you set DocumentRoot to.
#
# <Directory "/Library/WebServer/Documents"> (変更前)
<Directory "/Users/{あなたのユーザー名}/Dropbox/ApacheDocRoot"> #上で設定したディレクトリと合わせる
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.2/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks MultiViews

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride None

    #
    # Controls who can get stuff from this server.
    #
    Order allow,deny
    Allow from all

</Directory>

上記変更後に、Apacheを再起動すればDocumentRootが更新されます。
#apache再起動コマンド
sudo /usr/sbin/apachectl restart



もしも403 Permission Deniedが出たら

もし以下のような画面が出たら、DocumentRootに設定したディレクトリの権限設定が必要です。
画像

Apacheが対象ファイルを読み取れれば良いようなのですが以下の対処が正しいかがわからず、とりあえず自分は以下でうまく行ったので、やり方を掲載しておきます。
#DocumentRootの1つ上の階層のディレクトリに権限設定を行う
#読み取り権限と実行権限を与える
sudo chmod 755 /Users/{あなたのユーザー名}/Dropbox/  

#もしApacheが読み取るファイルindex.htmlなどに、第3者の読み取り権限が無ければ付与しておく。
sudo chmod 754 /Users/{あなたのユーザー名}/Dropbox/ApacheDocRoot/index.html
#または以下(ApacheDocRoot以下の全ファイルに、読み取り権限を付与)
sudo chmod -R o+r /Users/{あなたのユーザー名}/Dropbox/ApacheDocRoot
chmodコマンドの詳細は、以下をご参照ください。
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230728/



最後に

権限設定の部分が雑な感じですが、ApacheのDocumentRootをDropboxに設定することで、 他のデバイスでも最新のブログ内容を共有できるようになったので、いいなぁと思う今日この頃です。

最後までご覧頂きましてありがとうございました。





こんな記事もいかがですか?

RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。