WindowsユーザーのためのLinux入門 第6回:exeは不要!ソフト管理の極意とWebサーバー構築

こんにちは!「リナックス先生」です。前回のVim、少しずつ手に馴染んできたかしら?

さて、今回はいよいよ「Linuxを道具として使う」段階から「サーバーとして動かす」段階へステップアップするわよ。Windowsなら公式サイトから「.exe」ファイルをダウンロードしてダブルクリック……という流れだけど、Linuxにはもっとスマートで強力な「パッケージ管理」という仕組みがあるの。実際にWebサーバーを立ち上げて、自分のWindowsからアクセスしてみましょう!

コウ君

先生!いよいよWebサーバーに挑戦ですね!でも、Linuxにはブラウザもコントロールパネルもないし、どうやってソフトを入れるんですか?まさか、また黒い画面にプログラムを全部書き込むとか……?あと、立ち上げたとしても自分のPCからどうやって見るのかイメージが湧きません。

リナックス先生

ふふ、大丈夫よコウ君。Linuxの『dnf』というコマンドを使えば、スマホのアプリストアみたいに名前を指定するだけでインストールが終わるの。ネットワークの繋がり方(IPアドレス)さえ理解すれば、ブラウザからアクセスするのも一瞬よ。エンジニアの醍醐味である『構築』の楽しさを、今日で体験させてあげるわ!

WindowsユーザーのためのLinux最短学習カリキュラム(全8回)

  1. 第1回:マウスからの脱却!Linuxの基本思想と「黒い画面」の環境構築
  2. 第2回:もう迷子にならない!ディレクトリ構造의理解とファイル操作
  3. 第3回:Windowsにはない壁!「ユーザー権限」と「パーミッション」を攻略
  4. 第4回:エクスプローラーより100倍速い!ファイル検索とテキスト閲覧
  5. 第5回:メモ帳は捨てなさい!最強エディタ「Vim」サバイバルガイド
  6. 【今回】第6回:ソフトの追加とネットワークの基礎!Webサーバーを立ち上げよう
  7. 第7回:Linux最大の魔法!「パイプ」と「リダイレクト」でコマンドを繋ぐ
  8. 第8回:手作業からの卒業!「シェルスクリプト」でサーバー構築を全自動化

1. インストールの新常識:パッケージ管理者(dnf/yum)の仕組み

① 概念と背景(Why)

Windowsでは、何かソフトを入れるたびにブラウザで検索し、怪しいサイトを避けながらインストーラーをダウンロードしていたわよね。でも、Linux(特にRed Hat系やAlmaLinuxなど)には「リポジトリ」という公式の巨大な倉庫があって、コマンド一つで安全にソフトを取り寄せることができるの。

この管理役が「dnf(またはyum)」よ。パッケージ管理がすごいのは、単にインストールするだけじゃないわ。ソフトが必要とする「他の部品(依存関係)」も自動で見つけて、一緒に揃えてくれるのよ。Windowsで「〇〇.dllが足りません」というエラーに泣かされた経験はないかしら?Linuxなら、dnfが裏でそれらをすべて解決してくれるわ。この「中央集権的な管理」こそが、サーバーを常にクリーンで安定した状態に保つ秘訣なのよ。

② 実践手順と完全なコード(How)

パッケージ管理の基本操作を覚えましょう。これらはすべてシステム全体に影響するため、第3回で学んだ `sudo` が必須よ!

# 1. サーバー内のパッケージ情報を最新にする(まずはこれ!)
sudo dnf check-update

# 2. ソフトウェア(例:WebサーバーのNginx)を検索してみる
dnf search nginx

# 3. Nginxをインストールする
sudo dnf install nginx

# 4. インストール済みパッケージの一覧を確認
dnf list installed | grep nginx

③ プロによるコードの「1行・1オプション」徹底解説

  • dnf:Dandified YUMの略。最新のRed Hat系OSで標準のパッケージ管理コマンドよ。
  • install:その名の通りインストール。実行時に「y/N」と聞かれるけれど、最初から `dnf install -y nginx` と打てば、全部「はい(Yes)」で進めてくれるわ。
  • search:曖昧な名前でも、倉庫の中から候補を探してくれる便利機能よ。
  • sudo:パッケージの追加は「神(root)」の領域だから、必ず一般ユーザーはこのバッジ(権限)を借りるのよ。

