2009年3月2日 星期一

php的serialize與unserialize

今天遇到一個小問題...
用serialize記下來的資料,在用unserialize轉回原本的型態時..
若有遇到 " (雙引號[double question mark]) 會無法解析回原本的php變數型態

可以在使用serialized轉換前,用 htmlspecialchars()urlencode() 來解決這個問題
但較好的方式是用htmlspecialchars(),這樣的好處是不用再用urldecode()來把它轉換回正常的文字
==========================================================

2010.01.11更新
由於要顯示在textbox裡,用上述方法還是會有漏洞
試了很久,下面這順序應該是比較理想
1.寫入資料庫時,只做urlencode(若要使用addslashes,則在這之前)
  例:$a=urlencode(addslashes($text));
2.前端顯示時,則先解開,然後將slashes去掉,再用htmlspecialchars
  例:$a=htmlspecialchars(stripslashes(urldecode($dbValue)));


稍微記載一下這二者的說明


serialize --- 產生一個可儲存的值的表示
語法 : string serialize (mixed value)
說明 :
serialize( )傳回一個包含由value所表示的byte-stream字串,它能儲存在任何地方。
這可用來儲存或傳遞PHP的值,而不失去它們的型態和結構。
使用unserialize( )能使serialized字串再次成為原來PHP的值。
serialize( )能處理的型態有integer、double、string、array(多面的)、object(物件的屬性將會serialized,但方法則會lose)

unserialize --- 從儲存的值中建立PHP的值
語法 : mixed unserialize (string str)
說明 :
unserialize( )取一個serialized變數,並且將它轉換回PHP的值,傳回轉換後的值,
可以是integer、double、string、array、object。
如果物件有serialized,則它的方法不會保存在所傳回的值之中。


今天遇到一個小問題...
用serialize記下來的資料,在用unserialize轉回原本的型態時..
若有遇到 " (雙引號[double question mark]) 會無法解析回原本的php變數型態

可以在使用serialized轉換前,用 htmlspecialchars()urlencode() 來解決這個問題
但較好的方式是用htmlspecialchars(),這樣的好處是不用再用urldecode()來把它轉換回正常的文字
==========================================================

2010.01.11更新
由於要顯示在textbox裡,用上述方法還是會有漏洞
試了很久,下面這順序應該是比較理想
1.寫入資料庫時,只做urlencode(若要使用addslashes,則在這之前)
  例:$a=urlencode(addslashes($text));
2.前端顯示時,則先解開,然後將slashes去掉,再用htmlspecialchars
  例:$a=htmlspecialchars(stripslashes(urldecode($dbValue)));


稍微記載一下這二者的說明


serialize --- 產生一個可儲存的值的表示
語法 : string serialize (mixed value)
說明 :
serialize( )傳回一個包含由value所表示的byte-stream字串,它能儲存在任何地方。
這可用來儲存或傳遞PHP的值,而不失去它們的型態和結構。
使用unserialize( )能使serialized字串再次成為原來PHP的值。
serialize( )能處理的型態有integer、double、string、array(多面的)、object(物件的屬性將會serialized,但方法則會lose)

unserialize --- 從儲存的值中建立PHP的值
語法 : mixed unserialize (string str)
說明 :
unserialize( )取一個serialized變數,並且將它轉換回PHP的值,傳回轉換後的值,
可以是integer、double、string、array、object。
如果物件有serialized,則它的方法不會保存在所傳回的值之中。


2009年2月20日 星期五

rsync的文章

公司的主機資料同步都是用rsync來做的
rsync 也有支援 SSH,也就是加密傳輸。
目前主機上就都是這樣在做的,但這些都是前人做好的

一直沒花時間去弄懂它..
直到前一陣子為了弄unix -> windows的資料同步
才把它稍微搞懂了一下

以下記錄網路上二篇文章的連結以及安裝過程跟所遇到的問題


介紹一下 rsync 這個同步備份程式
這一篇主要教了以下幾種方式的同步
unix -> unix
unix -> windows
windows -> unix
windows -> windows


然後....
Rsync + SSH — 讓 Server 自動異地備援也加密
這一篇就是講到怎麼讓rsync透過ssh來同步


下面記錄一下我的安裝過程

1.安裝cwrsync server(連結)

2.安裝完成後,在windows的服務裡,啟動 Openssh SSHD 和 RsyncServer 這兩個服務
註:若遇到無法啟動RsyncServer時,請先去C:\Program Files\cwRsyncServe下,把rsyncd.pid刪除,再啟動

3.把C:\Program Files\cwRsyncServer\var\SvcwRsync\.ssh\cwrsync 這個檔案丟到unix主機上
要執行rsync to windows.sh這個程式的user目錄下的.ssh裡面,權限設成600

