未定义常量FS_CHMOD_DIR的使用-假定为‘FS_CHMOD_DIR’

时间:2017-01-20 作者:user2265915

我在尝试更改主题颜色时看到一个错误:

Notice: Use of undefined constant FS_CHMOD_DIR - assumed \'FS_CHMOD_DIR\' in
/var/www/vhosts/xxx/wp-content/themes/consulting/inc/print_styles.php on line 141
主题创建者给了我以下建议,但无法提供任何进一步的细节:

请联系您的托管提供商团队,并要求在您的站点中启用(设置)PHP文件扩展名。这将解决问题。

我管理我的服务器,但我也与我的主机提供商联系过,我们都不知道需要做什么。

我们能找到的最接近PHP文件的是fileinfo扩展,该扩展已经安装:

[root]# php -m | grep file
fileinfo
有人能解释一下吗?

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

这真的很简单。主题作者正在使用一个常量,您可以输入该常量wp-config.php, 但由于您不使用该常量,而且作者从不检查它是否已实际定义,因此代码会抛出一条PHP警告

https://codex.wordpress.org/Editing_wp-config.php#Override_of_default_file_permissions

覆盖默认文件权限

FS\\u CHMOD\\u DIR和FS\\u CHMOD\\u file define语句允许覆盖默认文件权限。这两个变量是针对在suexec下运行的主机的核心更新功能失败的问题而开发的。如果主机对所有用户文件使用限制性文件权限(例如400),并且拒绝访问设置了组或世界权限的文件,则这些定义可以解决此问题。请注意,“0755”是一个八进制值。八进制值必须以0作为前缀,并且不能用单引号(\')表示。另请参见:更改文件权限

常见问题解答那么该怪谁呢

主题作者,用于在使用常量之前不检查是否定义了常量。我从来都不需要这个常数,我在很多网站上工作过,从听起来你也不需要。

检查很容易:

$chmod_dir = ( 0755 & ~ umask() );
if ( defined( \'FS_CHMOD_DIR\' ) ) {
    $chmod_dir = FS_CHMOD_DIR;
}
您可以使用一个变量,给它一个默认变量,然后将常量(如果存在)赋给它。

这个文件的PHP扩展名怎么样

这是废话,是转移视线,我猜你要么是被欺骗了,要么是开发人员做出了猜测,可能是后者。该常量是WordPress常量,您永远不应该依赖于定义的所有常量(毕竟它们大多是可选的)

这一切都是光明正大的吗

为什么您的主题需要chmod文件和文件夹?这一切听起来都很可疑,主题不应该写入磁盘,尤其是在前端。这就是网站无法扩展或减速的原因。

我对这个主题持怀疑态度,从文件名来看,这个主题似乎在生成文件并将其保存在一个子文件夹中,这是一个巨大的“不”字,毕竟有一套用于写入上传文件夹的API,您可以通过PHP生成并返回一个可缓存的CSS文件并重写规则(如果您有一个可写的主题文件夹,也会带来安全后果)

相关推荐

Wp-Content/Themes文件夹在哪里?

我想为我的wordpress站点创建一个子主题(仅供参考),这样我的更改就不会被每次更新所覆盖。显然,我需要在wp-content/themes文件夹中为子主题创建一个子文件夹。问题是,我找不到它。我曾尝试将wp内容和wp内容/主题添加到域中-它生成了一个空白的白色页面。我试着在spotlight文件搜索(是的,我有一台mac电脑)中搜索它(只是“wordpress”),它只找到了一些我在2010年安装的wordpress文件夹,我甚至都不记得做过这些。由于我最近在过去两周(2014年5月)建立了这个网站