溫馨提示×

Ubuntu PHP-FPM性能調優指南

小樊
37
2025-05-13 22:50:24
欄目: 編程語言

在Ubuntu系統中配置和調優PHP-FPM(FastCGI Process Manager)是一個重要的過程,可以提高Web服務器的性能和穩定性。以下是一個詳細的指南,涵蓋了從安裝到性能調優的各個方面。

安裝PHP-FPM

首先,確保你的系統已經安裝了PHP和PHP-FPM。你可以使用以下命令來安裝它們:

sudo apt update
sudo apt install php-fpm

配置PHP-FPM

  1. 主要配置文件

    • php-fpm.conf:主配置文件。
    • www.conf:包含PHP-FPM與Web服務器通信的配置。

    你可以編輯 www.conf 文件來配置PHP-FPM監聽的地址和端口。例如:

    sudo nano /etc/php/7.4/fpm/pool.d/www.conf
    

    找到 listen 指令并修改為你想要的地址和端口。例如:

    • 如果你想讓PHP-FPM監聽Unix套接字:

      listen /run/php/php7.4-fpm.sock
      
    • 如果你想讓PHP-FPM監聽TCP端口:

      listen 127.0.0.1:9000
      
  2. 配置Web服務器

    • Nginx

      編輯Nginx的站點配置文件(通常位于 /etc/nginx/sites-available/ 目錄下),添加或修改以下內容:

      server {
          listen 80;
          server_name example.com;
          root /var/www/html;
          index index.php index.html index.htm;
          location / {
              try_files $uri $uri/ =404;
          }
          location ~ \.php$ {
              include snippets/fastcgi-php.conf;
              fastcgi_pass unix:/run/php/php7.4-fpm.sock;
          }
      }
      

      然后,重新加載Nginx配置:

      sudo nginx -s reload
      
    • Apache

      確保啟用了 proxy_fcgisetenvif 模塊:

      sudo a2enmod proxy_fcgi setenvif
      

      編輯Apache的站點配置文件(通常位于 /etc/apache2/sites-available/ 目錄下),添加或修改以下內容:

      <VirtualHost *:80>
          ServerName example.com
          DocumentRoot /var/www/html
          Directory /var/www/html
          Options Indexes FollowSymLinks AllowOverride All
          Require all granted
          <FilesMatch \.php$>
              SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost"
          </FilesMatch>
          ErrorLog ${APACHE_LOG_DIR}/error.log
          CustomLog ${APACHE_LOG_DIR}/access.log combined
      </VirtualHost>
      

      然后,重新加載Apache配置:

      sudo systemctl reload apache2
      
  3. 啟動和啟用PHP-FPM服務

    確保PHP-FPM服務正在運行并設置為開機自啟動:

    sudo systemctl start php7.4-fpm
    sudo systemctl enable php7.4-fpm
    

性能調優

  1. 調整進程池設置

    • pm.max_children:設置最大的子進程數量。
    • pm.start_servers:設置啟動時的進程數量。
    • pm.min_spare_servers:設置最小空閑進程數量。
    • pm.max_spare_servers:設置最大空閑進程數量。
    • pm.max_requests:設置每個子進程在被重新生成之前可以處理的請求數。
  2. 啟用OPcache

    啟用PHP的OPcache擴展,可以緩存編譯后的PHP代碼,從而減少服務器負載和提高性能。在 php.ini 文件中啟用OPcache,并配置相關參數:

    opcache.enable=1
    opcache.memory_consumption=64
    opcache.validate_timestamps=1
    
  3. 調整內核參數

    • 增加網絡緩沖區大?。?/p>

      sudo sysctl -w net.core.rmem_max=16777216
      sudo sysctl -w net.core.wmem_max=16777216
      
    • 調整TCP連接隊列長度:

      sudo sysctl -w net.core.somaxconn=4096
      
    • 減少 time_wait 狀態連接數量:

      sudo sysctl -w net.ipv4.tcp_tw_reuse=1
      sudo sysctl -w net.ipv4.tcp_tw_recycle=1
      
  4. 使用更快的存儲

    升級服務器的磁盤存儲,使用更快的SSD硬盤,以提高磁盤I/O性能。

  5. 監控和調優

    定期監控服務器的性能指標(如CPU、內存、磁盤I/O等),并根據實際情況進行調整??梢允褂霉ぞ呷?htop、vmstat、iostat 等。

  6. 代碼優化

    對PHP代碼進行優化,減少不必要的計算和內存使用,提高代碼執行效率??梢允褂么a分析工具和性能監控工具來找出性能瓶頸。

通過以上步驟,你應該能夠在Ubuntu系統中成功配置和調優PHP-FPM,從而提高Web服務器的性能和穩定性。根據你的具體需求,可能還需要進行其他配置調整。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女