# FrankenPHP > FrankenPHP is a new app server for PHP apps (built on top of Caddy) and a library to embed the PHP interpreter in Go web servers. Reach for FrankenPHP to run PHP applications (Laravel, Symfony, WordPress, or any PHP app) with a single binary instead of PHP-FPM plus a web server, to keep an app booted in memory with worker mode, or to embed PHP in a Go program. Install it with `curl https://frankenphp.dev/install.sh | sh` (Linux and macOS), `irm https://frankenphp.dev/install.ps1 | iex` (Windows), or the `dunglas/frankenphp` Docker image, then serve a directory with `frankenphp php-server -r public/`. Configuration uses the Caddyfile (`php_server`, `frankenphp { worker … }`) or the `FRANKENPHP_CONFIG` environment variable. Append `.md` to any page URL for its Markdown source. ## Docs - [FrankenPHP: modern app server for PHP](https://frankenphp.dev/docs) ### Get started - [Using classic mode](https://frankenphp.dev/docs/classic): Run FrankenPHP in classic mode as a drop-in replacement for PHP-FPM or Apache mod_php, with a fixed or autoscaling thread pool serving PHP files directly. - [Using FrankenPHP workers](https://frankenphp.dev/docs/worker): Run FrankenPHP in worker mode to keep your PHP application bootstrapped between requests, cut bootstrap overhead, and serve responses in milliseconds. - [Migrating from Nginx/PHP-FPM](https://frankenphp.dev/docs/migrate): Step-by-step guide to migrate a PHP application from an Nginx plus PHP-FPM stack to FrankenPHP, covering Caddyfile, php.ini, threads, and Docker. - [Configuration](https://frankenphp.dev/docs/config): Configure FrankenPHP and Caddy via Caddyfile, JSON, or environment variables, including PHP runtime tuning, worker mode, file watching, and module options. ### Features - [Early Hints](https://frankenphp.dev/docs/early-hints): FrankenPHP natively supports the HTTP 103 Early Hints status code, letting PHP applications preload assets before the final response is ready. - [Real-time](https://frankenphp.dev/docs/mercure): FrankenPHP ships with a built-in Mercure hub for pushing real-time events to browsers over HTTP, as a simpler alternative to WebSockets. - [Hot reload](https://frankenphp.dev/docs/hot-reload): Use FrankenPHP hot reload to update PHP code, templates, and frontend assets in the browser without manual refresh, with optional DOM morphing via Idiomorph. - [Logging](https://frankenphp.dev/docs/logging): Emit structured logs from PHP with frankenphp_log() or error_log() in FrankenPHP, routed through Caddy's logging system as JSON for Datadog, Loki, or Elastic. - [Observability](https://frankenphp.dev/docs/observability): Monitor FrankenPHP in development and production using Prometheus metrics, structured logs, the Ember TUI dashboard, and custom Grafana scraping setups. - [Metrics](https://frankenphp.dev/docs/metrics): List of Prometheus-compatible metrics exposed by FrankenPHP via Caddy, covering PHP threads, workers, request times, queue depth, crashes, and restarts. - [Efficiently serving large static files (X-Sendfile/X-Accel-Redirect)](https://frankenphp.dev/docs/x-sendfile): Configure FrankenPHP to delegate large static file delivery to the web server after running PHP code, using X-Sendfile or X-Accel-Redirect headers. - [Writing PHP extensions in Go](https://frankenphp.dev/docs/extensions): Build PHP extensions in Go using FrankenPHP, with an extension generator for boilerplate, a types API for PHP/Go conversion, and support for goroutines. - [Extension workers](https://frankenphp.dev/docs/extension-workers): Use FrankenPHP Extension Workers to run a dedicated PHP thread pool from a Go extension for queues, schedulers, event listeners, and custom protocols. ### Deploy - [Building a custom Docker image](https://frankenphp.dev/docs/docker): Build custom FrankenPHP Docker images, install PHP extensions and Caddy modules, run as non-root, harden with distroless, and enable worker mode by default. - [Deploying in production](https://frankenphp.dev/docs/production): Deploy a PHP application to production with FrankenPHP and Docker Compose on a single Linux server, including TLS, reverse proxy, and multi-node setups, or natively on Windows. - [Performance](https://frankenphp.dev/docs/performance): Tune FrankenPHP for higher throughput and lower latency: thread count, worker mode, glibc vs musl, Go runtime, OPcache, and Caddyfile options. - [PHP apps as standalone binaries](https://frankenphp.dev/docs/embed): How to package a PHP application (including Symfony or Laravel) as a self-contained static binary with FrankenPHP, the PHP interpreter, PHP extensions and Caddy. - [Create a static build](https://frankenphp.dev/docs/static): Create static or mostly static FrankenPHP binaries with embedded PHP and Caddy on Linux and macOS, customize extensions, and load dynamic modules with glibc. - [Compile from sources](https://frankenphp.dev/docs/compile): Build FrankenPHP from source on Linux, macOS, FreeBSD and Windows, linking PHP as a shared library via xcaddy or go build, and add custom Caddy modules and extensions. - [Using GitHub Actions](https://frankenphp.dev/docs/github-actions): Use GitHub Actions to automatically build and publish FrankenPHP Docker images to a registry on pull requests, merges to main, and tagged releases. ### Integrations - [Laravel](https://frankenphp.dev/docs/laravel): How to run a Laravel application with FrankenPHP using the Docker image, a local install, Laravel Octane, or as an embedded standalone binary. - [Symfony](https://frankenphp.dev/docs/symfony): How to run a Symfony application with FrankenPHP using Symfony Docker, a local install, worker mode, hot reload, AssetMapper, and X-Sendfile. - [WordPress](https://frankenphp.dev/docs/wordpress): How to run WordPress with FrankenPHP, including a minimal install, a production Caddyfile, and enabling hot reload via Mercure. - [Yii 3](https://frankenphp.dev/docs/yii3): How to run a Yii 3 application with FrankenPHP using the Docker image, a local install, or worker mode with the yii-runner-frankenphp package. ### Reference - [Known issues](https://frankenphp.dev/docs/known-issues): Reference of FrankenPHP limitations, including unsupported PHP extensions, musl libc caveats, Docker TLS setup with 127.0.0.1, and Composer @php scripts. - [Use FrankenPHP as a Go library](https://frankenphp.dev/docs/library): Embed PHP in any Go program with the FrankenPHP library, serve PHP scripts through net/http, and scope workers to server instances. - [Security model](https://frankenphp.dev/docs/security): Where FrankenPHP's trust boundary lives: which inputs are untrusted, what the Go/C runtime is responsible for, and what falls to the PHP application or to upstream projects. - [Internals](https://frankenphp.dev/docs/internals): How FrankenPHP works inside: PHP ZTS thread pool, Go state machine, CGO boundary with the PHP SAPI, auto-scaling, and per-thread environment sandboxing. - [Contributing](https://frankenphp.dev/docs/contributing) ## Français ### Docs - [FrankenPHP : le serveur d'applications PHP moderne, écrit en Go](https://frankenphp.dev/fr/docs) #### Premiers pas - [Utilisation du mode classique](https://frankenphp.dev/fr/docs/classic) - [Utilisation des workers FrankenPHP](https://frankenphp.dev/fr/docs/worker): Démarrez votre application une fois et gardez-la en mémoire. FrankenPHP traitera les requêtes entrantes en quelques millisecondes. - [Configuration](https://frankenphp.dev/fr/docs/config) #### Fonctionnalités - [Early Hints](https://frankenphp.dev/fr/docs/early-hints) - [Temps réel](https://frankenphp.dev/fr/docs/mercure) - [Hot reload](https://frankenphp.dev/fr/docs/hot-reload) - [Métriques](https://frankenphp.dev/fr/docs/metrics) - [Servir efficacement les gros fichiers statiques (X-Sendfile/X-Accel-Redirect)](https://frankenphp.dev/fr/docs/x-sendfile): Habituellement, les fichiers statiques peuvent être servis directement par le serveur web, mais parfois, il est nécessaire d'exécuter du code PHP avant de les envoyer : contrôle d'accès, statistiques, en-têtes HTTP personnalisés... - [Écrire des extensions PHP en Go](https://frankenphp.dev/fr/docs/extensions) - [Workers d'extension](https://frankenphp.dev/fr/docs/extension-workers) #### Déploiement - [Création d'une image Docker personnalisée](https://frankenphp.dev/fr/docs/docker) - [Déploiement en production](https://frankenphp.dev/fr/docs/production): Dans ce tutoriel, nous apprendrons comment déployer une application PHP sur un serveur unique en utilisant Docker Compose. - [Performance](https://frankenphp.dev/fr/docs/performance): Par défaut, FrankenPHP essaie d'offrir un bon compromis entre performance et facilité d'utilisation. Cependant, il est possible d'améliorer considérablement les performances en utilisant une configuration appropriée. - [Applications PHP en tant que binaires autonomes](https://frankenphp.dev/fr/docs/embed): FrankenPHP a la capacité d'incorporer le code source et les assets des applications PHP dans un binaire statique et autonome. - [Créer un binaire statique](https://frankenphp.dev/fr/docs/static) - [Compiler depuis les sources](https://frankenphp.dev/fr/docs/compile): Ce document explique comment créer un build FrankenPHP qui chargera PHP en tant que bibliothèque dynamique. C'est la méthode recommandée. - [Utilisation de GitHub Actions](https://frankenphp.dev/fr/docs/github-actions) #### Intégrations - [Laravel](https://frankenphp.dev/fr/docs/laravel) #### Référence - [Problèmes connus](https://frankenphp.dev/fr/docs/known-issues): Les extensions suivantes sont connues pour ne pas être compatibles avec FrankenPHP : - [Contribuer](https://frankenphp.dev/fr/docs/contributing): Construisez l'image Docker de développement : ## Español ### Docs - [FrankenPHP: el servidor de aplicaciones PHP moderno, escrito en Go](https://frankenphp.dev/es/docs) #### Primeros pasos - [Usando el modo clásico](https://frankenphp.dev/es/docs/classic) - [Usando los workers de FrankenPHP](https://frankenphp.dev/es/docs/worker): Inicia tu aplicación una vez y manténla en memoria. FrankenPHP gestionará las peticiones entrantes en unos pocos milisegundos. - [Configuración](https://frankenphp.dev/es/docs/config) #### Funcionalidades - [Early Hints (pistas tempranas)](https://frankenphp.dev/es/docs/early-hints) - [Tiempo real](https://frankenphp.dev/es/docs/mercure) - [Hot reload](https://frankenphp.dev/es/docs/hot-reload) - [Registro de actividad](https://frankenphp.dev/es/docs/logging) - [Métricas](https://frankenphp.dev/es/docs/metrics) - [Sirviendo archivos estáticos grandes de manera eficiente (X-Sendfile/X-Accel-Redirect)](https://frankenphp.dev/es/docs/x-sendfile): Normalmente, los archivos estáticos pueden ser servidos directamente por el servidor web, pero a veces es necesario ejecutar código PHP antes de enviarlos: control de acceso, estadísticas, encabezados HTTP personalizados... - [Escribir extensiones PHP en Go](https://frankenphp.dev/es/docs/extensions) - [Extension workers](https://frankenphp.dev/es/docs/extension-workers) #### Despliegue - [Construir una imagen Docker personalizada](https://frankenphp.dev/es/docs/docker) - [Despliegue en producción](https://frankenphp.dev/es/docs/production): En este tutorial, aprenderemos cómo desplegar una aplicación PHP en un único servidor usando Docker Compose. - [Rendimiento](https://frankenphp.dev/es/docs/performance): Por defecto, FrankenPHP intenta ofrecer un buen compromiso entre rendimiento y facilidad de uso. Sin embargo, es posible mejorar sustancialmente el rendimiento usando una configuración adecuada. - [Aplicaciones PHP como binarios autónomos](https://frankenphp.dev/es/docs/embed): FrankenPHP tiene la capacidad de incrustar el código fuente y los activos de aplicaciones PHP en un binario estático y autónomo. - [Crear una compilación estática](https://frankenphp.dev/es/docs/static) - [Compilar desde fuentes](https://frankenphp.dev/es/docs/compile): Este documento explica cómo crear un binario de FrankenPHP que cargará PHP como una biblioteca dinámica. Esta es la forma recomendada. - [Usando GitHub Actions](https://frankenphp.dev/es/docs/github-actions) #### Integraciones - [Laravel](https://frankenphp.dev/es/docs/laravel) - [WordPress](https://frankenphp.dev/es/docs/wordpress) #### Referencia - [Problemas conocidos](https://frankenphp.dev/es/docs/known-issues): Las siguientes extensiones se sabe que no son compatibles con FrankenPHP: - [Contribuir](https://frankenphp.dev/es/docs/contributing): Construya la imagen Docker de desarrollo: ## 简体中文 ### Docs - [FrankenPHP: 适用于 PHP 的现代应用服务器](https://frankenphp.dev/zh/docs) #### 入门 - [使用经典模式](https://frankenphp.dev/zh/docs/classic) - [使用 FrankenPHP workers](https://frankenphp.dev/zh/docs/worker): 启动一次应用程序并将其保存在内存中。 FrankenPHP 将在几毫秒内处理传入请求。 - [配置](https://frankenphp.dev/zh/docs/config) #### 功能 - [早期提示](https://frankenphp.dev/zh/docs/early-hints) - [实时](https://frankenphp.dev/zh/docs/mercure) - [热重载](https://frankenphp.dev/zh/docs/hot-reload) - [日志记录](https://frankenphp.dev/zh/docs/logging): 在 FrankenPHP 中使用 frankenphp_log() 或 error_log() 从 PHP 输出结构化日志,通过 Caddy 的日志系统以 JSON 格式路由到 Datadog、Loki 或 Elastic。 - [可观测性](https://frankenphp.dev/zh/docs/observability): 通过 Prometheus 指标、结构化日志、Ember TUI 仪表盘以及自定义 Grafana 抓取配置,在开发和生产环境中监控 FrankenPHP。 - [指标](https://frankenphp.dev/zh/docs/metrics) - [高效服务大型静态文件 (X-Sendfile/X-Accel-Redirect)](https://frankenphp.dev/zh/docs/x-sendfile): 通常,静态文件可以直接由 Web 服务器提供服务, 但有时在发送它们之前需要执行一些 PHP 代码: 访问控制、统计、自定义 HTTP 头... - [使用 Go 编写 PHP 扩展](https://frankenphp.dev/zh/docs/extensions) - [扩展 worker](https://frankenphp.dev/zh/docs/extension-workers) #### 部署 - [构建自定义 Docker 镜像](https://frankenphp.dev/zh/docs/docker) - [在生产环境中部署](https://frankenphp.dev/zh/docs/production): 在本教程中,我们将学习如何使用 Docker Compose 在单个服务器上部署 PHP 应用程序。 - [性能](https://frankenphp.dev/zh/docs/performance): 默认情况下,FrankenPHP 尝试在性能和易用性之间提供良好的折衷。 但是,通过使用适当的配置,可以大幅提高性能。 - [PHP 应用程序作为独立二进制文件](https://frankenphp.dev/zh/docs/embed): FrankenPHP 能够将 PHP 应用程序的源代码和资源文件嵌入到静态的、独立的二进制文件中。 - [创建静态构建](https://frankenphp.dev/zh/docs/static) - [从源代码编译](https://frankenphp.dev/zh/docs/compile): 本文档解释了如何创建一个 FrankenPHP 构建,它将 PHP 加载为一个动态库。 这是推荐的方法。 - [使用 GitHub Actions](https://frankenphp.dev/zh/docs/github-actions) #### 集成 - [Laravel](https://frankenphp.dev/zh/docs/laravel) #### 参考 - [已知问题](https://frankenphp.dev/zh/docs/known-issues): 已知以下扩展与 FrankenPHP 不兼容: - [贡献](https://frankenphp.dev/zh/docs/contributing): 构建开发环境 Docker 镜像: ## 日本語 ### Docs - [FrankenPHP: PHPのためのモダンなアプリケーションサーバー](https://frankenphp.dev/ja/docs) #### はじめに - [クラシックモードの使用](https://frankenphp.dev/ja/docs/classic) - [FrankenPHPワーカーの使用](https://frankenphp.dev/ja/docs/worker): アプリケーションを一度起動してメモリに保持します。 FrankenPHPは数ミリ秒で受信リクエストを処理します。 - [設定](https://frankenphp.dev/ja/docs/config) #### 機能 - [Early Hints](https://frankenphp.dev/ja/docs/early-hints) - [リアルタイム](https://frankenphp.dev/ja/docs/mercure) - [ホットリロード](https://frankenphp.dev/ja/docs/hot-reload) - [メトリクス](https://frankenphp.dev/ja/docs/metrics) - [大きな静的ファイルを効率的に配信する (X-Sendfile/X-Accel-Redirect)](https://frankenphp.dev/ja/docs/x-sendfile): 通常、静的ファイルはウェブサーバーによって直接配信されますが、 時にはファイルを送信する前にPHPコードを実行する必要があります。 例えば、アクセス制御、統計、カスタムHTTPヘッダーなど - [GoでPHP拡張モジュールを作成する](https://frankenphp.dev/ja/docs/extensions) - [拡張ワーカー](https://frankenphp.dev/ja/docs/extension-workers) #### デプロイ - [カスタムDockerイメージのビルド](https://frankenphp.dev/ja/docs/docker) - [本番環境でのデプロイ](https://frankenphp.dev/ja/docs/production): このチュートリアルでは、Docker Composeを使用して単一サーバーにPHPアプリケーションをデプロイする方法を学びます。 - [パフォーマンス](https://frankenphp.dev/ja/docs/performance): デフォルトでは、FrankenPHPはパフォーマンスと使いやすさのバランスが取れた構成を提供するよう設計されています。 ただし、適切な設定により、パフォーマンスを大幅に向上させることが可能です。 - [PHPアプリのスタンドアロンバイナリ化](https://frankenphp.dev/ja/docs/embed): FrankenPHPには、PHPアプリケーションのソースコードやアセットを静的な自己完結型バイナリに埋め込む機能があります。 - [静的ビルドの作成](https://frankenphp.dev/ja/docs/static) - [ソースからのコンパイル](https://frankenphp.dev/ja/docs/compile): このドキュメントでは、PHPを動的ライブラリとしてロードするFrankenPHPバイナリの作成方法を説明します。 これが推奨される方法です。 - [GitHub Actionsの使用](https://frankenphp.dev/ja/docs/github-actions) #### 統合 - [Laravel](https://frankenphp.dev/ja/docs/laravel) #### リファレンス - [既知の問題](https://frankenphp.dev/ja/docs/known-issues): 以下の拡張モジュールはFrankenPHPと互換性がないことが確認されています: - [コントリビューション](https://frankenphp.dev/ja/docs/contributing): 開発用Dockerイメージをビルドします: ## Português (Brasil) ### Docs - [FrankenPHP: um moderno servidor de aplicações para PHP](https://frankenphp.dev/pt-br/docs) #### Primeiros passos - [Usando o modo clássico](https://frankenphp.dev/pt-br/docs/classic) - [Usando workers do FrankenPHP](https://frankenphp.dev/pt-br/docs/worker): Inicialize sua aplicação uma vez e mantenha-a na memória. O FrankenPHP processará as requisições recebidas em poucos milissegundos. - [Configuração](https://frankenphp.dev/pt-br/docs/config) #### Recursos - [Early Hints](https://frankenphp.dev/pt-br/docs/early-hints) - [Tempo real](https://frankenphp.dev/pt-br/docs/mercure) - [Recarregamento instantâneo](https://frankenphp.dev/pt-br/docs/hot-reload) - [Métricas](https://frankenphp.dev/pt-br/docs/metrics) - [Servindo arquivos estáticos grandes com eficiência (X-Sendfile/X-Accel-Redirect)](https://frankenphp.dev/pt-br/docs/x-sendfile): Normalmente, arquivos estáticos podem ser servidos diretamente pelo servidor web, mas às vezes é necessário executar algum código PHP antes de enviá-los: controle de acesso, estatísticas, cabeçalhos HTTP personalizados... - [Escrevendo extensões PHP em Go](https://frankenphp.dev/pt-br/docs/extensions) - [Workers de extensão](https://frankenphp.dev/pt-br/docs/extension-workers) #### Implantação - [Construindo imagens Docker personalizadas](https://frankenphp.dev/pt-br/docs/docker) - [Implantando em produção](https://frankenphp.dev/pt-br/docs/production): Neste tutorial, aprenderemos como implantar uma aplicação PHP em um único servidor usando o Docker Compose. - [Desempenho](https://frankenphp.dev/pt-br/docs/performance): Por padrão, o FrankenPHP tenta oferecer um bom equilíbrio entre desempenho e facilidade de uso. No entanto, é possível melhorar substancialmente o desempenho usando uma configuração apropriada. - [Aplicações PHP como binários independentes](https://frankenphp.dev/pt-br/docs/embed): O FrankenPHP tem a capacidade de incorporar o código-fonte e os assets de aplicações PHP em um binário estático e independente. - [Criar uma compilação estática](https://frankenphp.dev/pt-br/docs/static) - [Compilar a partir do código-fonte](https://frankenphp.dev/pt-br/docs/compile): Este documento explica como criar um binário FrankenPHP que carregará o PHP como uma biblioteca dinâmica. Este é o método recomendado. - [Usando GitHub Actions](https://frankenphp.dev/pt-br/docs/github-actions) #### Integrações - [Laravel](https://frankenphp.dev/pt-br/docs/laravel) #### Referência - [Problemas conhecidos](https://frankenphp.dev/pt-br/docs/known-issues): As seguintes extensões são conhecidas por não serem compatíveis com o FrankenPHP: - [Contribuindo](https://frankenphp.dev/pt-br/docs/contributing): Crie a imagem Docker de desenvolvimento: ## Русский ### Docs - [FrankenPHP: современный сервер приложений для PHP](https://frankenphp.dev/ru/docs) #### Начало работы - [Использование воркеров FrankenPHP](https://frankenphp.dev/ru/docs/worker): Загрузите приложение один раз и держите его в памяти. FrankenPHP будет обрабатывать входящие запросы за несколько миллисекунд. - [Конфигурация](https://frankenphp.dev/ru/docs/config) #### Возможности - [Early Hints](https://frankenphp.dev/ru/docs/early-hints) - [Real-time режим](https://frankenphp.dev/ru/docs/mercure) - [Горячая перезагрузка](https://frankenphp.dev/ru/docs/hot-reload) - [Метрики](https://frankenphp.dev/ru/docs/metrics) - [Написание PHP-расширений на Go](https://frankenphp.dev/ru/docs/extensions) - [Расширение workers](https://frankenphp.dev/ru/docs/extension-workers) #### Развёртывание - [Создание кастомных Docker-образов](https://frankenphp.dev/ru/docs/docker) - [Деплой в продакшен](https://frankenphp.dev/ru/docs/production): В этом руководстве мы рассмотрим, как развернуть PHP-приложение на одном сервере с использованием Docker Compose. - [Производительность](https://frankenphp.dev/ru/docs/performance): По умолчанию FrankenPHP стремится предложить хороший компромисс между производительностью и простотой использования. Однако, используя подходящую конфигурацию, можно существенно улучшить производительность. - [PHP-приложения как автономные бинарные файлы](https://frankenphp.dev/ru/docs/embed): FrankenPHP позволяет встраивать исходный код и ресурсы PHP-приложений в статический автономный бинарный файл. - [Создание статических бинарных файлов](https://frankenphp.dev/ru/docs/static) - [Компиляция из исходников](https://frankenphp.dev/ru/docs/compile): Этот документ объясняет, как создать бинарный файл FrankenPHP, который будет загружать PHP как динамическую библиотеку. Это рекомендуемый способ. - [Использование GitHub Actions](https://frankenphp.dev/ru/docs/github-actions) #### Интеграции - [Laravel](https://frankenphp.dev/ru/docs/laravel) #### Справочник - [Известные проблемы](https://frankenphp.dev/ru/docs/known-issues): Следующие расширения не совместимы с FrankenPHP: - [Участие в проекте](https://frankenphp.dev/ru/docs/contributing): Создайте образ Docker для разработки: ## Türkçe ### Docs - [FrankenPHP: PHP için modern uygulama sunucusu](https://frankenphp.dev/tr/docs) #### Başlarken - [Classic modu kullanma](https://frankenphp.dev/tr/docs/classic) - [FrankenPHP worker'ları kullanma](https://frankenphp.dev/tr/docs/worker): Uygulamanızı bir kez önyükleyin ve bellekte tutun. FrankenPHP gelen istekleri birkaç milisaniye içinde halledecektir. - [Nginx/PHP-FPM'den geçiş](https://frankenphp.dev/tr/docs/migrate): FrankenPHP hem web sunucunuzu (Nginx, Apache) hem PHP-FPM'i tek bir ikili dosyayla değiştirir. Bu kılavuz tipik bir PHP uygulaması için temel geçişi kapsar. - [Konfigürasyon](https://frankenphp.dev/tr/docs/config) #### Özellikler - [Early Hints](https://frankenphp.dev/tr/docs/early-hints) - [Gerçek zamanlı](https://frankenphp.dev/tr/docs/mercure) - [Sıcak yeniden yükleme](https://frankenphp.dev/tr/docs/hot-reload) - [Günlük kaydı](https://frankenphp.dev/tr/docs/logging) - [Gözlemlenebilirlik](https://frankenphp.dev/tr/docs/observability) - [Metrikler](https://frankenphp.dev/tr/docs/metrics) - [Büyük statik dosyaları verimli sunma (X-Sendfile/X-Accel-Redirect)](https://frankenphp.dev/tr/docs/x-sendfile): Normalde statik dosyalar doğrudan web sunucusu tarafından sunulabilir, ancak bazen göndermeden önce biraz PHP kodu çalıştırmak gerekir: erişim denetimi, istatistikler, özel HTTP başlıkları... - [Go ile PHP uzantıları yazma](https://frankenphp.dev/tr/docs/extensions) - [Uzantı işçileri](https://frankenphp.dev/tr/docs/extension-workers) #### Dağıtım - [Özel Docker imajı oluşturma](https://frankenphp.dev/tr/docs/docker) - [Production ortamına dağıtım](https://frankenphp.dev/tr/docs/production): Bu eğitimde, Docker Compose kullanarak bir PHP uygulamasını tek bir sunucuya nasıl dağıtacağımızı öğreneceğiz. - [Performans](https://frankenphp.dev/tr/docs/performance): Varsayılan olarak, FrankenPHP performans ve kullanım kolaylığı arasında iyi bir denge sunmaya çalışır. Ancak, uygun bir yapılandırma kullanılarak performansı önemli ölçüde artırmak mümkündür. - [Binary dosyası olarak PHP uygulamaları](https://frankenphp.dev/tr/docs/embed): FrankenPHP, PHP uygulamalarının kaynak kodunu ve varlıklarını statik, kendi kendine yeten bir binary dosyaya yerleştirme yeteneğine sahiptir. - [Statik yapı oluşturun](https://frankenphp.dev/tr/docs/static) - [Kaynak kodlardan derleme](https://frankenphp.dev/tr/docs/compile): Bu doküman, PHP'yi dinamik bir kütüphane olarak yükleyecek bir FrankenPHP yapısının nasıl oluşturulacağını açıklamaktadır. Önerilen yöntem bu şekildedir. - [GitHub Actions kullanma](https://frankenphp.dev/tr/docs/github-actions) #### Entegrasyonlar - [Laravel](https://frankenphp.dev/tr/docs/laravel) - [Symfony](https://frankenphp.dev/tr/docs/symfony) - [WordPress](https://frankenphp.dev/tr/docs/wordpress) - [Yii 3](https://frankenphp.dev/tr/docs/yii3) #### Başvuru - [Bilinen sorunlar](https://frankenphp.dev/tr/docs/known-issues): Aşağıdaki eklentilerin FrankenPHP ile uyumlu olmadığı bilinmektedir: - [FrankenPHP'yi bir Go kütüphanesi olarak kullanma](https://frankenphp.dev/tr/docs/library) - [Güvenlik modeli](https://frankenphp.dev/tr/docs/security) - [İç yapı](https://frankenphp.dev/tr/docs/internals): Bu belge FrankenPHP'nin iç mimarisini açıklar; odak noktası iş parçacığı yönetimi, durum makinesi ve Go ile C/PHP arasındaki CGO sınırıdır. - [Katkıda bulunmak](https://frankenphp.dev/tr/docs/contributing): Geliştirme Ortamı için Docker İmajını Oluşturun: ## Agent skills - [frankenphp](https://frankenphp.dev/.well-known/agent-skills/frankenphp/SKILL.md): Read the FrankenPHP docs instead of answering from memory. FrankenPHP is a new app server for PHP apps (built on top of Caddy) and a library to embed the PHP interpreter in Go web servers. Use when a task involves FrankenPHP: how it works, how to set it up or configure it, or its API. ## Agent resources - [llms-full.txt](https://frankenphp.dev/llms-full.txt): The full Markdown of every page in one file. - [Page Markdown](https://frankenphp.dev/index.md): Append `.md` to any page URL to fetch that page as raw Markdown. - [JSON API](https://frankenphp.dev/api/docs/pages.json): Page index of the JSON docs API; each entry links the page's JSON and Markdown forms. Described by the OpenAPI document at https://frankenphp.dev/openapi.json. - [Agent skills](https://frankenphp.dev/.well-known/agent-skills/index.json): Agent Skills discovery index of the skills this site publishes. - [API catalog](https://frankenphp.dev/.well-known/api-catalog): RFC 9727 linkset of the APIs documented here. - [AI catalog](https://frankenphp.dev/.well-known/ai-catalog.json): ARD manifest of the agent-facing resources on this site (MCP server, skills, APIs). - [agent-readability.json](https://frankenphp.dev/agent-readability.json): Manifest of every agent-facing artifact on this site. - [Sitemap](https://frankenphp.dev/sitemap.xml): Every indexable page URL with its last-modified date.