【问题标题】:Trouble setting chmod in WordPress在 WordPress 中设置 chmod 时遇到问题
【发布时间】:2012-11-09 00:56:25
【问题描述】:

基本上我正在为我的博客创建一个主题,我需要将customcss.css 设置为可写777,以便当我在后端更改设计时它会写入此文件。

当我手动将 chmod 设置为 777 时,一切都 100% 工作,但是当我尝试将 chmod 设置为 777 时,在激活它时会显示以下错误消息:

警告:chmod():第 74 行 /var/www/vhosts/domainname.com/wptest/wp-content/themes/ctheme/ThemeFunctions/th‌​emeinstall.php 中不允许操作

我使用的代码如下:

$rootpage = get_theme_root();
chmod($rootpage . '/ctheme/css/customcss.css', 0777);

我搜索了这个网站,不幸的是没有找到类似的东西。我做错了什么?

【问题讨论】:

  • “不起作用”不是一个好的描述。你应该说实际结果是什么。同时启用 WP_DEBUG,这可能会向您显示更多错误信息。
  • @hakre 我为此道歉,对不起......这是我收到的错误消息警告:chmod(): Operation not allowed in /var/www/vhosts/domainname.com/wptest/ wp-content/themes/ctheme/ThemeFunctions/themeinstall.php 在第 74 行 - 这是我收到的唯一错误消息
  • 只是一个标准权限被拒绝。执行该命令的用户无法更改权限。更改目录的所有者,这可能是可能的。但是,请保留手动 chmodding。此外,主题永远不需要将目录更改为 777 恕我直言。
  • @hakre - 我这样做的原因是因为为了写入 css 文件,它需要具有写入权限,并且如果不将其设置为 777,它将不会写入。否则你会怎么做?
  • 手动修改。否则 shell_exec 和 sudo 在 shell 中的 chmod 操作。并且要多加注意:只有你想要的东西并不意味着你可以做到——尤其是当你遇到权限问题时。你被拒绝这样做。我希望你现在更清楚了。

标签: php wordpress


【解决方案1】:

当你手动执行命令时,你是shell中的用户允许改变模式。

当你将 php 函数chmod 写入脚本时,它将被另一个用户执行,即执行 PHP 的用户。

因为该用户不允许更改文件的模式。这就是您看到错误的原因。

除非您不更改执行 PHP 的用户(更改最终更改模式的用户),否则此错误不会消失。

【讨论】:

  • 这里的解决方法是将文件 chown 到 apache(或任何运行脚本的用户)。如果后端正在创建文件,那么他也应该将它们发送给适当的用户。
猜你喜欢
  • 1970-01-01
  • 2019-11-01
  • 2021-06-19
  • 1970-01-01
  • 2011-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多