使用Amazon Linux在AWS上使用php 5.4運行應用程序。未將PHP會話保存在memcache中
PHP版本是PHP 5.4.28。從AWS回購安裝 內存緩存LIB是php54-PECL,內存緩存,3.0.8-1.11.amzn1.x86_64
我已經驗證,PHP是使用/etc/php.ini中:
[[email protected]]# php -i | grep Config
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini
的設置,我應該使用的memcache顯示:
[[email protected] etc]# grep "^session.save" php.ini
session.save_handler="memcache"
session.save_path="tcp://<elasticache-endpoint>:11211"
[[email protected] 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
我可以從包裝盒到終點&端口Telnet和正確連接,所以實例是能夠連接到memcached服務器。
的事情,我們曾嘗試:
- 我已刪除了TCP://從php.ini文件,並沒有什麼區別 - 會話仍然得到保存在文件中。
- 我們從session.save_handler =「內存緩存」改爲session.save_handler =「分佈式緩存」每次我們作出改變時
- ,我們停止在httpd服務器,然後再啓動它
- 我們甚至試圖重新啓動服務器
無論我們嘗試過什麼,會話都會存儲在磁盤上/ var/lib/php/sessions。 有什麼我很想念,或者這是一個已知的5.4或AWS問題?
你可以嘗試'memcached'作爲處理程序而不是'memcache'嗎? – DanFromGermany
@DanFromGermany:不,這是遺留代碼,併爲db緩存使用memcache。 – chris
PHP 5.4.29不是傳統。只需安裝memcached模塊並嘗試一下。反正它不會影響你的PHP代碼。順便說一句,你重新啓動PHP(無論是網絡服務器,如果它是一個模塊,或者fpm,如果它是fcgi)? – DanFromGermany