標籤:php.ini 最佳化 參數
參數以外常見的PHP最佳化方法手段
1)php引擎緩衝加速最佳化
#xcache、ZendOpcache、eaccelerator#http://www.lichengbing.cn/archivers/270.html
2) 使用tmpfs作為緩衝加速緩衝的檔案目錄
tmpfs,基於記憶體的檔案系統,加快轉存暫存檔案的速度
[[email protected] ~]# mount -t tmpfs tmpfs /dev/shm -o size=256m[[email protected] ~]# mount -t tmpfs tmpfs /dev/shm /tmp/eaccelerator #上傳圖片縮圖臨時處理目錄和緩衝目錄
3) 防止PHP程式上傳檔案到圖片附件目錄
#Nginx防禦 http://www.lichengbing.cn/archivers/279.html
php.ini參數調優
php.ini設定檔
[[email protected] 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()調用系統命令函數
safe_mode = on
2)使用者組安全
safe_mode_gid = off #防止php程式對指令碼執行有許可權
3)關閉危險函數
如果開啟了安全模式,那麼函數禁止是可以不需要的,但是我們為了安全還是可以關閉的,特別是phpinfo()
disable_functions = system,passthru,exec,shell_exec,popen,phpinfo
如果要禁止任何檔案和目錄的操作,那麼可以關閉很多檔案操作
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頭中的泄漏
expose_php = off
5)關閉註冊全域變數
在PHP中提交的變數,包括使用POST或者GET提交的變數,都將自動註冊為全域變數,能夠直接存取,這是對服務非常不安全的
register_globals = off #推薦使用預定義的超全域變數:$_ENV,$_GET,$_POST,$_COOKIE,$_SERVER#該指令收variables_order指令的影響,5.5自動關閉了
6)開啟magic_quotes_gpc來防止SQL注入
SQL注入是非常危險的問題,輕則網站後台被入侵,重則整個伺服器淪陷
magic_quotes_gpc = off
這個預設是關閉的,如果它開啟將自動把使用者提交對sql的查詢進行轉換,比如把 ‘ 轉換為 \‘ 這對防止sql注入有重大作用,所以推薦設定為
magic_quotes_gpc = on
SQL注入防範:
Apache 中的mod_security和mod_evasive
Nginx lua waf
7)錯誤資訊控制
一般php在沒有串連到資料庫或者其他情況下會提示錯誤,一般資訊都會包含php指令碼當前的路徑資訊或者查詢的SQL語句資訊,這類資訊提供給駭客後市不安全的,建議關閉錯誤提示
display_errors = off #正式環境不要給使用者報錯
8)錯誤記錄檔
log_errors = on #開啟日誌開關error_log = /application/logs/php_error.log #設定路徑
部分資源限制參數最佳化
1)設定每個指令碼啟動並執行最長時間
但無法上傳較大的檔案或者後台備份資料經常逾時時,此時需要調整如下設定
max_execution_time = 30#每個指令碼允許的最大執行時間,0表示沒有限制#這個參數有助於阻止惡劣指令碼無休止的佔用伺服器資源
2)每個指令碼使用的最大記憶體
memory_limit = 128m
3)每個指令碼等待輸入資料最長時間
max_input_time = 60; #(-1表示不限制)
4)上傳檔案的最大許可
upload_mx_filesize = 2M;
部分安全參數最佳化
1)禁止開啟遠程地址
記得最近出的php include的那個安全性漏洞吧!就是在一個php程式中的include了變數,那麼入侵者就可以利用這個控制伺服器在本地執行遠端一個php程式,例如phpshell
allow_url_fopen = off
2)設定防止Nginx檔案解析錯誤漏洞
cgi.fix_path = 0
3)調整php sesson會話共用資訊存放位置
session.save_handler = memcachesession.save_path = "tcp://10.0.0.8:1211"#首先搭建好memcache環境
PHP引擎php.ini參數最佳化