参考的教程:
https://www.cnblogs.com/aluode/archive/2012/12/21/2827570.html
/etc/php/ini 中已经修改成:
zlib.output_compression = On
zlib.output_compression_level = 6
请问:怎么出现这种情况?如何修正? 3q
1
kmdd33 OP # whereis zlib
zlib: /usr/include/zlib.h /usr/share/man/man3/zlib.3.gz |
2
msg7086 2018-04-16 02:51:37 +08:00 1
神啊,这又是谁瞎瘠薄写出来的瞎瘠薄教程啊
|
4
msg7086 2018-04-16 03:59:51 +08:00 1
@kmdd33 我只能告诉你,正常情况下直接去软件源安装相关的软件包就结束了,不会涉及到下源码,编译,自己配置等等你提到的各种问题。还有像教程里说的把软件安装到 /data/progam/zlib 什么的,我真的是这辈子头一次见到。
至于这个帖子,我也不知道你是在什么发行版下如何安装的 PHP 以及现在是什么配置情况。 首先你装了 PHP 的 zlib 扩展了吗? |
5
kmdd33 OP PHP 的 zlib 扩展?没理解这句话,
|
6
kmdd33 OP 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 2018-04-16 04:28:04 +08:00 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 OP |
10
kmdd33 OP # 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 2018-04-16 05:11:48 +08:00 1
ZLib Version 1.2.7
我觉得还行? 你 PHP 是用的系统自带的软件包安装的吗? |
12
kmdd33 OP @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 2018-04-16 05:35:48 +08:00 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 OP # 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 ? |
16
msg7086 2018-04-16 05:53:25 +08:00 1
@kmdd33 我用的官方推荐的 SCLo 仓库。我没有指定过任何目录,是 SCLo 打包者指定的。
我是坚定不移地反对裸编译的。最少最少,用来生产的环境是必须要由包管理负责的。直接 make 然后 install,会把系统里的依赖搞得一团糟,很快系统运行环境就会变得无法控制了。 我看你激活了 remi 仓库,那你可以去 remi 仓库的软件列表里找 PHP 来安装,何必要自己编译呢。我激活的是 centos-sclo-rh 和 centos-sclo-sclo,你可以根据自己的情况去寻找对应的方法。 |
17
kmdd33 OP @msg7086 我原来 yum 安装的 7.1,然后 infophp 里面没有 mcrypt 和 lib,所以才尝试编译安装,我也不想找麻烦去编译
|
18
msg7086 2018-04-16 06:13:05 +08:00 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 OP @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 2018-04-16 07:06:56 +08:00
强烈建议从官方 /知名第三方软件源安装二进制包
除非有极其特殊的需求,不建议编译安装 |
21
artoostark 2018-04-16 08:05:17 +08:00
神啊,放个直链上来啊。
|
22
wulasite 2018-04-16 09:03:16 +08:00 via Android
连情人怎么这么喜欢编译安装,又不是没有 yum 源,如果实在不行,去 php 官网找源码包大集合,然后找 ext 下对应的文件 找教程编译出一个.so 来再 extension=不就好了,比如之前试过一个 pdo_oci。源码版本要对,否则导入会报错,windows 就别想了,dll 的版本对报错。
|
23
kaneg 2018-04-16 09:06:12 +08:00 via iPhone
搞不懂现在很多新手学新东西都喜欢从最难的方式开始。放着包管理工具一行命令就可以搞定的方式不用,偏要自己从源码编译。其次,有 ubuntu 这种对新手容易上手的系统不用,偏要用自己无法驾驭的 centos
|
24
Bardon 2018-04-16 09:17:35 +08:00
|
25
wvc 2018-04-16 09:19:27 +08:00
编译 PHP 时,加上--with-zlib=Zlib 安装路径试试。
|
26
xinl 2018-04-16 09:20:43 +08:00 1
楼上的就是因为年轻人才喜欢瞎折腾这无可厚非,就事论事给出解决建议不好非要批判一番
我之前装 php 基本就是编译的,装的话找到你那个版本的 php 源码然后解压,接着进入源码解压目录下的 ext 文件夹,进入 zlib,然后按照源码编译安装的方法, phpize ./configure 命令后面配置上 php-config 文件, make && make install 接着 php.ini 中要开启 zlib 扩展,extension 里面加上 zlib.so,然后重启 httpd 就行了。。。 |
27
AstroProfundis 2018-04-16 09:33:30 +08:00
没事不要自己编译...要编译就学学包管理自己打包...
我还记得几年前测试的编译安装比包管理安装的性能差了一大截,帖子应该就在 V2EX 上,就更没理由自己瞎写几个基础参数就编译了... |
28
geeklian 2018-04-16 09:43:36 +08:00 via Android
年轻人真是喜欢瞎折腾...
我们这银行都是直接 yum 安装离线包。 自己编译安全补丁没人替你做好,稳定性没保证,性能还不见的好,然后浪费时间..... |
29
congeec 2018-04-16 12:00:26 +08:00 via iPhone
|
30
julyclyde 2018-04-16 12:09:33 +08:00
一键安装包:解决了其它社会制度不存在的问题
|