Subscribe
Dapatkan berita terbaru seputar startup dan inspirasi technopreneurship dengan berlangganan newsletter Grevia.

 

About memcached

Store php session with memcached Centos Integrate Memcached to php session Ubuntu 14

Memcached

adalah platform cache server berbasis linux yang cukup populer. Kompetitor sejenis adalah redis dan solr

Setup session with memcached
Server 1
128.199.223.81 ;
IP local : 10.130.18.16

Server 2
188.166.212.57 ;
IP local : 10.130.41.103

Step 1 : Install memcached :
yum install memcached
Lalu jalankan servicenya
service memcached start
Ubah settingan config memcached
nano /etc/sysconfig/memcached
Tambahkan command listen (yang berwarna merah) untuk menjelaskan bahwa tiap IP listen ke IP internal masing2.
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 10.130.41.103"
Jika sudah, restart memchaced
service memcached restart
*notes : GANTI SEMUA SETTING DIATAS UNTUK SETIAP SERVER

Step 2: Set Memcached sebagai PHP SESSION

Bukalah config php.ini
nano /etc/php.ini
find / tekan ctrl + w di nano editor, untuk cari teks berikut
session.save_handler =
session.save_path =
ganti save_handler dengan memcache, save_path dengan ip internal server1,server2,dst
session.save_handler = memcache
session.save_path = 'tcp://10.130.18.16:11211,tcp://10.130.41.103:11211'
*Jangan lupa port 11211

Lalu buka memcache.ini
nano /etc/php.d/memcache.ini
Tambahkan config ini
memcache.allow_failover=1
memcache.session_redundancy=3
untuk mengisi angka memcache.session_redundancy harus diisi dengan jumlah memcached server aktif + 1 (dalam contoh kali ini adalah 2 server + 1 yaitu 3) dikarenakan bug dari PHP

Jika sudah, reset server memcached dan Nginx
service memcached restart
/etc/init.d/nginx restart
/etc/init.d/php-fpm restart

*lakukan ini di setiap server script yang ada

Step 3 : Mengetes login

Jika sudah lakukan pengetesan dengan membuat file session.php dengan isi:
header('Content-Type: text/plain');
session_start();
if(!isset($_SESSION['visit']))
{	echo "This is the first time you're visiting this server\n";	$_SESSION['visit'] = 0;
}
else	echo "Your number of visits: ".$_SESSION['visit'] . "\n";
$_SESSION['visit']++;
echo "Server IP: ".$_SERVER['SERVER_ADDR'] . "\n";
echo "Client IP: ".$_SERVER['REMOTE_ADDR'] . "\n";
print_r($_COOKIE);
Lalu ambil PHPSESSID untuk mensimulasikan seakan-akan kita user yang sama
curl -v -s http://s1.makeuphunter.com/session.php 2>&1 | grep 'Set-Cookie:'
maka akan memunculkan
< Set-Cookie: PHPSESSID=8lebte2dnqegtp1q3v9pau08k4; path=/
Copy value dari PHPSESSID yaitu 8lebte2dnqegtp1q3v9pau08k4 dan coba lakukan request curl ke server lain
curl --cookie "PHPSESSID=8lebte2dnqegtp1q3v9pau08k4" http://s1.makeuphunter.com/session.php http://s2.makeuphunter.com/session.php
Jika sudah, coba matikan satu server untuk melihat efek dan IP server apakah sudah berubah

Install dulu package development & agar pecl bisa diinstall
yum groupinstall "Development Tools"
yum install php php-pear php-devel
Update dulu system
yum update
Lalu install pecl memcache
pecl install memcached
tambahkan module memcache
echo "extension=memcache.so" >> /etc/php.ini
lalu restart php-fpm
/etc/init.d/php-fpm restart
By Rusdi

Copyright © 2011 - 2024. Grevia Networks
×