要求処理サイクルをPHPスクリプトの本体に転送する試みは既に行われていますが 、生産性の大幅な向上を達成することは可能でした。 ただし、このためには多くのコードを作成する必要がありました。
ただし、先日、uWSGIの作成者は、WSGI / Rack for PHPに類似したインターフェースの実験的サポートを実装しました 。 uWSGIは、今日存在するほぼすべての言語とテクノロジーをサポートする非常に柔軟で機能的なアプリケーションサーバーであり、PHP-FPMの代替として簡単に使用できることを思い出してください。 したがって、常に少ないメモリでメモリにロードされるWebアプリケーションを作成することが可能になりました。
インターフェイスは「phpsgi」と呼ばれます。 このインターフェースのサポートを実装するプラグインはまだかなり気味が悪いですが、開発者はすでにそれを一般大衆に見せたいという願望を表明しています。
しかし、私は絶対にテスト/レポートとそれを試して喜んで人々を収集するようお願いします:)
uWSGIがすでに構成されているプラグインをインストールするのは非常に簡単です。
uwsgi --build-plugin https://github.com/unbit/uwsgi-phpsgi
このようなコマンドを実行すると、ファイル「phpsgi_plugin.so」が現在のディレクトリに表示されます。これは、他のサーバープラグイン(通常は/ usr / lib / uwsgi)と共にディレクトリに配置するのに十分です。 その後、vassal(仮想ノード)を構成するか、uWSGIインスタンスを手動で実行できます。 簡単にするために、2番目のオプションを検討してください。
uwsgi --plugin phpsgi --http-socket :9090
このようなコマンドを実行すると、uWSGIは「app.php」という名前のファイルにアクセスします。このファイルには、「application」関数が含まれている必要があります。 現時点では、プラグインは実験的であるため、これらの名前はコード内で厳密に定義されています。 このプラグインに「フィード」できるPHPコードの最も単純な例を考えてみましょう。
<?php echo 'Loading'; function application($env) { return ['200 OK', ['Content-Type' => 'text/plain'], 'Hello, world!']; }
この例では、文字列「Hello、world!」がブラウザに出力されますが、文字列「Loading」はuWSGI vassalログに1回表示されます。