【連載最終回】あなたのアプリが「世界」と繋がる日
未経験からWebアプリ開発を目指す「AlmaLinux 9とLAMP環境で作る!Webアプリ開発完全ロードマップ(全12回)」の最終回です。
長い旅でしたね。
第1回で真っ黒な画面(ターミナル)に怯えながらコマンドを打ち始め、Apacheを入れ、データベースと格闘し、PHPコードを書き、セキュリティ対策を施し…。
今のあなたの手元には、自分の手でゼロから作り上げた「動くWeb掲示板」があります。
しかし、まだ一つだけ「プロの仕事」とは言えない部分があります。
それは、URLが「IPアドレス(123.456.78.90)」のままであること、そして「保護されていない通信(http)」であることです。
最終回となる今回は、あなたのアプリに「独自ドメイン(.comなど)」という名前を与え、さらに「無料SSL(https)」を導入して、誰に見せても恥ずかしくない「本物のWebサイト」として完成させます。
先生、ついに最終回ですね!
友達にURLを送ろうとしたら「怪しい数字のリンクだから踏みたくない」って言われちゃいました…。
やっぱり「.com」とかじゃないと信用されませんよね。
その通りよ。
IPアドレスのまま公開しているWebサービスなんて世界中どこにもないわ。
それに、今はブラウザの鍵マーク(SSL)がないと、GoogleChromeから「危険なサイト」扱いされて警告画面が出ることさえあるの。
最後の大仕事、きっちり仕上げて卒業しましょう!
本講座のカリキュラム(全12回)
現在地は第12回(最終回)です。完走おめでとうございます!
- サーバー準備編:なぜVPSが必要?AlmaLinux 9の初期設定とSSH接続
- Webサーバー編:Apache(httpd)のインストールとファイアウォール設定
- データベース編:MariaDB(MySQL)のインストールとセキュリティ設定
- プログラミング言語編:PHP 8.xの導入と設定ファイルのチューニング
- 権限・パーミッション編:LinuxでWebサイトを公開するための「所有者」の概念
- 接続テスト編:PHPからデータベース(DB)に接続してみよう
- アプリ開発①:HTML/CSSで掲示板の「見た目」を作る
- アプリ開発②:投稿機能(Create)の実装とデータの保存
- アプリ開発③:一覧表示機能(Read)と画像表示の仕組み
- アプリ開発④:編集・削除機能(Update/Delete)の実装
- セキュリティ編:XSSやSQLインジェクション対策の基礎
- 【今回】公開編:独自ドメイン設定と無料SSL(Let’s Encrypt)でHTTPS化
ドメインとDNSの仕組みを理解しよう
作業に入る前に、「なぜドメインでアクセスできるのか」という仕組みを簡単に理解しておきましょう。
これを理解していないと、設定がうまくいかない時に原因が特定できません。
IPアドレスとドメインの関係
- IPアドレス(123.456.78.90):
インターネット上の「住所(緯度・経度)」です。コンピューターにとっては分かりやすいですが、人間には覚えにくい数字の羅列です。 - ドメイン(example.com):
インターネット上の「表札(名前)」です。人間にとって覚えやすい文字列です。
Webブラウザに「example.com」と入力すると、裏側では「DNS(ドメイン・ネーム・システム)」という電話帳のようなサーバーに問い合わせが行われます。
「ねえ、example.comってどこのIPアドレス?」→「それは123.456.78.90だよ」
この変換作業(名前解決)のおかげで、私たちはドメインを使ってあなたのVPSにたどり着けるのです。
手順1:独自ドメインを取得する
まずは、自分だけのドメインを手に入れる必要があります。
「お名前.com」や「Xserverドメイン」、「ConoHa」などのドメイン登録サービスで、好きな文字列(例:kou-bbs.com)を検索して取得してください。
(※ドメイン取得には年間1,000円〜数千円程度の費用がかかりますが、キャンペーンで初年度1円などの場合もあります)
注意: VPSを契約している会社と同じ会社でドメインを取ると、設定が楽になることが多いのでおすすめです。
手順2:DNS設定(Aレコード)を行う
ドメインを取っただけでは、まだあなたのVPSとは繋がっていません。
ドメイン管理画面(お名前.comなどの管理画面)で、「このドメインは、このVPSのIPアドレスだよ」という紐付け設定を行う必要があります。
これを「DNSレコード設定(Aレコード)」と呼びます。
| ホスト名 | 種別 | 値(内容) |
|---|---|---|
| @(空欄) | A | あなたのVPSのIPアドレス |
| www | A | あなたのVPSのIPアドレス |
この設定を行うと、世界中のDNSサーバーに情報が伝播(浸透)していきます。
完全に反映されるまで、数十分〜最大24時間かかることがあります。
焦らず待ちましょう。
繋がったか確認する方法
自分のPCのコマンドプロンプト(またはターミナル)で、以下のコマンドを打ってみてください。
ping あなたのドメイン.com
返ってくる結果に、あなたのVPSのIPアドレスが表示されれば、紐付けは完了しています。
手順3:Apacheの設定(バーチャルホスト)
ドメインでアクセスできるようになったら、今度はサーバー側(Apache)の設定です。
「IPアドレスで来たアクセス」ではなく「ドメイン名で来たアクセス」を正しく処理できるようにします。
SSHでVPSに接続し、設定ファイルを作成します。
vi /etc/httpd/conf.d/vhost.conf
中身に以下を記述してください。
(example.com の部分は、あなたが取得した実際のドメインに書き換えてください!)
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/html/bbs
<Directory "/var/www/html/bbs">
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
解説
ServerName: この設定を適用するドメイン名です。DocumentRoot: ドメインにアクセスした時に表示させるフォルダの場所です。
これまでは/var/www/htmlがトップでしたが、今回は掲示板アプリがある/var/www/html/bbsをトップに設定しました。
これで、http://example.com/にアクセスするだけで、いきなり掲示板が表示されるようになります。
書き換えたら保存し、Apacheを再起動します。
systemctl restart httpd
ブラウザで http://あなたのドメイン.com にアクセスし、掲示板が表示されれば成功です!
(※まだ鍵マークはつきません)
手順4:無料SSL(Let’s Encrypt)の導入
いよいよラストスパートです。
通信を暗号化し、ブラウザに「安全な接続」と表示させるための「SSL証明書」をインストールします。
昔は年間数万円もする高価なものでしたが、今は「Let’s Encrypt(レッツ・エンクリプト)」という非営利団体のおかげで、誰でも無料で、しかもコマンド一発で導入できるようになりました。
1. certbotのインストール
Let’s Encryptを自動設定してくれるツール「certbot(サートボット)」を入れます。
dnf install epel-release -y dnf install certbot python3-certbot-apache -y
2. 証明書の取得と設定
以下のコマンドを実行するだけで、魔法のように全ての設定が完了します。
(※途中でメールアドレスの入力や、規約への同意を求められます)
certbot --apache
コマンドの最後の方で、以下のような質問が表示されることがあります。
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
(httpへのアクセスを、自動的にhttpsへ転送しますか?)
1: No redirect
2: Redirect
ここでは迷わず 2 を選んでください。
これにより、「http://〜」でアクセスしてきても、強制的に安全な「https://〜」に飛ばされるようになります(常時SSL化)。
最終確認:鍵マークがついたか?
ブラウザで http://あなたのドメイン.com (あえてhttpで)にアクセスしてみてください。
一瞬で https://... に切り替わり、アドレスバーの横に「🔒(鍵マーク)」が表示されましたか?
つきました!鍵マーク!
なんか一気に「ちゃんとしたサイト」に見えます!
これでもう「怪しいサイト」なんて言わせません!
おめでとう、コウ君!
これで全てのカリキュラムが修了よ。
あなたのサーバー構築スキルとプログラミングスキルは、もう立派な「エンジニアの卵」レベルに達しているわ。
補足:証明書の自動更新について
Let’s Encryptの証明書は、有効期限が「90日間」と短めです。
放っておくと3ヶ月後に期限切れで警告が出てしまいますが、心配はいりません。certbot をインストールした時点で、裏側で自動更新のタイマー(systemd timer)がセットされています。
確認コマンド:
systemctl list-timers | grep certbot
これさえ動いていれば、あなたは今後、証明書の更新作業を一切気にする必要はありません。
全12回の総括と、これから学ぶべきこと
約3ヶ月(想定)にわたる連載、本当にお疲れ様でした。
最後に、これまでの道のりを振り返り、これからさらに上を目指すためのロードマップを示して締めくくりたいと思います。
あなたが身につけたスキル
- Linuxサーバー構築: 黒い画面への恐怖を克服し、VPSを自由に操れるようになりました。
- LAMP環境の理解: Linux, Apache, MariaDB, PHPがどう連携して動いているか、体感で理解しました。
- CRUDアプリ開発: データの作成・表示・更新・削除という、全てのアプリの基礎を作れるようになりました。
- セキュリティ意識: SQLインジェクションやXSS、CSRFといった脅威から身を守る術を学びました。
次のステップへ
この講座を終えたあなたは、もはや「初心者」ではありません。
次のステップとして、以下のような技術に挑戦してみることをおすすめします。
- フレームワーク(Laravel): 今回は「生のPHP」で書きましたが、現場では「Laravel(ララベル)」などのフレームワークを使うのが一般的です。開発スピードが爆上がりします。
- バージョン管理(Git/GitHub): プログラムの変更履歴を保存し、チーム開発をするための必須ツールです。
- クラウド(AWS/Google Cloud): VPSの次は、より大規模なクラウドインフラの世界が待っています。
技術の道に終わりはありませんが、最初の、そして最も険しい山は越えました。
このサイト「Linux工房」では、これからも実践的な技術情報を発信していきます。
困った時はいつでも戻ってきてくださいね。
それでは、良きエンジニアライフを!
Happy Hacking!
もし周りに「プログラミング始めたいけど何からやればいい?」って迷っている人がいたら、この講座を教えてあげてね。
あなたが教える側に回ることで、知識はより深く定着するわよ。
長い間、本当にお疲れ様でした!
▼エンジニアとしての第一歩はここから(推奨VPS)


コメント