我想安装' pthreads' Ubuntu上的PHP扩展。我使用的是Ubuntu 12.04.1 LTS。我可以根据需要升级。我真的不想从源代码编译任何东西。例如,从源代码重新编译PHP听起来像是一个可怕的想法。
在我看来,最好的选择是使用aptitude
命令安装此扩展。例如aptitude install php5-mysql
。另一个好主意是使用pecl pecl install pthreads
。但由于以下错误,对我不起作用:
检查ZTS的检查... configure:错误:pthreads需要ZTS,请在启用ZTS的情况下重新编译PHP
让我解释为什么我不喜欢从源代码重新编译PHP的想法:
一些参考文献:
这篇文章似乎很旧而不实际。我会保留它仅供参考。我想它应该被理解为“3年前PHP不是线程安全的”#。
答案 0 :(得分:9)
ZTS:[Z]结束[T] hread [S] afety。
ZTS是一个编译时选项,无法在运行时启用。它允许PHP解释器(通常在单个线程中执行)以多个方式执行,每个解释器都有自己独立的解释器实例。
您的唯一选择似乎是全新构建,然后使用程序包构建工具进行分发。
我无法直接建议deb,但创建rpm非常简单,https://github.com/krakjoe/spex有一个起点,你可以使用alien将RPM转换为如果您无法直接找到如何创建deb包的话,请参阅deb。
从源代码构建将是不可避免的,除非你能找到一个带有线程安全的PHP构建的存储库,并具有完整的构建环境。为此,信息http://pthreads.org/building可能对您有用。构建PHP并不困难,也不需要花费很多时间,在现代硬件上,您可以在不到一分钟的时间内完成构建。您可以而且应该抓住机会减少装置中的脂肪。
在旁注中,您引用的关于PHP不是线程安全的文章来自2008年,这是非常错误的。核心是线程安全的,有一些本质上不安全的扩展(不是抽象严重,但从根本上说是不合适的)。
答案 1 :(得分:6)
看来,Ubuntu在官方存储库中没有针对线程安全的PHP的包。 Pthreads扩展需要ZTS。因此,您有两种选择:
我使用“checkintsall”实用程序自行编译和打包。因此,Apt将有能力跟踪PHP版本。我还要求Canonical提供ZTS PHP的软件包。