Linux 免重新编译php安装扩展(示范zip安装)

PHPExcel读取Excel表格的时候报ZipArchive library is not enabled错误. 缺少zip 模块. 在Linux下没有zip.so这个模块文件(有也不会起作用的),所以需要重新编译一下php的增加zip模块。

1)重新到原来编译php的目录

#cd php-5.3.6/ext/zip

先执行phpize

# /usr/local/php/bin/phpize

返回:Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626

2)运行了这个zip目录下会自动生成几个文件,其中包括configure

  1. #./configure  –enable-zip –with-php-config=/usr/local/php/bin/php-config 
  2. # make
  3. # make install

3)安装完成后修改一下php.ini

  1. # vim /usr/local/php/etc/php.ini

加入

  1. extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/zip.so   (路径可能不太一样,参考make install 返回路径)
  2. 然后同样在php.ini文件中,将 zlib.output_compression = Off 改为 zlib.output_compression = On .

之后重启/etc/init.d/httpd restart

Linux 免重新编译php安装扩展(示范zip安装)》有5个想法

  1. fredzeng

    我的nginx centos 后面的步骤不需要使用,就能生效了
    3)安装完成后修改一下php.ini
    # vim /usr/local/php/etc/php.ini
    加入

    extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/zip.so (路径可能不太一样,参考make install 返回路径)
    然后同样在php.ini文件中,将 zlib.output_compression = Off 改为 zlib.output_compression = On .

  2. fredzeng

    [root@monitor pdo_mysql]# phpize
    Configuring for:
    PHP Api Version: 20090626
    Zend Module Api No: 20090626
    Zend Extension Api No: 220090626
    config.m4:138: warning: AC_CACHE_VAL(pdo_inc_path, …): suspicious cache-id, must contain _cv_ to be cached
    ../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from…
    ../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from…
    aclocal.m4:2748: PHP_CHECK_PDO_INCLUDES is expanded from…
    config.m4:138: the top level
    config.m4:138: warning: AC_CACHE_VAL(pdo_inc_path, …): suspicious cache-id, must contain _cv_ to be cached
    ../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from…
    ../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from…
    aclocal.m4:2748: PHP_CHECK_PDO_INCLUDES is expanded from…
    config.m4:138: the top level

    解决方法:
    autoconf版本太高造成的,我的办法是安装autoconf 2.13
    redhat类系统运行如下命令
    yum install autoconf213.noarch
    export PHP_AUTOCONF=/usr/bin/autoconf-2.13
    export PHP_AUTOHEADER=/usr/bin/autoheader-2.13

    64位环境下
    configure: error: libjpeg.(a|so) not found.
    或者 configure: error: *.(a|so) not found.
    这些库已经安装了但还报错
    在configure 时加参数 –with-libdir=lib64

  3. fredzeng

    1、安装unixODBC软件包,如下:

    unixODBC-2.2.11-7.1.i386.rpm
    unixODBC-kde-2.2.11-7.1.i386.rpm
    unixODBC-devel-2.2.11-7.1.i386.rpm

    yum -y install unixODBC-*

    2、从官网上下载PDO_ODBC扩展包

    wget http://pecl.php.net/get/PDO_ODBC-1.0.1.tgz
    tar -zxvf PDO_ODBC-1.0.1.tgz
    /usr/local/webserver/php/bin/phpize
    ./configure –with-php-config=/usr/local/webserver/php/bin/php-config –with-pdo-odbc=unixODBC,/usr
    make
    make install

    在php.ini文件添加下面一行
    extension = “pdo_odbc.so”

    从 php.ini 检查 pdo_odbc 是否安装成功。

  4. fredzeng

    Linux下php安装Redis扩展 注意:目录的权限 chomd 777 -R

    1、安装redis
    下载:https://github.com/nicolasff/phpredis/archive/2.2.4.tar.gz
    上传phpredis-2.2.4.tar.gz到/usr/local/src目录
    cd /usr/local/src #进入软件包存放目录
    tar zxvf phpredis-2.2.4.tar.gz #解压
    cd phpredis-2.2.4 #进入安装目录
    /usr/local/php/bin/phpize #用phpize生成configure配置文件
    ./configure –with-php-config=/usr/local/php/bin/php-config #配置
    make #编译
    make install #安装
    安装完成之后,出现下面的安装路径
    /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/

    2、配置php支持
    vi /usr/local/php/etc/php.ini #编辑配置文件,在最后一行添加以下内容
    添加
    extension=”redis.so”
    :wq! #保存退出
    3 重启服务
    sudo service nginx restart
    sudo /etc/init.d/php-fpm restart

评论已关闭。