如何在redhat 6.5上为多线程设置php


How to setup php for multithreading on redhat 6.5

我已经用C++和Java进行了多线程编码。我想使用PHP CLI,但还没有找到一种简单的方法来设置服务器以允许多线程。如果可能的话,我希望能够使用工作线程,但需要设置我们的服务器。它是Redhat 6.5。

提前谢谢。

先决条件

要使用pthreads,PHP必须在启用线程安全的情况下构建。

请注意,PHP确实有一个线程模型,它是在考虑线程体系结构的情况下构建的。

然而,它通常不是PHP的默认构建模式,包维护人员倾向于迎合大众,大众不关心线程安全。

配置

如果您当前安装了PHP,并将其与apache prefork mpm或其他非线程安全设置一起使用,那么请保持该安装不变。最好的做法是构建一个独立的PHP安装,以便在控制台上使用。

以下示例会话说明了如何在/opt 中隔离安装

git clone https://github.com/php/php-src
cd php-src
git checkout PHP-5.6
./buildconf
./configure --prefix=/opt --with-config-file-path=/opt --with-config-file-scan-dir=/opt/etc.d --enable-maintainer-zts
make
sudo make install

安装pthreads

有了PHP的线程安全构建,安装pthreads就很容易了。下面的示例会话说明了如何安装最新的pthreads源

git clone https://github.com/krakjoe/pthreads
cd pthreads
phpize
./configure
make
sudo make install

运行与pthreads一起分发的测试套件是确保一切正常的好方法:

make test

要始终加载pthreads:

echo extension=pthreads.so > /opt/etc.d/pthreads.ini