在phpmanual的文档中写道:
但是我从存储库安装了PHP和Apache到我的Linux机器上,然后我发现它已经启用了。使用以下命令:
我询问这个问题是因为我有一个WordPress插件。作为插件,它将安装在许多不同的服务器上。 现在我想开始使用函数
我真的需要使用这些函数,但如果至少99%的客户服务器不支持它们,我就不想使用它们。
那么,文档是错误的还是我漏掉了什么?如果我漏掉了什么,你能帮我找到任何替代压缩函数吗?这些替代函数将在至少99%的服务器上得到支持。
因此,正如它所说的那样,它应该只在Windows版本的PHP中默认启用。PHP中的Zlib支持默认情况下未启用。您需要 配置PHP --with-zlib[=DIR]
Windows版本的PHP内置了对此扩展的支持。 您不需要加载任何其他扩展即可使用这些函数。
但是我从存储库安装了PHP和Apache到我的Linux机器上,然后我发现它已经启用了。使用以下命令:
sudo apt-get install apache2
sudo apt-get install php5 php-pear
如果您从存储库安装PHP,那么这是否意味着它也是默认启用的?
我尝试了不添加--with-zlib[=DIR]
配置的源代码安装PHP,只是为了检查是否支持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.h
时,它才会缺失。 - mario