2.

php.ini のコメントアウト記法|セミコロン ; / .ini ファイル共通

編集
この記事の要点
  • php.ini のコメントアウトはセミコロン ; を行頭に置く
  • 行末コメントは不可(PHP コードと違って //# は使えない)
  • 設定変更後はApache / php-fpm の再起動が必要
  • 現在使われている php.ini の場所は php --ini で確認
  • .ini ファイル全般で同じルール(INI 形式)

php.ini のコメントアウト

php.ini でコメントアウトするにはセミコロン ; を使います。INI ファイル仕様に従ったコメント形式です。

; これはコメント行(INI 形式)

; メモリ上限を 512MB に設定
memory_limit = 512M

; 以下は元の設定(コメントアウトで一時的に無効化)
; memory_limit = 128M

行末コメントは不可

PHP コードでは // # /* */ がコメントですが、php.ini はこれらすべて使えません。行末にコメントを付けようとすると設定値の一部と認識されてエラー:

; ❌ NG: 行末コメントは値の一部として認識
memory_limit = 512M  // 512MB に拡張

; ❌ NG: # はコメントにならない
memory_limit = 512M  # 説明

; ✅ OK: コメントは別行に
; メモリ上限を 512MB に拡張
memory_limit = 512M

セクション分割

INI 形式では [セクション名] でグルーピングします(php.ini ではあまり使わないが他 INI で重要):

; PHP コア設定
[PHP]
memory_limit = 512M
max_execution_time = 300

; MySQL 拡張
[MySQLi]
mysqli.default_host = localhost

; Date 拡張
[Date]
date.timezone = Asia/Tokyo

変更後の再起動

php.ini はプロセス起動時にしか読み込まれないため、変更を反映するには関連サーバの再起動が必要:

# Apache (mod_php) の場合
sudo systemctl restart apache2          # Ubuntu / Debian
sudo systemctl restart httpd            # CentOS / RHEL

# Nginx + PHP-FPM の場合
sudo systemctl restart php8.2-fpm       # PHP のバージョンによる

# php.ini 変更したのに反映されない時の確認:
# 1. 編集した php.ini が実際に読まれているか
# 2. 再起動忘れ
# 3. APC / OPcache のキャッシュ

使用中の php.ini を特定

サーバ環境では複数の php.ini が存在することがあるため、どれが効いているかを確認:

# コマンドライン
php --ini

# 出力例:
# Configuration File (php.ini) Path: /etc/php/8.2/cli
# Loaded Configuration File:         /etc/php/8.2/cli/php.ini
# Scan for additional .ini files in: /etc/php/8.2/cli/conf.d
# Additional .ini files parsed:      /etc/php/8.2/cli/conf.d/10-opcache.ini,
#                                    /etc/php/8.2/cli/conf.d/20-mysqli.ini

# ★ CLI と Apache / FPM は別の php.ini を使う
#   CLI:    /etc/php/8.2/cli/php.ini
#   FPM:    /etc/php/8.2/fpm/php.ini
#   Apache: /etc/php/8.2/apache2/php.ini

# Web 経由で確認 (phpinfo.php を作成)

# → "Configuration File (php.ini) Path" を確認

conf.d 配下の追加 .ini

多くの Linux ディストロでは php.ini 本体ではなく conf.d/ 配下に拡張ごとの設定ファイルが分割されています:

/etc/php/8.2/fpm/
├── php.ini                       ← メイン
├── php-fpm.conf                  ← FPM プール設定
└── conf.d/
    ├── 10-opcache.ini            ← OPcache
    ├── 20-mysqli.ini             ← MySQLi
    ├── 20-pdo.ini                ← PDO
    ├── 20-curl.ini               ← cURL
    └── 99-local.ini              ← サイト固有上書き

カスタム設定は php.ini 本体ではなく conf.d/99-local.ini 等に書くのがメンテナンス的に安全(OS アップデートで php.ini が上書きされても残る)。

よくある php.ini 設定

; ===== 一般 =====
memory_limit = 512M
max_execution_time = 300
max_input_time = 60

; ===== ファイルアップロード =====
upload_max_filesize = 20M
post_max_size = 25M
max_file_uploads = 20

; ===== エラー表示 =====
display_errors = Off          ; 本番では Off
log_errors = On
error_log = /var/log/php_errors.log

; ===== 文字コード =====
default_charset = "UTF-8"
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8

; ===== タイムゾーン =====
date.timezone = "Asia/Tokyo"

; ===== セッション =====
session.cookie_secure = 1     ; HTTPS のみ
session.cookie_httponly = 1
session.cookie_samesite = "Lax"

; ===== OPcache =====
opcache.enable = 1
opcache.memory_consumption = 256
opcache.max_accelerated_files = 10000
opcache.revalidate_freq = 2

他 INI ファイルでも同じルール

セミコロン ; がコメントの INI 形式は以下のファイルでも使われます:

  • my.cnf / my.ini (MySQL) — ; または # 両方可
  • php-fpm.conf — php.ini と同じ ;
  • desktop.ini (Windows) — ;
  • setup.cfg / setup.ini (Python パッケージ) — ; または #
  • tox.ini (Python テスト) — ; または #

関連

  • php.ini 構文エラー — 起動ログに「PHP Warning: PHP Startup: Invalid ...」と出る
  • ini_set() で実行時変更 — 一時的な設定変更は PHP コード内で ini_set('memory_limit', '1G')
  • .user.ini — Apache + suPHP / PHP-FPM 環境で、ディレクトリ毎の上書きが可能
  • htaccess — mod_php 環境では php_value memory_limit 512M で上書き可能
編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. ファイルの場所
  2. コメントアウトの仕方