4.設定windows上的rsync.conf以及要在unix上執行的shell script檔
註:這邊是利用在柚可椰小站所分享的shell script來做
要改的是restore to windows.sh中的
# identity: private key file for cwRsyncServer service account (available from Start Menu)
identity='/.ssh/cwrsync'

# which ps? /usr/ucb/ps for Solaris and /bin/ps for others
PS=/usr/ucb/ps

這二行,依自己的需求更改即可(修改cwrsync放的位置,以及ps這個程式所在的位置)
然後rsync.conf則是在C:\Program Files\cwRsyncServer\下
例:
[backupWeb]
path = /cygdrive/f/e-rent/web
read only = false
transfer logging = yes

節錄文章中二段比較需要注意的地方,script的用法,以及rsync.conf的設定說明以及使用restore to windows.sh的語法注意事項

cwRsync 的網站上介紹了一個 shell script 。我把那個 shell script 稍微改寫一下,改成 backup_from_windows.shrestore_to_windows.sh

backup_from_windows.sh 的用途是 windows -> unix,用法是
backup_from_windows.sh <windows_ip><windows_module><unix_directory>

restore_to_windows.sh 的用途是 unix -> windows,用法是
restore_to_windows.sh <windows_ip><unix_directory><windows_module>


另外要特別提一點,在 windows 的 rsyncd.conf 裡的一個標準的 module 寫法是像這樣

[test1]
path = /cygdrive/d/16
read only = false
transfer logging = yes


這個 module 的名稱是 test1 ,所定義的目錄是 D:\16,read only 是 false,所以除了備份之外也可以回存。所以想要在 unix 上把 windows 上的 D:\16 備份到 /work/16,就會下像這樣的指令,

backup_from_windows.sh 10.0.0.50 test1 /work/16

這樣 D:\16 下的所有目錄和檔案就會全部備份到 /work/16 去了。

但是,如果要把 /work/16 回存到 D:\16 的話,請記得要用 /work/16/ 而不是 /work/16,也就是說指令要這樣下,

restore_to_windows.sh 10.0.0.50 /work/16/ test1

如果不用 /work/16/ 而用 /work/16 的話,在 windows 裡的 D:\16 裡就會多一個目錄 D:\16\16,這就不是我們所期待的結果了。

這個部份的語法問題,在另一篇文章裡有說明到


上面用到的檔案若無法連結,我有自己上傳一份備用的
cwRsyncServer
back from windows.sh
restore to windows.sh
公司的主機資料同步都是用rsync來做的
rsync 也有支援 SSH,也就是加密傳輸。
目前主機上就都是這樣在做的,但這些都是前人做好的

一直沒花時間去弄懂它..
直到前一陣子為了弄unix -> windows的資料同步
才把它稍微搞懂了一下

以下記錄網路上二篇文章的連結以及安裝過程跟所遇到的問題


介紹一下 rsync 這個同步備份程式
這一篇主要教了以下幾種方式的同步
unix -> unix
unix -> windows
windows -> unix
windows -> windows


然後....
Rsync + SSH — 讓 Server 自動異地備援也加密
這一篇就是講到怎麼讓rsync透過ssh來同步


下面記錄一下我的安裝過程

1.安裝cwrsync server(連結)

2.安裝完成後,在windows的服務裡,啟動 Openssh SSHD 和 RsyncServer 這兩個服務
註:若遇到無法啟動RsyncServer時,請先去C:\Program Files\cwRsyncServe下,把rsyncd.pid刪除,再啟動

3.把C:\Program Files\cwRsyncServer\var\SvcwRsync\.ssh\cwrsync 這個檔案丟到unix主機上
要執行rsync to windows.sh這個程式的user目錄下的.ssh裡面,權限設成600

4.設定windows上的rsync.conf以及要在unix上執行的shell script檔
註:這邊是利用在柚可椰小站所分享的shell script來做
要改的是restore to windows.sh中的
# identity: private key file for cwRsyncServer service account (available from Start Menu)
identity='/.ssh/cwrsync'

# which ps? /usr/ucb/ps for Solaris and /bin/ps for others
PS=/usr/ucb/ps

這二行,依自己的需求更改即可(修改cwrsync放的位置,以及ps這個程式所在的位置)
然後rsync.conf則是在C:\Program Files\cwRsyncServer\下
例:
[backupWeb]
path = /cygdrive/f/e-rent/web
read only = false
transfer logging = yes

節錄文章中二段比較需要注意的地方,script的用法,以及rsync.conf的設定說明以及使用restore to windows.sh的語法注意事項

cwRsync 的網站上介紹了一個 shell script 。我把那個 shell script 稍微改寫一下,改成 backup_from_windows.shrestore_to_windows.sh

