首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
拉钩
V2EX  ›  程序员

zlib 安装成功,也按照教程配置好了,为什么服务器上 info. PHP 还是显示没有 Zlib 支持

  •  
  •   kmdd33 · 243 天前 · 1956 次点击
    这是一个创建于 243 天前的主题,其中的信息可能已经有所发展或是发生改变。

    参考的教程:

    https://www.baidu.com/link?url=sgVbym9nTyFc8BWuYNJbA-lj7SMcTiPLtruNkhtxR3XGjZYtmB3xyK1J1PbUuNFLIeF9xgmWZ598vWfQWAoqKgPoPqNCVlkLMC_iENIZEhi&wd=&eqid=f145f8a100001c5c000000065ad39201

    https://www.cnblogs.com/aluode/archive/2012/12/21/2827570.html

    /etc/php/ini 中已经修改成:

    zlib.output_compression = On

    zlib.output_compression_level = 6

    请问:怎么出现这种情况?如何修正? 3q

    30 回复  |  直到 2018-04-16 12:09:33 +08:00
        1
    kmdd33   243 天前
    # whereis zlib
    zlib: /usr/include/zlib.h /usr/share/man/man3/zlib.3.gz
        2
    msg7086   243 天前   ♥ 1
    神啊,这又是谁瞎瘠薄写出来的瞎瘠薄教程啊
        3
    kmdd33   243 天前
    @msg7086 请问能否直接告诉我如何正确配置?
        4
    msg7086   243 天前   ♥ 1
    @kmdd33 我只能告诉你,正常情况下直接去软件源安装相关的软件包就结束了,不会涉及到下源码,编译,自己配置等等你提到的各种问题。还有像教程里说的把软件安装到 /data/progam/zlib 什么的,我真的是这辈子头一次见到。

    至于这个帖子,我也不知道你是在什么发行版下如何安装的 PHP 以及现在是什么配置情况。
    首先你装了 PHP 的 zlib 扩展了吗?
        5
    kmdd33   243 天前
    PHP 的 zlib 扩展?没理解这句话,
        6
    kmdd33   243 天前
    yum install zlib

    yum install zlib-devel
    2 个命令输入后,
    Package zlib-1.2.7-17.el7.x86_64 already installed and latest version
    Nothing to do
    Package zlib-devel-1.2.7-17.el7.x86_64 already installed and latest version
    Nothing to do

    @msg7086
        7
    msg7086   243 天前   ♥ 1
    CentOS 7 里的包已经默认编译进 zlib 了。

    https://centos.pkgs.org/7/centos-updates-x86_64/php-5.4.16-43.el7_4.1.x86_64.rpm.html

    Requires
    ...
    libz.so.1()(64bit)

    所以你装好 PHP 以后,zlib 就已经在工作了。

    你可以说说看为什么你认为没有 zlib 支持。
        8
    kmdd33   243 天前
    @http://104.131.43.152/info.php

    麻烦您看下我服务器的 php 安装信息,里面没有 mcrypt 和 zlib
        9
    kmdd33   243 天前
        10
    kmdd33   243 天前
    # php -v
    PHP Warning: PHP Startup: Unable to load dynamic library 'zlib.so' (tried: /usr/lib64/php/modules/zlib.so (/usr/lib64/php/modules/zlib.so: cannot open shared object file: No such file or directory), /usr/lib64/php/modules/zlib.so.so (/usr/lib64/php/modules/zlib.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
    PHP Warning: PHP Startup: Unable to load dynamic library 'php_zlib.dll' (tried: /usr/lib64/php/modules/php_zlib.dll (/usr/lib64/php/modules/php_zlib.dll: cannot open shared object file: No such file or directory), /usr/lib64/php/modules/php_zlib.dll.so (/usr/lib64/php/modules/php_zlib.dll.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
    PHP Warning: Module 'mcrypt' already loaded in Unknown on line 0
    PHP 7.2.4 (cli) (built: Mar 27 2018 17:23:35) ( NTS )
    Copyright (c) 1997-2018 The PHP Group
    Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.4, Copyright (c) 1999-2018, by Zend Technologies
        11
    msg7086   243 天前   ♥ 1
    ZLib Version 1.2.7
    我觉得还行?

    你 PHP 是用的系统自带的软件包安装的吗?
        12
    kmdd33   243 天前
    @msg7086

    php7 编译安装的, 从 http://104.131.43.152/info.php 这里可以看出当初执行的配置命令:

    './configure' '--prefix=/usr/local/php' '--enable-fastcgi' '--enable-fpm' '--enable-force-cgi-redirect' '--with-curl' '--with-gd' '--enable-mbstring' '--with-mysql' '--with-mysqli' '--enable-gd-native-ttf' '--enable-sockets' '--with-jpeg-dir' '--with-png-dir' '--with-freetype-dir'
        13
    msg7086   243 天前   ♥ 1
    你可以试着 --with-zlib 编译。

    我没用过 CentOS 7,前面去买了一台服务器,装上了,花了 10 分钟从软件源里安装了 PHP 7.1,成功激活 zlib。

    # yum install centos-release-scl

    # yum install rh-php71-php

    # /opt/rh/rh-php71/root/usr/bin/php -i | grep zlib

    Registered PHP Streams => https, ftps, compress.zlib, php, file, glob, data, http, ftp, compress.bzip2, phar, zip
    Registered Stream Filters => zlib.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, bzip2.*, convert.iconv.*
    zlib
    Stream Wrapper => compress.zlib://
    Stream Filter => zlib.inflate, zlib.deflate
    zlib.output_compression => Off => Off
    zlib.output_compression_level => -1 => -1
    zlib.output_handler => no value => no value

    我觉得这应该是最简单的方式了。
        14
    kmdd33   243 天前
    # yum install rh-php71-php
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    * base: mirror.atlanticmetro.net
    * epel: fedora-epel.mirrors.tds.net
    * extras: mirror.atlanticmetro.net
    * ius: ius.mirror.constant.com
    * remi-php70: mirror.team-cymru.org
    * remi-php71: mirror.team-cymru.org
    * remi-php72: mirror.team-cymru.org
    * remi-safe: mirror.team-cymru.org
    * updates: mirror.atlanticmetro.net
    * webtatic: us-east.repo.webtatic.com
    No package rh-php71-php available.
    Error: Nothing to do


    # /opt/rh/rh-php71/root/usr/bin/php -i | grep zlib
    关于这个命令,/opt/rh/这个是你指定的安装目录吗?怎么后面还有 /root/usr/bin/php ?
        15
    kmdd33   243 天前
        16
    msg7086   243 天前   ♥ 1
    @kmdd33 我用的官方推荐的 SCLo 仓库。我没有指定过任何目录,是 SCLo 打包者指定的。

    我是坚定不移地反对裸编译的。最少最少,用来生产的环境是必须要由包管理负责的。直接 make 然后 install,会把系统里的依赖搞得一团糟,很快系统运行环境就会变得无法控制了。

    我看你激活了 remi 仓库,那你可以去 remi 仓库的软件列表里找 PHP 来安装,何必要自己编译呢。我激活的是 centos-sclo-rh 和 centos-sclo-sclo,你可以根据自己的情况去寻找对应的方法。
        17
    kmdd33   243 天前
    @msg7086 我原来 yum 安装的 7.1,然后 infophp 里面没有 mcrypt 和 lib,所以才尝试编译安装,我也不想找麻烦去编译
        18
    msg7086   243 天前   ♥ 1
    @kmdd33 我又试过你用的 remi-php71 仓库了,是这样的:

    https://rpms.remirepo.net/wizard/

    # yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    # yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
    # yum install yum-utils
    # yum-config-manager --enable remi-php71
    # yum update
    # yum install php

    Installed:
    php.x86_64 0:7.1.16-1.el7.remi

    # php --modules
    [PHP Modules]
    (略)
    zlib

    [Zend Modules]
        19
    kmdd33   243 天前
    @msg7086


    # './configure' '--prefix=/usr/local/php' '--enable-fastcgi' '--enable-fpm' '--enable-force-cgi-redirect' '--with-curl' '--with-gd' '--enable-mbstring' '--with-mysql' '--with-mysqli' '--with-mcrypt' '--with-zlib' '--enable-gd-native-ttf' '--enable-sockets' '--with-jpeg-dir' '--with-png-dir' '--with-freetype-dir'

    # make clean
    # ls
    # make clean
    # make
    # make install
    # /etc/init.d/php-fpm restart
    # /etc/init.d/php-fpm enable
    我用的这些命令,现在成功安装了 mcrypt,Zlib 支持和 FreeType 支持,谢谢你一晚上的耐心解答,非常感谢
        20
    chinvo   243 天前
    强烈建议从官方 /知名第三方软件源安装二进制包

    除非有极其特殊的需求,不建议编译安装
        21
    artoostark   243 天前
    神啊,放个直链上来啊。
        22
    wulasite   243 天前 via Android
    连情人怎么这么喜欢编译安装,又不是没有 yum 源,如果实在不行,去 php 官网找源码包大集合,然后找 ext 下对应的文件 找教程编译出一个.so 来再 extension=不就好了,比如之前试过一个 pdo_oci。源码版本要对,否则导入会报错,windows 就别想了,dll 的版本对报错。
        23
    kaneg   243 天前 via iPhone
    搞不懂现在很多新手学新东西都喜欢从最难的方式开始。放着包管理工具一行命令就可以搞定的方式不用,偏要自己从源码编译。其次,有 ubuntu 这种对新手容易上手的系统不用,偏要用自己无法驾驭的 centos
        24
    Bardon   243 天前
    @kaneg 因为很多博客教程,各种一键安装包,都是编译...

    楼上很多都说了,开一个第三方仓库,直接包管理安装,特别是新手。

    不过,新手,接错 docker 貌似也不错,现成的容器。
        25
    wvc   243 天前
    编译 PHP 时,加上--with-zlib=Zlib 安装路径试试。
        26
    xinl   243 天前   ♥ 1
    楼上的就是因为年轻人才喜欢瞎折腾这无可厚非,就事论事给出解决建议不好非要批判一番
    我之前装 php 基本就是编译的,装的话找到你那个版本的 php 源码然后解压,接着进入源码解压目录下的 ext 文件夹,进入 zlib,然后按照源码编译安装的方法,
    phpize
    ./configure 命令后面配置上 php-config 文件,
    make && make install
    接着 php.ini 中要开启 zlib 扩展,extension 里面加上 zlib.so,然后重启 httpd 就行了。。。
        27
    AstroProfundis   243 天前
    没事不要自己编译...要编译就学学包管理自己打包...
    我还记得几年前测试的编译安装比包管理安装的性能差了一大截,帖子应该就在 V2EX 上,就更没理由自己瞎写几个基础参数就编译了...
        28
    geeklian   243 天前 via Android
    年轻人真是喜欢瞎折腾...

    我们这银行都是直接 yum 安装离线包。

    自己编译安全补丁没人替你做好,稳定性没保证,性能还不见的好,然后浪费时间.....
        29
    congeec   243 天前 via iPhone
    @msg7086 老哥真有耐心,社区就缺你这样的

    @kmdd33 大胸弟能看官方文档就不看博客。传统的安装方式要么事用包管理安装,要么是下载源码按官方的指南安装。不打扰不承认有些博客教程质量高,但是我发现绝大多数博客质量差,误导信新人。
    lnmp 一键安装包啥的也不要用,不懂原理及基本没发维护升级。

    一句话,跟着软件作者走
        30
    julyclyde   243 天前
    一键安装包:解决了其它社会制度不存在的问题
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2250 人在线   最高记录 4019   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 33ms · UTC 07:54 · PVG 15:54 · LAX 23:54 · JFK 02:54
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1