В документации phpmanual говорится:Поддерживается ли поддержка ZLIB в PHP по умолчанию или НЕ?
поддержка Zlib в PHP не включена по умолчанию. Вам нужно будет configure PHP --with-zlib [= DIR]
Версия для Windows PHP имеет встроенную поддержку этого расширения. Вам не нужно загружать дополнительные расширения, чтобы использовать эти функции.
Так как он говорит, что он должен быть включен по умолчанию только в версии 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% серверов.
Вы не можете гарантировать, что он будет там, нет, но это очень распространено. Если вам это нужно, у вас нет выбора в любом случае, да? – Brad
Он сводится к «включенному по умолчанию», это не то же самое, что «всегда встроенный». На практике это будет отсутствовать, если 'zlib.h' недоступен во время компиляции. – mario