將優(yōu)化進(jìn)行到底 CMS系統(tǒng)中PHP核心配置詳解
做過CMS的開發(fā)者都知道,在LAMP環(huán)境下進(jìn)行后臺登陸和上傳文件,是很容易出現(xiàn)問題的兩個(gè)地方,并且大多是由于PHP配置問題,所以做好PHP優(yōu)化至關(guān)重要。對于PHP的優(yōu)化,主要是對php.ini中的相關(guān)主要參數(shù)進(jìn)行合理調(diào)整和設(shè)置,以下我們就來看看php.ini中的一些對性能影響較大的參數(shù)應(yīng)該如何設(shè)置(系統(tǒng)為CentOS)。
(1) PHP函數(shù)禁用找到
- disable_functions =
該選項(xiàng)可以設(shè)置哪些PHP函數(shù)是禁止使用的,PHP中有一些函數(shù)的風(fēng)險(xiǎn)性還是相當(dāng)大的,可以直接執(zhí)行一些CentOS系統(tǒng)級腳本命令,如果允許這些函數(shù)執(zhí)行,當(dāng)PHP 程序出現(xiàn)漏洞時(shí),損失是非常嚴(yán)重的!以下我們給出推薦的禁用函數(shù)設(shè)置:
- disable_functions = phpinfo,passthru,exec,system,popen,chroot,escapeshellcmd,escapeshellarg,shell_exec,proc_open,proc_get_status
需注意:如果您的服務(wù)器中含有一些CentOS系統(tǒng)狀態(tài)檢測的PHP程序,則不要禁用shell_exec,proc_open,proc_get_status等函數(shù)。
(2) PHP腳本執(zhí)行時(shí)間找到
- max_execution_time = 30
該選項(xiàng)設(shè)定PHP程序的***執(zhí)行時(shí)間,如果一個(gè)PHP腳本被請求,且該P(yáng)HP腳本在max_execution_time時(shí)間內(nèi)沒能執(zhí)行完畢,則PHP不再繼續(xù)執(zhí)行,直接給客戶端返回超時(shí)錯(cuò)誤。沒有特殊需要該選項(xiàng)可保持默認(rèn)設(shè)置30秒,如果您的PHP腳本確實(shí)需要長執(zhí)行時(shí)間則可以適當(dāng)增大該時(shí)間設(shè)置。
(3) PHP腳本處理內(nèi)存占用找到
- memory_limit = 8M
該選項(xiàng)指定PHP腳本處理所能占用的***內(nèi)存,默認(rèn)為8MB,如果您的服務(wù)器內(nèi)存為1GB以上,則該選項(xiàng)可以設(shè)置為12MB以獲得更快的PHP腳本處理效率。
(4) PHP全局函數(shù)聲明找到
- register_globals = Off
網(wǎng)絡(luò)上很多關(guān)于PHP設(shè)置的文章都推薦將該選項(xiàng)設(shè)置為On,其實(shí)這是一種及其危險(xiǎn)的設(shè)置方法,很可能引起嚴(yán)重的安全性問題。如果沒有特殊的需要,強(qiáng)烈推薦保留默認(rèn)設(shè)置!
(5) PHP上傳文件大小限制找到
- upload_max_filesize = 2M
該選項(xiàng)設(shè)定PHP所能允許***上傳文件大小,默認(rèn)為2MB。根據(jù)實(shí)際應(yīng)用需求,可以適當(dāng)增大該設(shè)置。
(6) Session存儲介質(zhì)找到
- session.save_path
如果你的PHP程序使用Session對話,則可以將Session存儲位置設(shè)置為/dev/shm,/dev/shm是Linux系統(tǒng)獨(dú)有的TMPFS 文件系統(tǒng),是以內(nèi)存為主要存儲方式的文件系統(tǒng),比RAMDISK更優(yōu)秀,因?yàn)榭梢允褂肈ISKSWAP作為補(bǔ)充,而且是CentOS系統(tǒng)自帶的功能模塊,不需要另行配置。想想看,從磁盤IO操作到內(nèi)存操作,速度會快多少?只是需要注意,存儲在/dev/shm的數(shù)據(jù),在服務(wù)器重啟后會全部丟失。不過這對于 Session來說是無足輕重的。這樣我們就完成了在CentOS系統(tǒng)PHP優(yōu)化的步驟。
【編輯推薦】