ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|---|
|
Apacheの設定ファイル(httpd.conf や個別の vhost ファイル)に構文エラーがないかを確認する最も確実な方法は、apachectl configtest(内部的には httpd -t と同じ)を実行することです。これは設定ファイルを実際に読み込んでパースし、文法エラーや指示子(ディレクティブ)の記述ミスを検出します。さらに、バーチャルホストがどう解釈され、どのリクエストにどの <VirtualHost> ブロックが適用されるかは httpd -S で一覧確認できます。この記事では、これら2つのコマンドの使い方と出力の読み方、安全な反映手順、ディストリ差、典型的なエラー例までをまとめます。
構文エラーの有無を確認する:apachectl configtest(httpd -t)
設定ファイルの構文チェックは、次のいずれかのコマンドで行います。どちらも同じ処理です(configtest は -t を呼び出すラッパー)。
|
# RHEL / CentOS / Rocky / AlmaLinux 系 $ sudo apachectl configtest # これと同じ意味(短い形式) $ sudo httpd -t # Debian / Ubuntu 系 $ sudo apache2ctl configtest |
構文に問題がなければ、次のように Syntax OK と表示されます。
|
$ sudo apachectl configtest Syntax OK |
Syntax OK は「設定ファイルが文法的に正しく読み込めた」という意味であり、サイトが意図通り動くことまでは保証しません。たとえば DocumentRoot に指定したディレクトリが存在しない、証明書ファイルのパスが間違っている、といった「文法は正しいが運用上おかしい」問題は Syntax OK でも検出されないことがあります。あくまで「構文と基本的な整合性のチェック」と捉えてください。
エラーがある場合は、問題のファイル名と行番号、エラー内容が表示されます。次は </VirtualHost> の閉じタグが抜けている例です。
|
$ sudo apachectl configtest AH00526: Syntax error on line 12 of /etc/httpd/conf.d/example.conf: <VirtualHost> was not closed. |
このようにエラーは「どのファイルの何行目で、何が問題か」を示してくれるため、表示された行番号を起点に該当ファイルを直していきます。
バーチャルホストの一覧と優先順位を確認する:httpd -S
定義済みのバーチャルホストの一覧と、どのIP:ポートにどのホストが割り当てられているかは httpd -S(Debian/Ubuntu系では apache2ctl -S)で確認します。-S は -D DUMP_VHOSTS -D DUMP_RUN_CFG を有効にした構文チェックで、内部的には設定の読み込みも行うため、構文エラーがあればここでも報告されます。
|
$ sudo httpd -S VirtualHost configuration: |
この出力の読み方は次のとおりです。
| 行の見出し | 意味 |
|---|---|
*:80 is a NameVirtualHost |
このIP:ポートで名前ベースのバーチャルホスト(同一ポートを ServerName で振り分け)が有効になっている。 |
default server … |
そのIP:ポートで最初にマッチした vhost。どの ServerName にも一致しないリクエストはここに振られる。ファイル先頭側の定義が既定になりやすい。 |
port 80 namevhost … |
個々のバーチャルホスト。末尾の (ファイル:行番号) がその定義の場所を示す。 |
Main DocumentRoot |
<VirtualHost> の外側(グローバル)で設定された既定の公開ディレクトリ。 |
意図したホストが一覧に出てこない、または default server が想定と違う場合は、設定の読み込み漏れや定義順の問題を疑います。とくに「アクセスすると別サイトが表示される」トラブルは、default server として拾われている vhost を httpd -S で特定すると原因に早くたどり着けます。
テストしてから安全に反映する:graceful
設定を変更したら、必ず構文チェックに通してから再読み込みします。テストせずに restart や reload を実行すると、設定ミスがあった場合に Apache が起動に失敗し、稼働中のサイトごと停止してしまう恐れがあります。次の順序を習慣にしてください。
|
# 1. まず構文チェック $ sudo apachectl configtest # 2. Syntax OK を確認できたら、無停止で再読み込み $ sudo apachectl graceful |
graceful は、処理中のリクエストを中断せずに完了させたうえで、子プロセスを順次入れ替えて設定を反映します。そのため 無停止で設定を反映できるのが利点です。なお graceful 自体も再読み込み前に設定を検査し、構文エラーがあれば反映を行わず現行設定のまま稼働を続けます。とはいえ事前の configtest で内容をはっきり確認してから実行するのが安全です。
サービスマネージャ(systemd)経由で運用している場合は、次のように reload を使う方法もあります(多くの環境で内部的に graceful 相当の動作になります)。
|
# RHEL系 $ sudo systemctl reload httpd # Debian / Ubuntu系 $ sudo systemctl reload apache2 |
ディストリビューションによるコマンドの違い
Apacheの管理コマンドは、ディストリビューションによって名前や標準のパス・設定ファイルの場所が異なります。やりたいことが同じでも、環境に合わせてコマンド名を読み替えてください。
| やりたいこと | RHEL系(CentOS / Rocky / Alma) | Debian / Ubuntu系 |
|---|---|---|
| 構文チェック | apachectl configtest / httpd -t |
apache2ctl configtest / apachectl configtest |
| vhost 一覧 | httpd -S / apachectl -S |
apache2ctl -S / apachectl -S |
| 無停止リロード | apachectl graceful |
apache2ctl graceful |
| メイン設定ファイル | /etc/httpd/conf/httpd.conf |
/etc/apache2/apache2.conf |
| vhost 配置場所 | /etc/httpd/conf.d/ |
/etc/apache2/sites-available/(a2ensite で有効化) |
Debian/Ubuntu系では、apache2ctl が標準のラッパーで、apachectl はその別名(シンボリックリンク)として提供されることが多いです。どちらを使っても同じ結果になりますが、環境変数を読み込むため apache2ctl(または apachectl)を使うのが推奨され、httpd バイナリを直接叩く運用は基本的に RHEL系のものと考えて差し支えありません。
典型的なエラー例と対処
| よくある落とし穴 |
|---|
|
よくある質問
Q. apachectl configtest と httpd -t は何が違いますか?
A. 実質的に同じです。apachectl は httpd バイナリのラッパースクリプトで、configtest サブコマンドは内部で httpd -t を呼び出します。apachectl 側は環境変数の読み込みなどを面倒見てくれるため、通常は apachectl configtest を使うほうが安全です。
Q. Syntax OK なのにサイトが正しく表示されません。
A. Syntax OK は構文と基本整合性の確認であって、実際の表示結果までは保証しません。httpd -S で意図した vhost が想定どおりのIP:ポートに割り当たっているか、DocumentRoot のパスやパーミッション、ServerName / ServerAlias の指定を確認してください。エラーログ(RHEL系 /etc/httpd/logs/error_log、Debian系 /var/log/apache2/error.log)も合わせて確認すると原因を絞り込めます。
Q. 設定変更を反映するのに restart と graceful のどちらを使うべきですか?
A. 稼働中のサービスであれば、処理中のリクエストを切らずに反映できる graceful(または systemctl reload)が基本です。restart は Apache を一度停止してから起動し直すため瞬間的な接続断が起き、設定ミスがあると再起動に失敗してサービスが落ちます。いずれの場合も、事前に apachectl configtest で Syntax OK を確認してから実行してください。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- インストール方法(Ubuntu)
- Apache HTTP Server のインストール方法(CentOS / RHEL)
- ディレクトリ構造
- httpd.conf(設定ファイル)
- ドキュメントルートの変更方法
- .htaccess
- コマンド一覧
- エラー一覧
- VPSへの導入例(CentOS編)
- SSLの設定
- httpd.conf系のバーチャルホストの設定エラー有無確認方法
- .htaccess でベーシック認証
- configの文法チェック
人気ページ
- 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
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 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
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?