我已經更改了檔案 /etc/php/7.3/fpm/pool.d/website-name.conf 下的用戶
user = ftplatinopeeyush
group = ftplatinopeeyush
只有那些引數在那個檔案上被改變了。以下行我沒有碰它。
listen = /var/run/user-name.sock
為什么我要更改此引數?
我創建了一個 FTP 用戶并將 webfiles 的所有權更改為該用戶,以便我可以將檔案上傳到服務器,但是 wordpress 說這些檔案不可寫。
現在在 pool.d/website-name.conf 檔案上更改用戶后,我可以通過 filezilla(使用 FTP 用戶)上傳檔案,也可以通過 wordpress 儀表板上傳插件。

一切似乎都運行良好,但這會影響我網站或 Nginx 服務器上的其他內容嗎?
如何創建一個 FTP 用戶,允許我將檔案上傳到我的服務器,而以后不會出現檔案權限問題?
uj5u.com熱心網友回復:
您基本上已經做了正確的事情:創建了一個單獨的 Linux 用戶并使用該用戶運行 PHP-FPM 池。然后,您使用同一用戶在 SFTP 中管理網站檔案。
如果您遵循“NGINX 和 PHP-FPM。我的權限應該是什么?” ,還有一個額外的步驟。也就是說,確保您的 NGINX 網路用戶是您的 PHP 用戶組的成員:
usermod -a -G ftplatinopeeyush www-data
這樣做的目的是,NGINX 可以讀取您網站的任何檔案,這些檔案的組權限設定為可讀。例如,所有目錄上的 chmod 0750 和所有檔案上的 0640 將允許 NGINX 讀取您的所有網站檔案。
此外,您可以通過簡單地洗掉組的讀取權限來輕松控制哪些檔案是敏感的并且不應由 NGINX 提供服務,例如通過在 wp-config.php 或類似的敏感檔案上設定 chmod 0600。
uj5u.com熱心網友回復:
順便說一句,它看起來像用戶權限(不屬于 fpm 用戶),請查看 nginx 和 php-fpm 的組態檔(當前示例我們使用 nginx),用戶是ftplatinopeeyush
查看
檢查您的檔案/ wordpress 用戶權限,確保您的 wordpress 用戶是
ubuntu(您可以檢查ls -l),并確保您的檔案放置在用戶主目錄:(/home/ftplatinopeeyush或任何主目錄并且用戶可寫ftplatinopeeyush)去
/etc/nginx/nginx.conf檢查引數user,請確保用戶是www-data
例子:
user www-data; # < this
worker_processes auto;
# ... next config
- 然后去
/etc/php/7.3/fpm/pool.d/website-name.conf檢查一下配置:
listen.owner = www-data
listen.group = www-data
- (fpm) 用戶和組(wordpress 檔案擁有的用戶)
user=ftplatinopeeyush
group=ftplatinopeeyush
案子
- fpm :
listen.owner&listen.group應該與 nginx 匹配:user - fpm:
user&group應該與 wordpress / root 用戶匹配。 - 權限:wordpress 檔案放置在用戶可寫的目錄中
解決
在開始之前,請確保您擁有超級管理員權限(root 用戶)
- 檢查您的用戶主目錄:
- 命令
cat /etc/passwd | grep ftplatinopeeyush
- 輸出(這里
/home/ftplatinopeeyush是主目錄)
NameOfUser:x:1234:1234:NameOfUser:/home/ftplatinopeeyush:
將您的 wordpress(檔案根目錄)放到您的主目錄中。(例如
/home/ftplatinopeeyush/pathtowordpress:)修復樓主
chown -R ftplatinopeeyush:ftplatinopeeyush /home/ftplatinopeeyush/pathtowordpress
- 設定權限(644 為檔案,755 為目錄)
- 設定檔案權限
find /home/ftplatinopeeyush/pathtowordpress -type f -exec chmod 644 {} \;
- 設定目錄權限
find /home/ftplatinopeeyush/pathtowordpress -type d -exec chmod 755 {} \;
- 將您的 nginx 用戶更改為
www-data
nano /etc/nginx/nginx.conf
將變數更改user為www-data
6。更改配置/etc/php/7.3/fpm/pool.d/website-name.conf
nano /etc/php/7.3/fpm/pool.d/website-name.conf
確保變數user&group是ftplatinopeeyush
和變數listen.owner&listen.group是www-data
或示例配置:
[[email protected]]
; Owner
listen.owner = www-data
listen.group = www-data
listen.backlog = 1500
; User & group
user = ftplatinopeeyush
group = ftplatinopeeyush
; Listener this will placed on /run/php/[email protected]
listen=/run/php/$pool.sock
; Process Manager
pm = ondemand
; set max children
pm.max_children = 20
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10
pm.process_idle_timeout = 10s
; FLAGS
;php_flag[display_errors] = off
;php_admin_value[memory_limit] = 128M
- 打開站點虛擬主機設定
nano /path/to/virtualhost-of-wordpress.conf
- 指向
root變數/home/ftplatinopeeyush/pathtowordpress - 查找
fastcgi_pass(php 位置塊)
location ~ \.php$ {
# split path request
fastcgi_split_path_info ^(. \.php)(/. )$;
# include default configuration nginx fastcgi_params
include fastcgi_params;
# environment php file name
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_index index.php;
# try below to handle all 404 not found with script
try_files $fastcgi_script_name =404;
# listen for cgi param port / load balancer upstream
# port for cgi params has followed of fast cgi config
fastcgi_pass unix:/run/php/ftplatinopeeyush@7.3.sock;
# handle error
fastcgi_intercept_errors off;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
}
- 重新加載 php & nginx 服務。
systemctl reload nginx.service
systemctl reload php7.3-fpm.service
- done
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/428583.html
