PHP參數調優
PHP.ini 適合於nginx和apache,如php-fpm適合於nginx+fastcgi的配置
php.ini PHP引擎 php.fpm PHP的進程
PHP的配置文件由兩個,一個是development,另一個是production
兩個的區別:
生產場景php.ini的日誌都是關閉或者輸出到文件中的,所以我們在生產環境中把非程序上的輸出都關閉或隱藏
二 php.ini 參數調優
日誌的關閉與隱藏就是PHP的基本調優
1 打開PHP的安全模式
PHP的安全模式是PHP內嵌的安全機制,能夠控制一些PHP中的函數執行,同時把很多文件操作的函數進行權限控制,如果通過PHP來調用rm而刪除一些服務器資源,則安全不復存在
2 用戶組安全
當safe_mode 打開時,safe_mode_gid被關閉,那麽PHP腳本能夠對文件進行訪問,而且相同組的用戶也能對文件進行訪問,建議設置為:safe_mode_gid=off
如果不設置,則有可能我發對服務器網站目錄下的文件進行操作
3 關閉危險函數
例如可以通過phpinfo()查看PHP的版本和基礎信息,進而對系統有一個了解
4 關閉PHP版本信息在HTTP頭中的泄露
5 關閉註冊全局變量
在PHP中提交的變量,包括使用POST或者GET提交的變量,都將自動註冊為全局變量,能夠直接訪問,這對服務器是非常不安全的,所有我們不能讓他註冊為全局變量,就把註冊全局變量的選項關閉,此處涉及到程序開發
6 打開magic_quotes_gpc 來防止SQL註入
SQL註入是非常危險的,輕則網站後臺被修改,重則整個服務器淪陷
SQL註入防範:
apache中mod_security和mod_enasive
nginx 中 nginx lua vaf
7 錯誤信息控制
一般的PHP在沒有連接到數據庫或者其他情況下會有提示錯誤,一般錯誤信息中會包含PHP腳本當前的路徑信息或者查詢的SQL語句等信息,這樣不安全
如果自己想看日誌,則首先需要設置日誌的級別
設置日誌打開並提供一個路徑
8 部分資源參數限制優化
1 設置每個腳本運行的最長時間
當無法上傳較大的文件或者後臺備份數據經常超時,需要調整,此參數是默認
2 每個腳本使用的最大內存
3 每個腳本等待輸入數據的最長時間
其中-1表示無限制
4 上載文件的最大許可大小
9 部分安全參數優化
1 禁止打開遠程地址
2 設定 cgi.fix_pathinfo=0放置nginx文件類型錯誤解析漏洞
10 調整PHP session 信息存放類型和位置
默認位置
一般的,在數據進行再次訪問如果會話存放在本地,訪問被調用到另一臺設備上,則會導致重新需要再次進行會話的保存
其默認的保存方式是文件,一般需要將文件修改為memcached
搭建memcached
路徑修改為memcached服務器的地址
重啟服務
查看info是否存在
二 php-fpm
1 pid
打開pid 通過pid進行管理
2 開啟錯誤日誌
3 開啟日誌級別
4 最大的FPM fork 進程的數量。如果並發比較大,可以開大一點
5 調整最大打開文件數量
6 用戶和組,要和nginx的用戶和組相同
7 修改監聽別的端口和IP地址
8 進程相關
1 默認
最大的進程數量
啟動服務進程數量
服務最小進程數量,當沒有流量時的服務數量
最大空間數
2 修改
修改參數結果
當該進程不使用時銷毀時間
每個子進程服務請求的數量
9 PHP的訪問日誌
10 慢查詢相關日誌開啟
PHP參數調優