ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
概要
INI ファイル(initialization file)は、[section] ヘッダと key = value 形式の行で設定を表現する、シンプルで古典的なテキスト設定形式です。MS-DOS 〜 Windows 3.x 時代に win.ini・system.ini・control.ini などとして OS の主要設定に使われていたのが起源で、Windows 95 以降は中央集権的なレジストリに移行しましたが、形式自体は 今もアプリケーション設定の定番 として残っています。
拡張子は .ini が代表的ですが、内容が同形式でも .cfg・.conf・.gitconfig・.editorconfig・php.ini・systemd の .service など、さまざまな拡張子で使われます。正式な国際標準仕様は存在しないため、パーサ実装ごとに方言があるのが最大の特徴です。
構文・データモデル
典型的な INI ファイル:
; これは Windows 流コメント
# これは UNIX 流コメント(実装依存)
[database]
host = localhost
port = 3306
user = admin
password = "p@ss word"
[logging]
level = info
file = /var/log/app.log
[features]
enable_cache = true
max_connections = 100
systemd unit ファイル(INI 形式の現代的な実例):
[Unit]
Description=My Application
After=network.target
[Service]
Type=simple
User=myapp
ExecStart=/usr/bin/myapp --port 8080
Restart=on-failure
[Install]
WantedBy=multi-user.target
データモデルは「section → key → value(基本は文字列)」というほぼフラットな 2 階層構造です。ネスト・配列・型は仕様レベルでは存在せず、必要なら値の文字列をカンマ区切りでパースするなど実装側で工夫します。
主な用途
- php.ini: PHP の動作設定(メモリ上限・タイムゾーン・拡張モジュール)
- systemd unit ファイル:
/etc/systemd/system/*.service、*.timer、*.socket - .gitconfig: Git のユーザー設定(INI に似た独自方言)
- .editorconfig: エディタ間で共有するインデント・改行設定
- Python の setup.cfg: パッケージ・Linter(flake8 など)の設定
- Windows レガシーアプリ: ゲームの
config.ini等、いまだ現役 - MySQL my.cnf / PostgreSQL postgresql.conf の一部
関連形式との比較
| 項目 | INI | TOML | YAML | JSON |
|---|---|---|---|---|
| 標準仕様 | なし(方言だらけ) | v1.0.0 で確立 | YAML 1.2.2 | RFC 8259 |
| コメント | 可(; / #) | 可(#) | 可(#) | 不可 |
| 型 | すべて文字列 | 豊富(日時含む) | 豊富(暗黙変換あり) | 6 種類 |
| ネスト | 基本不可 | テーブルで可 | インデントで可 | 可 |
| 歴史 | 1980 年代〜 | 2013 年〜 | 2001 年〜 | 2001 年〜 |
| 主用途 | レガシー設定全般 | 近代的設定 | CI・IaC | API・データ交換 |
TOML は「INI の良さを残しつつ厳密に再設計した後継」と位置付けると整理しやすいでしょう。
編集・パーサ・ツール
- Python
configparser: 標準ライブラリ。configparser.ConfigParser()で読み書き、補間(%(key)s)に対応 - PHP
parse_ini_file()/parse_ini_string(): 標準関数で INI を配列として読める - Node.js:
ini(npm)、rc - Go:
gopkg.in/ini.v1(go-ini) - Rust:
rust-ini - VS Code: 多くの拡張子(
.ini/.conf/.service)でシンタックスハイライト対応 - テキストエディタなら何でも編集可能: シンプルゆえに最強の互換性を持つ
注意点・落とし穴
- 標準仕様がない: コメント記号(
;vs#)、クォートの扱い、マルチライン値、サブセクションなどパーサごとに違う。複数パーサで共有する INI を書くときは保守的に - キーが大文字小文字を区別するかは実装依存:
configparserはデフォルトで小文字化する - 値はすべて文字列:
port = 3306もパーサ内では"3306"。getint()/getboolean()など型変換 API を使う - セクション外のキーの扱い: 一部実装は
[DEFAULT]に入れる、別の実装はエラーになる - セクション重複・キー重複: マージするか後勝ちかパーサ依存
- 機密情報: php.ini に DB パスワードを直書きするのは避け、
.envや OS の環境変数経由で渡す - ネストしたい誘惑:
[parent.child]のようなドット区切りで階層を表現する方言があるが、互換性は低い。階層が必要なら TOML / YAML に移行する方が健全
関連リンク
- Web・データ・設定
- ファイル拡張子とは
- TOML(.toml)
- env(.env)
- properties(.properties)
- conf(.conf)
- YAML(.yaml / .yml)
- php.ini
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?