1. 程式人生 > >php配置引數調優

php配置引數調優

引數解釋

php配置檔案引數解釋

安全模式

safe_mode = on|off 啟用safe_mode指令將對在共享環境中使用PHP時可能有危險的語言特性有所限制。可以將safe_mode是指為布林值on來啟用,或者設定為 off禁用。它會比較執行指令碼UID(使用者ID)和指令碼嘗試訪問的檔案的UID,以此作為限制機制的基礎。如果UID相同,則執行指令碼;否則,指令碼失敗。 具體地,當啟用安全模式時,一些限制將生效。

  1. 所有輸入輸出函式(例如fopen()、file()和require())的適用會受到限制,只能用於與呼叫這些函式的指令碼有相同擁有者的檔案。例如,假定啟用了安全模式,如果Mary擁有的指令碼呼叫fopen(),嘗試開啟由Jonhn擁有的一個檔案,則將失敗。但是,如果Mary不僅擁有呼叫 fopen()的指令碼,還擁有fopen()所呼叫的檔案,就會成功。
  2. 如果試圖通過函式popen()、system()或exec()等執行指令碼,只有當指令碼位於safe_mode_exec_dir配置指令指定的目錄才可能
  3. HTTP驗證得到進一步加強,因為驗證指令碼用於者的UID劃入驗證領域範圍內。此外,當啟用安全模式時,不會設定PHP_AUTH
  4. 如果適用MySQL資料庫伺服器,連結MySQL伺服器所用的使用者名稱必須與呼叫mysql_connect()的檔案擁有者用

另外,由於啟用了安全模式後,由於會對比檔案的擁有者和檔案的執行者是否是一個人,所以會減慢執行效率。

使用者組安全

safe_mode_gid = off

關閉危險函式

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

關閉php版本資訊在http頭中的洩漏

expose_php = On 是否暴露php被安裝在伺服器上的事實(在http頭重加上其簽名) 它不會有安全上的直接威脅,但它使得客戶端知道伺服器上安裝了php. 建議設定為 on

關閉註冊全域性變數

register_globals = Off|On 在php中提交的變數,包括使用post或get提交的變數,都將自動註冊為全域性變數,能夠直接訪問,這是對伺服器非常不安全的,所以我們不能讓它註冊為全域性變數,就把註冊全域性變數選項關閉: 預設配置:register_globals = Off

開啟magic_quotes_gpc來防止SQl注入

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

錯誤資訊控制

一般php在沒有連線到資料庫或者其他情況下會有提示錯誤,一般錯誤資訊中會包含php腳本當前的路徑資訊或者查詢的SQL語句等資訊,這類資訊提供給黑客後,是不安全的,所以一般伺服器建議禁止錯誤提示。 display_errors = Off

錯誤日誌

建議在關閉dispaly_errors後能夠把錯誤資訊記錄下來,便於查詢伺服器執行的原因: log_errors = On error_log = /app/logs/php_error.log

資源限制引數優化

  1. 設定每個指令碼執行的最長時間 max_execution_time = 30 每個指令碼最大允許執行時間(秒),0表示沒有限制。這個引數有助於阻止劣質指令碼無休止的佔用伺服器資源。在安全模式下,你不能用ini_set()在執行時改變這個設定。當無法上傳交大的檔案或者後臺裝置資料經常超時,可根據情況進行配置

  2. 記憶體 memory_limit = 128M 每個php指令碼能使用記憶體的最大值,這有助於防止劣質指令碼消耗完伺服器上的所有記憶體。如果要取消記憶體限制,則必須將其設為-1。

  3. 每個指令碼等待輸入資料最長時間 max_input_time = -1 每個指令碼解析輸入資料(POST,GET,upload)的最大允許時間(秒),-1表示不限制,一般設定為max_input_time = 60

  4. 上傳檔案的最大許可大小 upload_max_filesize = 2M