【问题标题】:Recompile PHP with ZTS enabled on Ubuntu在 Ubuntu 上启用 ZTS 重新编译 PHP
【发布时间】:2015-07-21 11:40:12
【问题描述】:

我正在尝试使用

安装 pthread
pecl install pthreads

但是我在安装过程中遇到了这个错误

configure: error: pthreads requires ZTS, please re-compile PHP with ZTS enabled

我已经搜索过这个错误。看来我必须安装启用 ZTS 的新版本 PHP。有没有更简单的方法来重新编译启用 ZTS 而不是重新安装 PHP?

【问题讨论】:

    标签: php pthreads pecl


    【解决方案1】:

    这是来自数字海洋社区comment 的引用答案:

    ZTS 支持是一个配置时间选项,不能在运行时启用 时间。您需要自己构建 php --enable-maintainer-zts 标志以启用它。

    一种方法是修改现有包并重新构建它。 首先我们需要安装和下载一些东西:

    安装构建依赖:

    sudo apt-get build-dep php5
    

    安装开发者工具:

    sudo apt-get install devscripts
    

    下载源代码:

    apt-get source php5
    

    现在进入源码目录,编辑 debian/rules 文件:

    cd php5-5.5.9+dfsg/    # The version will be different depending on the Ubuntu release
    nano debian/rules
    

    找到以 COMMON_CONFIG=--build=$(DEB_BUILD_GNU_TYPE) \ 并添加以下内容 配置标志:

            --enable-maintainer-zts \
            --enable-pthreads \
    

    然后我们想增加包的版本号,这样它就是 高于存储库中的 PHP 版本。运行dch -i 和 创建一个新的变更日志条目:

    php5 (5.5.9+dfsg-1ubuntu4.5+zts1) trusty; urgency=medium
    
      * Rebuild with ZTS support.
    
     -- You <doesnt@matter.com>  Mon, 10 Nov 2014 13:14:32 -0500
    

    现在可以使用以下命令构建包:

    DEB_BUILD_OPTIONS=nocheck debuild
    

    这将需要相当长的时间,并且还需要一些内存。如果 你在一个 512mb 的服务器上,你可能需要添加一些交换。

    会在父目录下产生若干个包:

    cd ..
    ls *deb
    

    您现在可以使用sudo dpkg -i pakage_name.deb 安装单个软件包或使用sudo dpkg -i *deb 安装所有软件包

    【讨论】:

    • 谢谢。这非常有帮助。对于将来阅读本文的任何人,此方法也适用于 php 7。只要确保你运行 sudo apt-get install build-deps php7.0
    • 它实际上没有,Native Coder。这是命令的出口:sudo apt-get build-dep php7.0 Lendo listas de pacotes... Pronto E: Impossível encontrar um pacote fonte para php7.0
    • @ViniciusDias 你的错误信息在英语中是什么意思?我也有重建 PHP 的问题。
    • 意思是Reading package lists... Done E: Impossible to find a source package for php7.0
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-26
    • 2015-07-12
    • 1970-01-01
    • 2021-07-18
    • 1970-01-01
    • 2017-11-29
    • 1970-01-01
    相关资源
    最近更新 更多