View | Details | Raw Unified | Return to bug 9316
Collapse All | Expand All

(-)a/Makefile.PL (-2 / +83 lines)
Lines 345-350 Koha from a git clone with no fuss). Link Here
345
Directory under which most components will go.  Default
345
Directory under which most components will go.  Default
346
value will vary depending on INSTALL_MODE.
346
value will vary depending on INSTALL_MODE.
347
347
348
=item WEBSERVER
349
350
Type of WebServer ( Apache2 or NGINX).
351
352
=item INTRANET_DNS
353
354
Set the DNS entry for staff client
355
356
=item OPAC_DNS
357
358
Set the DNS entry for OPAC
359
360
=item INTRANET_PORT
361
362
Set the port for the staff client
363
364
=item OPAC_PORT
365
366
Set the port for the OPAC
367
348
=item DB_TYPE
368
=item DB_TYPE
349
369
350
Type of DBMS (e.g., mysql or Pg).
370
Type of DBMS (e.g., mysql or Pg).
Lines 405-410 System group that will own Koha's files. Link Here
405
425
406
# default configuration options
426
# default configuration options
407
my %config_defaults = (
427
my %config_defaults = (
428
  'WEBSERVER'         => 'apache2',
429
  'INTRANET_DNS'      => 'localhost',
430
  'OPAC_DNS'          => 'localhost',
431
  'INTRANET_PORT'     => '8080',
432
  'OPAC_PORT'         => '80',
408
  'DB_TYPE'           => 'mysql',
433
  'DB_TYPE'           => 'mysql',
409
  'DB_HOST'           => 'localhost',
434
  'DB_HOST'           => 'localhost',
410
  'DB_NAME'           => 'koha',
435
  'DB_NAME'           => 'koha',
Lines 464-469 else { Link Here
464
my %valid_config_values = (
489
my %valid_config_values = (
465
  'INSTALL_MODE'  => { 'standard' => 1, 'single' => 1, 'dev' => 1 },
490
  'INSTALL_MODE'  => { 'standard' => 1, 'single' => 1, 'dev' => 1 },
466
  'DB_TYPE' => { 'mysql' => 1, 'Pg' => 1 },
491
  'DB_TYPE' => { 'mysql' => 1, 'Pg' => 1 },
492
  'WEBSERVER' => { 'apache2' => 1, 'nginx' => 1 },
467
  'INSTALL_ZEBRA' => { 'yes' => 1, 'no' => 1 },
493
  'INSTALL_ZEBRA' => { 'yes' => 1, 'no' => 1 },
468
  'INSTALL_SRU' => { 'yes' => 1, 'no' => 1 },
494
  'INSTALL_SRU' => { 'yes' => 1, 'no' => 1 },
469
  'AUTH_INDEX_MODE' => { 'grs1' => 1, 'dom' => 1 },
495
  'AUTH_INDEX_MODE' => { 'grs1' => 1, 'dom' => 1 },
Lines 496-510 get_file_map($target_map, $dirtree, $file_map, $config{'INSTALL_ZEBRA'} eq "yes" Link Here
496
my $pl_files = {
522
my $pl_files = {
497
      'rewrite-config.PL' => [
523
      'rewrite-config.PL' => [
498
         'blib/KOHA_CONF_DIR/koha-conf.xml',
524
         'blib/KOHA_CONF_DIR/koha-conf.xml',
499
         'blib/KOHA_CONF_DIR/koha-httpd.conf',
525
         'blib/KOHA_CONF_DIR/koha-nginx.conf',
500
         'blib/ZEBRA_CONF_DIR/etc/default.idx',
526
         'blib/ZEBRA_CONF_DIR/etc/default.idx',
501
         'blib/MISC_DIR/koha-install-log'
527
         'blib/MISC_DIR/koha-install-log',
502
         ],
528
         ],
503
	  'fix-perl-path.PL' => [	# this script ensures the correct shebang line for the platform installed on...
529
	  'fix-perl-path.PL' => [	# this script ensures the correct shebang line for the platform installed on...
504
		 'blib'
530
		 'blib'
505
		 ],
531
		 ],
506
};
532
};
507
533
534
if ($config{'WEBSERVER'} eq "apache2"){
535
    push @{ $pl_files->{'rewrite-config.PL'} }, (
536
	'blib/KOHA_CONF_DIR/koha-httpd.conf',
537
    );
538
}
539
else {
540
    push @{ $pl_files->{'rewrite-config.PL'} }, (
541
	'blib/SCRIPT_DIR/koha.psgi',
542
	'blib/SCRIPT_DIR/koha-plack.sh',
543
    );
544
}
545
508
if ($config{'INSTALL_ZEBRA'} eq "yes") {
546
if ($config{'INSTALL_ZEBRA'} eq "yes") {
509
    push @{ $pl_files->{'rewrite-config.PL'} }, (
547
    push @{ $pl_files->{'rewrite-config.PL'} }, (
510
        'blib/ZEBRA_CONF_DIR/etc/passwd',
548
        'blib/ZEBRA_CONF_DIR/etc/passwd',
Lines 559-564 my %test_suite_override_dirs = ( Link Here
559
    ZEBRA_LOCK_DIR => ['var', 'lock', 'zebradb'],
597
    ZEBRA_LOCK_DIR => ['var', 'lock', 'zebradb'],
560
    ZEBRA_DATA_DIR => ['var', 'lib', 'zebradb'],
598
    ZEBRA_DATA_DIR => ['var', 'lib', 'zebradb'],
561
    ZEBRA_RUN_DIR  => ['var', 'run', 'zebradb'],
599
    ZEBRA_RUN_DIR  => ['var', 'run', 'zebradb'],
600
    PLACK_RUN_DIR  => ['var', 'run', 'plack'],
562
);
601
);
563
602
564
WriteMakefile(
603
WriteMakefile(
Lines 865-870 Group); Link Here
865
    }
904
    }
866
905
867
    $msg = q(
906
    $msg = q(
907
Please specify which WebServer you will use
908
to serve data in Koha.  The choices are Apache2 and
909
NGINX; please note that at the moment
910
NGINX support is highly experimental.
911
912
WebServer to use);
913
    $msg .= _add_valid_values_disp('WEBSERVER', $valid_values);
914
    $config{'WEBSERVER'} = _get_value('WEBSERVER', $msg, $defaults->{'WEBSERVER'}, $valid_values, $install_log_values);
915
916
    $msg = q(
917
Please specify which WebServer you will use
918
to serve data in Koha.  The choices are Apache2 and
919
NGINX; please note that at the moment
920
NGINX support is highly experimental.
921
922
Intranet DNS Settings);
923
    $config{'INTRANET_DNS'} = _get_value('INTRANET_DNS', $msg, $defaults->{'INTRANET_DNS'}, $valid_values, $install_log_values);
924
925
    $msg = q(
926
Please specify if you would like a DNS
927
entry for the Koha Staff Client.
928
929
OPAC DNS Settings);
930
    $config{'OPAC_DNS'} = _get_value('OPAC_DNS', $msg, $defaults->{'OPAC_DNS'}, $valid_values, $install_log_values);
931
932
    $msg = q(
933
Please specify the port you would
934
like the Koha Staff Client to use.
935
936
Intranet Port Settings);
937
    $config{'INTRANET_PORT'} = _get_value('INTRANET_PORT', $msg, $defaults->{'INTRANET_PORT'}, $valid_values, $install_log_values);
938
    $msg = q(
939
Please specify if you would like a DNS
940
entry for the Koha Staff Client.
941
942
OPAC Port Settings);
943
    $config{'OPAC_PORT'} = _get_value('OPAC_PORt', $msg, $defaults->{'OPAC_PORT'}, $valid_values, $install_log_values);
944
945
    $msg = q(
868
Please specify which database engine you will use
946
Please specify which database engine you will use
869
to store data in Koha.  The choices are MySQL and
947
to store data in Koha.  The choices are MySQL and
870
PostgreSQL; please note that at the moment
948
PostgreSQL; please note that at the moment
Lines 1237-1242 sub get_target_directories { Link Here
1237
        $dirmap{'BACKUP_DIR'} =  File::Spec->catdir(@basedir, $package, 'var', 'spool');
1315
        $dirmap{'BACKUP_DIR'} =  File::Spec->catdir(@basedir, $package, 'var', 'spool');
1238
        $dirmap{'ZEBRA_DATA_DIR'} =  File::Spec->catdir(@basedir, $package, 'var', 'lib', 'zebradb');
1316
        $dirmap{'ZEBRA_DATA_DIR'} =  File::Spec->catdir(@basedir, $package, 'var', 'lib', 'zebradb');
1239
        $dirmap{'ZEBRA_RUN_DIR'} =  File::Spec->catdir(@basedir, $package, 'var', 'run', 'zebradb');
1317
        $dirmap{'ZEBRA_RUN_DIR'} =  File::Spec->catdir(@basedir, $package, 'var', 'run', 'zebradb');
1318
        $dirmap{'PLACK_RUN_DIR'} =  File::Spec->catdir(@basedir, $package, 'var', 'run', 'plack');
1240
    } elsif ($mode eq 'dev') {
1319
    } elsif ($mode eq 'dev') {
1241
        my $curdir = File::Spec->rel2abs(File::Spec->curdir());
1320
        my $curdir = File::Spec->rel2abs(File::Spec->curdir());
1242
        $dirmap{'INTRANET_CGI_DIR'} = File::Spec->catdir($curdir);
1321
        $dirmap{'INTRANET_CGI_DIR'} = File::Spec->catdir($curdir);
Lines 1267-1272 sub get_target_directories { Link Here
1267
        $dirmap{'BACKUP_DIR'} =  File::Spec->catdir(@basedir, $package, 'var', 'spool');
1346
        $dirmap{'BACKUP_DIR'} =  File::Spec->catdir(@basedir, $package, 'var', 'spool');
1268
        $dirmap{'ZEBRA_DATA_DIR'} =  File::Spec->catdir(@basedir, $package, 'var', 'lib', 'zebradb');
1347
        $dirmap{'ZEBRA_DATA_DIR'} =  File::Spec->catdir(@basedir, $package, 'var', 'lib', 'zebradb');
1269
        $dirmap{'ZEBRA_RUN_DIR'} =  File::Spec->catdir(@basedir, $package, 'var', 'run', 'zebradb');
1348
        $dirmap{'ZEBRA_RUN_DIR'} =  File::Spec->catdir(@basedir, $package, 'var', 'run', 'zebradb');
1349
        $dirmap{'PLACK_RUN_DIR'} =  File::Spec->catdir(@basedir, $package, 'var', 'run', 'plack');
1270
    } else {
1350
    } else {
1271
        # mode is standard, i.e., 'fhs'
1351
        # mode is standard, i.e., 'fhs'
1272
        $dirmap{'INTRANET_CGI_DIR'} = File::Spec->catdir(@basedir, $package, 'intranet', 'cgi-bin');
1352
        $dirmap{'INTRANET_CGI_DIR'} = File::Spec->catdir(@basedir, $package, 'intranet', 'cgi-bin');
Lines 1289-1294 sub get_target_directories { Link Here
1289
        $dirmap{'BACKUP_DIR'} =  File::Spec->catdir(File::Spec->rootdir(), 'var', 'spool', $package);
1369
        $dirmap{'BACKUP_DIR'} =  File::Spec->catdir(File::Spec->rootdir(), 'var', 'spool', $package);
1290
        $dirmap{'ZEBRA_DATA_DIR'} =  File::Spec->catdir(File::Spec->rootdir(), 'var', 'lib', $package, 'zebradb');
1370
        $dirmap{'ZEBRA_DATA_DIR'} =  File::Spec->catdir(File::Spec->rootdir(), 'var', 'lib', $package, 'zebradb');
1291
        $dirmap{'ZEBRA_RUN_DIR'} =  File::Spec->catdir(File::Spec->rootdir(), 'var', 'run', $package, 'zebradb');
1371
        $dirmap{'ZEBRA_RUN_DIR'} =  File::Spec->catdir(File::Spec->rootdir(), 'var', 'run', $package, 'zebradb');
1372
        $dirmap{'PLACK_RUN_DIR'} =  File::Spec->catdir(File::Spec->rootdir(), 'var', 'run', $package, 'plack');
1292
    }
1373
    }
1293
1374
1294
    _get_env_overrides(\%dirmap);
1375
    _get_env_overrides(\%dirmap);
(-)a/etc/koha-httpd.conf (-6 / +6 lines)
Lines 3-13 Link Here
3
#NameVirtualHost *
3
#NameVirtualHost *
4
4
5
## OPAC
5
## OPAC
6
<VirtualHost __WEBSERVER_IP__:__WEBSERVER_PORT__>
6
<VirtualHost __OPAC_DNS__:__OPAC_PORT__>
7
   ServerAdmin  __WEBMASTER_EMAIL__
7
   ServerAdmin  __WEBMASTER_EMAIL__
8
   DocumentRoot __OPAC_WWW_DIR__
8
   DocumentRoot __OPAC_WWW_DIR__
9
   ServerName __WEBSERVER_HOST__
9
   ServerName __OPAC_DNS__:__OPAC_PORT__
10
#  ServerAlias opac.mydomain.com
10
#  ServerAlias __OPAC_DNS__
11
   ScriptAlias /cgi-bin/koha/ "__OPAC_CGI_DIR__/opac/"
11
   ScriptAlias /cgi-bin/koha/ "__OPAC_CGI_DIR__/opac/"
12
   ScriptAlias /index.html "__OPAC_CGI_DIR__/opac/opac-main.pl"
12
   ScriptAlias /index.html "__OPAC_CGI_DIR__/opac/opac-main.pl"
13
   ScriptAlias /opac-search.pl "__OPAC_CGI_DIR__/opac/opac-search.pl"
13
   ScriptAlias /opac-search.pl "__OPAC_CGI_DIR__/opac/opac-search.pl"
Lines 97-107 Link Here
97
</VirtualHost>
97
</VirtualHost>
98
98
99
## Intranet
99
## Intranet
100
<VirtualHost __WEBSERVER_IP__:__WEBSERVER_PORT_LIBRARIAN__>
100
<VirtualHost __INTRANET_DNS__:__INTRANET_PORT__>
101
   ServerAdmin __WEBMASTER_EMAIL__
101
   ServerAdmin __WEBMASTER_EMAIL__
102
   DocumentRoot __INTRANET_WWW_DIR__
102
   DocumentRoot __INTRANET_WWW_DIR__
103
   ServerName __WEBSERVER_HOST__:__WEBSERVER_PORT_LIBRARIAN__
103
   ServerName __INTRANET_DNS__:__INTRANET_PORT__
104
#  ServerAlias intranet.mydomain.com
104
#  ServerAlias __INTRANET_DNS__
105
   ScriptAlias /cgi-bin/koha/ "__INTRANET_CGI_DIR__/"
105
   ScriptAlias /cgi-bin/koha/ "__INTRANET_CGI_DIR__/"
106
   ScriptAlias /index.html "__INTRANET_CGI_DIR__/mainpage.pl"
106
   ScriptAlias /index.html "__INTRANET_CGI_DIR__/mainpage.pl"
107
   ScriptAlias /search "__INTRANET_CGI_DIR__/search.pl"
107
   ScriptAlias /search "__INTRANET_CGI_DIR__/search.pl"
(-)a/etc/koha-nginx.conf (+52 lines)
Line 0 Link Here
1
upstream backendurl {
2
      server unix:__PLACK_RUN_DIR__/plack.sock;
3
}
4
5
server {
6
    listen __OPAC_PORT__;
7
    server_name __OPAC_DNS__;
8
    access_log  __LOG_DIR__/nginx-opac-access.log;
9
    root        __OPAC_WWW_DIR__;
10
11
    rewrite ^/$ /cgi-bin/koha/opac-main.pl;
12
    rewrite ^/cgi-bin/koha/(.*)$ /cgi-bin/koha/opac/$1;
13
14
    location    / {
15
        try_files $uri @plack;
16
    }
17
    location /opac-tmpl/ {
18
        root __OPAC_TMPL_DIR__;
19
     }	
20
21
    location @plack {
22
        proxy_set_header Host $http_host;
23
        proxy_set_header X-Forwarded-Host $host;
24
        proxy_set_header X-Real-IP $remote_addr;
25
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
26
        proxy_pass  http://backendurl;
27
    }
28
}
29
30
server {
31
    listen __INTRANET_PORT__;
32
    server_name __INTRANET_DNS__;
33
    access_log  __LOG_DIR__/nginx-intranet-access.log;
34
    root        __INTRANET_WWW_DIR__;
35
36
    rewrite ^/$ /cgi-bin/koha/mainpage.pl;
37
38
    location    / {
39
        try_files $uri @plack;
40
    }
41
    location /intranet-tmpl/ {
42
        root __INTRANET_TMPL_DIR__;
43
     }	
44
45
    location @plack {
46
        proxy_set_header Host $http_host;
47
        proxy_set_header X-Forwarded-Host $host;
48
        proxy_set_header X-Real-IP $remote_addr;
49
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
50
        proxy_pass  http://backendurl;
51
    }
52
}  
(-)a/misc/bin/koha-plack.sh (+72 lines)
Line 0 Link Here
1
#!/bin/sh -e
2
    
3
# This file is part of Koha.
4
#   
5
# Koha is free software; you can redistribute it and/or modify it under the
6
# terms of the GNU General Public License as published by the Free Software
7
# Foundation; either version 3 of the License, or (at your option) any later
8
# version.
9
#
10
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
11
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
12
# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
13
#
14
# You should have received a copy of the GNU General Public License along with
15
# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
16
# Suite 330, Boston, MA  02111-1307 USA
17
18
### BEGIN INIT INFO# Provides:          koha-plack
19
# Required-Start:    $syslog $remote_fs
20
# Required-Stop:     $syslog $remote_fs# Default-Start:     2 3 4 5
21
# Default-Stop:      0 1 6# Short-Description: Plack server for Koha
22
### END INIT INFO
23
24
export KOHA_CONF=__KOHA_CONF_DIR__/koha-conf.xml
25
#export OPACDIR=__OPAC_WWW_DIR__
26
#export INTRANETDIR=__OPAC_WWW_DIR__
27
export LOGDIR=__LOG_DIR__
28
USER=__KOHA_USER__
29
USER=__KOHA_GROUP__
30
RUNDIR=__PLACK_RUN_DIR__
31
PIDFILE=$RUNDIR/plack.pid
32
33
# Use one of these lines to choose between TCP port and UNIX socket listeners
34
SOCKET=$RUNDIR/plack.sock
35
#PORT=5000
36
37
case "$1" in
38
    start)
39
	echo "Starting Koha Plack Daemon"
40
41
      # create run and lock directories if needed;
42
      # /var/run and /var/lock are completely cleared at boot
43
      # on some platforms
44
      if [[ ! -d $RUNDIR ]]; then
45
        umask 022
46
        mkdir -p $RUNDIR
47
        if [[ $EUID -eq 0 ]]; then
48
            chown $USER:$GROUP $RUNDIR
49
        fi
50
      fi
51
52
        opt="$opt --access-log $LOGDIR/koha-access.log --error-log $LOGDIR/koha-error.log"
53
        opt="$opt -M FindBin --max-requests 50 --workers 2 -E deployment"
54
        if [ $SOCKET ]; then
55
            opt="$opt --listen $SOCKET -D --pid $PIDFILE"
56
        elif [ $PORT ]; then
57
            opt="$opt --port $PORT -D --pid $PIDFILE"
58
        fi
59
        starman $opt __SCRIPT_DIR__/koha.psgi
60
61
        if [ $SOCKET ]; then
62
            chown $USER:$GROUP $SOCKET
63
        fi
64
        ;;
65
    stop)
66
        start-stop-daemon --stop --pidfile $PIDFILE
67
        ;;
68
    *)
69
        echo "Usage: koha-plack {start|stop}"
70
        exit 1
71
        ;;
72
esac
(-)a/misc/bin/koha.psgi (+44 lines)
Line 0 Link Here
1
#!/usr/bin/perl
2
    
3
BEGIN {
4
    $ENV{'KOHA_CONF'} = '__KOHA_CONF_DIR__/koha-conf.xml';
5
    $ENV{'PERL5LIB'} = '__PERL_MODULE_DIR__';
6
}
7
    
8
use lib("__PERL_MODULE_DIR__");
9
use lib("__PERL_MODULE_DIR__/installer");
10
use Plack::Builder; 
11
use Plack::App::CGIBin;
12
use Plack::App::Directory;
13
use Plack::Middleware::Debug;
14
use Plack::App::URLMap;
15
use C4::Context;
16
use C4::Languages;
17
use C4::Members;
18
use C4::Dates;
19
use C4::Boolean;
20
use C4::Letters;
21
use C4::Koha;
22
use C4::XSLT;   
23
use C4::Branch;
24
use C4::Category;         
25
26
C4::Context->disable_syspref_cache();
27
28
my $intra=Plack::App::CGIBin->new(root => "__INTRANET_CGI_DIR__" );
29
30
my $opac = Plack::App::CGIBin->new(root => "__OPAC_CGI_DIR__");
31
32
builder {
33
    enable 'Debug',  panels => [
34
        qw(Environment Response Timer Memory),
35
               [ 'DBITrace', level => 1 ],
36
        ];
37
38
    enable "Plack::Middleware::Static";
39
40
    enable 'StackTrace';
41
42
    mount '/cgi-bin/koha/' => $intra;
43
    mount '/cgi-bin/koha/opac' => $opac;
44
};
(-)a/rewrite-config.PL (-1 / +6 lines)
Lines 82-87 $prefix = $ENV{'INSTALL_BASE'} || "/usr"; Link Here
82
%configuration = (
82
%configuration = (
83
  "__KOHA_INSTALLED_VERSION__" => "no_version_found",
83
  "__KOHA_INSTALLED_VERSION__" => "no_version_found",
84
  "__LOG_DIR__" => "/var/log",
84
  "__LOG_DIR__" => "/var/log",
85
  "__WEBSERVER__" => "apache2",
86
  "__INTRANET_DNS__" => "localhost",
87
  "__OPAC_DNS__" => "localhost",
88
  "__OPAC_PORT__" => "80",
89
  "__INTRANET_PORT__" => "8080",
85
  "__DB_TYPE__" => "mysql",
90
  "__DB_TYPE__" => "mysql",
86
  "__DB_NAME__" => "koha",
91
  "__DB_NAME__" => "koha",
87
  "__DB_HOST__" => $myhost,
92
  "__DB_HOST__" => $myhost,
Lines 119-124 $prefix = $ENV{'INSTALL_BASE'} || "/usr"; Link Here
119
  '__ZEBRA_LOCK_DIR__' => "$prefix/var/lock/zebradb",
124
  '__ZEBRA_LOCK_DIR__' => "$prefix/var/lock/zebradb",
120
  '__ZEBRA_DATA_DIR__' => "$prefix/var/lib/zebradb",
125
  '__ZEBRA_DATA_DIR__' => "$prefix/var/lib/zebradb",
121
  '__ZEBRA_RUN_DIR__' => "$prefix/var/run/zebradb",
126
  '__ZEBRA_RUN_DIR__' => "$prefix/var/run/zebradb",
127
  '__PLACK_RUN_DIR__' => "$prefix/var/run/plack",
122
  '__ZEBRA_MARC_FORMAT__' => 'marc21',
128
  '__ZEBRA_MARC_FORMAT__' => 'marc21',
123
  '__ZEBRA_LANGUAGE__' => 'en',
129
  '__ZEBRA_LANGUAGE__' => 'en',
124
  '__ZEBRA_TOKENIZER_STMT__' => 'charmap word-phrase-utf.chr',
130
  '__ZEBRA_TOKENIZER_STMT__' => 'charmap word-phrase-utf.chr',
125
- 

Return to bug 9316