Как отключить произвольный код PHP 7 в каталоге?

Вопрос внизу.

Согласно официальному руководству по безопасности Mediawiki, я должен

<Directory "/Library/MediaWiki/web/images">
   # Ignore .htaccess files
   AllowOverride None

   # Serve HTML as plaintext, don't execute SHTML
   AddType text/plain .html .htm .shtml .phtml .php .php3 .php4 .php5 .php7

   # Don't run arbitrary PHP code.
   php_admin_flag engine off

   # If you've other scripting languages, disable them too.
</Directory>

Однако с Apache 2.4.29 и PHP 7.1.15 я получаю

Invalid command 'php_admin_flag', perhaps misspelled or defined by a module not included in the server configuration

Согласно этому посту решение

Вы не можете использовать php_admin_value/php_admin_flag с PHP, скомпилированным как CGI (suPHP), потому что эти параметры поддерживаются только тогда, когда PHP скомпилирован как модуль Apache. Не стесняйтесь использовать разделы php.ini для изменения настроек ( http://php.net/manual/en/ini.sections.php). В противном случае - просто переключитесь на mod_ruid2+mod_php, и вы сможете использовать php_admin_value в файлах конфигурации Apache.

Даже когда я установил

dnf -y install httpd php php-mysqlnd php-gd php-xml php-mbstring mod_ruid2

Я получаю ошибку, несмотря на mod_php а также mod_ruid2,

Вопрос

Может ли кто-нибудь перевести вышесказанное на то, что мне действительно нужно сделать в моем случае, на простом английском языке?

1 ответ

Для одного каталога:

          <Directory "/Library/MediaWiki/web/images">
        php_admin_value engine Off
    </Directory>

Для нескольких каталогов по одному пути:

          <DirectoryMatch ^/Library/MediaWiki/web/(images|other_folder|other_folder)>
        php_admin_value engine Off
    </DirectoryMatch>

Также есть <LocationMatch "path"> - здесь больше директив: http://httpd.apache.org/docs/current/mod/core.html#locationmatch

Другие вопросы по тегам