【问题标题】:Codeigniter not CHMOD 777 directoryCodeigniter 不是 CHMOD 777 目录
【发布时间】:2019-07-11 07:41:48
【问题描述】:

我找不到为什么我的 Codeigniter 没有从控制器到 777 的 CHMOD 特定目录,所以寻找一些关于如何解决这个问题的建议。

我正在运行 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 通过此代码创建(目录已创建但具有 775 权限,即使 mkdir 应创建具有 777 权限的目录。

$domainpath = "./uploads/domeny/".$ID."/";

// make folder
    if (!file_exists($domainpath)) {
    mkdir($domainpath, 0777, true);
}

我只是错过了一些东西,谢谢你的帮助!

【问题讨论】:

    标签: codeigniter chmod


    【解决方案1】:

    试试这个,使用BASEPATHfrom config 来获得绝对路径

    $folderPath = '';//here you need to give absolute path i.e C:\wamp\www\project_folder/uploads/domeny/
    mkdir("$folderPath");
    chmod("$folderPath", 0777);
    

    【讨论】:

      【解决方案2】:

      原因是这个特定的目录没有被 mkdir 创建,那个目录(由于迁移)已经被 FTP 上传了。 所以,我不知道为什么,但如果你通过 FTP 上传到我的服务器目录,那么你不能通过 php chmod 那个目录,可能是由于 OWNER/GROUP perm。 但是我对该文件夹的烫发是root ..所以仍然不知道为什么,但它现在可以工作了。

      【讨论】:

        猜你喜欢
        • 2012-09-09
        • 1970-01-01
        • 2014-10-11
        • 2012-05-26
        • 1970-01-01
        • 2012-06-07
        • 2016-06-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多