backup_from_windows.sh 的用途是 windows -> unix,用法是
backup_from_windows.sh <windows_ip><windows_module><unix_directory>

restore_to_windows.sh 的用途是 unix -> windows,用法是
restore_to_windows.sh <windows_ip><unix_directory><windows_module>


另外要特別提一點,在 windows 的 rsyncd.conf 裡的一個標準的 module 寫法是像這樣

[test1]
path = /cygdrive/d/16
read only = false
transfer logging = yes


這個 module 的名稱是 test1 ,所定義的目錄是 D:\16,read only 是 false,所以除了備份之外也可以回存。所以想要在 unix 上把 windows 上的 D:\16 備份到 /work/16,就會下像這樣的指令,

backup_from_windows.sh 10.0.0.50 test1 /work/16

這樣 D:\16 下的所有目錄和檔案就會全部備份到 /work/16 去了。

但是,如果要把 /work/16 回存到 D:\16 的話,請記得要用 /work/16/ 而不是 /work/16,也就是說指令要這樣下,

restore_to_windows.sh 10.0.0.50 /work/16/ test1

如果不用 /work/16/ 而用 /work/16 的話,在 windows 裡的 D:\16 裡就會多一個目錄 D:\16\16,這就不是我們所期待的結果了。

這個部份的語法問題,在另一篇文章裡有說明到


上面用到的檔案若無法連結,我有自己上傳一份備用的
cwRsyncServer
back from windows.sh
restore to windows.sh

[Ubuntu]關於update-rc.d 用法

如果在 /etc/init.d 中加入一個 script,還須要製作相關的 link
存到 /etc/rc*.d 中。
K 開頭是 kill , S 開頭是 start , 數字順序代表啟動的順序。
這些動作都可以利用update-rc.d來完成。


例:
在 /etc/init.d 中建立一個叫作 zope 的 script , 然後

update-rc.d zope defaults

就會產生以下連結::

Adding system startup for /etc/init.d/zope ...
/etc/rc0.d/K20zope -> ../init.d/zope
/etc/rc1.d/K20zope -> ../init.d/zope
/etc/rc6.d/K20zope -> ../init.d/zope
/etc/rc2.d/S20zope -> ../init.d/zope
/etc/rc3.d/S20zope -> ../init.d/zope
/etc/rc4.d/S20zope -> ../init.d/zope
/etc/rc5.d/S20zope -> ../init.d/zope

其他進階使用方式請 man update-rc.d

延伸閱讀: Debian和RH的差異這一篇內容是在講下述內容
<使用Debian工具進行工作>
RH包含了一些用於自動管理SysV初始腳本過程的工具,也就是chkconfig民service。
Debian並包含這些工具,但是卻提供相似的管理工具:update-rc.d與invoke-rc.d。

如果在 /etc/init.d 中加入一個 script,還須要製作相關的 link
存到 /etc/rc*.d 中。
K 開頭是 kill , S 開頭是 start , 數字順序代表啟動的順序。
這些動作都可以利用update-rc.d來完成。


例:
在 /etc/init.d 中建立一個叫作 zope 的 script , 然後

update-rc.d zope defaults

就會產生以下連結::

Adding system startup for /etc/init.d/zope ...
/etc/rc0.d/K20zope -> ../init.d/zope
/etc/rc1.d/K20zope -> ../init.d/zope
/etc/rc6.d/K20zope -> ../init.d/zope
/etc/rc2.d/S20zope -> ../init.d/zope
/etc/rc3.d/S20zope -> ../init.d/zope
/etc/rc4.d/S20zope -> ../init.d/zope
/etc/rc5.d/S20zope -> ../init.d/zope

其他進階使用方式請 man update-rc.d

延伸閱讀: Debian和RH的差異這一篇內容是在講下述內容
<使用Debian工具進行工作>
RH包含了一些用於自動管理SysV初始腳本過程的工具,也就是chkconfig民service。
Debian並包含這些工具,但是卻提供相似的管理工具:update-rc.d與invoke-rc.d。

2009年2月5日 星期四

Apache 防止 Dos 攻擊套件

Denial of Service 可以稱為 “阻絕服務攻擊”。這個名稱也經常聽見,在很多地方都發生。
其實 Denial of Service 所傳送的請求和正常的是一樣,只是每分鐘傳送數以十計以上請求傳送至伺服器中。令伺服器每秒處理十分大量的工作。

受到這一種攻擊,輕則只有伺服器暫時停止服務。重則會把伺服器中的硬體破壞。有不少例子都是由於伺服器在同一時間處理十分大量的工作後,CPU 最後壞了。最近公司的其中一個網站受到這些不明來歷的 Denial of Service 攻擊,伺服器一直當機。
搜尋了不少網站,終於找到了一個方法。不過不知道是否可行的。所使用的是 mod_dosevasive。
雖然是第一次用,不過是否真的能夠防止就必須等到下一次受到攻擊使知道。
(雖然一裝好就有阻斷了很多IP,但是不是真的從此相安無事,就得等時間來驗證了)