④ 現場のリアル(失敗談とノウハウ)

現場で絶対にやっちゃいけないのは「リポジトリにないからといって、野良サイトからバイナリを適当に拾ってきて入れる」ことよ。パッケージ管理外でソフトを入れると、OSをアップデートした時に壊れたり、セキュリティパッチが当たらなかったりと地獄を見るわ。プロは可能な限り `dnf` で完結させ、どうしてもない場合だけ「ソースコードからビルド」という手順を踏むの。まずは「dnfに任せる」という信頼感を持ってね!


2. Webサーバーを建ててみよう:Nginxのインストールと起動

① 概念と背景(Why)

ソフトを入れただけでは、まだサーバーは動いていないわ。Linuxでは「サービス(デーモン)」という概念があって、インストールしたソフトを「バックグラウンドで常に待機している状態」にする必要があるの。

今回使う「Nginx(エンジンエックス)」は、世界中の高負荷なWebサイトで使われている、超軽量かつ高速なWebサーバーソフトよ。これを「起動」させ、「自動起動(OSが立ち上がった時に勝手に動き出す設定)」にすることで、初めて24時間365日Webサイトを公開できるようになるわ。Windowsの「サービス管理」画面を、コマンド一発で操る快感を味わってちょうだい!

② 実践手順と完全なコード(How)

Nginxをインストールした後の「起動三段活用」よ。これがインフラエンジニアの基本ルーティンね。

# 1. Nginxサービスを今すぐ起動する
sudo systemctl start nginx

# 2. サーバー再起動時も自動でNginxが動くようにする
sudo systemctl enable nginx

# 3. Nginxが現在「ちゃんと動いているか」を確認する
systemctl status nginx

③ プロによるコードの「1行・1オプション」徹底解説

  • systemctl:System Controlの略。Linuxのサービスを統括管理する司令官よ。
  • start:エンジンをかけるわ。何も表示されなければ成功(沈黙は金!)よ。
  • enable:これを忘れると、停電などでサーバーが再起動した時にサイトが落ちたままになっちゃうわ。新人がよくやるミスね。
  • status:緑色の文字で `active (running)` と出ていれば勝利よ!

④ 現場のリアル(失敗談とノウハウ)

設定ファイルを書き換えた後に `start` を押して `FAILED` と出たら、心臓が止まりそうになるわよね(笑)。そんな時は焦らずに `journalctl -xe` や `systemctl status` のログを読んで。Vimでタイポした場所を丁寧に教えてくれるわ。また、現場では `restart`(再起動)よりも `reload`(設定の再読み込み)を好むわ。`reload` なら、アクセス中のユーザーを切断せずに設定だけを変えられるから。プロの気遣いね!


3. ネットワークの繋がりを確認する:IPアドレスと疎通確認

① 概念と背景(Why)

Webサーバーが動いたら、次はその「住所」を調べなきゃいけないわ。ネットワークの世界での住所が「IPアドレス」ね。Windowsなら「ネットワーク設定」の深い階層を見なきゃいけないけれど、Linuxならコマンド一発で自分の全インターフェースの状況が丸裸になるわ。

さらに、住所が分かっても、そこまで道が通じているか、あるいは「門(ファイアウォール)」が閉まっていないかを確認する必要があるの。Webサイトが表示されない時、「サーバーが悪い」のか「ネットワークが悪い」のかを見極める能力。これがインフラエンジニアの本当の腕の見せ所よ。Linuxコマンドはそのための「聴診器」の役割を果たすわ。

② 実践手順と完全なコード(How)

自分のIPアドレスを調べ、外部からの疎通を確認する手順よ。

# 1. 自分のIPアドレスを確認(Windowsのipconfigに相当)
ip addr show

# 2. ブラウザが使う「80番ポート」が開放されているか確認
# (AlmaLinuxなどの場合、ファイアウォールの許可が必要よ)
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload

# 3. 自分のWindowsからLinuxへ「生きてるか?」と訊ねる(Windows側で実行)
ping [LinuxのIPアドレス]

