* add ./create-rpm.sh file to build a "frankenphp" rpm package * also build a deb package * renamed to build-packages * linter... * add depends * linter again? * linter number 3 * linter number 4 * set default locations for ini file, conf files and extensions * set unified path for modules that should be ok on all dists * add default content into "package" folder * make file executable * worker is in public folder * what on earth did I do x) * use same FRANKENPHP_VERSION and make sure to let pr's run the rpm generation too (version 0.0.0) to see issues * install ruby, fpm and rpm-build * move to after changing base urls because it would fail with packages not found * ruby 3 build needs gcc 10 * rpm-build is necessary too... * and I forgot to link the package folder * create directories if they don't exist * copy out all frankenphp* files? * lint fix * only copy frankenphp-* files * only copy frankenphp-* files * the .deb file is name frankenphp_1.5.0... - create output folder instead and upload all things inside that will simplify things when later adding xdebug.so and ffi.so * update the last two steps to use the gh-output directory * add post install script to set frankenphp able to bind to port 80 for non-root users * dnf over yum, I think the yum alias was removed in RH 9.5 * newlines * newlines * add text what missing libcap means * copy php.ini-production from php-src, linter, update ruby version * move Caddyfile to /etc/frankenphp/Caddyfile * linter * fix a copy and paste error * better describe fallback to 0.0.0 * linter * copy installation scripts from official caddy packages, change user to frankenphp too * bombombom * make files executable * tabs * linter * linter again * use empty directory for three different destinations instead of keeping three empty local directories * caddy says the file is incorrectly formatted without these spaces * remove wildcard matcher from root directive * Apply suggestions from code review commit suggested changes to preinstall/postinstall scripts Co-authored-by: Kévin Dunglas <kevin@dunglas.fr> * Update dev.Dockerfile Co-authored-by: Kévin Dunglas <kevin@dunglas.fr> * remove misleading comment * update documentation for paths * update documentation for paths some more * fix musl opcache-jit issue * markdown linter * the damn tab * Apply suggestions from code review Co-authored-by: Kévin Dunglas <kevin@dunglas.fr> * drop dev.Dockerfile php location from config.md * add php config note to CONTRIBUTING.md * dashes instead of asterisks in chinese docs * fix package building * create frankenphp user in case it doesn't exist for deb packages * create users if they don't exist, delete them again if they didn't exist * satisfy linter * create the user with the same commands as the postinst/preinstall scripts * Removes toolchain requirements. * trigger * Removes explicit calls to go get * trigger * setcap by default * simplify example project * bring page more in line with the caddy / apache / nginx default page * update to html 5 * oopsies * revert style to original * remove https:// (caddy uses http:// on RHEL, :80 on Debian) --------- Co-authored-by: Kévin Dunglas <kevin@dunglas.fr> Co-authored-by: Alliballibaba <alliballibaba@gmail.com>
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
Binaire autonome
Si vous préférez ne pas utiliser Docker, nous fournissons des binaires autonomes de FrankenPHP pour Linux et macOS contenant PHP 8.4 et la plupart des extensions PHP populaires.
Sous Windows, utilisez WSL pour exécuter FrankenPHP.
Téléchargez FrankenPHP ou copiez cette ligne dans votre terminal pour installer automatiquement la version appropriée à votre plateforme :
curl https://frankenphp.dev/install.sh | sh
mv frankenphp /usr/local/bin/
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
Warning
En production, préférez utiliser les images Docker, le paquet Brew ou compiler FrankenPHP à partir des sources. Le binaire autonome est fourni à des fins de développement et de test.
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
Pour servir le contenu du répertoire courant, exécutez :
frankenphp php-server
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
- 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

