【问题标题】:how to install pthread in ubuntu 12.10如何在 ubuntu 12.10 中安装 pthread
【发布时间】:2013-08-03 13:09:13
【问题描述】:

我一直在为如何在我的 ubuntu 服务器中安装 pthread 以允许 php 线程而苦苦挣扎。 请帮帮我。

【问题讨论】:

标签: php ubuntu-12.04


【解决方案1】:

如何在 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

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

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

模块搭建流程如下(以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。

【讨论】:

  • 我之前遵循了本教程,但它在第二个命令'No release available for package "pecl.php.net/pthread" install failed'上给了我一个错误
  • 我有同样的问题...我注意到这与php.net/manual/en/pthreads.installation.php 的安装方式相同,但它不起作用!
  • Joe 的latest (excellent) work 旨在解决这种情况
  • 这个教程真的很有帮助,但是我按照所有的步骤操作并且没有收到任何错误,但是我还在运行我的旧版本的 PHP,我不知道如何激活新版本。激活新版本的 PHP 有什么需要我做的吗?
  • @KevinWeber 试试 php-zts
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-14
  • 2013-11-16
  • 1970-01-01
  • 2013-05-07
  • 1970-01-01
  • 2015-04-25
  • 1970-01-01
相关资源
最近更新 更多