2015年の5月5日に無料gooブログに加入してブログというものを始めたのだが、gooブログだとJavaScriptのコードを貼ったりするのが制限されていたりと、何かと使いづらかったので別のブログサービスへの移転を考えていた。
いろいろ考えた結果、専用のドメインを取得してレンタルサーバーも借りてみた。
これだと、自由に自分で設定が出来るので快適だ。
その反面、全部自分でやらなくてはならないので、データのバックアップなども自分でやる必要があるが、今のところそこまでは手が回らないので、追々やって行きたい。
ワテの場合、プログラミング経験はかなり長い。
全てのプログラミング言語を使いこなせるという訳では無いが、主要なプログラミング言語は大体使える(と思っている)。
また、IT関連の話題に関しても世間一般の人よりは詳しいつもりだ。
しかしながら、そんなワテでもWEB関連のプログラミングは未経験であり、WEBサイト作成の経験も殆ど無い。かなり前に簡単なホームページのHTMLを手書きで作った程度だ。
今回、独自のドメイン名を取得してレンタルサーバーも借りて自分のWEBサイトを運営するところまで漕ぎ着けたのだが、計画してからWEBサイトの立ち上げ完了まで約二週間ほど掛かってしまった。
IT専門家(自称)のワテでさえ、自分のサーバーでこのブログを開始するまでにかなり苦労した訳なので、世間一般の皆さんにはなお更ハードルが高いと思う。
ここでは、ワテの二週間の悪戦苦闘の過程を解説する事により、皆さんがドメイン取得・レンタルサーバー契約をする場合の参考にして頂きたいと思う。
では、本題に入ろう。
「エックスサーバー社」は名前が怪しい⁉
今この瞬間に皆さんが訪問して頂いているのは、ワテのブログサイト
https://www.wareko.jp/
である。
このサイトの実体はエックスサーバー社が運営している有料レンタルサーバーにある。そして、今皆さんが読んで頂いているこの記事もそのサーバーに保管されているのだ。
レンタルサーバーをこれから借りようと検討中の人ならこのエックスサーバー社の名前を聞いた事があるかもしれない。
しかしワテは知らなんだ。
その為に、ワテの第一印象は「エックスサーバー?聞いた事が無いぞ。」と言う感じだった。
それに英語で書くとXSERVERとなるが何だか怪しい感じ。エックスと言う名前がある種のアダルトサイト系の名前すら連想させる。実はワテがそうだった。
だからレンタルサーバー契約を検討中の人であっても、エックスサーバーと言う謎めいた名前なので何となく無意識に敬遠する人が出て来るんじゃ無いだろうかなあと思う。名前で損をしているかもしれない。
でも、XSERVER社は普通のレンタルサーバー会社だ。逆にアダルト系の運営は規約で禁止しているのでXSERVER上には健全なサイトしかない。
かつ業界の古株であり、また、数あるサーバー会社の中では大手と言ってもよい部類に入るのがエックスサーバー社だ。
独自ドメインを取得してレンタルサーバーを借りる手順
さて上記の通り、今現在はワテが借りているのは、
月額900円(税抜)から、高速・多機能・高安定レンタルサーバー『エックスサーバー』
だ。
そしてドメイン wareko.jp を取得して使っている。
ドメインの取得やレンタルサーバーの契約などは全く初めての経験だったので分からない事ばかりだった。
まず混乱したのが、ドメインの取得とサーバー契約の順番だ。分かってしまうと簡単なのだが、ワテが混乱したのはドメインとサーバーを別会社で契約した場合の設定に関してだ。
組み合わせとしては、以下の三つがある。
- ドメインとサーバーを同じ会社で契約する
- ドメインとサーバーを別会社で契約する
- ドメインは後で取るとしてサーバーだけを先に借りる
一番目の項目のようにドメインとサーバーを同じ会社で契約するのが分かり易いのは言うまでも無い。
契約後はその会社の管理画面にログインして設定作業を行えば良いからだ。
ワテはドメインとサーバーを別会社で契約した
でも、ワテの場合はドメインとサーバーを別会社で契約した。
その理由は、複数のドメイン取得会社を比較した場合に、一番安い会社でとりあえずこの wareko.jp というドメインを取得したのだ。その時点でサーバー契約をどこにするかは決めていなかった。
ドメインを取得した会社でもサーバー契約をする事が可能であったのだが、幾つかのサーバー会社を比較して、とある会社のWindows VPSと言う種類のサーバーを契約した。
このようにドメイン契約とサーバー契約を別々の会社で行っても全く問題は無いのであるが、初めての経験であり、また二社の管理画面で設定作業が必要になるので初心者のワテはますます混乱した。
両者のサポート窓口や、2ch.netのネットワーク関連スレッドで質問するなどして一つずつ疑問を解消しながら、ワテが取得したドメイン wareko.jp とレンタルサーバーのIPアドレスのDNS設定を無事に行う事が出来た。
以下、その辺りの簡単な解説。
DNS設定はドメイン名を取得した会社(レジストラ)で行う
ドメインをA社で取得 例: example.com
サーバーはB社で契約 例: 10.10.10.10
と言う例で説明しよう。
この場合、何もしなくてもB社のサーバーにはIPアドレスの数字
http://10.10.10.10/
でアクセス可能だ。
これをドメイン名
http://www.example.com/
でアクセス出来るようにするのがDNS(Domain Name Server、ドメインネームサーバー)の設定だ。
それらの設定は、ドメイン名を取得した会社のユーザーログイン画面に入って行えば良い。どこの会社でも契約時にユーザー登録するので、そのIDを使ってログインするとDNSの設定などと言う名前のメニューがある。あとは、そのヘルプなどを参考に設定を行えば良い。
やる事は簡単で、
ドメイン名 | IPアドレス |
www.example.com | 10.10.10.10 |
表1 DNS設定の例
この二つを対応させる為のDNS設定を行うだけなので慣れてしまえば数分で完了する。
でもワテの場合は、初めての経験だったので数日掛かった。まずこの設定をA社でやるのかB社でやるのかすら分からなかったのだ。結論としては、ドメイン名を取得した会社でやれば良い。
リダイレクト設定
なお、www が先頭に付かない形式
http://example.com/
でアクセスした場合にどのページを表示するかなども初心者の人は混乱すると思う。
世の中の多くのサイトでは、
http://example.com/
http://www.example.com/
もどちらでアクセスしても同じページが表示されるケースが多い。
その場合は、例えばWEBサイトの実体は
http://www.example.com/
に作っておいて、example.com へのアクセスが有った場合には、
http://example.com/ ➜ http://www.example.com/
このように転送を行う設定をすれば良い(Redirect、リダイレクト設定)。
これにはいくつかの手法があるのだが、初心者のワテにはそんな知識は全く無かった。
今(2016/8/18)となってはかなり学習したので理解出来ているのだが。
ここでは代表的な手法を紹介したい。
リダイレクトの手法は以下の通り
まずDNSの設定を追加する
ドメイン管理会社の設定画面で、先頭にwwwの付かない example.com とIPアドレスを関連付ける設定を追加する。
ドメイン名 | IPアドレス |
example.com | 10.10.10.10 |
www.example.com | 10.10.10.10 |
表2 DNS設定の例
このDNS設定を行うと、wwwの有り無しに関わらずexample.comへのアクセスは 10.10.10.10 というIPアドレスを持つWEBサーバーへ来るようになる。
例えば、ブラウザーで以下のどのアドレスにアクセスが有ってもIPアドレス10.10.10.10を持つWEBサーバーに飛んで来る。
http://www.example.com/
http://www.example.com/home/…
http://www.example.com/blog/…
http://example.com/
http://example.com/home/…
http://example.com/blog/…
その後の処理はWEBサーバー側で行う。
WEBサーバー側での設定
10.10.10.10のIPアドレスを持つレンタルサーバー上では何らかのWEBサーバーが動いている。
主なWEBサーバーの例。
Apacheサーバー | アパッチサーバーは、世界中でもっとも多く使われているWebサーバソフトウェアであり、大規模な商用サイトから自宅サーバまで幅広く利用されている。 |
nginx(エンジンエックスと読む) | フリーかつオープンソースなWebサーバである。処理性能・高い並行性・メモリ使用量の小ささに焦点を当てて開発されている。 |
IIS | Microsoft Internet Information Services (IIS) は、Microsoft Windowsの標準Webサーバー |
表3 主なWEBサーバー(Wikipediaより引用)
これらのWEBサーバーには、サイト訪問者のブラウザーのアドレス欄に記述されているURLの値、つまり
http://www.example.com/home/…
と言う文字列も渡って来る。
従ってその文字列に応じてどのページを表示するかをWEBサーバー側で制御する事が可能になる。
Apacheサーバーの場合
.htaccessファイルに設定を書き込む。
具体的にな記述は省略するので他のサイトなどで勉強して下さい。
IISの場合
Windows Server 2012R2などのサーバーOSにログインするとサーバーマネージャという専用の管理ツールが利用出来る。その中からIISマネージャを起動すると、IISに関する各種の設定をGUIを使って非常に簡単に行う事が可能だ。
ApacheでもIISでもWEBサーバーで転送設定を上手く行う事によって、例えば
URL | フォルダ構造 |
http://example.com/ | サーバールート/home/ |
http://www.example.com/ | サーバールート/home/ |
http://www.example.com/home/ | サーバールート/home/ |
http://example.com/blog/ | サーバールート/blog/ |
http://www.example.com/blog/ | サーバールート/blog/ |
表4 サイトURLとフォルダ構造の関連付けの例
のようにアクセスを制御する事が可能だ。
つまり、
- www有無に関わらず同じフォルダを表示する
- ホームページは /homeという名前のフォルダにまとめておく。
- /bolgという別フォルダではブログ関連のページを作成する。他のページも同様。
だ。
ApacheでもIISでもこれらの設定は 301 Redirect設定と呼ばれる。
301 リダイレクトと言うのは何?301の意味は?
と言う疑問が出るのは当然だ。
実はワテも知らなかったので調べてみた。
WEB関連の決まり事の多くは
The Internet Engineering Task Force (IETF®)
という国際的な団体が規定・管理しているRFC(Request for Comments)という名称の文書で標準化されている。
RFCは多数の文書があり、RFC XXXX と言う名称で呼ばれる。
その中のRFC 2616と言う文書でこの301に関する規定がある。
HTTPサーバーは例えばページが見つからない場合には
HTTP 404 Not Found
と言うステータスコードを返す。皆さんも見た事が有るだろう。
この404と言うのがRFCの規定では、ページが見付からないという意味のHTTPステータスコードとなる。
ステータスコードも多数がるがその中の301は、
301 Moved Permanently(恒久的に移動した)
と言う意味になる。
要するにそのページは別のページやサイトに引っ越しましたよという意味になり、WEBサーバーはその引っ越し先のページを表示する。訪問者の側ではブラウザーなどでその301というステータスコードを受信出来るので、当該サイトが恒久的に引っ越した事が分かる仕組みだ。
この恒久的なページの移動(301 Moved Permanently)を実現する手法が、世間では
301 Redirect(301 リダイレクト)
と呼ばれるのだ。
なお、3XX系のステータスコードにはこれ以外にも数種類あり、
307 Temporary Redirect(一時的リダイレクト)
なども有る。興味ある人は調べてみると良い。
サブドメインとサブディレクトリ
ワテの場合、今まで説明した内容はWEBサイト作成を始めた当初は全く知らなかった。
自分でいろいろ試行錯誤を重ねていく過程で理解出来るようになったのは、WEBサイトを作成し始めて半年後くらいか。
まだまだ分からない事も多いが。
サブディレクトリの301リダイレクト
さて、今までの説明には出て来なかったのだが、WEBサイトの特定のフォルダ(blog)を別のサーバー(10.10.10.20)に引っ越したい場合も有るだろう。
URL | フォルダの場所の例 | 状況 |
http://www.example.com/blog/ | http://10.10.10.10/blog/ | 引っ越し前 |
http://10.10.10.20/blog/ | 引っ越し後 |
表5 サブフォルダの引っ越し
上表の例では、今まで http://10.10.10.10/blog/ に有ったページの実体を別IPアドレスのサーバー http://10.10.10.20/blog/ に引っ越したい。
この場合には、URLのドメイン名の部分 http://www.example.com/ は変更が無いのでDNSの設定は無関係だ。
従ってこの引っ越しの設定は、現状のWEBサーバー http://10.10.10.10/ の設定(.htaccessなど)において、
http://10.10.10.10/blog/ ➜ http://10.10.10.20/blog/
への 301 Redirect を行えば良い。
一方、サブドメインの場合はこのやり方では出来ない。
サブドメインを別サーバーに作る場合
例えば下表のようにサブドメイン blog を作成して http://blog.example.com/ でアクセスが有った場合には、別IPアドレス http://10.10.10.20/blog/ でページを作成したい場合にはどうすべきか。
URL | フォルダの場所の例 |
http://blog.example.com/ | http://10.10.10.10/blog/ |
http://10.10.10.20/blog/ |
表6 サブドメインとフォルダの場所の例
この場合には、DNSサーバーの設定で下表の三行目を追加すれば良い。
ドメイン名 | IPアドレス |
example.com | 10.10.10.10 |
www.example.com | 10.10.10.10 |
blog.example.com | 10.10.10.20 |
表7 サブドメインを追加するDNS設定の例
このDNS設定を行うと、blog.example.com へのアクセスは 10.10.10.20 へ飛んでくるので、あとは .htaccess の設定で blog フォルダの中身を表示する設定を書けば良い。
ワテ推薦のエックスサーバー
まとめ
WEBサイト作成の初心者のワテが自分のWEBサイトを開設するまでの主な手順を紹介した。
- ドメイン名の取得とレンタルサーバーの契約
- DNSの設定をドメイン名を取得した会社(レジストラ)の設定画面で行う
- サブドメインとサブディレクトリの関係を理解する
- 301リダイレクトの設定をApacheの.htaccessやIISのWeb.configなどで行う
これらの設定が無事に完了すると、自分のWEBサイトにサブドメインを追加したり、サブディレクトリを追加したりして、多くのページを作成する事が可能になる。
本を読む
WEBサイトの構築やWordPressの使い方などを学ぶのにはお勧めの本だ。
コメント