モダンな PHP アプリサーバー FrankenPHP の紹介
FrankenPHPとは?
- FrankenPHPは、Go言語で書かれたモダンな PHP アプリサーバー。
- Caddy ウェブサーバーに公式の PHP ランタイムを内蔵し、HTTP/1.1、HTTP/2、HTTP/3 をサポート。
- 自動 HTTPS 証明書の生成および更新機能を提供(Let’s Encrypt または ZeroSSL を使用)。
主な機能
- 単一コマンドで本番運用レベルの PHP サーバーを実行可能。
- スタンドアロンバイナリを生成し、PHP ウェブアプリケーションやコマンドラインツールを依存関係なしで実行可能。
- 主要な PHP 拡張(OPcache、XDebug など)を標準でサポート。
パフォーマンス向上
- Worker モード: アプリケーションを一度起動するとメモリ上に保持される。
- 簡単な利用: Symfony、API Platform、Laravel などで標準サポート。
- 高速: API Platform アプリでは FPM より 3.5 倍高速。
- 効率性: Go の goroutine 機能を活用し、効率的なパフォーマンスを提供。
- シンプルなデプロイ: 単一バイナリで動作し、外部サービスは不要。
FrankenPHPの利点
- 簡単かつ高速な設定: PHP ファイルをドキュメントルートにコピーするだけでよい。
- 高性能: 最新のウェブサーバー技術と PHP ランタイムを組み合わせ、高い性能を提供。
- 柔軟性: Worker モードと互換性のないアプリもそのまま提供可能。
GN⁺の見解
- 興味深い点: FrankenPHP は最新のウェブサーバー技術を活用し、PHP アプリケーションのパフォーマンスを大幅に向上させられる。
- 導入時の考慮事項: 既存の PHP サーバー環境との互換性を事前に検討する必要がある。
- 批判的な視点: 新技術の導入に伴う学習コストと初期設定コストが発生する可能性がある。
- 推奨代替案: 類似機能を提供する RoadRunner や Swoole のような PHP サーバーも検討に値する。
- 技術選定のメリットとデメリット: パフォーマンス向上と簡単なデプロイは利点だが、新技術導入に伴うリスクや既存システムとの統合課題は慎重に検討すべき。
1件のコメント
Hacker Newsの意見
10年間PHP開発をしていなかったが、このランディングページを見てPHPに戻りたくなりかけた: デザイン、色使い、アニメーションが洗練されており、価値提案がうまく強調されている。小さなプロジェクトを始めるのに良い方法に見える。
長年C#開発者で、現在は主にPHP8を使用: PHP8は素早く作業を終えられる優れた言語だ。この方向性はLAMPよりも良い方向だ。
Tech Empowerベンチマークでの成績が気になる: 現在は「未完了」の状態で最下位になっている。
開発中によくPHP組み込みWebサーバーを使う: シングルスレッドで遅く、本番環境には向かない。FrankenPHPは有望に見えるが、限られたコア/スレッドの問題は依然として存在する。Dockerイメージは有望に見える。
FrankenPHPを試してみたが非常に遅い: ドキュメントが不足しており、性能も期待以下だ。FPMより3.5倍の性能をうたっているが、実際には1%の性能向上も出ていない。
FrankenPHPには性能上の問題がある: それでも非常に有望なプロジェクトだ。
関連リンク: FrankenPHP、Goで書かれたPHPアプリサーバーの紹介。
Dockerコンテナのビルド方法: Dockerコマンドを使って新しいDebianを必要なコンテナに変換する方法の説明。
FrankenPHPとApacheのMod-PHPでWordPressベンチマークを試行: FrankenPHPの優位性は確認できなかった。Dockerでテストしており、さらに深く掘り下げる必要がある。
このプロジェクトがHNのトップページに載ったのを楽しんだ: FPMと共有しないアーキテクチャが、PHPの成功と同時に限界ももたらしたという印象だ。