ubuntu

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. 调整内核参数

    • 增加网络缓冲区大小:

      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等),并根据实际情况进行调整。可以使用工具如 htopvmstatiostat 等。

  6. 代码优化

    对PHP代码进行优化,减少不必要的计算和内存使用,提高代码执行效率。可以使用代码分析工具和性能监控工具来找出性能瓶颈。

通过以上步骤,你应该能够在Ubuntu系统中成功配置和调优PHP-FPM,从而提高Web服务器的性能和稳定性。根据你的具体需求,可能还需要进行其他配置调整。

0
看了该问题的人还看了