如何安装在Ubuntu PHP扩展并行线程? [关闭](How to install PHP p

2019-08-19 05:16发布

我想Ubuntu上安装了“并行线程的PHP扩展。 我使用Ubuntu 12.04.1 LTS。 如果需要,我可以升级。 我真的不想从源代码编译任何东西。 例如重新编译PHP从源头听起来像一个可怕的想法给我。

在我看来,最好的办法是安装这个扩展与aptitude命令。 例如像aptitude install php5-mysql 。 另一个好主意是使用PECL pecl install pthreads 。 但对我来说,因为下面的错误不工作:

对于ZTS ...配置检查检查:错误:并行线程需要ZTS,请重新编译PHP的ZTS启用

让我来解释为什么我不喜欢这个主意,从源代码重新编译PHP:

  • 我想我应该卸载,然后原来的PHP包和所有的依赖。 因为如果我编译它在标准的PHP那么任何软件包更新将覆盖我的变化。 是的,另一种选择是让PHP的更新。 反正这引入了一些额外的工作,使安装更加复杂。 我们在分布式团队工作。 而且我不希望其他人来处理在生产服务器上这个复杂的设置。
  • 我想在服务器上安装更新。 我不想重新编译,因为安全补丁等的PHP
  • 我不想编译在生产服务器上任何事情,做了很多次。 然后,我要建立自己的包和新版本等更新对不起他们,但我不够聪明,做到这一点。 可能在2 - 3年,但不是现在。 因为有很多事情要记住这里。 例如如何,更换标准的PHP包定制包,同时仍然满足所有的依赖关系。

一些参考:

  • 动态配置PHP线程安全--enable-维护者-ZTS,或者使用YUM安装并行线程?
  • 如何使用Pthreads的PHP扩展(在Ubuntu) -什么,我要在这里做一些会谈。
  • 大厦并行线程

这篇文章似乎是旧的,而不是实际的。 我会保持它,仅供参考。 我想这应该读作“PHP不是线程安全3年前”。

  • 不要相信谎言:PHP是不是线程安全的但

Answer 1:

ZTS: [Z]end [T]hread [S]afety.

ZTS is a compile time option that cannot be enabled at runtime. It allows the PHP interpreter, which usually executes in a single thread, to be executed in many, each with their own isolated instance of the interpreter.

The only option for you appears to be a fresh build, and then using package building tools for your distribution.

I'm not able to advise on the creation of a deb directly, however, creating an rpm is quite trivial, https://github.com/krakjoe/spex there's a starting place for that, you can then use alien to turn an RPM into a deb if you are not able to find out how to create deb packages directly.

Building from source is going to be inescapable, unless you can find some repository with a thread safe build of PHP, with a complete build environment. To that end, the information http://pthreads.org/building may be of use to you. It really isn't that hard to build PHP, nor does it take many hours, on modern hardware you can have a build in less than a minute. You can and should take the opportunity to trim the fat from your installation.

On a side note, the article you reference about PHP not being thread safe is from 2008, it's very wrong. The core is thread safe, there are a few extensions that are inherently unsafe ( not abstracted badly, but fundamentally unsuitable ).



Answer 2:

看来,Ubuntu的没有一个包在官方仓库的线程安全的PHP。 并行线程扩展需要ZTS。 因此,你有两个选择:

  1. 自己编译:
  2. 找到一个.deb软件包的地方,其他Debian的系统的需要如仓库。

我编译和使用“checkintsall”应用程序包的它自己。 因此,APT会需要跟踪的PHP版本的能力。 我也会为一个包ZTS PHP要求规范。



文章来源: How to install PHP pthreads extension on Ubuntu? [closed]