ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
Ubuntu に Apache をインストール
1. パッケージインストール
# パッケージリスト更新
sudo apt update
# Apache 本体インストール
sudo apt install -y apache2
# バージョン確認
apache2 -v
# Server version: Apache/2.4.58 (Ubuntu)
# サービス起動状況
sudo systemctl status apache2
# Active: active (running) と表示されれば OK
2. ブラウザで動作確認
サーバ上で curl http://localhost、または同一 LAN の PC から http://<サーバ IP> にアクセス。Apache の Ubuntu 標準ページが表示されれば成功です。
# サーバ自身の IP 確認
ip a | grep inet
# または
hostname -I
サービス操作(systemctl)
sudo systemctl start apache2 # 起動
sudo systemctl stop apache2 # 停止
sudo systemctl restart apache2 # 再起動
sudo systemctl reload apache2 # 設定再読込(無停止)
sudo systemctl enable apache2 # 自動起動 ON
sudo systemctl disable apache2 # 自動起動 OFF
sudo systemctl status apache2 # 状態表示
# apache2ctl 経由でも可
sudo apache2ctl start
sudo apache2ctl configtest # 設定構文チェック
sudo apache2ctl -M # ロード済モジュール一覧
ファイアウォール (UFW) で 80/443 開放
# UFW プロファイル一覧
sudo ufw app list
# Apache (ポート 80)
# Apache Full (ポート 80, 443)
# Apache Secure (ポート 443)
# HTTP + HTTPS 両方開ける
sudo ufw allow 'Apache Full'
# 確認
sudo ufw status
# Apache Full ALLOW Anywhere
主要ディレクトリ構成
| パス | 役割 |
|---|---|
/etc/apache2/apache2.conf | メイン設定ファイル |
/etc/apache2/ports.conf | リッスンポート設定 |
/etc/apache2/sites-available/ | VirtualHost 定義(無効状態) |
/etc/apache2/sites-enabled/ | 有効化された VirtualHost(シンボリックリンク) |
/etc/apache2/mods-available/ | モジュール設定 |
/etc/apache2/mods-enabled/ | 有効化されたモジュール |
/var/www/html/ | デフォルトドキュメントルート |
/var/log/apache2/access.log | アクセスログ |
/var/log/apache2/error.log | エラーログ |
VirtualHost 設定
複数のドメインを 1 つの Apache でホストする仕組みです:
# 1. ドキュメントルート作成
sudo mkdir -p /var/www/example.com/html
sudo chown -R $USER:$USER /var/www/example.com
echo "<h1>example.com</h1>" > /var/www/example.com/html/index.html
# 2. VirtualHost 設定ファイル作成
sudo nano /etc/apache2/sites-available/example.com.conf<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/html
<Directory /var/www/example.com/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
</VirtualHost># 3. サイトを有効化(シンボリックリンク作成)
sudo a2ensite example.com.conf
# デフォルトサイトを無効化(任意)
sudo a2dissite 000-default.conf
# 4. 構文チェック
sudo apache2ctl configtest
# Syntax OK
# 5. 反映
sudo systemctl reload apache2
モジュール有効化(a2enmod / a2dismod)
# よく使うモジュール
sudo a2enmod rewrite # mod_rewrite (.htaccess の RewriteRule)
sudo a2enmod ssl # SSL/TLS
sudo a2enmod headers # Header ディレクティブ
sudo a2enmod proxy # リバプロ
sudo a2enmod proxy_http
sudo a2enmod proxy_fcgi # PHP-FPM 連携
# 反映
sudo systemctl restart apache2
# 一覧
sudo apache2ctl -M
SSL/TLS: Let's Encrypt + certbot
無料 SSL 証明書を自動取得・自動更新できます:
# certbot インストール
sudo apt install -y certbot python3-certbot-apache
# Apache プラグインで証明書取得 + Apache 設定自動更新
sudo certbot --apache -d example.com -d www.example.com
# 対話で
# - メールアドレス入力
# - 利用規約に同意
# - HTTP → HTTPS リダイレクトする? → 2 (Redirect)
# 自動更新(systemd timer が標準で入る)
sudo systemctl list-timers | grep certbot
sudo certbot renew --dry-run # 更新リハーサル
PHP との連携(PHP-FPM)
Apache で PHP を動かすには mod_php または PHP-FPM + mod_proxy_fcgi の 2 通り。現在はPHP-FPM 推奨:
# PHP 8.x + FPM インストール
sudo apt install -y php-fpm php-mysql
# 必要モジュール有効化
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.3-fpm # バージョン読み替え
# Apache 再起動
sudo systemctl restart apache2
# 動作確認
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
# ブラウザで http://localhost/info.php
ログの確認
# アクセスログをリアルタイム監視
sudo tail -f /var/log/apache2/access.log
# エラーログをリアルタイム監視
sudo tail -f /var/log/apache2/error.log
# 特定 VirtualHost のログ
sudo tail -f /var/log/apache2/example.com_error.log
# ステータスコード集計
awk '{print $9}' /var/log/apache2/access.log | sort | uniq -c | sort -rn
パーミッション
# Apache 実行ユーザ確認
ps aux | grep apache2
# www-data ユーザーで動作
# ドキュメントルート権限
sudo chown -R www-data:www-data /var/www/example.com
sudo find /var/www/example.com -type d -exec chmod 755 {} \;
sudo find /var/www/example.com -type f -exec chmod 644 {} \;
# CGI / アップロードディレクトリだけ書込許可
sudo chmod 775 /var/www/example.com/html/uploads
よくあるトラブル
| 症状 | 原因 | 対処 |
|---|---|---|
| 403 Forbidden | 権限 / Require / Options 設定 | chmod 755 + Require all granted |
| 404 Not Found | DocumentRoot 誤り / index.html 無し | パス再確認、DirectoryIndex 設定 |
| 500 Internal Server Error | PHP エラー / .htaccess 誤記 | error.log 確認 |
| 外部からアクセス不可 | UFW / クラウドのセキュリティグループ | 80/443 開放 |
.htaccess が効かない | AllowOverride None | AllowOverride All + mod_rewrite 有効化 |
FAQ
Q: Apache と Nginx、どちらを選ぶ?
A: .htaccess や mod_php に慣れていれば Apache、高負荷静的配信や軽量さなら Nginx。WordPress 等の CMS は Apache が伝統的。
Q: ポート 80 を別のプロセスが使っている
A: sudo lsof -i:80 で確認し、不要なら停止。Nginx と共存させたいなら片方を別ポートに。
Q: SSL の自動更新は本当に動いている?
A: sudo systemctl status certbot.timer でタイマー有効を確認、sudo certbot renew --dry-run でリハーサル成功すれば OK。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?