【发布时间】:2013-04-03 08:55:49
【问题描述】:
我想在 Ubuntu 上安装“pthreads”PHP 扩展。我正在使用 Ubuntu 12.04.1 LTS。如果需要,我可以升级。我真的不想从源代码编译任何东西。例如,从源代码重新编译 PHP 听起来对我来说是一个可怕的想法。
在我看来,最好的选择是使用aptitude 命令安装这个扩展。例如aptitude install php5-mysql。另一个好主意是使用 pecl pecl install pthreads。但是由于以下错误,这对我不起作用:
检查 ZTS... 配置:错误:pthreads 需要 ZTS,请在启用 ZTS 的情况下重新编译 PHP
让我解释一下为什么我不喜欢从源代码重新编译 PHP 的想法:
- 我想我应该卸载原来的 PHP 包和所有依赖项。因为如果我通过标准 PHP 编译它,那么任何包更新都会覆盖我的更改。是的,另一种选择是阻止 PHP 更新。无论如何,这会引入一些额外的工作并使设置更加复杂。我们在分布式团队中工作。而且我不希望其他人在生产服务器上处理这种复杂的设置。
- 我想在服务器上安装更新。而且我不想因为安全修复等原因重新编译 PHP。
- 我不想在生产服务器上编译任何东西并多次这样做。然后我应该构建自己的包并用新版本等更新它们。抱歉,我不够聪明,无法做到这一点。可能会在 2-3 年内,但不是现在。因为这里有很多事情要记住。例如,如何用自定义包替换标准 PHP 包,同时仍然满足所有依赖项。
一些参考资料:
- Dynamically Configure PHP for Thread Safety --enable-maintainer-zts, or use YUM to install pThreads?
- How to use Pthreads PHP extension (in Ubuntu) - 有人谈论我将在这里做什么。
- Building pthreads
这篇文章似乎是旧的而不是实际的。我会保留它仅供参考。而且我想它应该被理解为“3 年前 PHP 不是线程安全的”。
【问题讨论】:
-
我猜你必须编译它。我在网上找到的所有资源都说你必须这样做。顺便说一句,这并不难。
-
同意@BartFriederichs,如果你设法做到了,请告诉它如何。
-
@BartFriederichs,感谢您的评论。我同意这并不难。问题是如何在多台生产服务器上安装它。完美地我应该创建我自己的包,把它放在我自己的发行版中,然后用我的发行版中的
aptitude将它安装在服务器上。但我不会为 MySQL 驱动程序这样做,因为这已经完成了。而且我想相信我不是唯一使用 pthreads 的人,也应该对 pthreads 进行相同的设置。 -
@confiq,谢谢。我没有失去希望。
-
如果您有多个服务器,您可以复制
.so文件。或者选择一个为你打包的发行版(不知道它们是否存在)。
标签: php ubuntu pthreads ubuntu-12.04