Php

PHP 會話設置的不同本地值和主值

  • June 7, 2016

我已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配置存在問題。如果是這樣,如何解決這個問題?

我可以通過使用來自 Digital Oceanmemcached的範例並在 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"

但是這些值似乎歸零了。

在此處輸入圖像描述

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"

引用自:https://serverfault.com/questions/780201