PHP引擎php.ini 和fastcti最佳化

來源:互聯網
上載者:User
1.1 php引擎緩衝最佳化加速


1)eaccelerator

2)Zend

3)xcache


1.2 使用tmpfs作為緩衝加速的的檔案目錄

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

[root@LNMP ~]# mount -t tmpfs /dev/shm/ /tmp/eaccelerator/


提示:


1、上傳圖片縮圖處理的目錄

2、其他加速器臨時目錄,例如tmp/eaccelerator


1.3 php.ini參數調優


無論是Apache還是nginx,php.ini都適合的,而php-fpm.conf適合nginx+fcgi的配置。首先選擇的產品環境的php.ini(php.ini-production)


/home/oldboy/tools/php-5.3.27/php.ini-development

/home/oldboy/tools/php-5.3.27/php.ini-production


1.3.1 開啟php的安全模式

php的安全模式是個非常重要的php內嵌的安全機制,能夠控制一些php中的函數執行,比如system(),同時把很多檔案操作的函數進行了許可權控制。

該參數配置如下:


safe_mode = Off


;是否啟用安全模式。

;開啟時,PHP將檢查當前指令碼的擁有者是否和被操作的檔案的擁有者相同,


1.3.3關閉危險函數


如果開啟了安全模式,那麼函數禁止是可以不需要的,但是為了安全還是考慮進去,比如,我們覺得不希望執行包括system()等在那的能夠執行命令的php函數,或者能夠查看php資訊的phpinfo()等函數,那麼我們就可以禁止他們,方法如下:


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


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


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

以上只是列出了部分不叫常用的檔案處理函數,你可以把以上執行命令函數和這個函數結合,就能夠抵制大部分phpshell了,該參數預設為disable_functions =



1.3.4 關閉PHP版本資訊在http頭中的泄露


我們為了防止駭客擷取伺服器php版本資訊,可以關閉資訊在http頭中。該參數預設配置如下:

expose_php = On

;是否暴露php被安裝在伺服器上的事實(在http頭中添加上其標籤)

;它不會有安全上的直接威脅,但是它使得用戶端知道伺服器上安裝了php

建議設定為:


expose_php = Off


這樣駭客執行Telnet ucode.blog.51cto.com 80 的時候,那麼將無法看到php的資訊

1.3.6 開啟 magic_quotes_gpc來防止SQL注入


SQL注入是非常危險的問題,輕則網站後台被入侵,重則整個伺服器淪陷。

所以一定要小心。php.ini中有一個設定:


magic_quotes_gpc = Off


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


magic_quotes_gpc = Off


1.3.7錯誤資訊控制


一般的php在沒有串連到資料庫或者其他情況下會提示錯誤,一般的錯誤資訊會包含php指令碼當前的路徑資訊或者查詢的SQL語句等資訊,這類資訊提供給駭客後,是不安全的,所以一般伺服器建議禁止錯誤提示:


display_errors = Off

1.3.8錯誤記錄檔


建議在關閉display_errors後能夠把錯誤資訊記錄下來,便於尋找伺服器啟動並執行原因:

log_errors = On

同時也要設定錯誤記錄檔存放的目錄,建議跟Apache的日誌存放在一起:


error_log = /app/logs/php_error.log


注意:給檔案必須允許Apache使用者和組都具有寫的許可權


1.3.9 部分資源限制參數最佳化


1.3.9.1 設定每個指令碼啟動並執行最長時間


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


max_exxcution_time = 30


;每個指令碼最大允許執行時間(秒),0表示沒有限制

;這個參數有助於阻止劣質指令碼無休止的佔用伺服器資源

;該指令僅影響指令碼本身的已耗用時間,任何其他花費在指令碼運行之外的時間

;如用system()/sleep()函數的使用、資料庫查詢、檔案上傳等,都不包括在內。

;在安全模式下,你不能用ini_set()在運行時改變這個設定


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


memory_limit = 128M


;一個指令碼所能夠申請到的最大記憶體位元組數(可以使用K和M作為單位)

;這有助於阻止劣質指令碼無休止的佔用伺服器上的所有記憶體

;要能夠使用該指令必須在編譯時間使用"--enable-memory-limit"配置選項

;如果要取消記憶體限制,則必須將其設定為-1

;設定了該指令後,memory_get_usage()函數將變為可用


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


max_input_time = -1

;每個指令碼解析輸入資料(POST,GET,upload)的最大允許時間(秒)

;-1表示不限制

設定為:


max_input_time = 60;


1.3.9.4 上傳檔案的最大許可大小


當上傳檔案較大時,需要調整如下參數:


upload_max_filesize = 2M;


;上傳檔案的最大許可大小,自己定義,一般圖片論壇需要將這個值修改較大,預設2M

另外通過一個請求可以上傳多少個檔案

max_file_uploads = 20


1.3.10 部分安全參數最佳化


1、禁止開啟遠程地址,記得最近出的php include的那個漏洞麼,就是在一個php程式中include了變數,那麼入侵者就可以利用這個控制伺服器在本地執行遠端一個php程式。例如phpshell,所以我們要關閉這個


allow_url_fopen = Off


2、設定:cgi.fix_pathinfo = 0

;防止Nginx檔案類型錯誤解析漏洞


1.3.11 調整php session 資訊存放類型和位置


session.save_handler = files

;儲存和檢索與會話關聯的資料的處理器名字,預設為檔案("files")

;如果想要使用自訂的處理器(如基於資料庫的處理器),可用"user"

;設為"memcache"則可以使用memcache作為會話處理器(需要指定"--enable-memcache-session"編譯選項)。

; session.save_path = "/tmp"

;傳遞給儲存處理器的參數,對於files處理器,此值是建立會話資料檔案的路徑。



web 叢集session共用儲存設定:

預設php.ini中session的類型和配置路徑:


#session.save_handler = files

#session.save_path = "/tmp"


修改成如下配置:


session.save_handler = memcache

session.save_path = "tcp://10.0.0.18:11211"


提示:

1)10.0.0.18:11211為memcache資料庫緩衝的IP及連接埠

2)上述適合LAMP、LNMP環境

3)memcache伺服器也可以是多台通過hash調度

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.