PHP sessions not being saved in memcache

后端 未结 2 1899
悲哀的现实
悲哀的现实 2021-02-06 04:58

Running an application using php 5.4 on AWS using the Amazon Linux.

PHP version is PHP 5.4.28. memcache lib installed from the AWS repo is php54-pecl-memcache-3.0.8-1.11

相关标签:
2条回答
  • 2021-02-06 05:44

    OK, we managed to figure out the issue.

    First, we created a simple page that spit out phpinfo(). Note that it is important that you run this thru the web server - running php -i DOES NOT include any overrides that apache may add.

    Under the session section, the output lists all the directives, and a "Local Value" and a "Master Value".

    The local values had:

    session.save_handler    files
    session.save_path   /var/lib/php/session
    

    while the master values had:

    session.save_handler    memcache
    session.save_path   tcp://<endpoint>:11211
    

    It turns out that there's an override installed by default in /etc/httpd/conf.d/php.conf that specifies the files. This appears to be a Redhat/CentOS/Fedora thing.

    Removing those values from php.conf fixed the problem.

    0 讨论(0)
  • 2021-02-06 06:05

    Both of the major memcache PHP PECL extensions have session handlers. Either will require you to install a PECL module before use.

    The Memcache PECL extension session handler is enabled with the following in php.ini:

    session.save_handler = "memcache"
    session.save_path = "tcp://memcacheServerAddressHere:11211?persistent=1&weight=2&timeout=2&retry_interval=10"
    

    The Memcached PECL extension session handler is enabled with the following in php.ini:

    session.save_handler = "memcached"
    session.save_path = "memcacheServerAddressHere:11211"
    

    Note that the Memcache extension appears to allow more configuration of the Memcache environment.

    0 讨论(0)
提交回复
热议问题