Esecuzione di un'applicazione utilizzando php 5.4 su AWS utilizzando Amazon Linux.Le sessioni PHP non vengono salvate in memcache
La versione PHP è PHP 5.4.28. lib memcache installato dal repo AWS è php54-PECL-memcache-3.0.8-1.11.amzn1.x86_64
Ho verificato che il PHP sta usando /etc/php.ini:
[[email protected]]# php -i | grep Config
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini
Il impostazione spettacolo che dovrei usare 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
posso telnet dalla scatola al porto punto finale & e collegare correttamente, quindi l'istanza è in grado di connettersi al server memcached.
Le cose che abbiamo provato:
- Ho rimosso il tcp: // dal file php.ini, e che ha fatto alcuna differenza - le sessioni sono ancora sempre salvate in file.
- Abbiamo cambiato da session.save_handler = "memcache" per session.save_handler = "memcached"
- ogni volta che facciamo un cambiamento, ci fermiamo il server httpd, e poi riavviarlo
- abbiamo anche provato riavvio dei server
Indipendentemente da ciò che abbiamo provato, le sessioni vengono archiviate su disco in/var/lib/php/sessions. C'è qualcosa che mi manca, o si tratta di un problema noto di 5.4 o AWS?
Puoi provare 'memcached' come gestore invece di' memcache'? – DanFromGermany
@DanFromGermany: No, questo è un codice legacy e utilizza memcache per le cache db. – chris
PHP 5.4.29 non è legacy. Basta installare il modulo memcached e provarlo. Comunque non influenzerà il tuo codice PHP. Btw hai riavviato PHP (o server web se si tratta di un modulo o di fpm se è fcgi)? – DanFromGermany