App-ForExample
view release on metacpan or search on metacpan
lib/App/ForExample.pm view on Meta::CPAN
--fastcgi-socket <host:port> Have fastcgi use <host:port> for the socket
--fastcgi-pid-file <path> Store the pid for the process in <path>
apache2 standalone Apache2 with standalone FastCGI (mod_fastcgi)
apache2 static Apache2 with static FastCGI (mod_fastcgi)
apache2 dynamic Apache2 with dynamic FastCGI (mod_fastcgi)
lighttpd standalone lighttpd with dynamic FastCGI
lighttpd static lighttpd with static FastCGI
nginx nginx with standalone FastCGI (the only kind supported)
monit A monit configuration for a standalone FastCGI setup
start-stop A start-stop script for a standalone FastCGI setup
catalyst/mod_perl
Generate a mod_perl2 (for Apache2) Catalyst configuration
--class The Catalyst class for your application (e.g. Project::Xyzzy or My::App)
--home The path to your Catalyst home directory, default: . (The current directory)
--log-home The directory to log into, default: <home>/log (Below the directory given by --home)
--base The base for your application, default: / (At the root)
--hostname The hostname from which your application is served (e.g. example.com)
monit
Generate a basic, stripped-down monit configuration suitable for a non-root user
--home The directory designated monit home (containing the pid file, log, rc, ...)
=head1 TUTORIAL
=head2 Apache2 with FastCGI on Ubuntu
Install apache2, mod_fastcgi, and L<FCGI>
sudo apt-get install apache2 libapache2-mod-fastcgi
cpan -i FCGI
Create the Catalyst application C<My::App>
catalyst.pl My::App
Use L<App::ForExample> to generate the configuration
cd My-App
for-example catalyst/fastcgi apache2 standalone --class My::App --hostname my-app.localhost --output my-app
Make the log directory
mkdir log
Install the apache2 configuration
sudo cp my-app.apache2 /etc/apache2/sites-enabled
Enable the fastcgi start-stop script (with execute permissions)
chmod +x my-app.start-stop
Add a C<my-app.localhost> entry to C</etc/hosts>
127.0.0.1 my-app.localhost
Start your application
./my-app.start-stop start
sudo /etc/init.d/apache restart
Visit your application at L<http://my-app.localhost>
=head1 INSTALL
You can install L<App::ForExample> by using L<CPAN>:
cpan -i App::ForExample
If that doesn't work properly, you can find help at:
http://sial.org/howto/perl/life-with-cpan/
http://sial.org/howto/perl/life-with-cpan/macosx/ # Help on Mac OS X
http://sial.org/howto/perl/life-with-cpan/non-root/ # Help with a non-root account
=head1 CONTRIBUTE
You can contribute or fork this project via GitHub:
L<http://github.com/robertkrimen/App-ForExample/tree/master>
git clone git://github.com/robertkrimen/App-ForExample.git
=cut
use App::ForExample::Catalog;
use Template;
use Carp;
use Path::Class;
my $catalog = App::ForExample::Catalog->catalog;
my $tt = Template->new({ BLOCKS => $catalog->{common} });
sub process ($@) {
my $given = shift;
my ($template);
if ( ref $given eq 'SCALAR' ) {
$template = $given;
}
else {
$template = $catalog->{$given} or croak "Template \"$given\" does not exist in the catalog";
}
my $output;
$tt->process( $template => { @_ }, \$output ) or croak "Error processing template \"$given\": ", $tt->error;
return $output;
}
sub output ($@) {
( run in 0.356 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )