frankenphp/README.md

74 lines
3.3 KiB
Markdown
Raw Normal View History

# FrankenPHP: Modern App Server for PHP
2021-09-24 16:52:20 +00:00
2022-10-14 10:20:57 +00:00
<h1 align="center"><a href="https://frankenphp.dev"><img src="frankenphp.png" alt="FrankenPHP" width="600"></a></h1>
FrankenPHP is a modern application server for PHP built on top of the [Caddy](https://caddyserver.com/) web server.
2023-12-06 23:01:51 +00:00
FrankenPHP gives superpowers to your PHP apps thanks to its stunning features: [*Early Hints*](https://frankenphp.dev/docs/early-hints/), [worker mode](https://frankenphp.dev/docs/worker/), [real-time capabilities](https://frankenphp.dev/docs/mercure/), automatic HTTPS, HTTP/2, and HTTP/3 support...
2022-10-14 10:20:57 +00:00
2023-12-01 16:26:21 +00:00
FrankenPHP works with any PHP app and makes your Symfony projects faster than ever thanks to the provided integration with the worker mode (Laravel Octane support coming).
2022-10-14 10:20:57 +00:00
FrankenPHP can also be used as a standalone Go library to embed PHP in any app using `net/http`.
2023-07-02 18:46:26 +00:00
[**Learn more** on *frankenphp.dev*](https://frankenphp.dev) and in this slide deck:
2022-10-14 15:14:17 +00:00
<a href="https://dunglas.dev/2022/10/frankenphp-the-modern-php-app-server-written-in-go/"><img src="https://dunglas.dev/wp-content/uploads/2022/10/frankenphp.png" alt="Slides" width="600"></a>
2022-10-14 10:20:57 +00:00
## Getting Started
2021-09-24 16:52:20 +00:00
### Docker
```console
docker run -v $PWD:/app/public \
-p 80:80 -p 443:443 \
dunglas/frankenphp
```
2022-10-14 10:20:57 +00:00
Go to `https://localhost`, and enjoy!
2021-09-24 16:52:20 +00:00
> [!TIP]
>
> Do not attempt to use `https://127.0.0.1`. Use `localhost` and accept the self-signed certificate. Caddy has an automatic TLS handling that auto-trusts some local-based hostnames like `localhost`, but it does not apply to IP addresses. More details [on Caddy's "automatic https" docs](https://caddyserver.com/docs/automatic-https#hostname-requirements).
### Standalone Binary
If you prefer not to use Docker, we provide standalone FrankenPHP binaries for Linux and macOS
containing [PHP 8.3](https://www.php.net/releases/8.3/en.php) and most popular PHP extensions: [Download FrankenPHP](https://github.com/dunglas/frankenphp/releases)
To serve the content of the current directory, run:
```console
./frankenphp php-server
```
You can also run command-line scripts with:
```console
./frankenphp php-cli /path/to/your/script.php
```
## Docs
2021-09-24 16:52:20 +00:00
2023-12-06 23:01:51 +00:00
* [The worker mode](https://frankenphp.dev/docs/worker/)
* [Early Hints support (103 HTTP status code)](https://frankenphp.dev/docs/early-hints/)
* [Real-time](https://frankenphp.dev/docs/mercure/)
* [Configuration](https://frankenphp.dev/docs/config/)
* [Docker images](https://frankenphp.dev/docs/docker/)
* [Create **standalone**, self-executable PHP apps](https://frankenphp.dev/docs/embed/)
* [Create static binaries](https://frankenphp.dev/docs/static/)
* [Compile from sources](https://frankenphp.dev/docs/compile/)
* [Known issues](https://frankenphp.dev/docs/known-issues/)
* [Demo app (Symfony) and benchmarks](https://github.com/dunglas/frankenphp-demo)
2022-10-14 10:20:57 +00:00
* [Go library documentation](https://pkg.go.dev/github.com/dunglas/frankenphp)
2023-12-06 23:01:51 +00:00
* [Contributing and debugging](https://frankenphp.dev/contributing/)
2022-11-01 07:48:55 +00:00
## Examples and Skeletons
2023-09-28 13:49:08 +00:00
* [Symfony](https://github.com/dunglas/symfony-docker)
* [API Platform](https://api-platform.com/docs/distribution/)
2023-12-06 23:01:51 +00:00
* [Laravel](https://frankenphp.dev/docs/laravel/)
2023-09-28 13:49:08 +00:00
* [Sulu](https://sulu.io/blog/running-sulu-with-frankenphp)
2022-11-08 16:49:10 +00:00
* [WordPress](https://github.com/dunglas/frankenphp-wordpress)
* [Drupal](https://github.com/dunglas/frankenphp-drupal)
* [Joomla](https://github.com/alexandreelise/frankenphp-joomla)