ปัญหาของระบบ Distributed System สำหรับเว็บไซต์ก็คือการอ้างอิง Session ระหว่างเครื่องด้วยกันเอง ซึ่งสามารถทำได้หลายวิธี เช่นการใช้ file แชร์ไว้ทุกๆเครื่อง หรือจะเป็นการบันทึก session ลงใน database แต่ในที่นี้เราจะใช้ memcache ในการแชร์ session ระหว่างเครื่อง

ทำการติดตั้ง Memcache และ extension ของ php ผ่าน repository ของ ubuntu ด้วยคำสั่ง

apt-get install memcached

apt-get install php5-memcache

ทำการแก้ไขไฟล์ php.ini เพื่อทำการเซฟ session ผ่าน memcache (แทนที่การใช้ file)

nano /etc/php5/apache2/php.ini

session.save_handler = memcache
session.save_path=”tcp://server:port?persistent=1&weight=1&timeout=1&retry_interval=15″

ทำการแก้ไข memcached.conf เพื่อให้ server อื่นๆสามารถเชื่อมต่อเข้ามาได้ โดยสามารถกำหนด listening address เองได้

nano /etc/memcached.conf

#-l 127.0.0.1

สั่ง Restart Service ด้วยคำสั่ง

/etc/init.d/memcached restart

/etc/init.d/apache2 restart

ทดสอบการเชื่อมต่อระหว่างเครื่องด้วยคำสั่ง telnet ipOfMemcacheServer 11211 ว่าสำเร็จหรือไม่

ทดสอบการเรียก extension ของ php ด้วยการใช้ฟังก์ชั่น phpinfo(); ว่ามี memcache ถูกเรียกมาหรือไม่

ทดสอบ memcache ด้วยการสร้าง session ด้วย php แล้วเรียก session ที่เก็บไว้ด้วยเครื่องอื่นๆ