• PHP
PHP セッション名の変更方法と php.ini の記述方法まとめ

こんにちは。今回は PHP でセッション名を変更する方法と、一般的によく設定する php.ini の項目についてまとめてみます。PHP を運用する上で、セキュリティやパフォーマンスを向上させる設定はとても重要です。ぜひ参考にしてみてください。


1. PHP のセッション名を変更する理由

PHP のデフォルトセッション名は PHPSESSID となっています。これは広く知られている名称であり、悪意あるユーザーに PHP を利用していることを悟られやすくなる可能性があります。
セキュリティ面では “変えることに越したことはない” という位置づけで、以下の方法で簡単に変更できます。


2. セッション名を変更する方法

2-1. php.ini ファイルでの変更

  1. php.ini ファイルを開く
    多くの場合、/etc/php.ini/etc/php/7.4/apache2/php.ini などに配置されています。環境に応じて場所が異なるので探してみてください。
  2. session.name の行を探す
    下記のようにデフォルト設定があるはずです。
session.name = PHPSESSID
  1. 希望する名前に変更する
    例えば、以下のようにして変更できます。
session.name = MYSESSID

MYSESSID の部分は自由に決めてOKです。変更したらファイルを保存します。

  1. PHPサービスを再起動
    Apache、Nginx、PHP-FPM などを利用している場合は、再起動が必要です。
sudo systemctl restart apache2
  1. (上記は Apache の例です。ご利用のサービスに応じてコマンドを変更してください)

もし php.ini ファイルに session.name の設定が見つからない場合は、新しく追記してください。

2-2. .htaccess ファイルや PHP スクリプト内での変更

.htaccess ファイルでも同様に php_value を使って session.name を変更できます。また、PHP のスクリプト内で ini_set() 関数を使って動的に変更する方法もあります。たとえば以下のようにします。

<?php
// PHPスクリプト内で変更
ini_set('session.name', 'MYSESSID');
session_start();

php.ini のコメントアウト方法・記述方法について

1. コメントアウトの方法

php.ini は INI 形式 で書かれています。コメントアウトには ;(セミコロン) を使います。

; これはコメント行です
; memory_limit = 128M

上記のように、行頭をセミコロンで始めると、その行は無視されます。

ポイント

  • php.ini には “複数行をまとめてコメントアウトする” ための構文はありません。複数行を一括で無効にする場合も、行頭にそれぞれセミコロンを付ける必要があります。

2. 設定の記述方法

2-1. 一般的なディレクティブの記述例

php.ini は 設定項目 = 値 という形式で記述します。たとえば以下のようになります。

memory_limit = 128M
max_execution_time = 30
upload_max_filesize = 2M
post_max_size = 8M

2-2. 文字列の囲み方

文字列を指定する場合は、"(ダブルクオーテーション) で囲むことが推奨されています。たとえば、タイムゾーンを設定するときは以下のように書きます。

date.timezone = "Asia/Tokyo"
  • ダブルクオートで囲むことで、スペースや特殊文字が含まれる文字列を正しく扱うことができます。
  • シングルクオート('...')でも動作する場合があるものの、公式ドキュメントなどではダブルクオートが一般的に使われています。