Codeigniter не каталог CHMOD 777 - PullRequest
0 голосов
/ 11 июля 2019

Я не могу найти, почему мой Codeigniter не является каталогом, специфичным для 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 является root [0] (это правильно) Кроме того, эта папка была создана CodeIgniter с помощью этого кода (каталог был создан, но с разрешением 775, даже когда mkdir должен создать каталог с разрешением 777.

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

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

Я просто что-то упустил, спасибо за помощь!

Ответы [ 2 ]

0 голосов
/ 17 июля 2019

Причина в том, что этот конкретный каталог не был создан mkdir, этот каталог (из-за миграции) был загружен по FTP.Итак, я не знаю почему, но если вы загружаете в мой каталог сервера по FTP, то вам не разрешено chmod этот каталог по php, вероятно, из-за разрешения OWNER / GROUP.Но моя папка для этой папки была root ... так что до сих пор не знаю, почему, но сейчас она работает.

0 голосов
/ 11 июля 2019

Попробуйте, используйте BASEPATH из конфигурации для достижения абсолютного пути

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