2015-03-30 73 views
3

在phpmanual的文档中,它表示:默认情况下是否启用PHP支持ZLIB或NOT?

默认情况下,PHP中的Zlib支持未启用。您将需要 配置PHP --with-zlib [= DIR]

PHP的Windows版本内置了对此扩展的支持。 您不需要加载任何附加扩展名就可以使用这些功能 。

因此,它表示应该只在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();,它总是说,这是启用:

enter image description here

还有,我也从这个库检查几个功能:

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%的服务器支持的任何其他压缩功能。

+0

你不能保证它会在那里,不,但是这很常见。如果你需要它,反正你没有选择,是吗? – Brad 2015-03-30 23:20:19

+0

归结为“默认启用”不同于“始终内置”。实际上,如果在编译时'zlib.h'不可用,它只会不存在。 – mario 2015-03-30 23:27:07

回答

3

本节文档看起来不正确。据我所知,zlib扩展总是默认启用。

尽管可能在某些系统上未加载此扩展,但这种情况非常罕见。您不需要为其缺席添加解决方法 - 只需将其作为要求说明并继续即可。

*:也就是说,回到至少 PHP 4.0。

0

刚刚面对一个情景,几天前我产生了你所说的反向问题。我正在使用的aws linux ami有一个没有配置zlib的php安装,因此我没有得到zlib软件包。

我必须重新安装,我想即--with-zlib的包中的PHP [= DIR](不推荐,但被官方方法我要保持)

所以这并不总是可用默认。 希望有所帮助。

相关问题