我找不到为什么我的Codeigniter不能从控制器将特定于CHMOD的目录从CHMOD映射到777的原因,所以需要寻求有关如何解决此问题的建议。
我正在运行centos 7,PHP 7.2
我有一个控制器,其位置为:public_html / application / controllers / users.php 而且我需要CHMOD目录:public_html / uploads / whatverfolder / userfolder /
public function att() {
$uploaddir = 'uploads/whatverfolder/userfolder';
if (file_exists($uploaddir )) {
echo 'YES DIRECTORY EXIST'; // geting success
@chmod($uploaddir, FILE_WRITE_MODE); // -> not working
chmod($uploaddir, 0777, true); // -> not working
}
}
这是我得到的错误:
ERROR - 11th July 2019 10:10:24 --> Severity: Warning --> chmod(): Can not call chmod() for a non-standard stream /home/u7658/web/mydomain.com/public_html/application/controllers/users.php 1578
ERROR - 11th July 2019 10:10:24 --> Severity: Warning --> chmod(): Operation not permitted /home/u7658/web/mydomain.com/public_html/application/controllers/users.php 1585
此外,chmod文件夹的所有权是根[0](正确) 另外,该文件夹是由CodeIgniter通过此代码创建的(即使mkdir应该创建具有777权限的目录,该目录也已创建但具有775权限。
$domainpath = "./uploads/domeny/".$ID."/";
// make folder
if (!file_exists($domainpath)) {
mkdir($domainpath, 0777, true);
}
我只是想念一些东西,谢谢您的帮助!
答案 0 :(得分:0)
尝试一下,在配置中使用BASEPATH
以获得绝对路径
$folderPath = '';//here you need to give absolute path i.e C:\wamp\www\project_folder/uploads/domeny/
mkdir("$folderPath");
chmod("$folderPath", 0777);
答案 1 :(得分:0)
原因是该特定目录尚未由mkdir创建,该目录(由于迁移)已由FTP上传。 因此,我不知道为什么,但是如果您通过FTP上传到我的服务器目录,则可能由于OWNER / GROUP烫发而不允许通过php chmod该目录。 但是我对该文件夹的权限是root ..所以仍然不确定为什么,但是现在可以了。