[PHP-users 24193] セッションファイルに値が書き込めない件について

Michihito Miyoshi mkouyou @ boreas.dti.ne.jp
2005年 1月 24日 (月) 10:59:40 JST


三好と申します。

php のセッション機能を用いてサイトを構築しようと考えておりますが、セッションで生成されたファイルに値が記録されず困惑しております。

機能について調べたところ、下記 URI 中段、インストール手順の項目に、
http://www.php.net/manual/ja/ref.session.php

Quote ===========
注意: デフォルトでは、特定のセッションのすべての情報は session.save_path INIオプションで指定されたディレクトリに生成される ファイルに保存されます。 結びついている情報に関わらずセッション毎にひとつのファイルが生成されます。 セッションが開始され(ファイルが生成される)しか 
し何の情報も そのファイルに書き込まれない場合もあります(サイズがゼロのファイルが残る)。 この振る舞いはファイルシステムを使っていることによる副作用であり、 カスタムセッションハンドラ(例:データベースを使ったもの)を 使う場合には何の情報も持たないセッションについて追跡しない 
ように することは可能です。
=================

上記が該当すると考えられますが、どのような対処を行えばセッションの値を記録することができるのでしょうか。
この件について「セッション」「ファイルシステム」等で検索をかけましたが、有効な文章を見つけることが出来なかったため、お知恵を拝借できればと考えております。現在使用しているサーバでは無理でしょうか。

他に調べたところ、記載の通り MySQL 等のデータベースでカスタムセッションハンドラを使用する等ありましたが、可能であれば、セッションファイルに値が書き込める手段があれば良いと思っております。


尚、使用しているサーバは、
Sun Cobalt RaQ 550 (Linux)
Apache 1.3.29 + PHP 4.0.6 です。(バージョンが古い点承知しておりますが、変更が困難な状況です……言い訳に過ぎないのも承知してます…)


php.ini の値(session の項目のみ)
session.auto_start = On
session.cache_expire = 180
session.cache_limiter = nocache
session.cookie_domain = no value
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_secure = Off
session.entropy_file = no value
session.entropy_length = 0
session.gc_maxlifetime = 1440
session.gc_probability = 1
session.name = PHPSESSID
session.referer_check = no value
session.save_handler = files
session.save_path = /tmp
session.serialize_handler = php
session.use_cookies = On


セッション動作の為のテストコードは、
================
<?php
  session_name("MYSESS");
  session_start();
  $HTTP_SESSION_VARS["access"] += 1 ;
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>Test</title>
</head>
<body>
<p><?=$HTTP_SESSION_VARS["access"]?> 回目のご来訪です。 </p>
</body>
</html>
================

以上です。 



PHP-users メーリングリストの案内