自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

PHP NFS的實(shí)現(xiàn)代碼

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
下面我們主要講解一下PHP NFS的實(shí)現(xiàn)。那么穩(wěn)重我們對(duì)session文件進(jìn)行了修改和設(shè)置,具體代碼已經(jīng)總結(jié)好,希望對(duì)大家有所幫助。

在以往的學(xué)習(xí)中,我們知道NFS可以在很多系統(tǒng)以及軟件,硬件平臺(tái)中實(shí)現(xiàn)。那么今天我們就來講解一下PHP NFS實(shí)現(xiàn)的具體操作和代碼內(nèi)容。其中,有一種方法就是利用NFS來共享session,如果session量比較大并且所有的session文件都在同一個(gè)子目錄下的話,那么可能會(huì)由此帶來很嚴(yán)重的負(fù)載問題,甚至導(dǎo)致網(wǎng)站無法使用。本文就是對(duì)這個(gè)方案做一下詳細(xì)的解說。

首先,修改 php.ini的 session.save_path 選項(xiàng),大致如下:

  1. session.save_path = "2;/tmp/php_sess" 

在PHP NFS設(shè)置中,意為把session存放在 "/tmp/php_sess" 目錄下,并且分成 2 級(jí)子目錄,每級(jí)子目錄又分別有 16 個(gè)子目錄。接下來,假設(shè)php的主目錄為 /usr/local/server/php/,則新建一個(gè)文件 /usr/local/server/php/include/php/ext/session/mod_files.sh,其內(nèi)容如下:

  1. #! /bin/sh  
  2. # NAME  
  3. #      mod_files.sh  - Update of the php-source/ext/session/mod_files.sh  
  4. #  
  5. # SYNOPSIS  
  6. #      mod_files.sh basedir depth [numberofsubdirs]  
  7. #  
  8. # DESCRIPTION  
  9. #      this script creates the directories tree used by php to store the session files  
  10. #      (see php.ini - 'session.save_path' option)  
  11. #  
  12. #      Example: if you want php to store the session files in a directory tree  
  13. #      of 3 levels of depth containing 32 directories in each directory,  
  14. #      first, put the setting bellow in the php.ini file:  
  15. #  
  16. #      session.save_path = "3;/tmp/session" 
  17. #  
  18. #      Now create the basedir directory: 'mkdir /tmp/session'  
  19. #  
  20. #      Then, call this scrip with the following arguments:  
  21. #  
  22. #      ./mod_files.sh ./mod_files.sh /tmp/session 3 32  
  23.  
  24. if test "$2" = ""; then  
  25.        echo "usage: $0 basedir depth [numberofsubdirs]"  
  26.        echo "numberofsubdirs: if unset, defaults to 16. if 32, 32 subdirs, if 64, 64 subdirs."  
  27.        exit 1  
  28. fi  
  29.  
  30. if test "$2" = "0"; then  
  31.        exit 0  
  32. fi  
  33.  
  34. hash_chars="0 1 2 3 4 5 6 7 8 9 a b c d e f" 
  35. if [ ! -z $3 ] ; then  
  36. if test "$3" -a "$3" -eq "32"; then  
  37.   hash_chars="$hash_chars g h i j k l m n o p q r s t u v" 
  38.   if test "$3" -eq "64"; then  
  39.    hash_chars="$hash_chars w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z - ," 
  40.   fi  
  41. fi  
  42. fi  
  43.  
  44. for i in $hash_chars; do  
  45.        newpath="$1/$i" 
  46.        mkdir $newpath || exit 1  
  47.        sh $0 $newpath `expr $2 - 1` $3  
  48. done 

PHP NFS的目錄修改后,設(shè)置為可執(zhí)行之后,運(yùn)行以下命令來創(chuàng)建哈希目錄:

  1. shell>#cd /usr/local/server/php/include/php/ext/session/  
  2. shell>#./mod_files.sh /tmp/php_sess 2 16 

現(xiàn)在,就開始設(shè)置 NFS 共享了。假定有3臺(tái)主機(jī),ip分別為192.168.0.1(主機(jī)名svr1)、192.168.0.2(主機(jī)名svr2)、192.168.0.3(主機(jī)名svr3),現(xiàn)在讓192.168.0.1來提供NFS共享服務(wù),配置 /etc/exports,加入如下內(nèi)容:

  1. /tmp/php_sess/ svr*(rw,no_root_squash) 

然后重啟 nfs 服務(wù),即可對(duì)另外兩臺(tái)主機(jī)提供NFS共享了。在 svr2、svr3 上執(zhí)行以下命令來掛在NFS:

  1. shell>#mkdir /tmp/php_sess  
  2. shell>#mount svr1:/tmp/php_sess /tmp/php_sess 

用NFS來存儲(chǔ)session的缺點(diǎn)是,session過期后不能自動(dòng)清除,必須自己設(shè)定回收機(jī)制,我們可以利用crontab來定期回收,用用以下shell命令即可:

  1. find /tmp/php_sess -mmin +30 | xargs rm -fr 

意思是,刪除30分鐘以前PHP NFS的session文件,具體的時(shí)間請(qǐng)大家自己重新設(shè)置吧。***,在這兩個(gè)主機(jī)上對(duì) php.ini 增加/修改上面提到的內(nèi)容,然后重啟apache即可。

責(zé)任編輯:佟健 來源: IT實(shí)驗(yàn)室
相關(guān)推薦

2016-09-06 21:09:35

Phpgd庫圖片水印

2010-07-17 00:53:50

CMD Telnet

2010-08-04 14:45:18

NFS掛載腳本

2015-04-17 10:31:11

PHP下載美女圖片實(shí)現(xiàn)代碼

2024-08-19 09:04:50

2011-08-29 11:25:29

清空service bSQL Server

2010-03-03 09:30:40

Python實(shí)現(xiàn)網(wǎng)頁爬

2009-12-02 19:08:19

PHP跳轉(zhuǎn)代碼

2009-11-16 16:17:45

PHP數(shù)組排序

2023-11-09 09:28:09

Java代碼

2010-07-28 15:13:42

VMwareNFS

2009-12-18 16:12:11

Ruby加密

2010-02-06 09:46:46

C++單向鏈表

2021-04-15 21:21:59

代碼熱Python函數(shù)

2010-09-13 14:17:42

CSS縱向?qū)Ш讲藛?/a>

2010-06-04 14:24:12

Linux 查看網(wǎng)絡(luò)流

2010-07-30 13:51:23

NFS配置

2010-08-03 17:23:41

NFS服務(wù)

2020-04-02 15:39:51

代碼編譯器前端

2023-12-04 07:31:41

Golangwebsocket
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)