【新連載】脱・初心者!Ubuntuで世界標準のWebサーバーを作ろう
こんにちは!当サイト管理人の「リナックス先生」です。
前回、UbuntuとCentOS(RHEL)の文化の違いについて学びましたが、心の準備はできていますか?
先生!心の準備もVPSの準備もバッチリです!
前回教えてもらった通り、Ubuntu 24.04 LTSでサーバーを立ち上げました。
早くあの「黒い画面」でコマンドを打ちたくてウズウズしてます!
素晴らしいモチベーションね、コウ君。
今回からは実践編よ。世界中のWebサーバーで最も使われている構成である「LAMP環境」を、最新のUbuntu上に構築していくわ。
本連載では、以下の「LAMP」と呼ばれる4つの技術を組み合わせ、WordPressなどの動的なサイトが動くサーバーをゼロから構築します。
- Linux (Ubuntu 24.04 LTS):土台となるOS
- Apache (Webサーバー):ページを表示する係
- MySQL (データベース):データを保存する倉庫
- PHP (プログラミング言語):処理を行うエンジン
本講座のカリキュラム(全3回)
コピペで進められるよう設計していますが、単なる作業で終わらないよう「コマンドの意味」もしっかり解説します。
- 【今回】初期設定編:SSH接続、aptコマンドの作法、ファイアウォールによる要塞化
- Web・DB構築編:ApacheのインストールとMySQL(データベース)の初期設定
- Webサイト完成編:PHPの導入と、Certbotを使った無料SSL(HTTPS)化
1. サーバー環境の準備(VPS)
まだサーバーを用意していない方は、まず「土地」となるVPSを契約しましょう。
自宅サーバーも勉強にはなりますが、Web公開を前提とするなら、24時間安定稼働し、固定IPアドレスが貰えるVPSが必須です。
僕は先生おすすめのVPSで契約しました!
OSを選択するときに「Ubuntu 24.04 LTS (64bit)」を選べばいいんですよね?
その通り。
必ず「LTS(長期サポート版)」を選ぶのが鉄則よ。
まだ契約していない人は、以下の記事で紹介しているVPSならどれを選んでも失敗しないわ。
▼Ubuntuの学習に最適なVPSはこちら

2. SSHで接続し、Ubuntuの「洗礼」を受ける
VPSの契約ができたら、手元のPC(WindowsならPowerShell、Macならターミナル)からSSH接続を行います。
ここはRHEL系と同じですが、復習も兼ねてやってみましょう。
ssh root@あなたのVPSのIPアドレス
パスワードを入力し、root@ubuntu:~# というプロンプトが表示されればログイン成功です。
RHELユーザーが戸惑う「apt」コマンド
ログインしたら、真っ先に行うのがシステムのアップデートです。
ここで、AlmaLinuxユーザーだったコウ君は「ある違い」に気づくはずです。
先生、dnf update って打ったら「Command not found」って怒られました…!
Ubuntuって意地悪ですね。
ふふっ、それがUbuntu(Debian系)の洗礼よ。
Ubuntuではパッケージ管理に apt (アプト) というコマンドを使うの。
以下の2行のおまじないを必ず実行して。
apt update apt upgrade -y
ここが重要なポイントです。
| コマンド | 役割 | 例えるなら |
|---|---|---|
apt update |
パッケージリスト(カタログ)の更新 | スーパーのチラシを最新にする |
apt upgrade |
実際のソフトの更新 | チラシを見て実際に商品を買いに行く |
RHEL系の dnf update はこの2つを同時にやってくれましたが、Ubuntuでは「カタログ更新」と「実体更新」が分かれているのが特徴です。
エラーが出ずにプロンプトが戻ってきたら、アップデート完了です。
3. セキュリティ設定:rootからの卒業
いつまでも「神(root)」の権限で作業するのは危険です。
操作ミスでシステムを破壊しないよう、普段使いの一般ユーザーを作成しましょう。
一般ユーザーの作成
ここでは例として demo というユーザーを作ります。
adduser demo
パスワードの設定を求められるので、2回入力します。
その後の「Full Name」などの質問は、すべてEnterキーを押してスキップして構いません。
sudo権限の付与
作成したユーザーにも、必要な時だけ管理者権限(sudo)を使えるようにします。
RHEL系では wheel グループに入れましたが、Ubuntuではその名の通り sudo グループに入れます。
gpasswd -a demo sudo
これで「demo」ユーザーが管理者権限を持てたわ。
一度 exit でログアウトして、今後は ssh demo@IPアドレス でログインするように習慣づけなさい。
4. ファイアウォール(UFW)で鉄壁の要塞を作る
サーバー構築で最も重要なのがセキュリティです。
Ubuntuには ufw (Uncomplicated FireWall) という、名前の通り「複雑じゃない」非常に使いやすいファイアウォールツールが標準搭載されています。
RHELの firewalld は設定が難しくて苦手でした…。
簡単って本当ですか?
本当です。以下のコマンドを上から順に入力するだけです。
(※sudoをつけて実行してください)
# 1. すべての通信を遮断(初期設定) sudo ufw default deny incoming # 2. 自分から外への通信は許可 sudo ufw default allow outgoing # 3. 【最重要】SSH(22番)を許可(これを忘れると締め出されます!) sudo ufw allow 22 # 4. Webサイト用(80番)とSSL用(443番)を許可 sudo ufw allow 80 sudo ufw allow 443 # 5. ファイアウォールを有効化 sudo ufw enable
有効化する際、Command may disrupt existing ssh connections...(接続が切れるかもよ?)と警告されますが、手順3で22番を許可しているので大丈夫です。y を押して進めましょう。
最後に状態を確認します。
sudo ufw status
Status: active と表示され、22, 80, 443 が ALLOW になっていれば設定完了です。
【第1回まとめ】土台作りは完了!
お疲れ様でした!今回はここまでです。
地味な作業に見えますが、これで「世界中からの攻撃を防ぎつつ、Webサーバーを受け入れる準備ができた状態」になりました。
ブラウザでIPアドレスにアクセスしてもまだエラーになりますが、これでいいんですよね?
ええ。今はまだ「土地に柵を作った」だけの状態だからね。
次回はいよいよ、そこに「お店(Apache)」と「倉庫(MySQL)」を建設するわよ。
ここから一気にエンジニアらしくなるから、楽しみにしていなさい!
▼次回までにUbuntuサーバーを用意しておきましょう

(第2回「ApacheとMySQL導入編」へ続く)


コメント