自分のホームページってどうやって作る?

Web, プログラミング

ホームページを作るといっても,いろいろなレベルがあるわけだけれど,どうやったら自分のページがインターネット上に持てるかという話を記しておく。自分にとって,今でこそ当たり前のような知識になっている部分もあるけど,最初は何も分からなかったので(今も何もわかっていない),まとめとく。

まず,もっとも基本的なWebページは,単純な文章のみの構成になる。ファイルに末尾に.htmlという拡張子がついたファイルを作って,その中にHTMLのお作法に則って文章を書くことによって,SafariとかChromeとかIEとかFireFoxなどのブラウザが読み込める形式にする。実際,これだけでWebページはもう完成する。このファイルをサーバーに乗っけて,いろいろと設定をして公開することで,インターネットに接続している人なら誰しもが読める簡単なホームページができる。これだけで。(じゃあ,サーバーとかはどうすればいいのという話だが,その話はとりあえず置いとく。)

ただ,HTMLだけで記述した文章だと味気ない単なる文字の羅列になってしまいがちになる。古いWebページを思い浮かべるとわかりやすい。大学の教員のページなんか割と古めだったりするので,見てみるといいかも(失礼な)。もちろんHTMLをばりばり複雑に書けばある程度の見た目にさせることもできるけど,めんどくさいし,到達点はそれほど高くない。そこで,味気ないページをより鮮やかに,スタイリッシュにデザインするためにCSSというものを用いる。具体的には,ファイルに.cssという拡張子をつけて,その中にCSSのお作法に則って自分の好きなように書いて保存すれば,HTMLファイルを装飾して綺麗な見た目に整えることができる。

これで,だいたいの現代的なWebページは見た目に限って言えば作ることができる。ただ,動的なページを作ろうとした場合,(クリックしたら動くとか,ログインとかログアウトとか,そういうの)必要な知識量とかレベルが一気にグンと上がる。クリックしたらページの何かが動くとか,ドラッグドロップできるとか,そういうのは割と簡単に,JavaScriptというプログラミング言語を使えば書くことができる。ファイルに,.jsという拡張子をつけて,その中にやりたい動作のプログラムを書けばよい。ただ,ログインとかログアウトとか,そういうものになるともっと複雑な処理が必要になる。というのも,ログインするならユーザーのメールアドレスだったりパスワードを保存する場所を用意しなければいけないし,その保存されたデータそれぞれに対して表示されるページも動的に次々と変えなければいけないからである。例えば,ユーザのプロフィールページなんかは,ログインしているユーザ名に応じてそれぞれ変えないといけないだろうし,プロフィール画像とかもそうだろうし,その人の投稿もユーザ名やメアドと結びつけて表示しなければならない。これは,やることが一気に複雑になる。

この辺りの処理は,上のようなやりかたにおいては,(Node.jsを使えば書けるが)JavaScriptでは書けない。なんでかっていうとJavaScriptのコードは,普通にブラウザなら開発画面というところからWebページを開くと見えてしまうので,JavaScriptでそういう処理を書こうとするとユーザー名とかパスワードが丸裸になってしまって,大変危険。よって,多くの場合は違う言語を用いてその処理を書くことになる。よく使われているのはPHPやRuby,Pythonなど。これらの言語は,長年使われてきているのもあって,ログインログアウトなどのありふれた処理を簡単に書けるようなフレームワークと呼ばれるものがよく整備されている。それを用いることによって,開発の手間をすっごく大きく省ける。RubyだとRails,PythonだとDjango,PHPだとLaravelなどが有名。ほかにもいろいろある。

こうやっていろいろ書いて,できたファイル群を一斉にサーバーにアップロードすれば,完成!となるのだが,サーバーとはなんだ?どうすればよい?という問題が残ってた。

サーバーっていうのは,ただのパソコンと同じだけれど,みんなにファイルを配ったり受け取ったりすることに特化しているパソコンであるといえる。もうちょっと具体的にいうと,乗っけているOSがWindowsとかMacOSとかでなくて,サーバ運用に特化したOSが載っている。だから,頑張れば自宅にもろもろ揃えて用意することもできるが,お金かかるし安全性や電気代もふくめて,メンテナンスがかなり大変。そのために,普通の人はレンタルサーバつってサーバーを専門に貸している企業から毎月いくらとか年いくらとかの契約をしてサーバーを借りて,そこに自分でつくったHTMLとかCSSとかのファイルたちをアップロードする。その方が,コストとしては確実に安い。これで準備完了といいたいとこだが,もう一つだけ必要なことがあって,それはアドレスの取得。ちゃんと言えば,ドメインの取得。これは,サーバーをホームページのファイルの置き場とすれば,ドメインはそれらのファイルの住所を表すもの。インターネットにホームページを構えるなら,その住所も必要なので,これも購入しないといけない。新規ドメインの購入。

自分のホームページのファイル,ファイル置き場のサーバー,ドメイン(住所)が揃えば,あとは設定を頑張って調整してやることで,無事にホームページ公開完了。

わしの個人的な意見だが,今の10代の人間はこういう知識がまるっと抜けていると思う。もう少し年上になると,ネットの登場とともにホームページがわんさかたてられた時代だった(本当?)と思うので,こういうことは本当に常識として持っている人も結構多そうだが,逆にインターネットが当たり前な時代から生まれた人間としては,このあたりのところは盲点なんじゃないかな〜と思うのであった。