frankenphp
frankenphp copied to clipboard
Multiple domains on Laravel Octane (Single Server)
What happened?
Is it actually possible to run multiple laravel octane with franken php based on 1 configuration file?
I'm getting
INFO Error: adapting config using caddyfile: /root/projects/Caddyfile:6: unrecognized global option: abc.example.com
{
{$CADDY_GLOBAL_OPTIONS}
admin localhost:{$CADDY_SERVER_ADMIN_PORT}
# Project 1: abc
abc.example.com {
log {
level {$CADDY_SERVER_LOG_LEVEL}
format filter {
wrap {$CADDY_SERVER_LOGGER}
fields {
uri query {
replace authorization REDACTED
}
}
}
}
route {
root * "/root/projects/abc/public"
encode zstd br gzip
{$CADDY_SERVER_EXTRA_DIRECTIVES}
php_server {
worker "/root/projects/abc/public/frankenphp-worker.php" {$CADDY_SERVER_WORKER_COUNT}
index frankenphp-worker.php
resolve_root_symlink
}
}
}
# Project 2: xyz
xyz.example.com {
log {
level {$CADDY_SERVER_LOG_LEVEL}
format filter {
wrap {$CADDY_SERVER_LOGGER}
fields {
uri query {
replace authorization REDACTED
}
}
}
}
route {
root * "/root/projects/xyz/public"
encode zstd br gzip
{$CADDY_SERVER_EXTRA_DIRECTIVES}
php_server {
worker "/root/projects/xyz/public/frankenphp-worker.php" {$CADDY_SERVER_WORKER_COUNT}
index frankenphp-worker.php
resolve_root_symlink
}
}
}
}
Build Type
Standalone binary
Worker Mode
No
Operating System
Other (tell us more in the description)
CPU Architecture
x86_64
PHP configuration
.
Relevant log output
No response
You have a bracket issue, the global options block must be closed before defining the server blocks. Try something like this:
{
{$CADDY_GLOBAL_OPTIONS}
admin localhost:{$CADDY_SERVER_ADMIN_PORT}
}
# Project 1: abc
abc.example.com {
log {
level {$CADDY_SERVER_LOG_LEVEL}
format filter {
wrap {$CADDY_SERVER_LOGGER}
fields {
uri query {
replace authorization REDACTED
}
}
}
}
route {
root * "/root/projects/abc/public"
encode zstd br gzip
{$CADDY_SERVER_EXTRA_DIRECTIVES}
php_server {
worker "/root/projects/abc/public/frankenphp-worker.php" {$CADDY_SERVER_WORKER_COUNT}
index frankenphp-worker.php
resolve_root_symlink
}
}
}
# Project 2: xyz
xyz.example.com {
log {
level {$CADDY_SERVER_LOG_LEVEL}
format filter {
wrap {$CADDY_SERVER_LOGGER}
fields {
uri query {
replace authorization REDACTED
}
}
}
}
route {
root * "/root/projects/xyz/public"
encode zstd br gzip
{$CADDY_SERVER_EXTRA_DIRECTIVES}
php_server {
worker "/root/projects/xyz/public/frankenphp-worker.php" {$CADDY_SERVER_WORKER_COUNT}
index frankenphp-worker.php
resolve_root_symlink
}
}
}