2016-01-28 3 views
0

Я установил PHP 5.6.17 на сервер CentOS 6.4, используя руководство this. На этом сервере запущена установка Contao. Contao поставляется с этими директивами в своем умолчанию .htaccess:Разница между mod_ext_filter и mod_filter?

## 
# Gzip compression 
# @see https://github.com/h5bp/html5-boilerplate 
## 
<IfModule mod_deflate.c> 
    <IfModule mod_filter.c> 
    AddOutputFilterByType DEFLATE text/html text/plain text/css application/json 
    AddOutputFilterByType DEFLATE application/javascript 
    AddOutputFilterByType DEFLATE text/xml application/xml text/x-component 
    AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml application/atom+xml 
    AddOutputFilterByType DEFLATE image/x-icon image/svg+xml application/vnd.ms-fontobject application/x-font-ttf font/opentype 
    </IfModule> 
</IfModule> 

Это обеспечивает автоматическое сжатие Gzip. Однако на этом сервере я заметил, что расширение mod_filter не было включено по умолчанию, хотя оно должно быть частью пакета php56w-common (см. https://webtatic.com/packages/php56/). Я заметил, что есть расширение mod_ext_filter, хотя я изменил свои директивы соответственно (заменив mod_filter на mod_ext_filter), который, похоже, работает.

Я никогда не видел mod_ext_filter раньше, поэтому мне интересно, что точная разница между этими двумя модулями (и почему чаще (?) mod_filter модуль не был доступен в php56w-common пакета для CentOS).

ответ

1

«Я изменил свои директивы соответственно (заменив mod_filter на mod_ext_filter), который, похоже, работает». Я не могу себе представить, что это может означать, но два модуля используют совершенно разные директивы и служат различным целям. mod_ext_filter позволяет вам писать свои фильтры во внешнем скрипте по вашему выбору. mod_filter запускает фильтры, загруженные из скомпилированного модуля. Модуль конфигурации Контекстная смарт-фильтр

https://httpd.apache.org/docs/2.2/mod/mod_filter.html

Apache модуль mod_ext_filter

Описание::

Описание

Apache Module mod_filter Pass тело ответа через внешняя программа befo повторной доставки клиенту

https://httpd.apache.org/docs/2.2/mod/mod_ext_filter.html

Если - как я подозреваю - вы не используете либо модуль, поэтому загружать их на всех?

Редактировать: Вы имеете в виду модуль фильтрации PHP? Если это так, то это было встроено в PHP с навсегда. Запустите php -m | grep filter, чтобы увидеть его для себя.

+0

К сожалению, я добавил дополнительную информацию к исходному сообщению. Я вижу, поэтому 'mod_ext_filter' не совпадает с' mod_filter'. Как ни странно, даже если 'mod_filter' не загружен (согласно' phpinfo() 'и видя, что сжатие Gzip не включено из-за директивы' ', директивы' AddOutputFilterByType DEFLATE ... ' все еще работают. Как это может быть? – fritzmg

+0

Оказывается, на сервере возникла старая версия Apache, где 'mod_filter' интегрирован и, следовательно, недоступен в качестве модуля. Вот почему это сработало. – fritzmg

 Смежные вопросы

  • Нет связанных вопросов^_^