はじめに
この章の目的
本書の全体像を分かりやすく紹介します。初めてWebサーバーを構築する方にも読み進めやすいよう、目的や想定範囲、進め方を丁寧に説明します。
本書で目指すこと
目的設定からOS準備、Webサーバーソフトの導入、動作確認、公開までの基本的な流れを示します。具体例としては、社内向けの情報公開、個人ブログ、外部APIの公開などを想定しています。
想定読者
Linuxの基本操作が分かる方を主な対象にします。コマンド入力が苦手な方でも理解できるよう、画面例や手順を具体的に示します。初心者も段階的に進められる構成です。
本書の構成と読み方
第2章で前提を決め、第3章で典型的な構築手順(Linux+Apache例)を示します。第4章はコンテンツと権限設定、第5章はネットワークとセキュリティ、第6章で代表的な構成比較を行います。順に読みながら環境を作ると理解が深まります。
注意点
運用や公開にあたっては、必ずバックアップとアクセス制御を確認してください。実際の公開前にローカルで十分に検証することをおすすめします。
前提を決める
はじめに
公開する内容と環境を最初に決めると、その後の設計や作業が楽になります。ここでは具体例を交えながら、決めるべきポイントを丁寧に説明します。
1) 何を公開するか
- 静的HTML:個人ブログや会社の簡単な紹介ページ。ファイルを置くだけで動くため管理が楽です。例:ポートフォリオ、ランディングページ。
- 動的サイト:ユーザー登録やフォーム、データ表示がある場合。WordPressや独自のWebアプリが該当します。データベースやランタイムが要ります。
- APIやファイル配信:APIサーバーや大きなファイル配信は帯域や同時接続数を考慮します。
目的を最初に決めると必要なソフトや性能が明確になります。
2) 構築場所(どこで動かすか)
- 自宅PC:学習やテスト向け。通信速度や停電、固定IPの問題があります。公開用には向きません。
- VPS:レンタルサーバー(例:さくらのVPS、Linode、AWSの小規模インスタンス)。手頃で公開向きです。初心者におすすめします。
- クラウド:負荷変動に強く、自動スケールが可能です。料金体系を理解して使います。
- オンプレミス:社内設置。運用やセキュリティ管理の体制が必要です。
3) OS選択(初心者への提案)
- Ubuntu ServerやDebian:初心者に扱いやすく、情報も多いです。パッケージ管理が簡単で更新も手軽です。
- CentOS系やWindows Server:特定の要件がある場合に選びます。
- 補足:LTS(長期サポート)版を選び、64bitを標準としてください。
決定チェックリスト(短く)
- 目的(静的/動的/API)
- 公開場所(VPS/クラウド/自宅)
- OS(Ubuntu等)
- 予算と運用負担
これらを早めに決めると次章の構築作業がスムーズになります。
典型的な構築手順(Linux+Apache例)
概要
この章では、UbuntuなどのLinuxにApacheを導入し、初期ページを表示するまでの典型的な手順を示します。初心者でも進められるように、実行するコマンドと注意点を簡潔にまとめます。
前提
- サーバー、仮想マシン、またはクラウドインスタンスが用意されていること
- 管理者権限(sudo)が使えること
手順
- パッケージ情報を更新する
sudo apt update && sudo apt upgrade -y
- Apacheをインストールして自動起動を設定する
sudo apt install -y apache2
sudo systemctl enable --now apache2
- サービスの状態を確認する
sudo systemctl status apache2
sudo ss -tlnp | grep :80
- ブラウザで確認する
サーバーのIPアドレス(またはホスト名)をブラウザのアドレス欄に入力し、Apacheの初期ページが表示されれば成功です。ローカルで確認する場合はcurl http://localhostでも確認できます。
確認とトラブルシューティング
- ファイアウォール:UFWを使う場合はポート80を許可します。
sudo ufw allow 'Apache'
sudo ufw status
- クラウドのセキュリティ設定:クラウド環境ではセキュリティグループでTCP 80(HTTP)を開けてください。
- ログの確認:問題がある場合はエラーログを確認します。
sudo tail -n 50 /var/log/apache2/error.log
注意点
- 本番環境ではセキュリティやHTTPS設定が必要です。次章でコンテンツと権限について詳しく扱います。
Webコンテンツと権限の設定
ドキュメントルートへの配置
公開するHTML、画像、スクリプトはドキュメントルート(例: /var/www/html)に置きます。公開不要の設定ファイルや秘密情報はドキュメントルートの外に置くか、読み出し禁止にします。デプロイはrsyncやgitを使うと差分だけ反映でき便利です。
所有者とグループの設定
Webサーバープロセス(例: www-data, apache)がファイルを読めるように所有者/グループを設定します。一般的には次のどちらかにします。
– chown -R www-data:www-data /var/www/html(シンプルで確実)
– chown -R deploy: www-data /var/www/html として、書き込みは特定ディレクトリに限定(uploads等)
原則として、書き込みは最小限に抑えてください。
パーミッション(権限)の設定
基本ルールは読み取りを許可、書き込みは限定です。目安:
– ディレクトリ: 755(drwxr-xr-x)
– ファイル: 644(-rw-r–r–)
– 実行が必要なファイル: 755
アップロードやキャッシュ用のディレクトリだけを775や750にしてWebサーバーのグループに書き込ませます。
(例)chmod -R 755 /var/www/html; chmod 770 /var/www/html/uploads
PHP/データベース利用時の注意
PHP-FPMを使う場合は、ソケットやtmpの所有者に注意してセッションやアップロードが動くようにします。設定ファイルにデータベースの認証情報を置く場合はファイル権限を640にして、所有者をアプリ実行ユーザー、グループをWebサーバーにします。パスワードは平文で置かない工夫も検討してください。
運用上の工夫
自動デプロイ時にパーミッションが崩れないよう、umaskやsetgidを使うと便利です。SELinuxやAppArmorが有効な環境ではファイルのコンテキストも確認してください。最小権限の原則を守り、書き込み権限は必要な場所だけ与えることが安全です。
ネットワーク・セキュリティ設定
概要
Web公開に必要なネットワーク設定と基本的なセキュリティ対策を分かりやすく説明します。主にポート開放、ルーター/クラウド設定、DNSとドメイン、HTTPS化、最低限の防御策を扱います。
1. ファイアウォールでのポート許可
外部からWebへはHTTP(80)とHTTPS(443)が必要です。例:Ubuntuのufwなら
sudo ufw allow 80
sudo ufw allow 443
とします。不要なポートは閉じたままにしてください。
2. ルーターやクラウドの設定
自宅や社内のサーバーを公開する場合はルーターでポートフォワードを設定します。クラウド(AWS/GCP等)ではセキュリティグループ/ファイアウォールルールで同じポートを開放します。
3. ドメイン取得とDNS設定
ドメインを取得し、AレコードでサーバーのグローバルIPを指します。動的IPならDNSの動的更新やDDNSサービスを検討してください。
4. HTTPS化(推奨)
Let’s Encrypt等で無料証明書を取得し、HTTPSを必須にします。証明書の自動更新を設定すると管理が楽です。
5. 最低限のセキュリティ対策
- 管理用ポートはIP制限やVPNで保護する
- 不要なサービスは停止・削除する
- 定期的にログと更新を確認する
これらを順に行えば、安全にWeb公開できます。
代表的な構成パターン比較
概要
オンプレ(Ubuntu+Apache)とクラウド(AWS EC2+nginx)を用途、導入、運用面で比べます。どちらも静的・動的なWeb公開が可能ですが、適する場面が異なります。
主な用途
- オンプレ: 社内向け、アクセス数が比較的少ないサイトや検証環境に向きます。物理的に制御できる利点があります。
- クラウド: インターネット公開やトラフィック増加を見込むサービス向け。自動拡張やリージョン分散が簡単です。
セットアップ
- オンプレ: サーバー設置→OS(例: Ubuntu)インストール→Apache設定。ネットワークや電源の準備が必要です。
- クラウド: EC2インスタンス作成→OS設定→nginx導入。コンソールで短時間に環境を用意できます。
管理・運用
- オンプレ: ハード故障やバックアップは自前で対応します。セキュリティパッチも自社で適用します。
- クラウド: 基盤の多くを事業者が管理します。スナップショットや監視サービスが使えますが、設定責任はユーザーに残ります。
セキュリティ・可用性
クラウドはリージョン冗長やロードバランサーで高可用を実現しやすいです。オンプレは物理分離で強い独立性を確保できますが、冗長化にコストがかかります。
コストと拡張性
初期費用はオンプレが高く、ランニングは変動します。クラウドは初期が低めで需要に応じてリソースを増減できます。
選び方の目安
- 社内限定でメンテナンス体制が整っているならオンプレを検討してください。
- 公開サービスや急な負荷増加に備えるならクラウドを選ぶと運用が楽になります。












