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

この時点で、使用可能な pthreads を備えた 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 では、ブロック引用符で囲まれたすべてのコマンドを使用できます。

于 2013-08-03T13:36:57.133 に答える