이 PHP 스크립트가 있습니다.
$dir = FCPATH . 'uploads' . DIRECTORY_SEPARATOR . 'posts'; // is in CodeIngiter
if (!is_dir($dir)) {
mkdir($dir, 755);
}
게시물의 이미지를 저장하기 위한 폴더를 생성합니다. 그러나 다음 오류/경고가 표시됩니다.
Severity: Warning
Message: mkdir(): Permission denied
폴더를 만들 수 없습니다.
이 문제를 어떻게 해결할 수 있나요? 내 폴더 구조는 다음과 같습니다.
/opt/lampp/htdocs/www/my-site/public/ (uploads/posts) // all folders inside files will generate in php
추가 정보: 이 코드에 주석을 달고 posts폴더를 수동으로 생성한 다음 파일을 업로드하려고 하면 대상 경로에 쓸 수 없다는 오류가 발생합니다.
출력 ls -l /opt/lampp/htdocs/www/my-site/:
drwxrwxr-x 15 lykos lykos 4096 Sep 17 23:08 application
drwxrwxrwx 6 lykos lykos 4096 Sep 29 22:00 public
drwxrwxr-x 8 lykos lykos 4096 Sep 7 12:31 system
출력 ls -l /opt/lampp/htdocs/www/my-site/public:
drwxr-xr-x 4 lykos lykos 4096 Sep 18 21:48 css
drwxr-xr-x 2 lykos lykos 4096 Sep 27 19:18 img
-rwxrwxr-x 1 lykos lykos 9872 Sep 17 23:04 index.php
drwxr-xr-x 8 lykos lykos 4096 Sep 27 20:06 js
drwxr-xr-x 2 lykos lykos 4096 Sep 29 20:34 uploads
답변1
문제는 mkdir()Ubuntu가 아니라 귀하의 통화에 있습니다.
에 따라귀하의 의견가 ls -l /opt/lampp/htdocs/www/my-site/public/uploads존재하지 않으므로 매개변수 mkdir()전달을 호출해야 합니다 recursive.
$dir = '/uploads/posts';
if (!is_dir($dir)) {
mkdir($dir, 755, true);
}


