Apache(アパッチ)のドキュメントルートを変更することにより、手軽にフォルダにアクセスできるようにする方法をご紹介します。
独学!未経験からWebデザイナーになる!! > テクニカルノート > テスト用Webサーバーの設定 > ドキュメントルートを変更する
※当サイトは、アフィリエイト広告を掲載し、収益を得て運営しています。
http://localhost/に対応するフォルダ(ディレクトリ)は、ドキュメントルート(DocumentRoot)と言います。
このドキュメントルートですが、初期状態では非常に不便な位置になっていることがあります。たとえば、WindowsでApacheを単品インストールしたときの場合を見てみましょう。C:\Program Files\にApacheをインストールした場合、私のApache2.2の環境では、下記のフォルダがドキュメントルートになっていました。
何ともアクセスするのに不便な場所になっていますよね。もちろん、このフォルダにショートカットを設定するなどして、アクセスしやすくしている人もいるかもしれません。しかしそれでも自分で選べるのであれば、わざわざこんな深い階層のフォルダを指定したりはしないでしょう。
実はこのドキュメントルート、Apachの設定ファイルから簡単に変更できます。このページでは、その設定方法を説明していきます。
当サイトに記載されているものは、全て学習目的のローカルテストサーバー向けです。その他の用途には適切でない可能性もありますのでご注意下さい。
例によってhttpd.confを開いてください。ドキュメントルートの設定部分は、[ DocumentRoot ]という項目にあります。検索機能がついているソフトなら、[ DocumentRoot ]で検索するのが早いでしょう。下記のような部分が見つかると思います。
この[ フォルダのパス ]は後で使うので、テキストファイルにでもメモ(コピー)しておいてください。さて、ドキュメントルートを変更するには、この部分を任意のフォルダのパスに変更すればいいだけです。なお、存在しないフォルダを指定するとエラーになりますので、あらかじめフォルダを作成しておいてください。指定方法ですが、フォルダの区切りはC:/wwwのように/(スラッシュ)にして指定します。
利便性を考え、簡単にアクセスできるフォルダにするといいでしょう。ちなみに、私のWindowsPCにインストールしているApacheのドキュメントルートは
としています。つまり、下記のように対応しているということですね。
フォルダの階層が浅いので簡単にアクセスできますから、作業効率がよくなるのは一目瞭然ですね。また、システムドライブとわけておくことにより、バックアップの管理もしやすくなるというメリットがあります。
私の場合は、このフォルダをショートカットで呼び出せるようにしているので、あっと言う間にこのフォルダを開くことが出来ます。この方法はお勧めですよ(Windowsなら、ショートカットをデスクトップにおいて、そのショートカットファイルのプロパティから設定可能です)。
これまでお話しした部分は直接的な部分だったのですが、付随して設定しておきたいのがこちらです。
ドキュメントルートのフォルダは、通常(初期設定では)特別な設定が施されています。その設定は変更前のドキュメントルートフォルダに対して設定されているので、今回ドキュメントルートフォルダを変更したことにより、そのままでは適用されません。こちらも併せて変更しておきましょう。
まずは下記のような場所を探してください。[ 旧ドキュメントルートのフォルダのパス ]の部分は、最初にメモしておいてくださいとお話ししたものです。
上記のパスを、今回新たに指定したドキュメントルートのパスに変更します。
例を挙げましょう。たとえば今回ドキュメントルートを下記のように変更したとします。
この場合は、下記の[ 変更前 ] の箇所を[ 変更後 ]のように修正します。
これは、このファイルパス以下のみに[ ~中略~ ]としている設定を適用する、という意味です。ここを修正し忘れると、いままでと挙動が変わったり、アクセスできなくなったりする可能性もあるので、忘れないでくださいね。
↓もし参考になりましたら、シェアしていただけると嬉しいです(^-^)
12/06/30 facebookページ開設しました。RSS代わりにも使いたいと思います。
馬場様、こんばんは。ゆみママです。Apacheをインストールして、外部からのアクセスを制限する設定を行うところまではうまくいきましたが、ドキュメントルートを変更するところでつまづいてしまいました。httpd.confの修正はDreamweaverで行っています。ドキュメントルートを "D:/www" に変更して、ドキュメントルートのパスを <Directory"D:/www">~</Directory>に変更して、保存しようとすると、「C:\Program Files\Apache Software Foundation\Apache2.2\htdocsへのアクセスは拒否されました」というエラーメッセージが出てきて、httpd.confを保存することができません。何か間違った操作をしてしまっているのでしょうか?お忙しいところ恐縮ですが、お教えくださいましたらうれしく思います。よろしくお願いいたします。
ゆみママさん、こんばんは。念のため確認すると、下記のような状態ということですよね!?1. セキュリティに関する設定を変更した際には、問題なくhttpd.confが保存できた。2. ドキュメントルートに関する設定を変更した際には、httpd.confの保存時に(Dreamweaverの)エラーが出て保存できなかった。上記で推測するに、ファイルを保存する権限が無いか、ファイルがロック(まれに意図せず何かのソフトがファイルをロックしてしまうことがあります)されているのかもしれません。権限の確認は言葉では少し説明しづらいので、まずは簡単な方法として、以下のことをお試しください。1. 全てのアプリケーションを一度終了させてから再試行。2.(まだ保存できなければ)OSを再起動させてから再試行。3.(まだ保存できなければ)Windowsの管理者アカウント(Administrator等)でログインしてから再試行。※すでに何度もOSを再起動させている場合は、最初から3を実行してみてください。1or2で改善すれば、ファイルがロックされていた可能性があります。3で改善すれば、おそらくファイル権限の問題でしょう(もし一般ユーザアカウントで作業中に発生したことであれば、たぶんこちらだと思います)よろしければお試しください。
馬場様、こんばんは。ご回答、どうもありがとうございます。こちらの状態を書くのを忘れていまして申し訳ございませんでした。馬場様がおっしゃる通りでございます。OSを再起動させていましたので、早速3から試してみました。管理者アカウント(Administrator)に変えて書き込みをできるようにしたのですが、それでもまだエラーが出てしまったので、ユーザーアカウントの制御を一時的に無効化するとhttpd.confを保存することができました。Apacheのインストールをする時も、「インストーラーパッケージが開けない」旨のエラーが出てきたので、ユーザーアカウントの制御を無効にするとインストールできました。(Vistaでは初期設定でユーザーアカウントの制御が有効になっているようです。)保存できるようになってよかったです。ありがとうございました。次はバーチャルホストの設定に進みます(*^_^*)
ゆみママさん、こんばんは。Vistaではそんなこともあるんですね。私は普段(いまだに)XPばかり使っているので気がつかなかったのですが、戸惑ってしまう方もたくさんいると思いますので、後日確認して本文に補足しようと思います。あまりお役に立てなかったような気もしますが、何はともあれ保存できるようになってよかったです☆
馬場様、こんばんは。このところ、毎日質問をしてしまい、大変申し訳ございません。昨日はhttpd.confを保存できたものの、肝心な再起動を忘れておりまして先程から行っているのですが、Apacheのアイコンからスタートをクリックすると、「The requested operation has failed!」が表示されてしまいました。何度も確認しましたが、入力のミスはないと思います。次に、「スタート」-「プログラム」-「Apache HTTP Server 2.2」-「Control Apache Server」-「Start」で再起動を始めると、次のようなメッセージが出てきました。「Syntax error online 179 of C:/Program Files/Apache Software Foundation/Apache2.2/conf/httpd.conf:DocumentRoot must be a directory Note the error or message above
ゆみママさん、こんばんは。お忙しい中毎日がんばっていらっしゃるんですね(^-^)エラーメッセージを拝見したところ「Syntax error online 179 ~中略~ DocumentRoot must be a directory ~」とのことなので、httpd.confの179行目付近にディレクトリ指定の構文エラーが発生しているようです。もし、ご記載いただいた下記の部分<Directory"D:/www">~</Directory>がhttpd.confにそのままに記述されているとしたら、<Directory と "D:/wwwの間に半角スペースが無いことが原因かもしれません。いずれにしても、まずは179行目付近を重点的に再チェックされるといいと思います。
馬場様、こんにちは。昨日はインターネットの通信トラブルでコメントできなかったので、今日いたしました。馬場様にご教示頂きましたところをよく見ると、半角スペースを入れていませんでした(汗)そして、早速再起動をしてみましたが、またもやエラーが出てしまい、少々パニックになっておりました。どうしたものかと思い、いろいろ検索してみたり、考えたりしてみると、ドキュメントルートに指定した所にファイルがない!という恥ずかしながら最も初歩的なところでミスをしていたようで、Dドライブに「www」のファイルを作成したのちに、Apacheを再起動するとやっと動作するようになりました。ただ、wwwファイルの中は空のままなので、画面には「It Works!」ではなくて「Index of」と出ています。やっとやっとApacheが動作してうれしいです。ありがとうございました!今日から次の作業に進みます(*^_^*)毎日コメントを書いてしまって申し訳ございません。またコメントすることがあるかと思いますが、よろしくお願いいたします。
ゆみママさん、こんばんは。結果を聞けば「DocumentRoot must be a directory」というのもそういうことか!という感じですが、こういうのはなかなか気づきにくいですよね。こういうことは明記してあった方が親切だと思いますので、あらかじめフォルダを作成しておく旨、このページ本文にも記載しておきました。解決して良かったですね(^_^)何かありましたら、またお気軽にコメントください。
馬場様、こんばんは。お久しぶりです。ここ1ヶ月間にものすごく色々なことがあって、2週間勉強できなかったのですが、やっとやっと昨日から再開できました。新しいサイトの制作は企画までで、ず~っと滞っていたのですが、やっと明日からデザインに取り掛かれそうです。そこで、お伺いしたことがございまして投稿させていただきました。全く初心者の質問でして、お恥ずかしいのですがよろしくお願いいたします。ルートディレクトリを、馬場様にご伝授いただいたように設定していて、デスクトップにフォルダのショートカットを作っています。(フォルダの名前は「www」としています。)現在、初めて作ったサイト(1つ目)のファイルはすべてこのフォルダの中に入ったままになっています。今から作ろうとしているサイトは2つ目なのですが、ローカルで試してから公開したいと思っているので、また「www」のフォルダにファイルを保存しようと思っているのですが、この場合、1つ目に作ったサイトのファイルは削除してしまってよいのでしょうか?Dドライブに新しいフォルダを作ろうと思ったのですが、ドキュメントルートの設定を”D://www”にしているので、フォルダの名前を「www」以外にすると、httpd.confのドキュメントルートの設定を変更しなければならないのですよね。例えば2つ目のサイトなので、フォルダ名を「www2」にしたとします。すると、ドキュメントルートも「D://www2」にしなければならないのですか?考えていたら頭がこんがらがって、わからなくなってしまいました。ホントに超初心者の質問でお恥ずかしい限りでございますが、ご回答いただけましたら嬉しく思います。よろしくお願いいたします。
ゆみママさん、こんばんは。> この場合、1つ目に作ったサイトのファイルは削除してしまってよいのでしょうか?Webサイトのデータは、修正のたびにサーバーからファイルをダウンロードするのも面倒ですし、バックアップにもなりますので、ローカルにも保持しておいた方がいいです。結論としては、フォルダ分けし、バーチャルホストを使う方法がいいでしょう。例えば、データを下記のように配置します。D:/www/example.jp/(1つめのサイトのデータはここに)D:/www/example.com/(2つめのサイトのデータはここに)このままでは、DocumentRootがD:/www ですから、 http://localhost/example.jp/等としなければアクセスできなくなってしまいますよね。それでもよければそのままでもいいのですが、バーチャルホストを利用した方が便利です。バーチャルホストを設定し、それぞれhttp://local.example.jp/http://local.example.com/等としてアクセスできるようにされるのがいいでしょう。(この方法は、実際のサーバーでも用いられる運用方法です)なお、バーチャルホストに関しては、当サイトのバーチャルホストを設定するを参考になさってみてください。
馬場様、こんばんは。ご回答ありがとうございます。バーチャルホストを利用するとよいのですね!初めてローカルサーバーを設置した時に、バーチャルホストも設定していました。バーチャルホストは複数設置できるとのことなので、新しく作るサイトの分を設定してみます。またわからないことが出てきたらこちらから投稿するかもしれませんが、その時はよろしくお願いいたします。ありがとうございました(*^_^*)
> バーチャルホストは複数設置できるとのことなので、新しく作るサイトの分を設定してみます。今回バーチャルホストのページへのリンクを貼る際に該当ページをざっと読み直したのですが、複数登録できることが書いていなかったので、実は昨日その点を補足した次第ですm(__)m新しいサイトのデザイン、作るのが楽しみですね☆何かありましたらまたお気軽にご投稿ください(^^)
先週、MAMPのインストール for Mac のところでの質問にご回答いただきありがとうございました。リモートのファイルをhtdocsフォルダにコピーをしてテストする事にしました。ですが、また行き詰まってしまったので質問させていただきます。httpd.conf の修正をしたのですが、<Directory "/Applications/MAMP/htdocs"> ~中略~ #Order Allow,Deny #Allow from all Order Deny,Allow Deny from all Allow from localhost 127.0.0.1 Allow from 192.168</Directory>の修正だけだと問題ないのですが、他の<Directory "/Applications/MAMP/・・・"> の所に #Order Allow,Deny #Allow from all Order Deny,Allow Deny from allの編集を加えると、MANPのスタートページが開かなくなってしまいます。上の2行はコメントにしないという事でしょうか??バックアップはとっておいたので、戻しておきましたが。また、WindowsであればDirectory がD:/wwwとのことですが、macならば <Directory "/Macintosh HD"> ということでしょうか?毎度こんな調子ですので、テストサーバの設定が完了するまではまだまだ時間かかりそうです。が、またご回答いただけたら助かります。よろしくお願いいたします。
みりん干しさん、こんばんは。> 他の> <Directory "/Applications/MAMP/・・・"> の所に上記部分ですが、"・・・"と省略されているパスが、どこを指しているのかが重要です。そのパス以下にアクセス制限をかける必要がなければ、その部分は何もしなくて(コメントアウトしなくて)大丈夫です。> また、WindowsであればDirectory がD:/wwwとのことですが、macならば> <Directory "/Macintosh HD"> ということでしょうか?D:/wwwというパスは、私がそうしているだけであって必ずそうしなければならない、というわけではありません。ですので、みりん干しさんが管理しやすいお好きな場所で大丈夫ですよ。ただ、Macintosh HD直下はさすがに使いづらいと思いますけれど☆
こんにちは。5月にご回答いただいてから、随分お久しぶりとなってしまいました。が・・、まだ未だにローカルテスト環境が整えられないでいます。今回、Dreamweaverでサイトの設定を作りました。特にドキュメントルートを変えたりはしていないんですが、私にはちょっと難しいようなのでそのまま変えないで、サイト設定をローカルサイトフォルダー:/Applications/MAMP/htdocs/サーバーで使用する接続:ローカル/ネットワークサーバフォルダ:/Applications/MAMP/htdocsWeb URL:http://localhost/詳細設定リモートサーバー、同時期情報の保持にチェックサーバモデル:PHP MySQLで保存しました。でも//localhost/目的のファイル名で確認しようとすると、ページ読み込みエラーが出てしまいます。内容は 正常に接続できませんでした localhost のサーバへの接続を確立できませんでした。 ・このサイトが一時的に利用できなくなっていたり、サーバの負荷が高すぎて接続できなくなっている可能性があります。しばらくしてから再度試してください。 ・他のサイトも表示できない場合、コンピュータのネットワーク接続を確認してください。・ファイアーウォールやプロキシでネットワークが保護されている場合、Firefox による Web アクセスが許可されているか確認してください。と出てしまいます。ここのコメント欄では書く場所が違うとは思いましたが、色々調べても全然先に進まないし、どうして良いのか分からなくなってしまいました。もう何ヶ月も進まず、くじけそうです。今、ファイアーウォールは“入”になっています。この内容で何か原因が判るようでしたら、お手数ですが、またご回答いただけたら、嬉しく思います。よろしくお願いします。
馬場様、すいません。先ほどここのコメント欄に MANPでローカルが見えないっっ! と書き込んでしまいましたが、解決いたしました。何と、MANPが起動していませんでした。あぁ。何て間抜けなことをしていたのか。恥ずかしいです。どうもお騒がせいたしました。
みりん干しさん、こんばんは。解決されたとのこと、なによりです。Webの世界では、こんなにも単純なことで時間をとってしまった!ということはたくさんあります。もちろん、私も幾度となくやっています(^^;;)そんなこんなで少しずつ成長していくものですので、全然大丈夫です。ある意味、学習が進んでいる証拠と言えるかもしれませんね☆
Copyright© Makoto Baba All Rights Reserved.
このウェブサイト内における画像、文章(適切な引用は除く)の無断転載、無断コピーなどはおやめください。
当サイトは、デザイン未経験から独学でフリーランスになった管理人が、Webデザイナーになるための情報を発信するウェブサイトです。