1.首次下載 mod_dosevasive 1.1 版本。

2.然後解壓 mod_dosevasive_1.10.tar.gz

tar zxvf mod_dosevasive_1.10.tar.gz


3.把您的 httpd.conf 備份

4.開始安裝mod_dosevasive

Apache 1.3.x:
cd mod_dosevasive
apxs -cia mod_dosevasive.c


Apache 2.0.x:
cd mod_dosevasive
apxs -cia mod_dosevasive20.c


註:若沒安裝apxs,可執行yum provides <some_file_name>去搜尋需要的套件
例如:yum provides spxs

在這裡,要安裝的指令是yum install httpd-devel


5.修改您的 httpd.conf 加入
Apache 1.3.x:


DOSHashTableSize 3097
DOSPageCount 5
DOSSiteCount 100
DOSPageInterval 2
DOSSiteInterval 2
DOSBlockingPeriod 600


Apache 2.0.x:


DOSHashTableSize 3097
DOSPageCount 5
DOSSiteCount 100
DOSPageInterval 2
DOSSiteInterval 2
DOSBlockingPeriod 10
DOSBlockingPeriod 600



最後是在httpd.conf 當中的設定參數解釋:

DOSHashTableSize
 這是佔中您記憶體的大小。當數目越大處理越快,當您的伺服器是很多人流的,您必須加大這個數字。
DOSPageCount
 同一頁同一人時能夠在同一個時段中最多可請求幾次,超過會禁止。時段可以在 DOSPageInterval 中設定。
DOSSiteCount
 同一個網站同一人在伺服器中最多可佔有幾個 Object,超過會禁止。時段可以在 DOSSiteInterval 中設定。
DOSPageInterval
 DOSPageCount 中所計算的每一個時間區段,以秒計算。預設是 1 秒。
DOSSiteInterval
 DOSSiteCount 中所計算的每一個時間區段,以秒計算。預設是 1 秒。
DOSBlockingPeriod
 當發現疑似攻擊後暫停多久?預設是 10 秒。當發現後,使用者會接收到 403 (Forbidden) 的訊息。

以下三個參數要放在IfModule外面

DOSEmailNotify
設定接收攻擊信息的電郵地址。
例:DOSEmailNotify you@yourdomain.com

DOSSystemCommand
這是收到攻擊信息時所使用的指令。
例:DOSSystemCommand ”su - someuser -c \’/sbin/… %s …\’”
  /bin/mail -t %s (%s指的是DOSEmailNotify設定的email address)

DOSLogDir
記錄檔案設定。
例:DOSLogDir ”/var/lock/mod_dosevasive”

Denial of Service 可以稱為 “阻絕服務攻擊”。這個名稱也經常聽見,在很多地方都發生。
其實 Denial of Service 所傳送的請求和正常的是一樣,只是每分鐘傳送數以十計以上請求傳送至伺服器中。令伺服器每秒處理十分大量的工作。

受到這一種攻擊,輕則只有伺服器暫時停止服務。重則會把伺服器中的硬體破壞。有不少例子都是由於伺服器在同一時間處理十分大量的工作後,CPU 最後壞了。最近公司的其中一個網站受到這些不明來歷的 Denial of Service 攻擊,伺服器一直當機。
搜尋了不少網站,終於找到了一個方法。不過不知道是否可行的。所使用的是 mod_dosevasive。
雖然是第一次用,不過是否真的能夠防止就必須等到下一次受到攻擊使知道。
(雖然一裝好就有阻斷了很多IP,但是不是真的從此相安無事,就得等時間來驗證了)


1.首次下載 mod_dosevasive 1.1 版本。

2.然後解壓 mod_dosevasive_1.10.tar.gz

tar zxvf mod_dosevasive_1.10.tar.gz


3.把您的 httpd.conf 備份

4.開始安裝mod_dosevasive

Apache 1.3.x:
cd mod_dosevasive
apxs -cia mod_dosevasive.c


Apache 2.0.x:
cd mod_dosevasive
apxs -cia mod_dosevasive20.c


註:若沒安裝apxs,可執行yum provides <some_file_name>去搜尋需要的套件
例如:yum provides spxs

在這裡,要安裝的指令是yum install httpd-devel


5.修改您的 httpd.conf 加入
Apache 1.3.x:


DOSHashTableSize 3097
DOSPageCount 5
DOSSiteCount 100
DOSPageInterval 2
DOSSiteInterval 2
DOSBlockingPeriod 600


Apache 2.0.x:


