I'm trying to get Mojolicious to work with NGINX Unit but I get the following error:
PSGI: Failed to run Perl Application:
Undefined subroutine &main::1 called.
My Perl script is the following:
#!/usr/bin/perl
use strict;
use Mojolicious::Lite;
get '/' => {text => 'Hello World'};
app->start;
and my NGINX unit config is:
{
"type": "perl",
"processes": 5,
"script": "/etc/unit/app.psgi",
"environment": {
"MOJO_MODE": "production"
}
}
Am I missing an environment variable ? It seems like Mojo is unable to detect in which environment it is. I have a similar setup for uWSGI where it works.
Curiously the following script works in NGINX Unit:
#!/usr/bin/perl
use strict;
use warnings;
use Plack::Builder;
my $app = sub {
my $env = shift;
[200, [], ["Hello world from PSGI!\n"]];
};
builder {
enable 'ContentLength';
$app;
};
Any help or hint would be immensely appreciated.