PHP使用Memached實現Session儲存

1,安裝memcached

1.1,下載並安裝

# wget http://memcached.googlecode.com/files/memcached-1.4.8.tar.gz

# tar -zxvf memcached-1.4.8.tar.gz

# cd memcached-1.4.8

# ./configure

# make && make install

注意:若是沒有安裝libevent致使./configure時出錯,則先裝libevent


# wget https://github.com/downloads/libevent/libevent/libevent-2.0.15-stable.tar.gz

# tar -zxvf libevent-2.0.15-stable.tar.gz

# cd libevent-2.0.15-stable

# ./configure

# make && make install

1.2,啓動memcached

memcached -d -m 1024 -u root -l 10.66.1.235 -p 11211 -c 4096 -P /tmp/memcached.pid

說明:

-p 監聽的端口

-l 鏈接的IP地址, 默認是本機

-d start 啓動memcached服務

-d restart 重起memcached服務

-d stop|shutdown 關閉正在運行的memcached服務

-d install 安裝memcached服務

-d uninstall 卸載memcached服務

-u 以的身份運行 (僅在以root運行的時候有效)

-m 最大內存使用,單位MB。默認64MB

-M 內存耗盡時返回錯誤,而不是刪除項

-c 最大同時鏈接數,默認是1024

-f 塊大小增加因子,默認是1.25

-n 最小分配空間,key+value+flags默認是48

-h 顯示幫助



注意:

若是不能啓動大於1024的鏈接數,那麼必需要先修改Linux的內核參數,能夠設置到最大的參數, ulimit -n 查看鏈接數。

1.3,修改Linux內核的鏈接數

(1).編輯 /etc/sysctl.conf

在文件最末尾加入下面內容

fs.file-max = 755070

(2).編輯 /etc/security/limits.conf , 添加下面兩行

星號表明全局, soft爲軟件,hard爲硬件,nofile爲這裏指可打開文件數。

* soft nofile 8192

* hard nofile 8192

(3).編輯 /etc/pam.d/login , 添加下面一行

session required /lib64/security/pam_limits.so

(4). 設置系統當前ulimit

# ulimit -n 8192

(5). 需無緊要,則重啓系統。

1.4,安裝服務啓動腳本

(1),複製啓動腳本

# cp script/memcached.sysv /etc/init.d/memcached

(2),修改腳本里的啓動路徑和綁定IP

# vim /etc/init.d/memcached

chown $USER /usr/local/bin/memcached

daemon /usr/local/bin/memcached -d -l 192.168.168.10 -p $PORT -u $USER  -m $CACHESIZE -c $MAXCONN -P /var/run/memcached/memcached.pid $OPTIONS

(3),設置啓動

# chkconfig --add memcached

# chkconfig memcached on

# service memcached start

(4),若是memcached服務腳本啓動遇到問題,提示找不到libevent-2.0.so.5,則按下面訪問解決

    # ldd /usr/local/bin/memcached

    # cd /usr/local/bin/

    # LD_DEBUG=libs ./memcached -v

    # ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib/libevent-2.0.so.5

    # ldd /usr/local/bin/memcached

    libevent-2.0.so.5 顯示找到,就OK了

    

2,安裝PHP的memcache擴展.

    (1),下載和安裝

    # wget http://pecl.php.net/get/memcache-3.0.6.tgz

    # tar -zxvf memcache-3.0.6.tgz

    # cd memcache-3.0.6

    # phpize && ./configure --enable-memcache && make

    # cp modules/memcache.so /usr/lib/php/modules/

    # touch /etc/php.d/memcached.ini

    # echo 'extension=memcache.so' > /etc/php.d/memcached.ini

(2),修改/etc/php.ini的PHP參數

session.save_handler = memcache

session.save_path = "tcp://10.66.1.235:11211"

3,重啓apached

# service httpd restart
相關文章
相關標籤/搜索