[Dancer-users] deploying via Apache
punk.kish at gmail.com
Tue Aug 3 16:15:22 CEST 2010
On Mon, Aug 2, 2010 at 4:34 PM, David Precious <davidp at preshweb.co.uk> wrote:
> On Monday 02 August 2010 22:08:39 P Kishor wrote:
>> What I don't understand is, why is no one else encountering these
>> errors that I am? My set up is fairly run of the mill, very routine.
>> Nothing exotic at all. Yet, I am encountering errors at every step,
>> and none of them seem to be reflected in the docs.
> Maybe most people are running their apps via different methods, for instance
> using Apache & Plack (using Plack::Handler::Apache2 as documented at:
> ) - I can confirm that that method definitely works for me, although I have
> experienced odd problems with multiple Dancer apps running that way, which I
> need to investigate further.
Ok, the Plack method works for me also, but first, my notes below, and
then a comment. The Dancer docs at
Running from Apache with Plack
You can run your app from Apache using PSGI (Plack), with a config
like the following:
PerlSetVar psgi_app /websites/myapp.example.com/app.psgi
CustomLog /websites/myapp.example.com/logs/access_log common
While the Plack::Handler::Apache2 docs at
PerlSetVar psgi_app /path/to/app.psgi
# Optional, preload the application in the parent like startup.pl
That discrepancy is confusing. The Plack docs don't mention
"PerlHandler" at all, while the Dancer docs don't mention
"PerlResponseHandler" at all. Those two should be reconciled one way
or the other, else they are confusing.
The above does work for me, but there is a huge pre-condition. I need
to have mod_perl installed. See the Dancer docs (above). They don't
mention that mod_perl is needed to run Dancer via
Plack::Handler::Apache2. Now, this may be obvious as a brick on the
head to those who know, but remember, the key selling point of Dancer
is simplicity. Which means, even the complicated should be simple.
Computer users are notorious for not reading the instructions, but we
should at least note everything down, no matter how obvious. So, the
following change to the docs would be helpful.
Running from Apache with Plack
You can run your app from Apache using PSGI (Plack). Please note,
in order to run Perl modules via Apache, you need mod_perl, so make
sure mod_perl 2 or above is installed. Then, install
Plack::Handler::Apache2. Finally, use the configuration below in your
Apache httpd-vhosts.conf file.
Finally, while I do have the above running, it is absolutely essential
to have cgi mode running. I would contend that most people using
shared web hosting do not have access to persistent processes such as
mod_perl. They get what they get from their hosting service. Most good
ones now allow installing local Perl libs, even compiled ones, or will
compile standard modules for you, but none of them I know allow you to
tinker with Apache. I have run my web sites with cgi for years, and
they function just well. I am no Amazon. I am happy if I get 10 hits a
day, so cgi speed is not a concern... its ease of deployment is an
Of course, the best framework will be the one that is not only easy,
but also allows multiple ways of deployment without requiring any
change in the code. I think Dancer is getting there, but its docs
certainly need work.
Puneet Kishor http://www.punkish.org
Carbon Model http://carbonmodel.org
Charter Member, Open Source Geospatial Foundation http://www.osgeo.org
Science Commons Fellow, http://sciencecommons.org/about/whoweare/kishor
Nelson Institute, UW-Madison http://www.nelson.wisc.edu
Assertions are politics; backing up assertions with evidence is science
More information about the Dancer-users