PHP Sessions in Memcached

The moment a PHP application grows to run on more servers, normally people will see problems caused by PHP sessions. If the application is not persistent you are lucky and don’t care about this, but if not you will quickly see this regardless of how good the load balancer you use is handling stickiness (sending the users to the same real server), this will slowly become a major issue. There are various solutions that can be used to store PHP sessions in a shared location, but I want to present today one solution that is very simple to implement, yet very efficient and on the long term better suited than using a database backend for this: using memcache to store the sessions.

The pecl memcache php extension has supported for a long time the memcache session.save_handler, but with the release 3.0.x (still in beta at this time) this brings in a set of interesting features for us:
- UDP support
- Binary protocol support
- Non-blocking IO using select()
- Key and session redundancy (values are written to N mirrors)
- Improved error reporting and failover handling

Read the rest of this entry »

Tags: , , , ,

PHP Pecl Memcached module installation problems

I am using on several projects memcached and on the application side the php memcached module. This can be installed as any pear/pecl module, or from source by downloading the source .tgz and running the classic phpize; ./configure; make; make install; While trying to upgrade the memcached module to the latest version available 2.1.2 I encoutered a problem, receiving an error during the compile step:
configure: error: Cannot find php_session.h”

Read the rest of this entry »

Tags: , ,

Marius on Twitter