Sfoglia il codice sorgente

more elaborate Apache configuration which especially supports mod_perl

Ralf S. Engelschall 21 anni fa
parent
commit
2940a3404e
2 ha cambiato i file con 35 aggiunte e 21 eliminazioni
  1. 34 20
      kwiki/kwiki-apache.conf
  2. 1 1
      kwiki/kwiki.spec

+ 34 - 20
kwiki/kwiki-apache.conf

@@ -2,32 +2,46 @@
 ##  kwiki-apache.conf -- Apache Configuration for Kwiki
 ##
 
+#   convenience URL redirection
+RedirectMatch ^/kwiki$ /kwiki/
+
+#   run-time URL aliasing
 Alias /kwiki/ @l_prefix@/var/kwiki/
 
+#   run-time directory configuration
 <Directory @l_prefix@/var/kwiki>
+    #   access control
     Order allow,deny
     Allow from all
-    AllowOverride None
+
+    #   local server configuration
+    AllowOverride All
     Options ExecCGI
-    AddHandler cgi-script .cgi
     DirectoryIndex index.cgi
-    #<Files admin.cgi>
-    #    Require user admin
-    #    AuthType Basic
-    #    AuthName Restricted
-    #    AuthUserFile @l_prefix@/var/kwiki/passwd
-    #</Files>
-    <Files passwd>
-        Order allow,deny
-        Deny from all
-    </Files>
-</Directory>
 
-<IfModule mod_perl.c>
-    <Location /kwiki>
-        SetHandler  perl-script
-        PerlHandler +Kwiki::ModPerl
-        PerlSetVar  KwikiBaseDir @l_prefix@/var/kwiki
-    </Location>
-</IfModule>
+    #   run-time engine selection
+    <IfModule mod_perl.c>
+        #   use accelerating mod_perl
+        <Files *.cgi>
+            SetHandler perl-script
+            PerlHandler Apache::Registry
+        </Files>
+        <Perl>
+            #   support optional lib/ subdir similar to index.cgi 
+            use lib "@l_prefix@/var/kwiki/lib";
+            #   pre-load all necessary modules
+            use Kwiki;
+            use IO::File;
+            my $io = new IO::File "<@l_prefix@/var/kwiki/plugins" or die;
+            my $run = ''; $run .= $_ while (<$io>);
+            $io->close();
+            $run =~ s|^(Kwiki::.+)$|use $1;|mg;
+            eval "$run";
+        </Perl>
+    </IfModule>
+    <IfModule !mod_perl.c>
+        #   use standardzed mod_cgi
+        AddHandler cgi-script .cgi
+    </IfModule>
+</Directory>
 

+ 1 - 1
kwiki/kwiki.spec

@@ -52,7 +52,7 @@
 %define       V_kwiki_shortcutlinks         0.02
 %define       V_kwiki_toolbar_list          0.01
 %define       V_kwiki_username              0.14
-%define       V_kwiki_userpreferences       0.12
+%define       V_kwiki_userpreferences       0.13
 %define       V_kwiki_vimmode               0.04
 %define       V_kwiki_authoronlypageediting 0.01
 %define       V_kwiki_breadcrumbs           0.12