PHP 会话设置的不同本地值和主值

PHP 会话设置的不同本地值和主值

我已经PHP 5.4.16 (cli) (built: Jun 23 2015 21:17:27)在 Centos7.0 上配置使用 memcached 进行会话处理。

[Session]
; Handler used to store/retrieve data.
; http://php.net/session.save-handler
session.save_handler = memcached

session.save_path = "tcp://127.0.0.1:11211"

根据, & 的phpinfo()局部值与主值不同。session.save_handlersession.save_path

主值如 php.ini 文件中所示。

在此处输入图片描述

我看不到在 .htaccess、/etc/httpd 下或 PHP 代码库中设置的这些本地值。

这些值可能来自其他地方吗?或者这些后备值可能表示我的memcached配置有问题。如果是这样,该如何修复?

我可以memcached通过使用类似的例子来验证它是否有效这是来自 Digital Ocean 的并在 telnet 会话中查看数据。

<?php

$mem = new Memcached();
$mem->addServer("127.0.0.1", 11211);

$result = $mem->get("blah");

if ($result) {
    echo $result;
} else {
    echo "No matching key found.  I'll add that now!";
    $mem->set("blah", "I am data!  I am held in memcached!") or die("Couldn't save anything to memcached...");
}
?>

我也尝试将这些行添加到 .htaccess 文件中。

php_flag session.save_handler "memcached"
php_flag session.save_path "127.0.0.1:11211"

但这些值似乎被归零了。

在此处输入图片描述

答案1

Centos7.0 PHP 软件包附带了一个额外的 Apache Confuration 文件,其名称令人困惑php.ini。它包含覆盖session.save_handlersession.save_path变量的语句。

$ egrep -rI php_  /etc/httpd/
/etc/httpd/conf.d/php.conf:php_value session.save_handler "files"
/etc/httpd/conf.d/php.conf:php_value session.save_path    "/var/lib/php/session"

相关内容