在phpmanual的文档中说:
Zlib support in PHP is not enabled by default. You will need to
configure PHP –with-zlib[=DIR]
The Windows version of PHP has built-in support for this extension.
You do not need to load any additional extensions in order to use
these functions.
因此,正如它所说的,默认情况下,仅应在Windows版本的PHP中启用它.
但是我从存储库中在Linux机器上安装了PHP和Apache,然后我注意到它已经启用.使用这些命令:
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%的服务器支持的任何其他压缩功能.
解决方法:
文档的此部分似乎不正确.据我所知,默认情况下始终启用zlib扩展*.
尽管某些系统上可能未加载此扩展名,但这是极为罕见的.您无需为缺少它而添加解决方法-只需将其声明为要求并继续即可.
*:也就是说,至少要回溯到PHP 4.0.
标签:ubuntu,zlib,apache,linux,php
来源: https://codeday.me/bug/20191120/2044777.html