【完全無料】無料レンタルサーバー×無料ドメインでサイトを作る方法

# 本記事の対象者
・ __無料レンタルサーバー__と__無料ドメイン__を利用して、__1銭も払わずに独自ドメインのサイトを作りたい人__
・Web開発の勉強中で、__ビジネス目的のサービス構築を目的にしていない人__
・__HTTPS未対応環境でも怒らない__~~健全で優しくてカッコイイ~~__人__
# Step1. とりあえず独自ドメインを取得
ネットワークには、「ドメイン」という概念があります。
例えば、このサイトのドメインは「qiita.com」です。

ドメインを取るには、「.com」や「.jp」などのルートドメインを扱う会社と契約をする必要があります。

そんな中、無料でドメインを取得出来る

https://www.freenom.com/ja/index.html?lang=ja

というサービスがあります。

このサービスでは、__「.tk」「.ml」「.ga」「.cf」「.gq」のドメインを無料で取得出来ます__。(注:一部のレアドメインは有料です)

但し、__「.tk」などのドメインはレンタルサーバーに登録出来ない事が多い__ので、__「.cf」を取る事を推奨します。__

早速アカウントを作成し(~~作成はかなり面倒くさいです~~)、適当に「[activetk-blog.cf](http://activetk-blog.cf/)」を取ってみます。
![activetk-blog.cfのFreenomでの検索結果のキャプチャ画像](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/692350/ba335cc8-5cd5-c85c-3f3b-755d08301074.png)
上記は[Freenom](https://www.freenom.com/ja/index.html?lang=ja)にて「activetk-blog.cf」を検索した結果のキャプチャー画像です。
まだ取られていないようなので、実際に取ってみたいと思います！

右上の「Checkout」を押してドメインを取得します。
次に期限を指定するのですが、Periodの部分を「12 Months@FREE」(無料の中では最長)にして、Continueを押します。

ページが移動されたら、「Total Due Today」が$0になっている事を確認してから、「I have read and agree to the Terms & Conditions」の部分にチャックを入れ、Complete Orderを押します。

__「Your Order Number is ~」と表示されたら取得成功です。__

:::note warn
TorやVPN経由でアクセスすると稀にロボットと疑われる事がありますが、
その場合は少し時間を空けてから試してみてください。
:::

# Step2. 無料レンタルサーバーを契約
__今回は無料のレンタルサーバーとして、Xfreeを利用します。__

https://www.xfree.ne.jp/

__[こちら](https://secure.xfree.ne.jp/register/)からアカウントを作成してください。__
~~正直、名前から住所まで入力しないといけないので面倒くさいですが我慢してください~~

アカウントを作成したら、
[管理パネル – ログイン｜無料レンタルサーバー【エックスフリー】 (xfree.ne.jp)](https://www.xfree.ne.jp/login/member.php)
からログインします。

XFREE管理パネルが表示されたら、__「PHP・MySQL」の「利用を開始する」__を押してください。

利用登録が完了したら、サーバー管理パネルが表示されると思います。

そこの、「ドメイン設定」をクリックします。

更に、「ドメイン設定追加」をクリックし、「Aレコード認証について」という項目までスクロールします。

そこの「コンテンツ」に書かれている__IPアドレスをコピーしてください。__
# Step3. 連携させる

再度、[Freenom](https://www.freenom.com/ja/index.html?lang=ja)を開き、右上の__「Services」から「My Domains」をクリックします。__
![ドメイン一覧をFreenomで表示した画面のスクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/692350/680ae8d0-3a9e-bc03-be69-2451b72b134d.png)

上記は所有しているドメインの一覧をFreenomで表示した画面のスクリーンショットです。

次に、先ほど取得したドメインの右側の「__Manage Domain__」をクリックします。

そして、__「Manage Freenom DNS」をクリックして、「Add Records」の欄のTargetにコピーしたIPアドレスを貼り付けます。__

__Nameの欄には何も書かなくてOKです。__

「Save Changes」を押して、設定を保存します。
Record added successfullyと表示されれば成功です。

:::note
ついでに、{ドメイン名}.cfだけでなく、www.{ドメイン名}.cfも使用したい場合には「Add Records」の欄のTargetにコピーしたIPアドレスを貼り付けた上で、Nameの部分にWWWと書き込み、設定を保存してください。
:::

![DNS設定を保存した際の画面のキャプチャー画像](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/692350/825d3ada-2223-20d6-4734-de075e886a61.png)

上記、FreenomにてDNS設定を保存した際の画面のキャプチャー画像です。

その後、__DNS設定が反映されるまで少し待ちます。__
「{ドメイン名}.cf」にアクセスして、「設定の反映待ちか、存在しないアドレスです。」と表示されたら反映完了です。

Xfreeへログインし、[XFREE サーバー管理パネル](https://secure.xfree.ne.jp/server_php/?action_user_domain_add_index=true)からドメインを追加ページを開きます。

一番下までスクロールし、「ドメイン名」に取得したドメイン名を入れて、「認証方法」の部分はAレコード認証を選択します。

![Xfreeにてドメイン認証をする際の画面のキャプチャー画像](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/692350/ae55d498-8de4-1c59-5e41-5663a6cc50c2.png)

上記、Xfreeにてドメイン認証をする際の画面のキャプチャー画像です。
__ドメイン設定を追加する(確認)をクリックして、「確定する」を押します。__

ドメイン追加完了画面が表示されたら成功です。

__「{ドメイン}.cf」に「サーバー初期ページ」が表示されるまで数時間程度待ちましょう。__

ドメイン認証が上手くいかない場合は、DNSの反映が追い付いていない場合があります。
数時間待ってからやり直してみてください。

# Step4. ファイルのアップロード
__ファイルは「ftp」というプロトコルでアップロードします。__
Windowsには標準でftp.exeというアプリが入っていますが、知識が無い方が使用するのには向いていないので、__GUIで直感的に操作出来る「ffftp」というアプリを使う事をオススメします。__

また、FTPはかなり昔(1900年代)に制定された規格なので、不便な点が多いです。
なので、ATK-FM

https://www.activetk.cf/ATK-FM/

などの、__Web上で動作するファイルマネージャーを使うのもありかもしれません。__

具体的には、「ディレクトリのサイズを取得したい」という場合にFTPで取得すると、ファイル一覧を取得しては下の階層へ掘り下げていき、一つ一つのファイルサイズを足し合わせて。。という処理を一文一文リクエストする必要があります。
そうすると、サーバー側からすでばDOS攻撃のような負荷がかかりますし、サーバーほどスペックの無いクライアント側も大量のリソースを消費してしまいます。

それに対し、ATK-FMなどを利用すると、1度のリクエストでサーバー側で全て処理をする為、クライアント側への負荷が少なく、サーバー側への大量アクセスも必要無くなります。それ故に、自然とスピードも上がります。

:::note
「とりあえずファイルをアップロードしてみたい！」という方はXfreeに用意されているWebFTPという機能を使いましょう。
「FTPアカウント設定」からドメインを選択し、「WebFTP」のログインをクリックします。
そうすると、ファイルマネージャーが開きます。そこではWeb上でファイルを操作する事が出来ます。使える機能は最低限ですが、。。
また、WebFTPを利用してATK-FMをアップロードするのもありです。
:::

# Q&A一覧
#### Q. DNSの反映が全く終わらないんだが
DNSの反映には最長で数日かかる場合があるらしいです。

僕はいつも数分でDNSが反映されているのであまり実感が湧かないのですが、中々反映されない時は気長に待ちましょう。

#### Q. ドメインの期限更新はいつから出来る？
ドメインの更新は2週間前から可能です。

登録する際に1年間に設定しましたが、期限を更新出来るのは期限切れ2週間前からです。

登録してあるメールアドレスへ通知が行くらしいですが、見逃さないように気を付けましょう。

#### Q. FTPの設定が分からない

XfreeのFTP設定は少し分かりにくいのですが、

__サーバー : 「サーバー情報」に書かれている「ホスト名」の項目__

(sv*.php.xdomain.ne.jpなどの形式です)

__ユーザー名 : {取得したドメイン名}.cf__

__パスワード : {設定したパスワード}__

です。

サーバーが分からなくて苦労する方が多いみたいですね。。

#### Q. 検索しても自分のサイトが出てこないんだが。。

どこからかドメインがリンクされていないと検索エンジンはサイトを発見する事が出来ません。

もしくは、Google Search Consoleという物を利用したり、サイトマップを送信する方法もあります。

また、サイト内の「robots」というタグに「index」又は「all」を設定していないと検索結果に出てきません。

クローラーに登録されているかどうかは、「site:{ドメイン名}.cf」で検索すれば出てきます。
僕のサイト(activetk.cf)がGoogleに登録されるまでには、1か月程度かかりました。
※但し、サブドメイン「blog.activetk.cf」は公開日から3日程度で登録されました

# 日本語ドメイン
「Punycode」を利用すると__日本語のドメインを取得する事が出来ます。__

[日本語JPドメイン名のPunycode変換・逆変換 – 日本語.jp](https://punycode.jp/)などのサイトで日本語をPunycode化する事が出来ます。

試しに、「テストなう.cf」と入力してみます。
すると、「xn--p8judqlxbl.cf」に変換されました。

このドメインにブラウザでアクセスすると、「テストなう.cf」というドメインに置き換わりました。

このように、日本語ドメインを取得する事も出来ます。
但し、日本語ドメインは長くなりがちなので文などが含まれたドメインはオススメ出来ません。

# 有料サーバー
ドメインを取得してから数か月の間、xfreeを利用してきた訳ですが、やはり無料サーバーだけあって利用可能なのは最低限の機能です。

そこで、スターサーバーという有料サーバーを使う事をオススメします！(~~お世話になっているので宣伝しますw~~)

https://www.star.ne.jp/?ref=NAstx9hh

僕は現在、スターサーバーのライトプランを3300円(1年)で契約しているのですが、xfreeのPHP/MySQLプランとの違いとしては、

__・容量が160倍(160GB)
・PHP高速化設定がある
・SSL/TLSに対応(通信内容が暗号化されます)
・FTPの応答速度が全然違う
・接続出来るドメイン数が数倍になる
・独自ドメインのメールを作れる
・SSDなので「めっちゃ待たされる」という事が少ない__

といった所です。

やはり、__SSL/TLS(https)に対応しているという所が大きいか__と思います。
実際にビジネス目的で利用するのであれば、流石にHTTPでは信用に悪影響を及ぼしますから、必ず有料のレンタルサーバーを利用するようにしましょう。