PHP 效能優化 - php.ini 配置

心智極客發表於2019-11-09

記憶體

預設設定

memory_limit = 128M

單個程式可使用的記憶體最大值,這個值的設定可以從以下幾點考慮:

  • 應用的型別。如果是記憶體集中型應用,可增加該值;
  • 單個 PHP 程式平均消耗的記憶體,該值可通過多次執行同一個指令碼來計算平均值;
  • 能負擔多少個 php-fpm 程式;該值等於分配的總記憶體除以單個 PHP 程式平均消耗的記憶體;

檔案上傳

預設設定

file_uploads = On
max_file_uploads = 20
upload_max_filesize = 2M
max_execution_time = 30 值 為 0 代表沒有限制
  • 設定 max_file_uploads 來決定同時允許多少個檔案上傳;
  • 設定 upload_max_filesize 來決定每個檔案上傳的最大值;
  • 如果是長時間任務,儘量使用佇列來處理,因此,可適當縮短 max_execution_time 的值;

注意, Web 伺服器也可以設定檔案上傳大小及超時時間,不能僅僅以 php.ini 的設定為準;

會話

PHP 的會話預設是儲存在硬碟中

session.save_handler = files

在實際應用中,應當將會話儲存在記憶體中。可使用 Memcached 或者 Redis。這樣做主要有兩個好處:

  • 提高速度;
  • 有助於後期的擴充套件,如果會話資料儲存在硬碟中,不便於增加額外的伺服器,如果把會話資料存放在 Memcached 或 Redis 裡,任何一臺分散式 PHP-FPM 伺服器都能訪問會話資料。

可通過 PECL 安裝 memcached 擴充套件並設定預設的 save_handlermemcached

session.save_handler = 'memcached'
session.save_path = '127.0.0.1:11211'

緩衝輸出

預設值

output_buffering = 4096

在較少的片段中把內容傳遞給訪問者的瀏覽器,能減少 HTTP 請求總數。 因此,我們要讓 PHP 緩衝輸出,預設情況下,PHP 已經啟用了輸出緩衝功能,PHP 緩衝 4096 位元組的輸出之後才會把內容傳送給 Web 伺服器。

注:如果想要修改輸出緩衝區的大小,確保使用的值是4(32位系統)或8(64位系統)的倍數。

真實路徑快取

預設值

realpath_cache_size = 4M
realpath_cache_ttl = 120

PHP 會快取應用使用的檔案路徑,這樣每次包含或匯入檔案時就無需不斷搜尋包含路徑了,這個快取叫真實路徑快取(realpath cache),如果執行的是大型的 PHP 檔案(如 Composer 元件),使用了大量檔案,增加 PHP 真實路徑快取的大小能得到更好的效能。

參考:

點選 連結,免費加入心智極客的知識星球分享群,共同成長。

相關文章