Maybe better to use nginx with it's backends instead of Apache? Or it's not possible in your situation?
2013/9/18 Juan José 'Peco' San Martín <[email protected]> > > What Pedro said works joining multiple apps in one. More info > here.<http://search.cpan.org/~xsawyerx/Dancer2-0.09/lib/Dancer2/Cookbook.pod#Running_multiple_apps_with_Plack::Builder>Thank > you! > > I have some issues with how each application locates resources. It seems > that both are using the same paths for libraries or views. > > Suppose the next structure: > > pathX > |__app1 > |__app2 > > cd pathX > > *plackup -a app.psgi * > Error while loading pathX/app.psgi: Can't locate App1.pm in @INC .... > > *plackup -I app1/lib -I app2/lib app.psgi * > Route exception: pathX/views/index.tt is not a regular file or > reference... > > How can I establish different environments (and paths) for each app?. > > Although this could be very useful, it's not the best solution when you > want to keep one server with multiple and isolated apps (of different > developers/teams). > > Anyway, thank you!. > > > 2013/9/18 Pedro Melo <[email protected]> > >> Hi, >> >> On Tue, Sep 17, 2013 at 10:36 AM, Juan José 'Peco' San Martín < >> [email protected]> wrote: >> >>> I have 2 different Dancer apps (app1 and app2). Each one working very >>> well on different servers under Apache and Plack::Handler::Apache2. >>> >>> Now, I would like put both applications in just one server, so I >>> adjusted the Apache config just adding the two Location sections. >>> >>> If I use the first app, everything works, but when I try the second one, >>> it seems that Dancer2 (with Plack::Handler::Apache2) still looks for the >>> paths of the first app (so it fails because it can not find my app2 >>> modules). >>> >>> Example (how to reproduce the behaviour) >>> >>> 0) Dancer 2.06 >>> >>> 1) Adjust Apache config to add the Locations of the two apps >>> >>> # Apache location >>> <Location /app1> >>> SetHandler perl-script >>> PerlHandler Plack::Handler::Apache2 >>> PerlSetVar psgi_app /path/app1/bin/app.pl >>> </Location> >>> >>> <Location /app2> >>> SetHandler perl-script >>> PerlHandler Plack::Handler::Apache2 >>> PerlSetVar psgi_app /path/app2/bin/app.pl >>> </Location> >>> >>> 2) Try app1 => it works! >>> >>> 3) Try app2 => fails with the next message: Error while loading /app2/ >>> app.pl: Can't locate App2.pm in @INC (@INC contains /path/app1/lib/ >>> /usr/local....) >>> >>> Where App2 is the main module at (app2/lib/) called from >>> app2/bin/app.plafter use Dancer2. >>> >> >> Try this: create a merged.psgi file with this content: >> >> use Plack::Builder; >> use App1; >> use App2; >> >> builder { >> mount '/app1' => App1->dance; >> mount '/app2' => App2->dance; >> }; >> >> >> And then use it on Apache with: >> >> <Location /> >> >> SetHandler perl-script >> PerlHandler Plack::Handler::Apache2 >> PerlSetVar psgi_app /path/to/merged.psgi >> </Location> >> >> I have not tested this, I don't have a mod_perl2 at hand anymore, but it >> should work. >> >> Bye, >> -- >> Pedro Melo >> @pedromelo >> http://www.simplicidade.org/ >> xmpp:[email protected] >> mailto:[email protected] >> >> _______________________________________________ >> dancer-users mailing list >> [email protected] >> http://lists.preshweb.co.uk/mailman/listinfo/dancer-users >> >> > > _______________________________________________ > dancer-users mailing list > [email protected] > http://lists.preshweb.co.uk/mailman/listinfo/dancer-users > >
_______________________________________________ dancer-users mailing list [email protected] http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
