如何在ubuntu 12.10中安装pthread

时间:2013-08-03 13:09:14

标签: php ubuntu-12.04

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

1 个答案:

答案 0 :(得分: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

此处使用的configure命令将导致相当标准的安装,并带有一组合理的模块。如果构建过程失败,您应该能够通过安装开发包来解决错误,例如,如果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的系统安装。

所有blockquoted命令都适用于copypasta。