frankenphp icon indicating copy to clipboard operation
frankenphp copied to clipboard

Multiple domains on Laravel Octane (Single Server)

Open JohnDotOwl opened this issue 1 year ago • 1 comments

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

JohnDotOwl avatar May 08 '24 07:05 JohnDotOwl

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
        }
    }
}

dunglas avatar May 08 '24 08:05 dunglas