我找不到为什么我的Codeigniter没有从控制器CHMOD特定的目录到777,所以寻找一些如何解决这个问题的建议。
我运行的是centos 7,PHP 7.2
我有一个控制器,它的位置是:public_html/application/ controller /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文件夹的所有权也是根目录,该文件夹是由CodeIgniter通过以下代码创建的(目录已经创建,但具有775权限,即使mkdir应该创建具有777权限的目录。
$domainpath = "./uploads/domeny/".$ID."/";
// make folder
if (!file_exists($domainpath)) {
mkdir($domainpath, 0777, true);
}我只是错过了一些东西,谢谢你的帮助!
发布于 2019-07-11 17:21:29
尝试一下,使用配置中的BASEPATH来实现绝对路径
$folderPath = '';//here you need to give absolute path i.e C:\wamp\www\project_folder/uploads/domeny/
mkdir("$folderPath");
chmod("$folderPath", 0777);发布于 2019-07-17 19:47:40
原因是这个特定的目录不是由mkdir创建的,该目录(由于迁移)已由FTP上传。所以,我不知道为什么,但是如果你通过FTP上传到我的服务器目录,那么你就不能用php修改那个目录,可能是因为所有者/组权限的原因。但是我对那个文件夹的perm是root..所以仍然不确定为什么,但它现在起作用了。
https://stackoverflow.com/questions/56984009
复制相似问题