FrankenPHP : le serveur d'applications PHP moderne, écrit en Go
FrankenPHP est un serveur d'applications moderne pour PHP construit à partir du serveur web Caddy.
FrankenPHP donne des super-pouvoirs à vos applications PHP grâce à ses fonctionnalités à la pointe : Early Hints, mode worker, fonctionnalités en temps réel, HTTPS automatique, prise en charge de HTTP/2 et HTTP/3...
FrankenPHP fonctionne avec n'importe quelle application PHP et rend vos projets Laravel et Symfony plus rapides que jamais grâce à leurs intégrations officielles avec le mode worker.
FrankenPHP peut également être utilisé comme une bibliothèque Go autonome qui permet d'intégrer PHP dans n'importe quelle application en utilisant net/http.
Découvrez plus de détails sur ce serveur d’application dans le replay de cette conférence donnée au Forum PHP 2022 :
Pour Commencer
Sur Windows, utilisez WSL pour exécuter FrankenPHP.
Script d'installation
Vous pouvez copier cette ligne dans votre terminal pour installer automatiquement une version adaptée à votre plateforme :
curl https://frankenphp.dev/install.sh | sh
Binaire autonome
Nous fournissons des binaires statiques de FrankenPHP pour le développement, pour Linux et macOS, contenant PHP 8.4 et la plupart des extensions PHP populaires.
Installation d'extensions : Les extensions les plus courantes sont incluses. Il n'est pas possible d'en installer davantage.
Paquets rpm
Nos mainteneurs proposent des paquets rpm pour tous les systèmes utilisant dnf. Pour installer, exécutez :
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 disponibles
sudo dnf install frankenphp
Installation d'extensions : sudo dnf install php-zts-<extension>
Pour les extensions non disponibles par défaut, utilisez PIE :
sudo dnf install pie-zts
sudo pie-zts install asgrim/example-pie-extension
Paquets deb
Nos mainteneurs proposent des paquets deb pour tous les systèmes utilisant apt. Pour installer, exécutez :
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
Installation d'extensions : sudo apt install php-zts-<extension>
Pour les extensions non disponibles par défaut, utilisez PIE :
sudo apt install pie-zts
sudo pie-zts install asgrim/example-pie-extension
Docker
Des images Docker sont également disponibles :
docker run -v .:/app/public \
-p 80:80 -p 443:443 -p 443:443/udp \
dunglas/frankenphp
Rendez-vous sur https://localhost, c'est parti !
Tip
Ne tentez pas d'utiliser
https://127.0.0.1. Utilisezhttps://localhostet acceptez le certificat auto-signé. Utilisez la variable d'environnementSERVER_NAMEpour changer le domaine à utiliser.
Homebrew
FrankenPHP est également disponible sous forme de paquet Homebrew pour macOS et Linux.
Pour l'installer :
brew install dunglas/frankenphp/frankenphp
Installation d'extensions : Utilisez PIE.
Utilisation
Pour servir le contenu du répertoire courant, exécutez :
frankenphp php-server
Vous pouvez également exécuter des scripts en ligne de commande avec :
frankenphp php-cli /path/to/your/script.php
Pour les paquets deb et rpm, vous pouvez aussi démarrer le service systemd :
sudo systemctl start frankenphp
Documentation
- Le mode classique
- Le mode worker
- Le support des Early Hints (code de statut HTTP 103)
- Temps réel
- Servir efficacement les fichiers statiques volumineux
- Configuration
- Écrire des extensions PHP en Go
- Images Docker
- Déploiement en production
- Optimisation des performances
- Créer des applications PHP standalone, auto-exécutables
- Créer un build statique
- Compiler depuis les sources
- Surveillance de FrankenPHP
- Intégration Laravel
- Problèmes connus
- Application de démo (Symfony) et benchmarks
- Documentation de la bibliothèque Go
- Contribuer et débugger

