要在 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 請求。