DOSHashTableSize 3097
DOSPageCount 5
DOSSiteCount 100
DOSPageInterval 2
DOSSiteInterval 2
DOSBlockingPeriod 10
DOSBlockingPeriod 600



最後是在httpd.conf 當中的設定參數解釋:

DOSHashTableSize
 這是佔中您記憶體的大小。當數目越大處理越快,當您的伺服器是很多人流的,您必須加大這個數字。
DOSPageCount
 同一頁同一人時能夠在同一個時段中最多可請求幾次,超過會禁止。時段可以在 DOSPageInterval 中設定。
DOSSiteCount
 同一個網站同一人在伺服器中最多可佔有幾個 Object,超過會禁止。時段可以在 DOSSiteInterval 中設定。
DOSPageInterval
 DOSPageCount 中所計算的每一個時間區段,以秒計算。預設是 1 秒。
DOSSiteInterval
 DOSSiteCount 中所計算的每一個時間區段,以秒計算。預設是 1 秒。
DOSBlockingPeriod
 當發現疑似攻擊後暫停多久?預設是 10 秒。當發現後,使用者會接收到 403 (Forbidden) 的訊息。

以下三個參數要放在IfModule外面

DOSEmailNotify
設定接收攻擊信息的電郵地址。
例:DOSEmailNotify you@yourdomain.com

DOSSystemCommand
這是收到攻擊信息時所使用的指令。
例:DOSSystemCommand ”su - someuser -c \’/sbin/… %s …\’”
  /bin/mail -t %s (%s指的是DOSEmailNotify設定的email address)

DOSLogDir
記錄檔案設定。
例:DOSLogDir ”/var/lock/mod_dosevasive”

2008年12月16日 星期二

Apache的PreFork MPM功能

轉載自Apache的PreFork MPM功能


Apache, 用了很久, 但的確沒有好好研究過有關於 performance tuning 這塊. 事實上, 這個免費的 web server 功能真的十分強大, 尤其是可以載入的模組也多, 在使用上, 真的有許多沒有深入研究就學不到的內容.

首先我們來看有關於 MPM 的一些資料:
http://dz.adj.idv.tw/archiver/tid-214.html

在 MPM中, prefork 及 worker 是兩種不同的 multi-processing module, 在 apache 管方網站上分別有對這兩個 module 有深入的介紹:
http://httpd.apache.org/docs/2.0/mod/prefork.html
http://httpd.apache.org/docs/2.0/mod/prefork.html
這二者只能擇其一來使用, 一般來說, 雖然 prefork 比較佔用記憶體, 但相容性及穩定性較佳, 也是在 FreeBSD 下安裝 Apache 的預設 MPM module.

事實上, 預設的 prefork mpm 參數如下:

<ifmodule>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</ifmodule>



其中一項重要的參數 ServerLimit 並未設置, 預設是 256, 也就是最多僅使用了 256個 worker, 所以透過 /server-status 看到的 . 只會有 256 個, 而預設的 MaxClients 也只有 150 個, 代表著 256 個 worker 最多同時僅 150 上線工作. 這是預設的狀況.

接下來我們可以先來了解一下 prefork 這些參數的意義, 這些 xxxServers 雖然叫 Server, 但其實就是 /server-status 中所稱的 worker, 所以 StartServers 代表起始要發起的 worker, 而 MinSpareServers 及 MaxSpareServers 分別代表至少及至多個 spare (預備)的 worker, MaxClients 則是指最多同時服務的 worker, 最後的 MaxRequestsPerChild 指的是這些 worker (雖然參數是 Child)在服務多少個 Request 後就要 reset (可以達到減少若程式上有 leak 問題的發生).

所以在 prefork 的 MPM 設計下, 若要提高同時服務的上限時, 可以直接調整 MaxClients 即可, 但若是要超過 256 個時, 就要設定 ServerLimit, 將允許同時發起的 worker 數, 提高, 而 MaxClients 設置 <= ServerLimit, 例如下面是一個設置的例子:


<ifmodule>
ServerLimit 1024
StartServers 128
MinSpareServers 16
MaxSpareServers 64
MaxClients 1024
MaxRequestsPerChild 0
</ifmodule>

再進行 Apache 的停止, 啟動(注意, 一定是要停止, 啟動, 若是用 restart apache不會重新 allocation servers), 再觀察 /server-status 時, 就可以發現 apache 準備好 1024 個總 worker slot, 一開始起動 128 個 worker, 如此一來便能提高 web server 的效能及吞吐量了.

轉載自Apache的PreFork MPM功能


Apache, 用了很久, 但的確沒有好好研究過有關於 performance tuning 這塊. 事實上, 這個免費的 web server 功能真的十分強大, 尤其是可以載入的模組也多, 在使用上, 真的有許多沒有深入研究就學不到的內容.

