From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-2.9 required=3.0 tests=ALL_TRUSTED,AWL,BAYES_00, RP_MATCHES_RCVD,URIBL_BLOCKED shortcircuit=no autolearn=unavailable version=3.3.2 X-Original-To: meta@public-inbox.org Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 966A763381D for ; Mon, 29 Feb 2016 01:45:56 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 3/4] examples: various Apache-related doc updates Date: Mon, 29 Feb 2016 01:45:52 +0000 Message-Id: <20160229014553.16033-3-e@80x24.org> In-Reply-To: <20160229014553.16033-2-e@80x24.org> References: <20160229014553.16033-2-e@80x24.org> List-Id: Plack::Handler::Apache2 exists and seems to work very well. --- examples/README | 13 ++++++------- examples/apache2_cgi.conf | 5 +++-- examples/apache2_perl.conf | 42 +++++++++++++++--------------------------- examples/apache2_perl_old.conf | 38 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 62 insertions(+), 36 deletions(-) create mode 100644 examples/apache2_perl_old.conf diff --git a/examples/README b/examples/README index 5113393..1244cb2 100644 --- a/examples/README +++ b/examples/README @@ -5,14 +5,13 @@ For all server admins --------------------- public-inbox-config - configuration file, this maps configured inboxes -For Apache2 users without Plack -------------------------------- -apache2_perl.conf - intended to be the basis of a production config +For PSGI/Plack (HTTP) servers +----------------------------- +public-inbox.psgi - starting point for PSGI/Plack users in production and dev -Web server configs for quick-and-dirty demos --------------------------------------------- -apache2_cgi.conf - for Apache2 users who cannot install mod_perl -cgi-webrick.rb - only for Rubyists who do not wish to install Plack or Apache +For Apache2 users +----------------- +apache2_perl.conf - intended to be the basis of a production config Contact ------- diff --git a/examples/apache2_cgi.conf b/examples/apache2_cgi.conf index 775b7e6..5ec64d7 100644 --- a/examples/apache2_cgi.conf +++ b/examples/apache2_cgi.conf @@ -1,5 +1,6 @@ -# Example Apache2 configuration using mod_cgi -# If possible, use mod_perl (see apache2_perl.conf) instead of this. +# Example Apache2 configuration using CGI mod_cgi +# If possible, use mod_perl (see apache2_perl.conf) or +# a standalone PSGI/Plack # server instead of this. # Adjust paths to your installation. ServerName "public-inbox" diff --git a/examples/apache2_perl.conf b/examples/apache2_perl.conf index 6615eb9..a4721b5 100644 --- a/examples/apache2_perl.conf +++ b/examples/apache2_perl.conf @@ -1,37 +1,25 @@ -# Example Apache2 configuration using mod_perl2 +# Example Apache2 configuration using Plack::Handler::Apache2 # Adjust paths to your installation ServerName "public-inbox" -ServerRoot "/var/www/cgi-bin" -DocumentRoot "/var/www/cgi-bin" +ServerRoot "/var/www" +DocumentRoot "/var/www" ErrorLog "/tmp/public-inbox-error.log" PidFile "/tmp/public-inbox.pid" Listen 127.0.0.1:8080 LoadModule perl_module /usr/lib/apache2/modules/mod_perl.so -LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so -LoadModule dir_module /usr/lib/apache2/modules/mod_dir.so -LoadModule mime_module /usr/lib/apache2/modules/mod_mime.so -TypesConfig "/dev/null" -# PerlPassEnv PATH # this is implicit - - Options +ExecCGI - AddHandler perl-script .cgi - PerlResponseHandler ModPerl::Registry - PerlOptions +ParseHeaders +# no need to set no rely on HOME if using this: +PerlSetEnv PI_CONFIG /home/pi/.public-inbox/config - # we use this hack to ensure "public-inbox.cgi" doesn't show up - # in any of our redirects: - PerlSetEnv NO_SCRIPT_NAME 1 + + SetHandler perl-script + PerlResponseHandler Plack::Handler::Apache2 + PerlSetVar psgi_app /path/to/public-inbox.psgi + - # no need to set no rely on HOME if using this: - PerlSetEnv PI_CONFIG /home/pi/.public-inbox/config - - # our public-inbox.cgi requires PATH_INFO-based URLs with minimal - # use of query parameters - DirectoryIndex public-inbox.cgi - RewriteEngine On - RewriteCond %{REQUEST_FILENAME} !-f - RewriteCond %{REQUEST_FILENAME} !-d - RewriteRule ^.* /public-inbox.cgi/$0 [L,PT] - +# Optional, preload the application in the parent like startup.pl + + use Plack::Handler::Apache2; + Plack::Handler::Apache2->preload("/path/to/public-inbox.psgi"); + diff --git a/examples/apache2_perl_old.conf b/examples/apache2_perl_old.conf new file mode 100644 index 0000000..a6de230 --- /dev/null +++ b/examples/apache2_perl_old.conf @@ -0,0 +1,38 @@ +# Example legacy Apache2 configuration using CGI + mod_perl2 +# Consider using Plack::Handler::Apache2 instead (see apache2_perl.conf) +# Adjust paths to your installation + +ServerName "public-inbox" +ServerRoot "/var/www/cgi-bin" +DocumentRoot "/var/www/cgi-bin" +ErrorLog "/tmp/public-inbox-error.log" +PidFile "/tmp/public-inbox.pid" +Listen 127.0.0.1:8080 +LoadModule perl_module /usr/lib/apache2/modules/mod_perl.so +LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so +LoadModule dir_module /usr/lib/apache2/modules/mod_dir.so +LoadModule mime_module /usr/lib/apache2/modules/mod_mime.so +TypesConfig "/dev/null" + +# PerlPassEnv PATH # this is implicit + + Options +ExecCGI + AddHandler perl-script .cgi + PerlResponseHandler ModPerl::Registry + PerlOptions +ParseHeaders + + # we use this hack to ensure "public-inbox.cgi" doesn't show up + # in any of our redirects: + PerlSetEnv NO_SCRIPT_NAME 1 + + # no need to set no rely on HOME if using this: + PerlSetEnv PI_CONFIG /home/pi/.public-inbox/config + + # our public-inbox.cgi requires PATH_INFO-based URLs with minimal + # use of query parameters + DirectoryIndex public-inbox.cgi + RewriteEngine On + RewriteCond %{REQUEST_FILENAME} !-f + RewriteCond %{REQUEST_FILENAME} !-d + RewriteRule ^.* /public-inbox.cgi/$0 [L,PT] + -- EW