1eefa62bbc30a85ba60f9763a7a51c94babfb793
[catagits/Catalyst-Manual.git] / lib / Catalyst / Manual / Deployment.pod
1 =head1 NAME
2
3 Catalyst::Manual::Deployment - Deploying Catalyst
4
5 =head1 DEPLOYMENT OPTIONS
6
7 Catalyst applications are most often deployed as a FastCGI or mod_perl
8 application (with FastCGI being the recommended option). However, as
9 Catalyst is based on the L<PSGI> specification, any web handler
10 implementing that specification can be used to run Catalyst
11 applications.
12
13 This documentation most thoroughly covers the normal and traditional deployment
14 options, but will mention alternate methods of deployment, and we welcome
15 additional documentation from people deploying Catalyst in non-standard
16 environments.
17
18 =head2 Deployment in a shared hosting environment
19
20 Almost all shared hosting environments involve deploying Catalyst as a
21 FastCGI application on Apache. You will usually want to have a set of
22 libraries specific to your application installed on your shared host.
23
24 Full details of deploying Catalyst in a shared hosting environment are at
25 L<Catalyst::Manual::Deployment::SharedHosting>.
26
27 =head2 FastCGI
28
29 FastCGI is the most common Catalyst deployment option. It is documented
30 generally in L<Catalyst::Manual::Deployment::FastCGI>, and there are specific
31 instructions for using FastCGI with common web servers below:
32
33 =head3 Apache
34
35 L<Catalyst::Manual::Deployment::Apache::FastCGI>
36
37 =head3 nginx
38
39 L<Catalyst::Manual::Deployment::nginx::FastCGI>
40
41 =head3 lighttpd
42
43 L<Catalyst::Manual::Deployment::lighttpd::FastCGI>
44
45 =head3 Microsoft IIS
46
47 L<Catalyst::Manual::Deployment::IIS::FastCGI>
48
49 =head2 mod_perl
50
51 Traditionally a common deployment option for dedicated applications,
52 mod_perl has some advantages and disadvantages over FastCGI. Use of
53 mod_perl is documented in
54 L<Catalyst::Manual::Deployment::Apache::mod_perl>.
55
56 =head2 Development Server
57
58 It is possible to deploy the Catalyst development server behind a
59 reverse proxy. This may work well for small-scale applications which are
60 in an early development phase, but which you want to be able to show to
61 people. See L<Catalyst::Manual::Deployment::DevelopmentServer>.
62
63 =head2 PSGI
64
65 Catalyst can be deployed with any PSGI-compliant handler. See L<Catalyst::PSGI>
66 for more information; a list of possible deployment servers are shown
67 below:
68
69 =head3 Starman
70
71 L<Starman> is a high-performance Perl server implementation, which is designed
72 to be used directly (rather than behind a reverse proxy). It includes HTTP/1.1
73 support, chunked requests and responses, keep-alive, and pipeline requests.
74
75 =head3 Starlet
76
77 Starlet is a standalone HTTP/1.0 server with keepā€alive support which is
78 suitable for running HTTP application servers behind a reverse proxy.
79
80 =head3 Twiggy
81
82 L<Twiggy> is a high-performance asynchronous web server. It can be used
83 in conjunction with Catalyst, but there are a number of caveats which
84 mean that it is not suitable for most deployments.
85
86 =head2 Chef
87
88 <LChef|http://www.opscode.com/chef/> is an open-source systems integration
89 framework built specifically for automating cloud computing deployments. A
90 Cookbooks demonstrating how to deploy a Catalyst application using Chef is
91 available at L<http://community.opscode.com/cookbooks/catalyst> and
92 L<http://github.com/melezhik/cookbooks/wiki/Catalyst-cookbook-intro>.
93
94 =head1 AUTHORS
95
96 Catalyst Contributors, see Catalyst.pm
97
98 =head1 COPYRIGHT
99
100 This library is free software. You can redistribute it and/or modify it under
101 the same terms as Perl itself.
102
103 =cut
104