PHP会话未保存在memcache中
使用Amazon
Linux在AWS上使用php 5.4运行应用程序.
PHP版本是PHP 5.4.28. 我已经验证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://<elasticache-endpoint>:11211" [root@ip-10-40-17-119 php.d]# php -i | grep session.save session.save_handler => memcache => memcache session.save_path => tcp://<elasicache-endpoint>:11211?persistent=1&weight=1&timeout=1&retry_interval=15 => tcp://<elasticache-endpoint>:11211?persistent=1&weight=1&timeout=1&retry_interval=15 我可以从盒子到终点&端口并正确连接,因此实例能够连接到memcached服务器. 我们尝试过的事情: >我已从php.ini文件中删除了tcp://,这没有任何区别 – 会话仍然保存在文件中. 无论我们尝试过什么,会话都存储在磁盘上/ var / lib / php / sessions中.
好的,我们设法解决了这个问题.
首先,我们创建了一个吐出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中删除这些值修复了问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |