ubuntu

如何在ubuntu上安全配置php-fpm

小樊
33
2025-06-29 12:38:00
栏目: 编程语言

在 Ubuntu 上安全配置 PHP-FPM 的步骤如下:

  1. 安装 PHP-FPM: 在终端中运行以下命令以安装 PHP-FPM:

    sudo apt-get update
    sudo apt-get install php-fpm
    
  2. 配置 PHP-FPM: PHP-FPM 的配置文件位于 /etc/php/{version}/fpm/pool.d/www.conf,其中 {version} 是您安装的 PHP 版本。例如,如果您安装的是 PHP 7.4,则配置文件路径为 /etc/php/7.4/fpm/pool.d/www.conf

    使用文本编辑器打开配置文件,例如:

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

    在配置文件中,您可以设置以下选项以提高安全性:

    • listen.ownerlisten.group:将这两个选项设置为非 root 用户和组,以限制对 PHP-FPM 套接字的访问。例如:

      listen.owner = www-data
      listen.group = www-data
      
    • listen.mode:将此选项设置为 0660,以便只有 owner 和 group 可以访问 PHP-FPM 套接字。

      listen.mode = 0660
      
    • usergroup:将这两个选项设置为非 root 用户和组,以限制 PHP-FPM 进程的权限。例如:

      user = www-data
      group = www-data
      
    • clear_env:将此选项设置为 no,以防止 PHP-FPM 进程继承不必要的环境变量。

      clear_env = no
      
    • security.limit_extensions:此选项允许您限制 PHP-FPM 处理的文件扩展名。这可以防止潜在的恶意文件上传。例如,仅允许处理 PHP 和 HTML 文件:

      security.limit_extensions = .php .html
      

    保存并关闭配置文件。

  3. 重启 PHP-FPM: 为了使更改生效,请重启 PHP-FPM 服务:

    sudo systemctl restart php{version}-fpm
    

    {version} 替换为您安装的 PHP 版本,例如:php7.4-fpm

  4. 配置 Nginx 或 Apache: 根据您使用的 Web 服务器(Nginx 或 Apache),您需要相应地配置它以使用 PHP-FPM。确保将 FastCGI 参数指向正确的 PHP-FPM 套接字,并限制对套接字的访问。

    对于 Nginx,您可以在 /etc/nginx/sites-available/{your-site} 文件中添加以下配置:

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php{version}-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    

    {your-site} 替换为您的站点名称,将 {version} 替换为您安装的 PHP 版本。

    对于 Apache,您需要在 /etc/apache2/sites-available/{your-site}.conf 文件中添加以下配置:

    <FilesMatch \.php$>
        SetHandler "proxy:unix:/run/php/php{version}-fpm.sock|fcgi://localhost"
    </FilesMatch>
    

    {your-site} 替换为您的站点名称,将 {version} 替换为您安装的 PHP 版本。

    保存并关闭配置文件。对于 Nginx,运行 sudo nginx -t 以检查配置文件的语法,然后运行 sudo systemctl restart nginx 重启 Nginx。对于 Apache,运行 sudo systemctl restart apache2 重启 Apache。

现在,您已经在 Ubuntu 上安全地配置了 PHP-FPM。请确保定期更新您的系统和软件包,以保持安全性。

0
看了该问题的人还看了