PHP会话未保存在memcache中

 卟105932097 发布于 2023-01-09 15:54

使用Amazon Linux在AWS上使用php 5.4运行应用程序.

PHP版本是PHP 5.4.28.从AWS repo安装的memcache lib是php54-pecl-memcache-3.0.8-1.11.amzn1.x86_64

我已经验证php正在使用/etc/php.ini:

[root@ip-xx.xx.xx.xx]# php -i | grep Config
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini

设置显示我应该使用memcache:

[root@ip-10-40-17-119 etc]# grep "^session.save" php.ini
session.save_handler="memcache"
session.save_path="tcp://:11211"

[root@ip-10-40-17-119 php.d]# php -i | grep session.save
session.save_handler => memcache => memcache
session.save_path => tcp://:11211?persistent=1&weight=1&timeout=1&retry_interval=15 => tcp://:11211?persistent=1&weight=1&timeout=1&retry_interval=15

我可以从框中telnet到端点和端口并正确连接,因此实例可以连接到memcached服务器.

我们尝试过的事情:

我已从php.ini文件中删除了tcp://,这没有任何区别 - 会话仍然保存在文件中.

我们已从session.save_handler ="memcache"更改为session.save_handler ="memcached"

每次我们进行更改时,我们都会停止httpd服务器,然后再次启动它

我们甚至尝试重启服务器

无论我们尝试过什么,会话都存储在磁盘上/ var/lib/php/sessions中.是否有我遗漏的东西,或者这是一个已知的5.4或AWS问题?

2 个回答
  • 好的,我们设法解决了这个问题.

    首先,我们创建了一个吐出phpinfo()的简单页面.请注意,通过Web服务器运行它是很重要的 - 运行php -i不包括apache可能添加的任何覆盖.

    在会话部分下,输出列出了所有指令,以及"本地值"和"主值".

    当地的价值观有:

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

    而主要价值观有:

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

    事实证明,在/etc/httpd/conf.d/php.conf中默认安装了一个指定文件的覆盖.这似乎是一个Redhat/CentOS/Fedora的东西.

    从php.conf中删除这些值修复了问题.

    2023-01-09 15:57 回答
  • 这两个主要的memcache PHP PECL扩展都有会话处理程序.要么在使用前要求您安装PECL模块.

    该内存缓存 PECL扩展会话处理程序与在php.ini中启用如下:

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

    在Memcached的 PECL扩展会话处理程序与在php.ini中启用如下:

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

    请注意,Memcache扩展似乎允许更多配置Memcache环境.

    2023-01-09 15:57 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有