前言:乘着此次空閒,來記錄下關於PHP和PHP-FPM配置文件的優化,也方便之後本身複習。php
先說PHP的web
一、PHP腳本執行時間服務器
max_execution_time = 30session
該選項設定PHP程序的最大執行時間,若是一個PHP腳本被請求,且該PHP腳本在max_execution_time時間內沒能執行完畢,則PHP再也不繼續執行,直接給客戶端返回超時錯誤。沒有特殊須要該選項可保持默認設置30秒,若是您的PHP腳本確實須要長執行時間則能夠適當增大該時間設置。 app
二、PHP腳本處理內存佔用socket
memory_limit = 8Mmemcached
該選項指定PHP腳本處理所能佔用的最大內存,默認爲8MB,若是您的服務器內存爲1GB以上,則該選項能夠設置爲12MB以得到更快的PHP腳本處理效率。 php-fpm
三、PHP上傳文件大小限制優化
upload_max_filesize = 2Mspa
max_file_uploads = 3
該選項設定PHP所能容許最大上傳文件大小,默認爲2MB。根據實際應用需求,能夠適當增大該設置,max_file_uploads表示單次請求最多隻能上傳 3 個文件
四、會話處理
session.save_handler = 'memcached' // 存放方式
session.save_path = '127.0.0.1:11211' // 存放路徑
該選項用於配置會話的存儲方式和存放路徑,默認是file文件方式,默認方式會拖慢大型應用,由於這個處理程序會把會話數據存儲在硬盤中,須要建立沒必要要的磁盤 I/O,浪費時間。
以上就是一些常見的優化和配置了
再說下PHP-FPM的
說以前,咱們先了解下什麼是PHP-FPM。PHP-FPM(FastCGI Process Manager:FastCGI進程管理器)是一個PHP-FastCGI管理器。那麼PHP-FastCGI又是什麼呢?
FastCGI是一個可伸縮地、高速地在HTTP服務器和動態腳本語言間通訊的接口(FastCGI接口在Linux下是socket(能夠是文件socket,也能夠是ip socket)),主要優勢是把動態語言和HTTP服務器分離開來。多數流行的HTTP服務器都支持FastCGI,包括Apache、Nginx和lightpd。
好了,這2個大概是瞭解了,下面說下PHP-FPM的配置
一、進程數
pm = static // 使用方式;還有一個dynamic(動態)
二、最大處理請求數
pm.max_requests = 10240
[root@b28-12 log]# grep -v "^$" www.log.slow.tmp | cut -d " " -f 3,2 | sort | uniq -c | sort -k1,1nr | head -n 50
5181 run() /www/test.net/framework/web/filters/CFilter.php:41
5156 filter() /www/test.net/framework/web/filters/CFilterChain.php:131
2670 = /www/test.net/index.php
2636 run() /www/test.net/application/controllers/survey/index.php:665
2630 action() /www/test.net/application/controllers/survey/index.php:18
2625 run() /www/test.net/framework/web/actions/CAction.php:75
2605 runWithParams() /www/test.net/framework/web/CController.php:309
2604 runAction() /www/test.net/framework/web/filters/CFilterChain.php:134
2538 run() /www/test.net/framework/web/CController.php:292
2484 runActionWithFilters() /www/test.net/framework/web/CController.php:266
2251 run() /www/test.net/framework/web/CWebApplication.php:276
1799 translate() /www/test.net/application/libraries/Limesurvey_lang.php:118
1786 load_tables() /www/test.net/application/third_party/php-gettext/gettext.php:254
1447 runController() /www/test.net/framework/web/CWebApplication.php:135