1

我一直在努力研究如何在我的 ubuntu 服务器中安装pthread以允许 php 线程。请帮我。

4

1 回答 1

4

如何在 LINUX 系统中安装:

以下说明将导致 PHP 的隔离安装,不会影响您当前的安装。

1) 将 PHP 源代码检出到系统上的新目录中

cd /usr/src
git clone https://github.com/php/php-src
cd php-src

1a) 可选择签出特定版本的 PHP

git checkout PHP-5.6

2) 将 pthreads 源下载到构建目录 (/ext)

cd ext
git clone https://github.com/krakjoe/pthreads
cd ../

3)配置新的隔离PHP安装

./buildconf --force
./configure --prefix=/opt/php-zts \
            --bindir=/opt/php-zts/bin \
            --with-config-file-dir=/opt/php-zts \
            --with-config-file-scan-dir=/opt/php-zts/modules.d/ \
            --enable-pthreads=shared \
            --with-curl=shared,/usr \
            --with-zlib \
            --with-libxml2 \
            --enable-simplexml \
            --with-mysql=mysqlnd \
            --with-pdo-mysql=mysqlnd \
            --enable-gd-native-ttf \
            --with-mysqli \
            --enable-shared \
            --enable-maintainer-zts \
            --enable-sockets \
            --with-curl=shared \
            --enable-mbstring
make -j8
make install
echo "extension=pthreads.so" > /opt/php-zts/modules.d/pthreads.ini

此处使用的配置命令将导致具有一组合理模块的相当标准的安装。如果构建过程失败,您应该能够通过安装开发包来解决错误,例如 curl 模块是否配置或构建失败

yum install curl-devel

或者您的系统的等效项应该可以解决错误,从而允许继续构建。

4) 将 /opt/php-zts/bin 中一些有用的东西符号链接到 /usr/local/bin

ln -s /opt/php-zts/bin/php /usr/local/bin/php-zts
ln -s /opt/php-zts/bin/phpize /usr/local/bin/phpize-zts
ln -s /opt/php-zts/bin/php-config /usr/local/bin/php-config-zts
ln -s /opt/php-zts/bin/php-cgi /usr/local/bin/php-cgi-zts
ln -s /opt/php-zts/bin/phpdbg /usr/local/bin/phpdbg-zts

此时,您已经安装了 PHP(您选择的分支或主分支的版本,如果没有),并且 pthreads 可用。

用于隔离安装的建筑模块:

构建模块的过程如下(以APCu为例):

cd /usr/src
git clone https://github.com/krakjoe/acpu
cd apcu
phpize-zts
./configure --with-php-config=php-config-zts
make -j8
make install
echo "extension=apcu.so" > /opt/php-zts/modules.d/apcu.ini

在构建模块时,您必须确保传递正确的 php-config 路径,因为默认情况下会检测到您的系统安装 PHP。

所有块引用的命令都适用于 copypasta。

于 2013-08-03T13:36:57.133 回答