天天看點

PHP實作多伺服器session共享之NFS共享

首先,修改 php.ini的 <code>session.save_path</code> 選項,大緻如下:

意為把session存放在 <code>"/tmp/php_sess"</code> 目錄下,并且分成 2 級子目錄,每級子目錄又分别有 16 個子目錄。

接下來,假設php的主目錄為 <code>/usr/local/server/php/</code>,則建立一個檔案 <code>/usr/local/server/php/include/php/ext/session/mod_files.sh</code>,其内容如下:

設定為可執行之後,運作以下指令來建立哈希目錄:

現在,就開始設定 NFS 共享了。假定有3台主機,ip分别為192.168.0.1(主機名svr1)、192.168.0.2(主機名svr2)、192.168.0.3(主機名svr3),現在讓192.168.0.1來提供NFS共享服務,配置 <code>/etc/exports</code>,加入如下内容:

然後重新開機 nfs 服務,即可對另外兩台主機提供NFS共享了。

在 svr2、svr3 上執行以下指令來挂在NFS:

用NFS來存儲session的缺點是,session過期後不能自動清除,必須自己設定回收機制,我們可以利用crontab來定期回收,用用以下shell指令即可:

意思是,删除30分鐘以前的session檔案,具體的時間請大家自己重新設定吧。

最後,在這兩個主機上對 php.ini 增加/修改上面提到的内容,然後重新開機apache即可。

本文轉自葉金榮51CTO部落格,原文連結:http://blog.51cto.com/imysql/310456,如需轉載請自行聯系原作者