centos

如何设置php-fpm在centos上的运行用户

小樊
43
2025-10-02 16:57:14
栏目: 编程语言

要在 CentOS 上为 PHP-FPM 设置运行用户,请按照以下步骤操作:

  1. 打开终端。

  2. 使用文本编辑器打开 PHP-FPM 配置文件。通常,该文件位于 /etc/php-fpm.d/www.conf/etc/php-fpm.conf。在这个例子中,我们将使用 /etc/php-fpm.d/www.conf。你可以使用你喜欢的文本编辑器,例如 vinanogedit。以下是使用 vi 编辑器的命令:

sudo vi /etc/php-fpm.d/www.conf
  1. 在配置文件中找到以下行:
;user = apache
;group = apache

这些行定义了 PHP-FPM 的运行用户和组。默认情况下,它们可能被注释掉(以分号开头)。

  1. 将这些行取消注释并更改为你想要的运行用户和组。例如,如果你想让 PHP-FPM 以 myuser 用户和 mygroup 组运行,请将这些行更改为:
user = myuser
group = mygroup

确保你选择的用户和组在系统上存在。如果需要,你可以使用以下命令创建新用户和组:

sudo adduser myuser
sudo addgroup mygroup
sudo usermod -a -G mygroup myuser
  1. 保存更改并关闭文本编辑器。

  2. 重新启动 PHP-FPM 服务以应用更改:

sudo systemctl restart php-fpm

现在,PHP-FPM 应该以你在配置文件中指定的用户和组运行。

  1. (可选)如果你使用的是 Nginx,还需要更新 Nginx 配置文件(通常位于 /etc/nginx/nginx.conf/etc/nginx/conf.d/default.conf),以便 PHP-FPM 使用正确的用户和组。找到以下行:
location ~ \.php$ {
    ...
    fastcgi_pass   unix:/run/php-fpm/www.sock;
    ...
}

确保 fastcgi_pass 指向正确的 PHP-FPM socket 文件。然后,在 location 块之外,添加以下行:

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REQUEST_SCHEME $scheme;
fastcgi_param HTTPS $https if_not_empty;

fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $host;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PROTOCOL $server_protocol;

fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param QUERY_STRING $query_string;

fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;

fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param REQUEST_FILENAME $document_root$fastcgi_script_name;

fastcgi_param PHP_VALUE "error_log=/var/log/php-fpm/$host-error.log";
fastcgi_param PHP_ADMIN_VALUE "error_log=/var/log/php-fpm/$host-error.log"

这些参数将确保 Nginx 将请求正确传递给 PHP-FPM。

  1. 保存更改并重新启动 Nginx 服务:
sudo systemctl restart nginx

现在,PHP-FPM 应该以你在配置文件中指定的用户和组运行,并且 Nginx 也已更新以正确处理 PHP 请求。

0
看了该问题的人还看了