Apache не может писать в только что созданный каталог

У меня есть скрипты, позволяющие назначать файлы продуктам. Чтобы избежать проблем с повторением именных файлов, у каждого продукта есть определенный каталог.

Директа uplad, которая содержит все каталоги для конкретных продуктов, выглядит следующим образом.

4 drwxrwx — x 3 pepe pepe 4096 9 января 17:08.
20 drwxrwxr-x 35 pepe pepe 20480 9 января 15:42 ..
4 drwxrwxr-x 2 apache apache 4096 9 января 17:08 001

Apache запускается под пользователем «apache», а «apache» устанавливается как часть группы «pepe».

Если я пытаюсь загрузить файл в продукт, у которого нет его каталога, сценарии создают каталог (с разрешениями, указанными для dir «001»), а затем пытаются загрузить файл, но не удается.

Если я изменяю владельца каталога на pepe.pepe в SSH, а затем перезагружаю файл, он отлично работает.

Почему apache создает каталог, который не может быть записан в следующей строке кода?

Как мне избежать необходимости вручную менять владельца созданного каталога, потому что мой клиент, очевидно, не может сделать это при назначении файлов всем его продуктам.

2

Решение

Можете ли вы попробовать chgrp () в вашем PHP, чтобы изменить группу на «pepe»? Если это не работает, по крайней мере, ошибки дадут вам подсказку. Еще один из «безопасного режима»:

Когда безопасный режим включен, PHP проверяет, являются ли файлы или каталоги
у которого используется тот же UID (владелец), что и у сценария
выполняется

Я бы попробовал изменить (вручную) группу-владельца родительского каталога (ов) на «apache».

0

Другие решения

Вы должны изменить права доступа к только что созданному каталогу:

chmod('/path/to/directory', 0775);
0

По вопросам рекламы [email protected]