6.8 KiB
FrankenPHP: PHPのためのモダンなアプリケーションサーバー
FrankenPHPは、Caddy Webサーバーをベースに構築された、PHPのためのモダンなアプリケーションサーバーです。
FrankenPHPは、Early Hints、ワーカーモード、リアルタイム機能、自動HTTPS、HTTP/2、HTTP/3などの驚異的な機能により、あなたのPHPアプリに強力な力を与えます。
FrankenPHPはあらゆるPHPアプリと連携し、ワーカーモードの公式統合によってLaravelやSymfonyプロジェクトをこれまで以上に高速化します。
また、FrankenPHPはスタンドアロンのGoライブラリとしても利用可能で、net/httpを使って任意のアプリにPHPを埋め込むことができます。
詳しくは frankenphp.devと、このスライド資料もご参照ください:
はじめに
Windowsをお使いの場合は、WSLを使用してFrankenPHPを実行してください。
インストールスクリプト
以下のコマンドをターミナルに貼り付けると、環境に合ったバージョンが自動的にインストールされます:
curl https://frankenphp.dev/install.sh | sh
スタンドアロンバイナリ
LinuxとmacOS向けに、開発用途の静的FrankenPHPバイナリを提供しています。 PHP 8.4と主要なPHP拡張が含まれます。
拡張のインストール: よく使われる拡張は同梱されています。追加の拡張をインストールすることはできません。
rpm パッケージ
メンテナーが dnf を使用するすべてのシステム向けに rpm パッケージを提供しています。インストール方法:
sudo dnf install https://rpm.henderkes.com/static-php-1-0.noarch.rpm
sudo dnf module enable php-zts:static-8.4 # 8.2-8.5 利用可能
sudo dnf install frankenphp
拡張のインストール: sudo dnf install php-zts-<extension>
デフォルトで提供されていない拡張については PIE を使用してください:
sudo dnf install pie-zts
sudo pie-zts install asgrim/example-pie-extension
deb パッケージ
メンテナーが apt を使用するすべてのシステム向けに deb パッケージを提供しています。インストール方法:
sudo curl -fsSL https://key.henderkes.com/static-php.gpg -o /usr/share/keyrings/static-php.gpg && \
echo "deb [signed-by=/usr/share/keyrings/static-php.gpg] https://deb.henderkes.com/ stable main" | sudo tee /etc/apt/sources.list.d/static-php.list && \
sudo apt update
sudo apt install frankenphp
拡張のインストール: sudo apt install php-zts-<extension>
デフォルトで提供されていない拡張については PIE を使用してください:
sudo apt install pie-zts
sudo pie-zts install asgrim/example-pie-extension
Docker
また、Dockerイメージも利用可能です:
docker run -v .:/app/public \
-p 80:80 -p 443:443 -p 443:443/udp \
dunglas/frankenphp
ブラウザでhttps://localhostにアクセスして、FrankenPHPをお楽しみください!
Tip
https://127.0.0.1ではなく、https://localhostを使用して、自己署名証明書を受け入れてください。 使用するドメインを変更したい場合は、SERVER_NAME環境変数を設定してください。
Homebrew
FrankenPHPはmacOSおよびLinux向けにHomebrewパッケージとしても利用可能です。
インストール方法:
brew install dunglas/frankenphp/frankenphp
拡張のインストール: PIE を使用してください。
使い方
現在のディレクトリのコンテンツを配信するには、以下を実行してください:
frankenphp php-server
コマンドラインスクリプトも実行できます:
frankenphp php-cli /path/to/your/script.php
deb / rpm パッケージの場合は、systemd サービスを起動することもできます:
sudo systemctl start frankenphp
ドキュメント
- クラシックモード
- ワーカーモード
- Early Hintsサポート(103 HTTPステータスコード)
- リアルタイム
- 大きな静的ファイルの効率的な提供
- 設定
- Dockerイメージ
- 本番環境でのデプロイ
- パフォーマンス最適化
- スタンドアロン、自己実行可能なPHPアプリの作成
- 静的バイナリの作成
- ソースからのコンパイル
- FrankenPHPの監視
- Laravel統合
- 既知の問題
- デモアプリ(Symfony)とベンチマーク
- Goライブラリドキュメント
- コントリビューションとデバッグ

