PHP-Sitzungen werden nicht im Memcache gespeichert

7

Ausführen einer Anwendung mit PHP 5.4 auf AWS mit Amazon Linux.

PHP-Version ist PHP 5.4.28. memcache lib, das vom AWS Repo installiert wird, ist php54-pecl-memcache-3.0.8-1.11.amzn1.x86_64

Ich habe überprüft, dass php /etc/php.ini verwendet:

%Vor%

Die Einstellung zeigt, dass ich Memcache verwenden soll:

%Vor%

Ich kann telnet von der Box bis zum Endpunkt & amp; Port und verbinden Sie sich ordnungsgemäß, so dass die Instanz eine Verbindung zum memcached-Server herstellen kann.

Dinge, die wir versucht haben:

  • Ich habe den tcp: // aus der php.ini-Datei entfernt, und das machte keinen Unterschied - Sitzungen werden immer noch in Dateien gespeichert.
  • Wir haben von session.save_handler="memcache" zu session.save_handler="memcached"
  • gewechselt
  • jedes Mal, wenn wir eine Änderung vornehmen, stoppen wir den httpd-Server und starten ihn dann erneut
  • wir haben sogar versucht, die Server neu zu starten

Unabhängig davon, was wir versucht haben, werden die Sitzungen auf der Festplatte nach / var / lib / php / sessions gespeichert. Gibt es etwas, das mir fehlt, oder ist dies ein bekanntes 5.4- oder AWS-Problem?

    
chris 12.06.2014, 12:36
quelle

2 Antworten

13

OK, wir haben es geschafft, das Problem zu lösen.

Zuerst haben wir eine einfache Seite erstellt, die phpinfo () ausspuckt. Beachten Sie, dass es wichtig ist, dass Sie dies über den Webserver ausführen - mit php -i enthält KEINE Überschreibungen, die der Apache hinzufügen kann.

Unter dem Session-Abschnitt listet die Ausgabe alle Direktiven und einen "lokalen Wert" und einen "Master-Wert" auf.

Die lokalen Werte hatten:

%Vor%

während die Masterwerte hatten:

%Vor%

Es stellt sich heraus, dass eine Überschreibung standardmäßig in /etc/httpd/conf.d/php.conf installiert ist, die die Dateien angibt. Dies scheint eine Redhat / CentOS / Fedora-Sache zu sein.

Das Entfernen dieser Werte aus der php.conf hat das Problem behoben.

    
chris 12.06.2014, 15:13
quelle
6

Beide großen PHP-PECL-Erweiterungen von memcache haben Session-Handler. In beiden Fällen müssen Sie vor der Verwendung ein PECL-Modul installieren.

Der Memcache PECL-Erweiterungssitzungs-Handler ist in der php.ini mit folgenden Funktionen aktiviert:

%Vor%

Der Memcached PECL-Erweiterungssitzungs-Handler ist in php.ini wie folgt aktiviert:

%Vor%

Beachten Sie, dass die Memcache-Erweiterung angezeigt wird, um mehr Konfiguration der Memcache-Umgebung zu ermöglichen.

    
user3733902 12.06.2014 12:45
quelle