Я хотел создать папку в «/ home / ec2-user / MyDir / test» на AWs, но там говорится, что разрешение отклонено, хотя я дал достаточно прав доступа к каталогу.
<?php
$brideOrderFolder = '/home/ec2-user/MyDir/test';
if (!@mkdir($brideOrderFolder)) {
$error = error_get_last();
echo $error['message']; //Error: mkdir(): Permission denied
}
exit;
?>
Вот мое разрешение папки.
[ec2-user@ip-xx-xxx-xxx-xxx MyDir]$ ls -ld
drwxrwxrwx 5 ec2-user ec2-user 4096 Aug 23 14:24 .
Не могу ли я создать каталог в каталоге «/ home / ec2-user» в AWS?
Чтобы внести какие-либо изменения в любую папку или файл в Linux, приложение или пользователь должны находиться в этой группе.
Используйте ls -l для папки ec2-user и посмотрите, какой пользователь / группа имеет разрешения на запись этой папки, и я уверен, что www-data не имеет разрешения на чтение этой папки. Ec2-пользователь имеет право на свою папку по умолчанию.
Вы можете создать новую группу и изменить группу владельцев для этой папки.
Поочередно я предложу
Шаг 1: создайте папку под www / ec2-user-temp /
И теперь php может просто создавать папки под этой папкой.
Шаг 2: запланируйте команду копирования в crontab для рекурсивного копирования папки в ec2-пользователя. Crontab может выполнять его через определенные вами промежутки времени.
Или вы можете создать символическую ссылку для автоматической репликации файлов папок, как только они будут созданы в папке www. Вы можете узнать команды здесь
https://blog.bartbania.com/raspberry_pi/create-symbolic-links-in-linux/
В целях безопасности избегайте любых php или серверных приложений, чтобы вносить изменения в папки или файлы вне вашей webroot или www-папки.
Надеюсь, это поможет.
Измените владельца родительского каталога на пользователя «apache».
$ sudo chown apache: apache / var / www / html / PATHTOYOURDIR /