我已经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_handler
session.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_handler
和session.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"