![Nginx + PHP + FTP - 用户权限问题](https://linux22.com/image/28128/Nginx%20%2B%20PHP%20%2B%20FTP%20-%20%E7%94%A8%E6%88%B7%E6%9D%83%E9%99%90%E9%97%AE%E9%A2%98.png)
我在 /home/username/public_html/site 上安装了一个 WordPress 副本,现在的问题是:
- Nginx 以“www-data”身份运行 PHP
- 站点文件夹所有者和组是“用户名”,而不是“www-data”
- 所以wordpress没有创建文件夹的权限
- 我将“site”的所有者和组更改为“www-data”,wordpress 工作正常
- 但 ftp 无法创建文件夹 - ftp 是以用户名/密码登录
是否可以有一个 /home/username/public_html/site,并且都可以在 PHP 端和 ftp 端工作。任何建议表示赞赏!
答案1
我找到了解决方法,但不是一种优雅的方法:
- 将“user”主要组更改为“www-data”
- 更改/etc/vsftpd.conf和~./bashrc,第一个添加local_mask = 002,最后一个添加umask = 002
现在,当我上传文件时,默认情况下它具有 rw-rw-r- 权限,如果它是文件夹 rwxrwxr--,所有者是“user”,组是“www-data”,并且 PHP 正在以身份运行“ www-data”,因此它可以删除从ftp上传的所有文件和文件夹。
答案2
将用户主要组更改为“www=data”可能有效,但在某些情况下可能不安全。添加 umask 选项可能更不安全。
我建议使用更复杂的方法,这可能会产生一些性能影响,但可以更安全地设置:http://themesforge.com/performance/configuring-nginx-php5-fpm-and-user-permissions/