こんにちは。今回は PHP でセッション名を変更する方法と、一般的によく設定する php.ini の項目についてまとめてみます。PHP を運用する上で、セキュリティやパフォーマンスを向上させる設定はとても重要です。ぜひ参考にしてみてください。
Contents
1. PHP のセッション名を変更する理由
PHP のデフォルトセッション名は PHPSESSID
となっています。これは広く知られている名称であり、悪意あるユーザーに PHP を利用していることを悟られやすくなる可能性があります。
セキュリティ面では “変えることに越したことはない” という位置づけで、以下の方法で簡単に変更できます。
2. セッション名を変更する方法
2-1. php.ini ファイルでの変更
- php.ini ファイルを開く
多くの場合、/etc/php.ini
や/etc/php/7.4/apache2/php.ini
などに配置されています。環境に応じて場所が異なるので探してみてください。 session.name
の行を探す
下記のようにデフォルト設定があるはずです。
session.name = PHPSESSID
- 希望する名前に変更する
例えば、以下のようにして変更できます。
session.name = MYSESSID
MYSESSID
の部分は自由に決めてOKです。変更したらファイルを保存します。
- PHPサービスを再起動
Apache、Nginx、PHP-FPM などを利用している場合は、再起動が必要です。
sudo systemctl restart apache2
- (上記は 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"
- ダブルクオートで囲むことで、スペースや特殊文字が含まれる文字列を正しく扱うことができます。
- シングルクオート(
'...'
)でも動作する場合があるものの、公式ドキュメントなどではダブルクオートが一般的に使われています。