On Nov 7, 2011, at 9:16 AM, Assaf Gordon wrote:
Hello,
I'm having problems deploying a simple dancer app with Apache+Starman.
Even using the most basic setup doesn't seem to work properly - the "request.uri_for()" returns "http://localhost:3000" instead of the virtual server name. I tried following the varied instructions in Dancer::Deployment, but that are just too many options, or perhaps I don't understand how the different parts connect.
What I did is:
## 1. Create a new app $ dancer -a foo $ cd foo
## 2. Start the server with Starman $ plackup -s Starman -l 127.0.0.1:3000 ./bin/app.pl
## In Apache, my configuration is; <VirtualHost *:80> ServerName xxxx.cshl.edu ServerAlias xxxx
ProxyPass / http://localhost:3000/ ProxyPassReverse / http://localhost:3000/ </VirtualHost>
That's it, nothing more, nothing less. I can see the main Dancer website stub ("Perl is Dancing" etc.), but every link inside the HTML page (e.g. the CSS file) points to "http://localhost:3000" instead of "http://xxxx.cshl.edu" - so none of the links is working.
Any suggestion will be highly appreciated,
Just suggestions here, because with "almost" exactly the same as above, my apps work just fine. Here is the "almost" part. I start Starman with different settings. I recall that I did try it with -l option, and it funked out for me, although I don't recall the specifics of the errors I got. I remember being quite mystified until I went back to my original way of calling Starman, and that works. Here is how I launch it my @cmd = ( "plackup", "-s Starman", "-p $port", "-w 10", "-E $env", "--access-log $dir_logs/$access", "--error-log $dir_logs/$error", "-D", "--pid $dir_pids/$pid", "-a $dir_appl/$app/bin/app.pl" ); system( join(" ", @cmd) ); The main different from your way is that I use `-p $port` instead of `-l $host:$port` Other than that, my settings are the same as yours. -- Puneet Kishor