В документации phpmanual говорится:
Поддержка Zlib в PHP не включена по умолчанию. Вам нужно будет настроить PHP -with-zlib [= DIR]
- Bandwith Speed Boost Советы для серверов PHP5: выход и сжатие Zlib
- Как читать один файл внутри zip-архива
- Открытая ошибка zipArchive в PHP
- Промывка документа HTML на ранней стадии - с помощью ini_set ('zlib.output_compression', 'ON')?
- Как использовать PHP stream_select () с фильтром zlib?
Версия PHP для Windows имеет встроенную поддержку этого расширения. Вам не нужно загружать дополнительные расширения, чтобы использовать эти функции.
Так как он говорит, что он должен быть включен по умолчанию только в версии PHP для Windows.
Но я устанавливаю PHP и Apache на моем Linux-машине из репозитория, а затем я заметил, что он уже включен. Используются следующие команды:
sudo apt-get install apache2 sudo apt-get install php5 php-pear
Означает ли это, что это также включено по умолчанию, если вы устанавливаете PHP из репозитория?
Также я попытался установить PHP из исходного кода без добавления конфигурации --with-zlib[=DIR]
, просто чтобы проверить, будет ли поддерживаться zlib
или нет. Согласно документации на phpmanual это не должно.
Я не разбираюсь в компиляции, поэтому я нашел учебное пособие по установке php из исходного кода, и я сделал следующие шаги:
apt-get install libxml2-dev apt-get install build-essential wget http://in1.php.net/distributions/php-5.3.28.tar.bz tar -xvjf php-5.3.28.tar.bz cd php-5.3.28 ./configure --prefix /usr/local/php5 ------ I configure it without --with-zlib[=DIR] --------- make make test make install
и, как последняя, я запускаю эту строку, чтобы она работала с apache:
apt-get install libapache2-mod-php5
И после установки PHP таким образом поддержка по ZLIB снова была включена по умолчанию.
Если вы спрашиваете себя, как я проверяю, включено ли это или нет, вот ответ.
Я проверяю его phpinfo();
и он всегда говорит, что он включен:
А также я проверял несколько функций из этой библиотеки:
if(function_exists('gzdeflate')) { echo 'ZLIB is supported'; } else { echo 'ZLIB is not supported'; } //the result is always 'ZLIB is supported' if(function_exists('gzencode')) { echo 'ZLIB is supported'; } else { echo 'ZLIB is not supported'; } //the result is always 'ZLIB is supported'
Я спрашиваю об этом, потому что у меня есть плагин wordpress. Так как плагин будет установлен на разных серверах. Теперь я хочу начать с использования функций gzinflate()
и gzdeflate()
для одной новой функции. Поэтому я провел исследования и некоторые тесты и был смущен, потому что документация говорит, что он не поддерживается по умолчанию, но когда я устанавливаю PHP на свой сервер, он всегда поддерживается по умолчанию.
Мне действительно нужно использовать эти функции, но я не хочу их использовать, если он не будет поддерживаться не менее чем на 99% серверов клиентов.
Так что документация неправильная или я чего-то не хватает. Если я что-то упустил, вы можете помочь мне с любыми альтернативными функциями сжатия, которые будут поддерживаться не менее чем на 99% серверов.