私は、ubuntuサーバーにpthreadをインストールしてPHPスレッドを許可する方法について何時間も苦労してきました。私を助けてください。
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
この時点で、使用可能な 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 では、ブロック引用符で囲まれたすべてのコマンドを使用できます。