Uruchamianie aplikacji przy użyciu php 5.4 na AWS przy użyciu Amazon Linux.Sesje PHP nie są zapisywane w memcache
Wersja PHP to PHP 5.4.28. memcache Ilb zainstalowany z repo AWS php54-pecl-memcache-3.0.8-1.11.amzn1.x86_64
I sprawdzeniu, że PHP stosuje /etc/php.ini:
[[email protected]]# php -i | grep Config
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini
ustawienie pokazać, że należy przy użyciu 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
można telnet z pudełka do portu końcowego punkt & i podłączyć prawidłowo, więc instancja jest w stanie połączyć się z serwerem memcached.
Rzeczy, które próbowaliśmy:
- usunąłem TCP: // z pliku php.ini, i że nie ma różnicy - sesje są nadal uzyskiwanie zapisane w plikach.
- Zmieniliśmy od session.save_handler = „memcache” do session.save_handler = „memcached”
- każdym razem dokonać zmiany, zatrzymujemy serwer httpd, a następnie uruchomić go ponownie
- mamy nawet próbował ponowne uruchamianie serwerów
Niezależnie od tego, co próbowaliśmy, sesje są przechowywane na dysku do/var/lib/php/sessions. Czy jest coś, czego mi brakuje, czy jest to znany problem 5.4 lub AWS?
Czy możesz wypróbować 'memcached' jako handler zamiast' memcache'? – DanFromGermany
@DanFromGermany: Nie, jest to starszy kod i używa memcache dla buforów podręcznych. – chris
PHP 5.4.29 nie jest starszą wersją. Po prostu zainstaluj moduł memcached i spróbuj. Nie wpłynie to na twój kod PHP. Czy przy okazji zrestartowałeś PHP (albo serwer WWW, czy to moduł, czy fpm, jeśli to fcgi)? – DanFromGermany