首先我們來看有關於 MPM 的一些資料:
http://dz.adj.idv.tw/archiver/tid-214.html

在 MPM中, prefork 及 worker 是兩種不同的 multi-processing module, 在 apache 管方網站上分別有對這兩個 module 有深入的介紹:
http://httpd.apache.org/docs/2.0/mod/prefork.html
http://httpd.apache.org/docs/2.0/mod/prefork.html
這二者只能擇其一來使用, 一般來說, 雖然 prefork 比較佔用記憶體, 但相容性及穩定性較佳, 也是在 FreeBSD 下安裝 Apache 的預設 MPM module.

事實上, 預設的 prefork mpm 參數如下:

<ifmodule>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</ifmodule>



其中一項重要的參數 ServerLimit 並未設置, 預設是 256, 也就是最多僅使用了 256個 worker, 所以透過 /server-status 看到的 . 只會有 256 個, 而預設的 MaxClients 也只有 150 個, 代表著 256 個 worker 最多同時僅 150 上線工作. 這是預設的狀況.

接下來我們可以先來了解一下 prefork 這些參數的意義, 這些 xxxServers 雖然叫 Server, 但其實就是 /server-status 中所稱的 worker, 所以 StartServers 代表起始要發起的 worker, 而 MinSpareServers 及 MaxSpareServers 分別代表至少及至多個 spare (預備)的 worker, MaxClients 則是指最多同時服務的 worker, 最後的 MaxRequestsPerChild 指的是這些 worker (雖然參數是 Child)在服務多少個 Request 後就要 reset (可以達到減少若程式上有 leak 問題的發生).

所以在 prefork 的 MPM 設計下, 若要提高同時服務的上限時, 可以直接調整 MaxClients 即可, 但若是要超過 256 個時, 就要設定 ServerLimit, 將允許同時發起的 worker 數, 提高, 而 MaxClients 設置 <= ServerLimit, 例如下面是一個設置的例子:


<ifmodule>
ServerLimit 1024
StartServers 128
MinSpareServers 16
MaxSpareServers 64
MaxClients 1024
MaxRequestsPerChild 0
</ifmodule>

再進行 Apache 的停止, 啟動(注意, 一定是要停止, 啟動, 若是用 restart apache不會重新 allocation servers), 再觀察 /server-status 時, 就可以發現 apache 準備好 1024 個總 worker slot, 一開始起動 128 個 worker, 如此一來便能提高 web server 的效能及吞吐量了.

2008年8月14日 星期四

HTML字符編碼大全

HTML字符編碼大全


在網頁中輸入特殊字符,需在html代碼中加入以&開頭的字母組合或以&#開頭的數字。例如,版權標誌符©即是用©或©表示。
常用符號“<”、">"、"&"、"空格"分別用“&lt;”、“&gt;”、“&amp;”、“&nbsp;”表示,注意這些符號對大小寫是敏感的。

下面就是以字母或數字表示的特殊符號大全。


字母編碼數字編碼效果說明
&#00;- &#08;沒被使用
 &#09;horizontal tab
 &#10;line feed
&#11;沒被使用
&#32;空格
&#33;!   
&quot;&#34;"   
 &#35;#   
&#36;$   
&#37;%   
&amp;&#38;&   
 &#39;'   
 &#40;(   
 &#41;)   
 &#42;*   
 &#43;+   
 &#44;,   
 &#45;-   
 &#46;.   
 &#47;/   
 &#48;- &#57; 數字從0到9
 &#58;:   
 &#59;;   
&lt;&#60;<   
 &#61;=   
&gt;&#62;>   
 &#63;?   
 &#64;@   
 &#65;- &#90; 大寫字母從A到Z
 &#91;[   
 &#92;\   
 &#93;]   
 &#94;^   
 &#95;_   
 &#96;`   
 &#97;-&#122; 小寫字母從A到Z
 &#123;{   
 &#124;|   
 &#125;}   
 &#126;~   
 &#127; 
 &#128;- &#129; 沒被使用
 &#130; 
 &#131;ƒ 
 &#132; 
 &#133; 
 &#134; 
 &#135; 
 &#136;ˆ 
 &#137; 
 &#138;Š 
 &#139; 
 &#140;Œ 
 &#141;- &#144; 沒被使用
 &#145;   
 &#146;   
 &#147;   
 &#148;   
 &#149;   
 &#150;   
 &#151;   
 &#152;˜   
 &#153;   
 &#154;š   
 &#155;   
 &#156;œ   
 &#157;- &#158; 沒被使用
 &#159;Ÿ   
&nbsp;&#160;   不換行空格
 &#161;¡   
 &#162;¢   
 &#163;£   
 &#164;¤   
 &#165;¥   
 &#166;¦   
 &#167;§   
 &#168;   
