要在 CentOS 上为 PHP-FPM 设置运行用户,请按照以下步骤操作:
打开终端。
使用文本编辑器打开 PHP-FPM 配置文件。通常,该文件位于 /etc/php-fpm.d/www.conf 或 /etc/php-fpm.conf。在这个例子中,我们将使用 /etc/php-fpm.d/www.conf。你可以使用你喜欢的文本编辑器,例如 vi、nano 或 gedit。以下是使用 vi 编辑器的命令:
sudo vi /etc/php-fpm.d/www.conf
;user = apache
;group = apache
这些行定义了 PHP-FPM 的运行用户和组。默认情况下,它们可能被注释掉(以分号开头)。
myuser 用户和 mygroup 组运行,请将这些行更改为:user = myuser
group = mygroup
确保你选择的用户和组在系统上存在。如果需要,你可以使用以下命令创建新用户和组:
sudo adduser myuser
sudo addgroup mygroup
sudo usermod -a -G mygroup myuser
保存更改并关闭文本编辑器。
重新启动 PHP-FPM 服务以应用更改:
sudo systemctl restart php-fpm
现在,PHP-FPM 应该以你在配置文件中指定的用户和组运行。
/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。
sudo systemctl restart nginx
现在,PHP-FPM 应该以你在配置文件中指定的用户和组运行,并且 Nginx 也已更新以正确处理 PHP 请求。