Running an application using php 5.4 on AWS using the Amazon Linux.
PHP version is PHP 5.4.28. memcache lib installed from the AWS repo is php54-pecl-memcache-3.0.8-1.11
OK, we managed to figure out the issue.
First, we created a simple page that spit out phpinfo(). Note that it is important that you run this thru the web server - running php -i DOES NOT include any overrides that apache may add.
Under the session section, the output lists all the directives, and a "Local Value" and a "Master Value".
The local values had:
session.save_handler files
session.save_path /var/lib/php/session
while the master values had:
session.save_handler memcache
session.save_path tcp://<endpoint>:11211
It turns out that there's an override installed by default in /etc/httpd/conf.d/php.conf that specifies the files. This appears to be a Redhat/CentOS/Fedora thing.
Removing those values from php.conf fixed the problem.
Both of the major memcache PHP PECL extensions have session handlers. Either will require you to install a PECL module before use.
The Memcache PECL extension session handler is enabled with the following in php.ini:
session.save_handler = "memcache"
session.save_path = "tcp://memcacheServerAddressHere:11211?persistent=1&weight=2&timeout=2&retry_interval=10"
The Memcached PECL extension session handler is enabled with the following in php.ini:
session.save_handler = "memcached"
session.save_path = "memcacheServerAddressHere:11211"
Note that the Memcache extension appears to allow more configuration of the Memcache environment.