ホームページ  >  に質問  >  本文

スレッドセーフ PHP と非スレッドセーフ PHP の選択: 正しい決定を下すには?

Windows 10 で Laravel 9.x アプリケーションを開発しています。現在の PHP バージョンは PHP 8.1.5 (cli) (ビルド: Apr 12 2022 17:38:57) (ZTS Visual C 2019 x64) です。これはスレッドセーフ バージョンですか、それとも非スレッドセーフ バージョンですか?どうやって知ることができたのでしょうか?非スレッドセーフ バージョンではなくスレッドセーフ バージョンを選択する必要があるのはどのような場合ですか?

StackOverflow でこの質問を調査しようとしましたが、私が見た質問と回答は 10 年以上前のもののようで、次のようなものでした。もし今この質問をしたら、おそらく別の答えが得られるのではないかと強く疑っています。答えは単純に、テクノロジーが長年にわたって変化したからです。これは合理的な仮定ですか? (少なくとも、私の現在のバージョンの PHP は、VC6 や VC9 ではなく、新しいコンパイラー VC 2019 を使用しているようです。)

実稼働環境がどのようになるかはまだわかりません。また、開発中のアプリケーションが実稼働環境に移行するかどうかさえもわかりません。これは、Laravel を (再) 学習するために作成しているアプリケーションにすぎないからです。おそらくこれを、Laravel アプリのデモとしていつか実稼働環境に入れることになるでしょうが、ホスティング サービス、Netlify、またはその他のサービスで提供されるかどうかは、まだわかりません。

背景を少し説明すると、この質問が浮かんだのは、Laravel ソース コードをステップ実行して問題をデバッグする方法を学ぼうとしていたためです。そのためには明らかに XDebug を XAMPP に追加する必要がありました。 XDebug をインストールするために見つけた手順では、ここが示されており、自分のバージョンの PHP 用の Windows バイナリをダウンロードするよう勧められていました。 8.1.5 用のバイナリはないため、8.1 用のバイナリの 1 つが機能するかどうか、あるいは 8.1 スレッド セーフと 8.1 非スレッド セーフのどちらを使用した方がよいのかわかりません。まず PHP を 8.2 にアップグレードした方がよいでしょうが、スレッドセーフと非スレッドセーフのどちらがより良い選択なのかはまだわかりません。

誰かこれらの質問を教えてもらえますか?

P粉350036783P粉350036783275日前519

全員に返信(1)返信します

  • P粉033429162

    P粉0334291622023-12-24 15:46:59

    これはスレッド セーフ バージョンですか、それとも非スレッド セーフ バージョンですか?どうやって知ることができたのでしょうか?

    古い phpinfo() 関数を使用して、Thread Safety 列を探すことができます。

    PATH 環境に PHP が設定されている場合は、クイック コマンド php -i | grep thread

    を使用して CLI 経由で PHP を取得することもできます。

    非スレッド セーフ バージョンではなくスレッド セーフ バージョンを選択する必要があるのはどのような場合ですか?

    PHP公式ドキュメントによると

    実稼働環境がどのようになるかまだわかりません...

    一般に、TS または NTS コードの実行に違いはありません。よりWebサーバー指向です。

    私の記憶が正しければ、XAMPP はデフォルトで Apache ハンドラーを使用するため、おそらくスレッドセーフなビルドだと思います。はい、PHP8.1 の Xdebug バイナリは正常に動作します。

    技術的には、NTS はスレッド セーフを考慮する必要がないため、若干高速になるはずです。

    個人的には、Web サーバーのいじりにもっと時間を費やしたくない場合を除き、これは重要ではないと思います。まだ開発段階にあるため、FastCGI または PHP-FPM に切り替えます。デフォルト設定のままにしておくほうが効率的だと思います。それを成し遂げることに集中するために。

    返事
    0
  • キャンセル返事