PHP引擎php.ini引數最佳化

dav2100發表於2021-09-09

引數以外常見的PHP最佳化方法手段

1)php引擎快取加速最佳化

1

2

#xcache、ZendOpcache、eaccelerator

#

2) 使用tmpfs作為快取加速快取的檔案目錄

tmpfs,基於記憶體的檔案系統,加快轉存暫存檔案的速度

1

2

[root@web01 ~]# mount -t tmpfs tmpfs /dev/shm -o size=256m[

root@web01 ~]# mount -t tmpfs tmpfs /dev/shm /tmp/eaccelerator #上傳圖片縮圖臨時處理目錄和快取目錄

3) 防止PHP程式上傳檔案到圖片附件目錄

1 #Nginx防禦 



php.ini引數調優

php.ini配置檔案

1

23

[root@web01 php-5.5.32]# ll php.ini-*

-rw-r--r--. 1 1001 1001 69236 Feb  2  2016 php.ini-development #開發環境

-rw-r--r--. 1 1001 1001 69266 Feb  2  2016 php.ini-production #生產環境(關閉日誌或者輸出到檔案中)

1) 開啟php的安全模式

php安全模式是個非常重要的php內嵌的安全機制,能夠控制一些php的函式執行,比如system()呼叫系統命令函式

1 safe_mode = on

2)使用者組安全

1 safe_mode_gid = off #防止php程式對指令碼執行有許可權

3)關閉危險函式

如果開啟了安全模式,那麼函式禁止是可以不需要的,但是我們為了安全還是可以關閉的,特別是phpinfo()

1 disable_functions = system,passthru,exec,shell_exec,popen,phpinfo

如果要禁止任何檔案和目錄的操作,那麼可以關閉很多檔案操作

1 disable_functions = chdir,chroot,dir,getcwd,opendir,readdir,scandie,fopen,unlink,delete,copy,mkdir,rmdir,rename,file,file_getcontents,fputs,fwrite,chgrp,chmod,chown

4)關閉PHP版本資訊在http頭中的洩漏

1 expose_php = off

5)關閉註冊全域性變數

在PHP中提交的變數,包括使用POST或者GET提交的變數,都將自動註冊為全域性變數,能夠直接訪問,這是對服務非常不安全的

1

2

register_globals = off #推薦使用預定義的超全域性變數:$_ENV,$_GET,$_POST,$_COOKIE,$_SERVER

#該指令收variables_order指令的影響,5.5自動關閉了

6)開啟magic_quotes_gpc來防止SQL隱碼攻擊

SQL隱碼攻擊是非常危險的問題,輕則網站後臺被入侵,重則整個伺服器淪陷

1 magic_quotes_gpc = off

這個預設是關閉的,如果它開啟將自動把使用者提交對sql的查詢進行轉換,比如把 ' 轉換為 ' 這對防止sql注入有重大作用,所以推薦設定為

1 magic_quotes_gpc = on

SQL隱碼攻擊防範:

Apache 中的mod_security和mod_evasive

Nginx lua waf

7)錯誤資訊控制

一般php在沒有連線到資料庫或者其他情況下會提示錯誤,一般資訊都會包含php指令碼當前的路徑資訊或者查詢的SQL語句資訊,這類資訊提供給駭客後市不安全的,建議關閉錯誤提示

1 display_errors = off #正式環境不要給使用者報錯

8)錯誤日誌

1

2

log_errors = on #開啟日誌開關

error_log = /application/logs/php_error.log #設定路徑



部分資源限制引數最佳化

1)設定每個指令碼執行的最長時間

但無法上傳較大的檔案或者後臺備份資料經常超時時,此時需要調整如下設定

1

2

3

max_execution_time = 30

#每個指令碼允許的最大執行時間,0表示沒有限制

#這個引數有助於阻止惡劣指令碼無休止的佔用伺服器資源

2)每個指令碼使用的最大記憶體

1 memory_limit = 128m

3)每個指令碼等待輸入資料最長時間

1 max_input_time = 60;   #(-1表示不限制)

4)上傳檔案的最大許可

1 upload_mx_filesize = 2M;



部分安全引數最佳化

1)禁止開啟遠端地址

記得最近出的php include的那個安全漏洞吧!就是在一個php程式中的include了變數,那麼入侵者就可以利用這個控制伺服器在本地執行遠端的一個php程式,例如phpshell

1 allow_url_fopen = off

2)設定防止Nginx檔案解析錯誤漏洞

1 cgi.fix_path = 0

3)調整php sesson會話共享資訊存放位置

1

2

3

session.save_handler = memcache

session.save_path = "tcp://10.0.0.8:1211

"#首先搭建好memcache環境



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4479/viewspace-2809081/,如需轉載,請註明出處,否則將追究法律責任。

相關文章