こんにちは、エンジニアのryuです。
Linuxの基本コマンドを少し覚えたので、次はサーバーを構築してみたい。しかし、どの環境を使い、何のサーバーから作ればよいのか分からない方もいるでしょう。
サーバー構築は難しそうに見えますが、最初から複雑なシステムを作る必要はありません。Linux環境を用意し、Webサーバーを動かすことから始めれば大丈夫です。
この記事では、初心者向けにLinuxでサーバー構築を練習する方法を解説します。エンジニア歴10年の経験から、実務につながる順番や注意点も紹介します。
Linuxのサーバー構築は何から始めればいい?¶
Linuxのサーバー構築は、Webサーバーから始めるのがおすすめです。Webサーバーは、ソフトウェアのインストール、設定ファイルの確認、サービスの起動、ポートの確認、ブラウザからのアクセスまで、サーバー構築の基本を一通り経験できます。
最初からメールサーバーやDNSサーバーへ進むと、確認する項目が多くなります。まずは小さく作り、結果を確認しやすい題材を選びましょう。
初心者向けの学習順序は、次のようになります。
| 段階 | 学習内容 | 到達目標 |
|---|---|---|
| ステップ1 | Linux環境を準備する | コマンドを自由に実行できる |
| ステップ2 | Linuxの基本操作を覚える | ファイルやサービスを操作できる |
| ステップ3 | ネットワークの基礎を学ぶ | IPアドレスやポートを確認できる |
| ステップ4 | Webサーバーを構築する | ブラウザやcurlでページを確認できる |
| ステップ5 | SSHサーバーを構築する | 別の端末から安全に接続できる |
| ステップ6 | DNSなど別のサーバーへ進む | 複数のサーバーの役割を理解できる |
| ステップ7 | 障害対応と再構築を練習する | 原因を調べて復旧できる |
この順番で進めると、Linuxコマンドを何のために使うのかが見えてきます。
ステップ1 Linuxの練習環境を準備する¶
サーバー構築を練習するには、自由に設定を変更できるLinux環境が必要です。普段使っているパソコンへ直接Linuxを入れなくても、仮想環境やクラウドを使って練習できます。
代表的な方法を比べてみましょう。
| 方法 | 難易度 | 費用 | 特徴 |
|---|---|---|---|
| ブラウザ上のLinux環境 | 低い | 無料または月額 | インストールせずすぐに操作できる |
| WSL | 低い | 無料 | Windows上でLinuxを利用できる |
| VirtualBox | 普通 | 無料 | 仮想マシンを作り、OSの導入から練習できる |
| Docker | 普通 | 無料 | 軽量な環境を何度も作り直しやすい |
| AWSのEC2 | やや高い | 従量課金 | クラウド上の実践的な環境を使える |
完全な初心者であれば、最初はブラウザ上の学習環境でも問題ありません。環境構築で消耗せず、Linuxの操作へ集中できます。
本格的に練習するときは、パッケージの導入やサービス起動ができる環境を選びましょう。簡易環境ではsystemctlなどを使えない場合があります。
初心者は環境構築だけで疲れないようにする¶
私も学習を始めた頃は、環境作りに時間をかけすぎました。VirtualBoxの設定でつまずき、肝心の構築まで進めないこともあります。
最初の目的は、仮想化ソフトを使いこなすことではありません。Webサーバーを作り、設定を変え、通信を確認することです。
Linux自体の勉強を始めたばかりの方は、先に基本操作を練習しておきましょう。
【関連記事】Linuxの勉強は何から始める?初心者向け学習ロードマップ
ステップ2 サーバー構築に必要なLinux操作を覚える¶
サーバー構築では、何十個ものコマンドを一度に暗記する必要はありません。ファイルの確認、設定の編集、サービスの操作、ログの確認に使うコマンドから覚えましょう。
まずは、次のような基本操作を繰り返します。
pwd
ls -la
cd /etc
cat hosts
cp hosts hosts.backup
grep localhost hosts
pwdで現在地を確認し、lsでファイルを表示します。cpで設定ファイルをバックアップしてから編集する習慣を付けると、間違えたときに元へ戻しやすくなります。
サーバーソフトウェアを入れた後は、サービスの状態を確認します。
sudo systemctl status apache2
sudo systemctl restart apache2
sudo journalctl -u apache2
Rocky LinuxやAlmaLinuxなどでは、Apacheのサービス名がhttpdになります。UbuntuやDebianではapache2になるため、利用するディストリビューションによってコマンドが少し違います。
インストールより動作確認を大切にする¶
初心者の頃は、インストールコマンドが成功すると構築できたと思ってしまいます。しかし、パッケージが入ったことと、サービスが正常に動いていることは別です。
実務では、起動状態、待ち受けポート、ログ、クライアントからの通信を確認します。コマンドを実行した後に、必ず結果を確かめる癖を付けてください。
ステップ3 ネットワークの基礎を学ぶ¶
サーバーを構築しても、通信できなければ利用できません。そこで必要になるのが、IPアドレス、サブネット、デフォルトゲートウェイ、DNS、ポート番号の知識です。
すべてを詳しく理解してから進む必要はありません。まずは、自分のサーバーがどのIPアドレスを持ち、どのポートで待ち受けているかを確認できれば十分です。
Linuxでは、次のコマンドをよく使います。
ip address
ip route
ping -c 4 8.8.8.8
ss -lntp
curl http://localhost
ip addressはIPアドレス、ip routeは通信経路を確認します。ss -lntpでは、TCPの待ち受けポートとプロセスを確認できます。
接続できないときは、サービス、80番ポート、ファイアウォールの順で確認しましょう。設定を一度に変更すると、原因が分からなくなります。
ステップ4 Webサーバーを構築してみる¶
最初の構築題材には、Apacheを使ったWebサーバーが向いています。ブラウザで結果を目視できるため、構築できたことを実感しやすいからです。
Ubuntu系のLinuxでは、次のようにApacheをインストールします。
sudo apt update
sudo apt install apache2
sudo systemctl enable --now apache2
sudo systemctl status apache2
Rocky LinuxやAlmaLinuxでは、次のようにhttpdを利用します。
sudo dnf install httpd
sudo systemctl enable --now httpd
sudo systemctl status httpd
起動できたら、サーバー自身からアクセスしてみましょう。
curl http://localhost
ss -lntp | grep :80
HTMLが表示され、80番ポートで待ち受けていれば、Webサーバーは動いています。別のパソコンからアクセスする場合は、サーバーのIPアドレスやファイアウォールも確認します。
HTMLファイルを変更してみる¶
初期ページが表示できたら、自分でHTMLファイルを作ります。UbuntuのApacheでは、一般的に/var/www/html/が公開ディレクトリです。
echo '<h1>Hello Linux Server</h1>' | sudo tee /var/www/html/index.html
curl http://localhost
ブラウザでも同じページを確認できれば、ファイルの配置からWeb公開までつながりました。ここまでできると、Linuxコマンドがサーバー運用でどのように使われるか分かってきます。
Apacheのインストール手順を詳しく確認したい方は、次の記事も参考にしてください。
【関連記事】ApacheをインストールしてLinuxにWebサーバーを構築する方法
わざと設定を変えて復旧してみる¶
正常に動いた環境は、そのまま終わらせず少し変更してみましょう。たとえば、HTMLファイルの権限を変えたり、設定ファイルに誤った記述を加えたりすると、どのようなエラーになるか確認できます。
ただし、変更前には必ずバックアップを取ります。
sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.bak
sudo apache2ctl configtest
設定変更後は、構文チェックをしてから再起動します。エラーが出た場合はログを読み、バックアップから戻して復旧してください。
この練習が非常に大切です。サーバー構築の仕事では、何もない状態から作る力だけでなく、動かなくなった原因を調べて元へ戻す力が求められます。
ステップ5 SSHサーバーを構築する¶
Webサーバーの次は、SSHを練習するとよいでしょう。SSHは、別の端末からLinuxサーバーへ接続し、コマンドを実行するために利用されます。
Ubuntuでは、次のようにSSHサーバーをインストールできます。
sudo apt update
sudo apt install openssh-server
sudo systemctl enable --now ssh
sudo systemctl status ssh
待ち受け状態も確認します。
ss -lntp | grep :22
別の端末からは、次の形式で接続します。
ssh ユーザー名@サーバーのIPアドレス
接続元と接続先を分けると理解しやすくなります。クラウドでは、22番ポートを全世界へ無制限に公開しないよう注意してください。
SSHでは公開鍵認証も学びます。設定変更後は、現在の接続を切る前に別のターミナルから接続を確認しましょう。
ステップ6 DNSサーバーなど別の構築へ進む¶
WebサーバーとSSHを構築できたら、DNS、データベース、ファイル共有、メール、プロキシなどへ学習範囲を広げます。各サーバーは役割が異なりますが、基本的な構築の流れは似ています。
代表的なサーバーを整理すると、次のようになります。
| サーバー | 主な役割 | 練習で学べること |
|---|---|---|
| Webサーバー | WebページやAPIを公開する | HTTP、ポート、ログ、アクセス制御 |
| SSHサーバー | 遠隔からLinuxを操作する | 鍵認証、ユーザー、接続制限 |
| DNSサーバー | ドメイン名とIPアドレスを対応させる | 名前解決、正引き、逆引き |
| データベースサーバー | データを保存・検索する | 権限、接続、バックアップ |
| ファイルサーバー | 複数端末でファイルを共有する | Samba、NFS、アクセス権 |
| メールサーバー | メールを送受信する | SMTP、IMAP、DNSとの連携 |
| プロキシサーバー | 通信を中継する | キャッシュ、アクセス制御、ログ |
DNSではBINDを導入し、正引きと逆引きを設定します。最後にdigやnslookupで名前解決を確認しましょう。
DNSの役割が曖昧なまま構築すると、設定の意味が分からなくなりやすいです。先に仕組みを理解してから演習へ進みましょう。
【関連記事】DNSサーバーとは?初心者向けに用途と仕組みを解説
サーバー構築の練習で大切な5つの確認¶
サーバー構築は、手順書のコマンドをコピーして終わりではありません。自分で状態を確認し、なぜ動いているのかを説明できるようにします。
毎回、次の観点を確認してください。
| 確認すること | コマンドや方法 |
|---|---|
| パッケージが入っているか | dpkg -l、rpm -qa |
| サービスが起動しているか | systemctl status |
| ポートが待ち受けているか | ss -lntp |
| ローカルから通信できるか | curl localhost、dig |
| 外部から通信できるか | ブラウザ、SSH、別端末からの確認 |
| エラーが記録されていないか | journalctl、各サービスのログ |
エンジニア歴10年の経験上、実務で差が出るのはインストールコマンドの暗記ではありません。どこまで正常で、どこから失敗しているかを切り分ける力です。
構築後は、サービス停止や設定ミスも試してみます。元へ戻せるよう、バックアップと作業メモは残してください。
初心者がサーバー構築でつまずきやすいポイント¶
ここからは、サーバー構築を練習するときによくある失敗を紹介します。事前に知っておくだけでも、原因を見つけやすくなります。
rootユーザーで何でも操作してしまう¶
管理者権限があれば、多くの操作を実行できます。しかし、間違ったファイルを削除したり、必要以上に権限を広げたりする危険もあります。
普段は一般ユーザーで操作し、必要なコマンドだけsudoを付けましょう。ファイルの所有者や権限を確認する習慣も大切です。
ファイアウォールとクラウド側の設定を混同する¶
AWSでは、Linux内のファイアウォールに加えてセキュリティグループも通信へ影響します。外側で遮断されていれば接続できません。
通信経路に沿って、どの設定が遮断しているか確認します。仮想環境ではNATやブリッジ設定も関係します。
コマンドをコピーするだけで終わる¶
Web上の手順を貼り付けるだけでは、環境の違いに対応できません。ディストリビューションによってコマンドやファイル名も変わります。
各コマンドが、インストール、設定変更、起動、確認のどの作業なのかを意識してください。少なくとも、実行前にコマンドの対象ファイルとサービス名を確認しましょう。
クラウドのサーバーを消し忘れる¶
クラウドは便利ですが、停止後もストレージなどに料金が残る場合があります。学習後は不要なリソースを削除しましょう。
請求アラートも先に設定しておきましょう。クラウドの練習では、構築手順だけでなく片付けまでを一つの作業として扱います。
4週間で進めるサーバー構築の練習計画¶
毎日少しずつ進める場合は、4週間を一つの目安にできます。急いですべてを覚えるより、同じ操作を何度か繰り返す方が身につきます。
| 期間 | 学習内容 | 成果物 |
|---|---|---|
| 1週目 | Linux環境、ファイル操作、権限、パッケージ管理 | コマンドの作業メモ |
| 2週目 | Apacheの導入、HTML公開、ログ確認 | 自分のWebページ |
| 3週目 | SSH接続、ユーザー追加、公開鍵認証 | 別端末から接続できる環境 |
| 4週目 | DNSまたはDBの構築、障害対応、再構築 | 構成図と構築手順書 |
構築内容はMarkdownなどで手順書にします。目的、確認方法、エラーと解決方法まで残すと復習しやすくなります。
最後に環境を削除し、最初から再構築してみましょう。短時間で再現できれば、知識が整理されています。
InfraAcademyでLinuxのサーバー構築を練習する¶
独学では環境作りでつまずき、コマンドが成功したか判断できないことがあります。サーバー構築は、実際に操作して覚えることが大切です。
InfraAcademyでは、Linuxやネットワークの基礎から、Web、DNS、SSH、データベースなどのサーバー構築まで、ブラウザ上で手を動かしながら学習できます。

コマンド実行、設定変更、結果確認を一つの流れで練習できます。環境準備や学習順序に迷う方にも向いています。
Linux入門から段階的に進めたい方は、InfraAcademyの講座を確認してみてください。
まとめ¶
Linuxのサーバー構築は、環境準備、基本コマンド、ネットワーク、Webサーバーの順番で進めると理解しやすくなります。最初から難しいメールサーバーや大規模なクラウド構成へ進む必要はありません。
まずはApacheをインストールし、curlやブラウザでページを確認してみましょう。その後、SSH、DNS、データベースと少しずつ範囲を広げます。
そして、構築できたら終わりではありません。サービスの状態、待ち受けポート、ログを確認し、設定を変更して復旧するところまで練習してください。
サーバー構築は、Linuxコマンドやネットワークの知識が一つにつながる面白い学習です。小さなサーバーを一台作るところから、焦らず始めてみましょう。