来源: 解决php报错 chmod() has been disablde for security reasons 的教程 – 飞鸟慕鱼博客
今天有一个使用我用制作的zblog静态插件的用户来反馈一个 php 报错的问题,报错提示为“chomd() has been disablde for security reasons”,虽然很快就给解决了,但还是记录一下,方便以后查看。
php chmod() has been disablde for security reasons 错误详解
错误解析如下:
chmod() has been disablde for security reasons
翻译:
出于安全原因,chmod() 函数已被禁用
注释:由于 chmod() 可以更改文件的权限,所以很多运维在配置 php 时,都会禁用此函数。在 chmod() 函数被禁用的情况下,如果代码里出现此函数的调用,php 就会抛出上面的错误提示!
解决方法
1、虚拟机
一般的虚拟机管理后台都有 php.ini 的设置项目,下图以阿里云(万网)虚拟机为例,可以在后台的虚拟机管理面板中,chmod() 函数的设置项,启用即可!
如果你使用的虚拟机不支持函数的禁用设置,则可以咨询虚拟机的服务商,让他们帮助解决!
2、云服务器
如果你使用的为云服务器,为自建的环境(例如宝塔面板,一些环境的集成等),则可以通过修改 php 的配置文件,php.ini 来解决此问题
(1)、找到 php 的配置文件 php.ini ,并打开
(2)、搜索 “disable_functions”,并定位到其所在行,不同的配置可能“disable_functions”的值不同,但都有一个 chmod 字符串。
(3)、删除上面箭头所指的 “chmod”并保存
(4)、重启 php 服务 (如果重php服务不生效,就重启一下服务器)