基本上,我试图修复无法将图片上传到我新迁移的 WordPress 网站的问题。该网站使用 VPN,我找到了这篇文章,http://2surge.com/how-to-fix-the-uploaded-file-could-not-be-moved-to-wp-content-error-message/,给出了以下解决方案:以 root 用户身份执行以下命令,授予 Apache 用户 WordPress 文件的所有权:
chown -R nobody /home/<username>/public_html
但我认为我应该将所有权授予我主目录中的 WP 目录。相反,我将 public_html 文件夹的所有权授予了 Apache 用户。现在我无法通过 ftp 访问 public_html。我收到错误:无法返回目录列表。
我可以使用相同的命令简单地将所有者更改回原始系统用户吗?如下所示:
chown -R originaluser /home/<username>/public_html
或者这是否过于简单化了我所掌握的非常基础和不完整的概念?
答案1
是的,你可以将用户改回来,没问题。但是,这可能会再次阻止图片上传。
我猜你的问题是你有 2 个服务 - Apache 和 FTP,在不同的用户下运行(例如 apache 从用户 nobody 运行)。
在这种情况下,我建议您创建一个用户组并授予该用户组对您需要的文件夹的权限(我建议它应该是/wp-content/uploads/)。
例如:
# create new group:
groupadd webservices
# add apache user (nobody) to this new group
usermod -a -G webservices nobody
# add ftp user (?) to this new group
usermod -a -G webservices <ftp user>
# add yourself to this group (in case you need to access the folder from non-root account)
usermod -a -G webservices <myself>
现在您需要为该文件夹设置用户和组,并提供正确的组权限到该文件夹(递归)。
例如:
# change the folder ownership
chown -R nobody:webservices /path/to/wp-content/uploads/
# and set group permissions to be the same with user permissions:
chmod -R g=u /path/to/wp-content/uploads/
现在 apache 和 ftp 用户都对该文件夹及其内容拥有相同的权限,因为两个用户都属于 webservices 组(并且 webservices 组具有正确的权限,即复制的用户权限)。
也可以看看:
我的网站文件/文件夹在 Linux 网络服务器上应该具有什么权限?
https://serverfault.com/a/284478/118677
男人
人组
手册修改模式