ホームページ  >  記事  >  バックエンド開発  >  LinuxにPHPスレッド拡張機能をインストールする方法

LinuxにPHPスレッド拡張機能をインストールする方法

藏色散人
藏色散人オリジナル
2021-10-26 10:29:452828ブラウズ

Linux に php スレッド拡張機能をインストールする方法: 1. lnmp インストール ディレクトリで lnmp.conf ファイルを見つけます; 2. "--enable-maintainer-zts" を "PHP_Modules_Options" に追加します; 3. pthreads をコンパイルします。 できる。

LinuxにPHPスレッド拡張機能をインストールする方法

この記事の動作環境: Ubuntu 16.04 システム、PHP7.1 バージョン、DELL G3 コンピューター

インストール方法Linux の php スレッド拡張機能?

Ubuntu PHP インストール pthreads 拡張機能:

pthreads は、マルチスレッドを使用する PHP 拡張機能です。ここではあまり紹介しませんが、すでに理解されていると思いますので、分からない場合はドキュメントを読んでください。

ドキュメントのアドレス: https://www.php.net/manual/zh/book.pthreads.php

ここでは、インストール プロセスについて説明します。いくつかの紆余曲折があり、私も色々な情報を参考にしましたが、 が正式にインストールされました。自分自身の記録として書き留めておくだけでなく、将来の友達に落とし穴を避けるための参考にしてもらうこともできます。

インストール環境

  • Ubuntu 16.04 LTS
  • Lnmp 1.4 - - 多くの人がこの
  • pthreadsソースコードを使用していると思います

ここで、この拡張機能は pecl install pthreads では正常にインストールできないことに注意してください。ソース コードをダウンロードし、自分でコンパイルしてインストールする必要があります。ダウンロードできるのは GitHub トランク ブランチからのみです。他のソースコードにも問題があるようで、最初に http://pecl.php.net からダウンロードしましたが、コンパイルは常に失敗しました。後で情報を確認したところ、問題があることがわかりました。 GitHub からダウンロードする必要があります。

GitHub: https://github.com/krakjoe/pthreads

PHP 環境の構成

デフォルトでは、全員がすでに lnmp 環境をインストールしています。正しく取り付けられていません。外に出たら左折してグーグルで検索してください。
pthreads では PHP がスレッドセーフな方法で実行される必要があるため、PHP をコンパイルするときに --enable-maintainer-zts を追加する必要があります。ただし、lnmp 統合パッケージはデフォルトでスレッドアンセーフです。

ここで、lnmp インストール ディレクトリに移動し、lnmp.conf ファイルを見つけます。

LinuxにPHPスレッド拡張機能をインストールする方法

私のスクリーンショットのように、PHP_Modules_Options に --enable-maintainer-zts を追加します。 。

PHP をコンパイルします

  1. 新しいインストール環境、lnmp プロセスを段階的に実行してください。インストールが完了すると、php はスレッドセーフになります。
  2. インストールされた lnmp 環境 ここでは、lnmp が提供するアップグレード スクリプトを使用して php をアップグレードできます (追記: スクリプトは現在のバージョン番号を検出しません。現在のバージョン番号を入力する場合は、 PHP を再インストール) 操作は完了です。
  3. ** PHP を手動でコンパイルします ** lnmp1.4-full/src ディレクトリに入ります (実際の状況に従って)。私のディレクトリは /home/src/lnmp1.4-full/src にあります。自分でダウンロードしていない場合は、PHP 圧縮パッケージがあります。
sudo wget http://cn2.php.net/distributions/php-7.0.20.tar.bz2
tar -jxvf php-7.0.20.tar.bz2

注: アドレスは、PHP 公式 Web サイトから自分で取得できます。ここで提供するものは現在利用可能です。 。

続行:

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-config-file-scan-dir=/usr/local/php/conf.d --enable-fpm --with-fpm-user=www --with-fpm-group=www --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir=/usr/local/freetype --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-intl --enable-pcntl --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --disable-fileinfo --enable-opcache --with-xsl --enable-maintainer-zts
make
sudo make install

このコードは lnmp1.4-full/include/php.sh から抽出されたものです。自分で調べることができます。
phpinfo() を開く;

LinuxにPHPスレッド拡張機能をインストールする方法

スレッド セーフが有効になっていることを確認します。

pthread をコンパイルします重要な瞬間が来ました

コンパイルしますpthreads ソース コード パッケージは、php ソース コードの ext ディレクトリに配置されます。私のディレクトリは次のとおりです: lnmp1.4-full\src\php-7.0.19\ext [状況に応じて調整してください]
pthreads を入力してくださいdirectory

phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
sudo make install

php-config パスは、状況に応じて調整されます。デフォルトの lnmp を使用している場合は、これがこれです。

ここで実行すると、pthreads.so が正常にコンパイルされたことを示すメッセージが表示されます。そうでない場合は、前の手順を確認してください。

php.ini の設定

一般的なオンライン チュートリアルでは、この時点に達すると、次のようになります: pthreads.so を php.ini ファイルに追加し、php-fpm を再起動するだけです。
ここは穴です。 php.ini を直接追加すると、php-fpm を開始できないことがわかり、pthreads.so をロードできないというメッセージが表示されます。

正しい姿勢:
php.ini をコピーして、php という名前を付けます。 -cli.ini
pthreads.so を php.cli.ini に入れます
次に、php -m | grep pthreads を実行して、それが表示されるかどうかを確認します。

これだけで完成です。

注: 運用環境では pthread を使用しないでください バグがある場合は、自分で試してコマンド ライン タスクを実行してください。最終的なインストールを通じて、CLI を介してのみ実行できることもわかりました。ハハハッハッハ。

最後に、Windows インストールの pthreads パッケージには、表示できるデモが多数含まれていることを思い出してください。

Windows 版のダウンロード アドレス: https://windows.php.net/downloads/pecl/releases/pthreads/

推奨学習: 「PHP ビデオ チュートリアル

以上がLinuxにPHPスレッド拡張機能をインストールする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。