Разрешения Apache и PHP

У меня есть сервер, использующий сервер ubuntu, с apache2 и php.

Я хочу создать каталог с файлом php, который виден в Интернете, и внутри него каталог, который является частным, и никто (apache) не имеет к нему доступа, кроме этого файла php.

как я могу это сделать?

0
задан 24 November 2017 в 12:55
1 ответ

Если вы можете организовать выполнение PHP от имени другого пользователя из простого Apache, это будет легко: вы устанавливаете личный каталог как принадлежащий пользователю PHP и разрешениям 700.

В качестве альтернативы, если интерпретатор PHP должен запускаться от имени того же пользователя, что и сервер Apache (как обычно), вы можно использовать директивы конфигурации Apache (в файле .htaccess или иначе), чтобы указать, что Apache никогда не должен обслуживать что-либо из этого каталога. Вот как это сделать в «основных» файлах конфигурации Apache:

<Directory "/your/private/directory">
    Require all denied
</Directory>

В файле .htaccess просто используйте отдельную строку Require :

Require all denied

Это будет автоматически применить к каталогу, в котором находится файл .htaccess .

Интерпретатор PHP может получить доступ к файловой системе, минуя Apache, и поэтому он сможет получить доступ к закрытому каталогу. Затем вы просто устанавливаете личный каталог как принадлежащий пользователю службы Apache и с разрешениями 700.

0
ответ дан 5 December 2019 в 07:07

Теги

Похожие вопросы