Hi list, Having struggled a while to get a Dancer app working with perlbrew on a shared host with the Apache webserver, I'm documenting it for others. Please let me know if you think it is useful, or have any suggestions. Joel -- Deploying a Dancer app with perlbrew under Apache I'll assume you've successfully installed perlbrew, so that (for example) typing perlbrew use 5.16.3; perl -v shows you the correct perl version. On my shared host, the requests are handled by a CGI script in the document root for the site called dispatch.cgi: #!/bin/sh source ~/.bashrc # you need this for the correct environment perlbrew use 5.16.3 # and this for the correct perl exec `dirname $0`/plack_runner.pl ${1+"$@"} I use mod-rewrite to prepend "dispatch.cgi" to the routes when required, thereby eliminating the name of the script from links to the site. The file .htaccess, in the document root, contains this code: # BEGIN dancer application htaccess RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule (.*) dispatch.cgi/$1 # END dancer application htaccess dispatch.cgi calls plack_runner.pl, also in the document root: #!/usr/bin/env perl use autodie; use Plack::Runner; chdir '/home/username/app_dir'; Plack::Runner->run('app.psgi'); plack_runner.pl runs app.psgi, which lives in the app_dir. #!/usr/bin/env perl BEGIN { push @ARGV, qw(--environment=production) } use lib ('/home/username/app_dir/lib'); use Dancer; load_app 'danceapp'; dance; To test the website locally on my laptop, I run app.psgi from the command line and point my browser at http://localhost:3000. (I use the same directory path for the app_dir on my laptop as on the production site.) To make several similar websites using the same app code, I converted danceapp.pm to a module and installed it conventionally using perlbrew and cpanm. perlbrew use 5.16.3 cpanm My-Dancer-App-0.1.tar.gz With the app implemented this way, the 'use lib' line in app.psgi is not required. (END)