&copy;&#169;©   
 &#170;ª   
 &#171;«   
 &#172;¬   
 &#173;­   
&reg;&#174;®   
 &#175;¯   
 &#176;°   
 &#177;±   
 &#178;²   
 &#179;³   
 &#180;´   
 &#181;µ   
 &#182;   
 &#183;·   
 &#184;¸   
 &#185;¹   
 &#186;º   
 &#187;»   
 &#188;¼   
 &#189;½   
 &#190;¾   
 &#191;¿   
&Agrave;&#192;À   
&Aacute;&#193;Á   
&Acirc;&#194;   
&Atilde;&#195;à  
&Auml;&#196;Ä   
&Aring;&#197;Å   
&AElig;&#198;Æ   
&Ccedil;&#199;Ç   
&Egrave;&#200;È   
&Eacute;&#201;É   
&Ecirc;&#202;Ê   
&Euml;&#203;Ë   
&Igrave;&#204;Ì   
&Iacute;&#205;Í   
&Icirc;&#206;Π  
&Iuml;&#207;Ï   
&ETH;&#208;Р  
&Ntilde;&#209;Ñ   
&Ograve;&#210;Ò   
&Oacute;&#211;Ó   
&Ocirc;&#212;Ô   
&Otilde;&#213;Õ   
&Ouml;&#214;Ö   
 &#215;×   
&Oslash;&#216;Ø   
&Ugrave;&#217;Ù   
&Uacute;&#218;Ú   
&Ucirc;&#219;Û   
&Uuml;&#220;Ü   
&Yacute;&#221;Ý   
&THORN;&#222;Þ   
&szlig;&#223;ß   
&agrave;&#224;à   
&aacute;&#225;á   
&acirc;&#226;â   
&atilde;&#227;ã   
&auml;&#228;ä   
&aring;&#229;å   
&aelig;&#230;æ   
&ccedil;&#231;ç   
&egrave;&#232;è   
&eacute;&#233;é   
&ecirc;&#234;ê   
&euml;&#235;ë   
&igrave;&#236;ì   
&iacute;&#237;í   
&icirc;&#238;î   
&iuml;&#239;ï   
&eth;&#240;ð   
&ntilde;&#241;ñ   
&ograve;&#242;ò   
&oacute;&#243;ó   
&ocirc;&#244;ô   
&otilde;&#245;õ   
&ouml;&#246;ö   
 &#247;÷   
&oslash;&#248;ø   
&ugrave;&#249;ù   
&uacute;&#250;ú   
&ucirc;&#251;û   
&uuml;&#252;ü   
&yacute;&#253;ý   
&thorn;&#254;þ   
&yuml;&#255;ÿ   
 &#8217;  老版本瀏覽器不支援
 &#8220;  老版本瀏覽器不支援
 &#8221;  老版本瀏覽器不支援
&euro;&#8364;?  老版本瀏覽器不支援

HTML字符編碼大全


在網頁中輸入特殊字符,需在html代碼中加入以&開頭的字母組合或以&#開頭的數字。例如,版權標誌符©即是用©或©表示。
常用符號“<”、">"、"&"、"空格"分別用“&lt;”、“&gt;”、“&amp;”、“&nbsp;”表示,注意這些符號對大小寫是敏感的。

下面就是以字母或數字表示的特殊符號大全。


字母編碼數字編碼效果說明
&#00;- &#08;沒被使用
 &#09;horizontal tab
 &#10;line feed
&#11;沒被使用
&#32;空格
&#33;!   
&quot;&#34;"   
 &#35;#   
&#36;$   
&#37;%   
&amp;&#38;&   
 &#39;'   
 &#40;(   
 &#41;)   
 &#42;*   
 &#43;+   
 &#44;,   
 &#45;-   
 &#46;.   
 &#47;/   
 &#48;- &#57; 數字從0到9
 &#58;:   
 &#59;;   
&lt;&#60;<   
 &#61;=   
&gt;&#62;>   
 &#63;?   
 &#64;@   
 &#65;- &#90; 大寫字母從A到Z
 &#91;[   
 &#92;\   
 &#93;]   
 &#94;^   
 &#95;_   
 &#96;`   
 &#97;-&#122; 小寫字母從A到Z
 &#123;{   
 &#124;|   
 &#125;}   
 &#126;~   
 &#127; 
 &#128;- &#129; 沒被使用
 &#130; 
 &#131;ƒ 
 &#132; 
 &#133; 
 &#134; 
 &#135; 
 &#136;ˆ 
 &#137; 
 &#138;Š 
 &#139; 
 &#140;Œ 
 &#141;- &#144; 沒被使用
 &#145;   
 &#146;   
 &#147;   
 &#148;   
 &#149;   
 &#150;   
 &#151;   
 &#152;˜   
 &#153;   
 &#154;š   
 &#155;   
 &#156;œ   
 &#157;- &#158; 沒被使用
 &#159;Ÿ   
