我使用CentOS 7 LAMP堆栈在我的VPS上运行WordPress。我已经跟this guide设置权限,即我已经运行
sudo chown apache:apache -R *
确保我的wordpress目录归apache:apache
所有。
我还使用以下命令设置了WordPress目录和文件权限:
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
(我必须在上面的命令前加上sudo
)
通常,我使用myuser
通过SSH登录来管理服务器,其中myuser
属于apache
组和wheel
组。
我有3个问题:
sudo
,否则我会收到权限错误。由于myuser
属于apache
且apache
拥有该目录,因此我仍然不知道为什么我仍然需要使用sudo
为命令添加前缀。git
命令(例如git pull
)都要求我在命令前添加sudo
,否则我会收到权限错误。关于我失踪的想法?
答案 0 :(得分:6)
请注意:What does mode_t 0644 mean?
644 means:
* (owning) User: read & write
* Group: read
* Other: read
CRUD是一个写命令,因此不允许这样做。您可以更改为664
或继续使用sudo。基本上,没有sudo就不允许在文件系统上执行任何写入过程,因为您的用户不是所有者(尽管他在组中的事件)。
答案 1 :(得分:3)
@fortuneRice,CentOS7默认启用selinux,这通常是许多难以理解的文件权限错误的原因。
我建议如下:
完全禁用SELINUX并不是一个好主意,因此如果此过程有效,则应重新启用SELINUX并修复其配置。
配置SELINUX可能是一项艰巨的任务,所以我建议你在google上阅读如何做到这一点:)
答案 2 :(得分:1)
StaticTest.DoSomeWork()
答案 3 :(得分:1)
我也遇到了这个问题,并通过更改 PHP 处理程序解决了这个问题。
使用将作为文件所有者运行的 PHP 处理程序很重要。
在安装 HTTP2 和其他一些功能之后,我更改了 PHP 处理程序。
我在 VPS 上运行 WHM/CPanel,并按照以下步骤解决了我的问题:
在WHM
下 > Software
> EasyApache 4
> Customize
在 mod_suphp
标签下查找:Apache Modules
并确保它已启用,如果您刚刚打开它进行安装,请按照第二步操作。
转到 Review
标签并点击 Provision
按钮进行保存。
在 Whm
> Software
> MultiPHP Manager
下寻找 PHP Handlers
标签。
选择 suphp
作为当前 PHP 版本的处理程序。
就是这样。它是 PHP 处理程序。
编辑:我注意到 suphp
与我动态添加到图像水印的用户上传目录之一发生冲突。似乎 suphp
处理程序有权上传但不显示图片。
我还为 PHP 处理程序尝试了 lsapi
,它似乎可以在文件权限下正常工作,并通过 .htaccess 文件水印附加图像。