③ プロによるコードの「1行・1オプション」徹底解説

  • ip addr:昔は `ifconfig` だったけれど、今は `ip` コマンドが主流よ。`inet` と書かれた後の数字(192.168…など)があなたの住所よ。
  • firewall-cmd:Linuxの門番を操作するわ。インストールしただけでは門が閉まっていることが多いから、`–add-service=http` でWebの通信を通してあげるの。
  • ping:ネットワークの最も基本的な診断ツール。相手から返事が返ってくれば、物理的な線は繋がっている証拠よ。

④ 現場のリアル(失敗談とノウハウ)

「IPアドレスは正しいのにWebが見られない!」というトラブルで、意外と多いのが「そもそも自分のPCがVPNに繋がっていなかった」とか「会社のプロキシ設定が邪魔していた」というクライアント側の原因よ。プロはまず `curl -I localhost` とサーバー自身で叩いて、サーバーが内部的に動いているかを切り分けるわ。外が悪いのか内が悪いのか。この「切り分け」の思考を、コマンドを叩きながら身につけてね!


4. 現場のリアル:OSアップデートとセキュリティの付き合い方

① 概念と背景(Why)

サーバーを建てて満足しちゃダメよ。インターネットに公開した瞬間から、あなたのサーバーは世界中の悪意にさらされるわ。OSやソフトには日々「脆弱性(穴)」が見つかる。Windows Updateが自動で走るように、Linuxでも定期的な「パッケージ更新」が不可欠なのよ。

でも、サーバーの更新はWindows PCほど気楽じゃないわ。「アップデートしたら動かなくなった」はサーバーエンジニアにとって最大の悪夢。だからこそ、どの範囲までアップデートするか、再起動は必要か、といった判断を自分でする必要があるの。dnfを使えば、セキュリティに関連する更新だけを狙い撃ちすることもできるわ。この「コントロール感」がLinux運用の面白さでもあるのよね。

② 実践手順と完全なコード(How)

サーバーの鮮度を保つための保守コマンドよ。

# 1. セキュリティに関わる更新があるかチェック
dnf updateinfo list security

# 2. 全パッケージを最新版に一括アップデート(慎重に!)
sudo dnf update

# 3. アップデート後に再起動が必要か確認するツールを入れる
sudo dnf install needs-restarting -y
sudo needs-restarting -r

③ プロによるコードの「1行・1オプション」徹底解説

  • update:全てのソフトを最新にするけれど、現場では本番環境でいきなり打つのは御法度!まずは検証環境で試すのがルールよ。
  • needs-restarting -r:LinuxはWindowsと違って、多くの更新で再起動が不要だけど、カーネル(心臓部)を更新した時だけは再起動が必要になるわ。それを見極めるプロの道具ね。

④ 現場のリアル(失敗談とノウハウ)

「面倒だから毎日 `dnf update` を自動実行(cron)しちゃえ!」……これは一見正解に見えて、現場では嫌われることもあるわ。意図しないタイミングでソフトの仕様が変わり、動いていたシステムが夜中に止まったら……?プロは「何が更新されるか」を事前に把握し、メンテナンス時間を告知して、バックアップを取ってから実行するの。自動化は素晴らしいけれど、それが「無責任な放置」にならないよう、しっかり自分のサーバーを管理してちょうだい!

コウ君

先生、感動しました!ブラウザにIPアドレスを入れたら、ちゃんと『Welcome to nginx!』って出ました!自分の手でサーバーを動かしてる実感がすごいです。dnfも、依存関係を勝手に解決してくれるなんてWindowsより親切かも……!?

リナックス先生

その感動を忘れないで!あなたが今やったことは、世界中のWebサービスの最小単位なのよ。さて、構築ができたら、次はそれを「効率化」する番ね。次回は、Linux最大の魔法とも言われる『パイプとリダイレクト』を伝授するわ。複数のコマンドを数珠繋ぎにして、自分だけの超強力なツールを作る。これを知れば、もうあなたは完全にWindowsユーザーを卒業して、エンジニアの仲間入りよ!

▼ Webサーバー構築を試すなら最適なVPSで ▼

エンジニア必須の環境
「おすすめVPS」

VPSランキングを見る

技術スキルを活かす
「ITエンジニア転職」

転職エージェントを見る

コメント