&nbsp;&#160;   不換行空格
 &#161;¡   
 &#162;¢   
 &#163;£   
 &#164;¤   
 &#165;¥   
 &#166;¦   
 &#167;§   
 &#168;   
&copy;&#169;©   
 &#170;ª   
 &#171;«   
 &#172;¬   
 &#173;­   
&reg;&#174;®   
 &#175;¯   
 &#176;°   
 &#177;±   
 &#178;²   
 &#179;³   
 &#180;´   
 &#181;µ   
 &#182;   
 &#183;·   
 &#184;¸   
 &#185;¹   
 &#186;º   
 &#187;»   
 &#188;¼   
 &#189;½   
 &#190;¾   
 &#191;¿   
&Agrave;&#192;À   
&Aacute;&#193;Á   
&Acirc;&#194;   
&Atilde;&#195;à  
&Auml;&#196;Ä   
&Aring;&#197;Å   
&AElig;&#198;Æ   
&Ccedil;&#199;Ç   
&Egrave;&#200;È   
&Eacute;&#201;É   
&Ecirc;&#202;Ê   
&Euml;&#203;Ë   
&Igrave;&#204;Ì   
&Iacute;&#205;Í   
&Icirc;&#206;Π  
&Iuml;&#207;Ï   
&ETH;&#208;Р  
&Ntilde;&#209;Ñ   
&Ograve;&#210;Ò   
&Oacute;&#211;Ó   
&Ocirc;&#212;Ô   
&Otilde;&#213;Õ   
&Ouml;&#214;Ö   
 &#215;×   
&Oslash;&#216;Ø   
&Ugrave;&#217;Ù   
&Uacute;&#218;Ú   
&Ucirc;&#219;Û   
&Uuml;&#220;Ü   
&Yacute;&#221;Ý   
&THORN;&#222;Þ   
&szlig;&#223;ß   
&agrave;&#224;à   
&aacute;&#225;á   
&acirc;&#226;â   
&atilde;&#227;ã   
&auml;&#228;ä   
&aring;&#229;å   
&aelig;&#230;æ   
&ccedil;&#231;ç   
&egrave;&#232;è   
&eacute;&#233;é   
&ecirc;&#234;ê   
&euml;&#235;ë   
&igrave;&#236;ì   
&iacute;&#237;í   
&icirc;&#238;î   
&iuml;&#239;ï   
&eth;&#240;ð   
&ntilde;&#241;ñ   
&ograve;&#242;ò   
&oacute;&#243;ó   
&ocirc;&#244;ô   
&otilde;&#245;õ   
&ouml;&#246;ö   
 &#247;÷   
&oslash;&#248;ø   
&ugrave;&#249;ù   
&uacute;&#250;ú   
&ucirc;&#251;û   
&uuml;&#252;ü   
&yacute;&#253;ý   
&thorn;&#254;þ   
&yuml;&#255;ÿ   
 &#8217;  老版本瀏覽器不支援
 &#8220;  老版本瀏覽器不支援
 &#8221;  老版本瀏覽器不支援
&euro;&#8364;?  老版本瀏覽器不支援

2008年6月19日 星期四

摘錄一些小工具

有朋友忽然問我...
有沒有可以搜尋"網站死連結"的軟體或線上服務...
搜尋一下,發現還蠻多這種東西的..

簡單摘錄二個軟體
一個是線上版的Link checker
http://www.2bone.com/links/linkchecker.shtml

另一個是軟體,叫Xenu
網址是http://home.snafu.de/tilman/xenulink.html

都蠻好用的

另外多記一個,用來測試網頁讀取速度的
FPT-全網頁效能偵測服務(web版本)


然後...前二天剛好有朋友需要把圖片中的文字轉成文字
看他在用覺得很好玩...叫JOCR
很好用的一個小軟體...
這裡有介紹
§ 學生必備!JOCR文字辨識軟體!

有朋友忽然問我...
有沒有可以搜尋"網站死連結"的軟體或線上服務...
搜尋一下,發現還蠻多這種東西的..

簡單摘錄二個軟體
一個是線上版的Link checker
http://www.2bone.com/links/linkchecker.shtml

另一個是軟體,叫Xenu
網址是http://home.snafu.de/tilman/xenulink.html

都蠻好用的

另外多記一個,用來測試網頁讀取速度的
FPT-全網頁效能偵測服務(web版本)


然後...前二天剛好有朋友需要把圖片中的文字轉成文字
看他在用覺得很好玩...叫JOCR
很好用的一個小軟體...
這裡有介紹
§ 學生必備!JOCR文字辨識軟體!