【发布时间】:2013-08-03 13:09:13
【问题描述】:
我一直在为如何在我的 ubuntu 服务器中安装 pthread 以允许 php 线程而苦苦挣扎。 请帮帮我。
【问题讨论】:
标签: php ubuntu-12.04
我一直在为如何在我的 ubuntu 服务器中安装 pthread 以允许 php 线程而苦苦挣扎。 请帮帮我。
【问题讨论】:
标签: php ubuntu-12.04
以下说明将导致 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。
【讨论】: