-
-print qq|
-
-SETTING UP Z39.50 DAEMON
-========================
-|;
-
-my $kohalogdir='/var/log/koha';
-print "Directory for logging by Z39.50 daemon [$kohalogdir]: ";
-chomp($input = <STDIN>);
-if ($input) {
- $kohalogdir=$input;
-}
-
-unless (-e "$kohalogdir") {
- my $result = mkdir "$kohalogdir", 0770;
- if ($result==0) {
- my @dirs = split(m#/#, $kohalogdir);
- my $checkdir='';
- foreach (@dirs) {
- $checkdir.="$_/";
- unless (-e "$checkdir") {
- mkdir($checkdir, 0775);
- }
- }
- }
-}
-
-#
-# Setup the modules directory
-#
-print qq|
-
-CREATING REQUIRED DIRECTORIES
-=============================
-
-|;
-
-
-unless ( -d $kohadir ) {
- print "Creating $kohadir...\n";
- my $result=mkdir ($kohadir, 0770);
- if ($result==0) {
- my @dirs = split(m#/#, $kohadir);
- my $checkdir='';
- foreach (@dirs) {
- $checkdir.="$_/";
- unless (-e "$checkdir") {
- mkdir($checkdir, 0775);
- }
- }
- }
- chown (0, (getgrnam($httpduser))[2], "$kohadir");
- chmod (0770, "$kohadir");
-}
-unless ( -d "$kohadir/htdocs" ) {
- print "Creating $kohadir/htdocs...\n";
- mkdir ("$kohadir/htdocs", 0750);
-}
-unless ( -d "$kohadir/cgi-bin" ) {
- print "Creating $kohadir/cgi-bin...\n";
- mkdir ("$kohadir/cgi-bin", 0750);
-}
-unless ( -d "$kohadir/modules" ) {
- print "Creating $kohadir/modules...\n";
- mkdir ("$kohadir/modules", 0750);
-}
-unless ( -d "$kohadir/scripts" ) {
- print "Creating $kohadir/scripts...\n";
- mkdir ("$kohadir/scripts", 0750);
-}
-unless ( -d $opacdir ) {
- print "Creating $opacdir...\n";
- my $result=mkdir ($opacdir, 0770);
- if ($result==0) {
- my @dirs = split(m#/#, $opacdir);
- my $checkdir='';
- foreach (@dirs) {
- $checkdir.="$_/";
- unless (-e "$checkdir") {
- mkdir($checkdir, 0775);
- }
- }
- }
- chown (0, (getgrnam($httpduser))[2], "$opacdir");
- chmod (0770, "$opacdir");
-}
-unless ( -d "$opacdir/htdocs" ) {
- print "Creating $opacdir/htdocs...\n";
- mkdir ("$opacdir/htdocs", 0750);
-}
-unless ( -d "$opacdir/cgi-bin" ) {
- print "Creating $opacdir/cgi-bin...\n";
- mkdir ("$opacdir/cgi-bin", 0750);
-}
-
-
-
-print "\n\nINSTALLING KOHA...\n";
-print "\n\n==================\n";
-print "Copying internet-html files to $kohadir/htdocs...\n";
-system("cp -R intranet-html/* $kohadir/htdocs/");
-print "Copying intranet-cgi files to $kohadir/cgi-bin...\n";
-system("cp -R intranet-cgi/* $kohadir/cgi-bin/");
-print "Copying script files to $kohadir/scripts...\n";
-system("cp -R scripts/* $kohadir/scripts/");
-print "Copying module files to $kohadir/modules...\n";
-system("cp -R modules/* $kohadir/modules/");
-print "Copying opac-html files to $opacdir/htdocs...\n";
-system("cp -R opac-html/* $opacdir/htdocs/");
-print "Copying opac-cgi files to $opacdir/cgi-bin...\n";
-system("cp -R opac-cgi/* $opacdir/cgi-bin/");
-
-system("chown -R root.$httpduser $opacdir");
-system("chown -R root.$httpduser $kohadir");
-
-
-
-#Create the configuration file
-open(SITES,">$etcdir/koha.conf") or warn "Couldn't create file
-at $etcdir. Must have write capability.\n";
-print SITES <<EOP
-database=$dbname
-hostname=$hostname
-user=$user
-pass=$pass
-intrahtdocs=$kohadir/cgi-bin/koha-tmpl/intranet-tmpl
-opachtdocs=$kohadir/cgi-bin/koha-tmpl/opac-tmpl
-kohalogdir=$kohalogdir
-kohaversion=$kohaversion
-httpduser=$httpduser
-EOP
-;
-close(SITES);
-
-#
-# Set ownership of the koha.conf file for security
-#
-chown((getpwnam($httpduser)) [2,3], "$etcdir/koha.conf") or warn "can't chown koha.conf: $!";
-chmod 0440, "$etcdir/koha.conf";
-
-
-print qq|
-
-MYSQL CONFIGURATION
-===================
-|;
-my $mysql;
-my $mysqldir;
-my $mysqluser = 'root';
-my $mysqlpass = '';
-
-foreach my $mysql (qw(/usr/local/mysql
- /opt/mysql
- /usr
- )) {
- if ( -d $mysql ) {
- $mysqldir=$mysql;
- }
-}
-if (!$mysqldir){
- $mysqldir='/usr';
-}
-print qq|
-To allow us to create the koha database please supply the
-mysql\'s root users password
-|;
-
-my $needpassword=1;
-while ($needpassword) {
- print "Enter mysql\'s root users password: ";
- chomp($input = <STDIN>);
- $mysqlpass = $input;
- my $result=system("$mysqldir/bin/mysqladmin -u$mysqluser -p$mysqlpass proc > /dev/null 2>&1");
- if ($result) {
- print "\n\nInvalid password for the MySql root user.\n\n";
- } else {
- $needpassword=0;
- }
-}
-
-
-print qq|
-
-CREATING DATABASE
-=================
-|;
-my $result=system("$mysqldir/bin/mysqladmin -u$mysqluser -p$mysqlpass create $dbname");
-if ($result) {
- print "\nCouldn't connect to the MySQL server for the reason given above.\n";
- print "This is a serious problem, the database will not get installed.\a\n";
- print "Press <ENTER> to continue...";
- <STDIN>;
- print "\n";
-} else {
- system("$mysqldir/bin/mysql -u$mysqluser -p$mysqlpass $dbname < koha.mysql");
- system("$mysqldir/bin/mysql -u$mysqluser -p$mysqlpass mysql -e \"insert into user (Host,User,Password) values ('$hostname','$user',password('$pass'))\"\;");
- system("$mysqldir/bin/mysql -u$mysqluser -p$mysqlpass mysql -e \"insert into db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv, index_priv, alter_priv) values ('%','$dbname','$user','Y','Y','Y','Y','Y','Y','Y','Y')\"");
- system("$mysqldir/bin/mysqladmin -u$mysqluser -p$mysqlpass reload");
-
- system ("perl -I $kohadir/modules scripts/updater/updatedatabase");
-
-
- print qq|
-
-SAMPLE DATA
-===========
-If you are installing Koha for evaluation purposes, I have a batch of sample
-data that you can install now.
-
-If you are installing Koha with the intention of populating it with your own
-data, you probably don't want this sample data installed.
-|;#'
- print "\nWould you like to install the sample data? Y/[N]: ";
- chomp($input = <STDIN>);
- if ($input =~/^y/i) {
- system("gunzip sampledata-1.2.gz");
- system("cat sampledata-1.2 | $mysqldir/bin/mysql -u$mysqluser -p$mysqlpass $dbname");
- system("gzip -9 sampledata-1.2");
- system("$mysqldir/bin/mysql -u$mysqluser -p$mysqlpass $dbname -e \"insert into branches (branchcode,branchname,issuing) values ('MAIN', 'Main Library', 1)\"");
- system("$mysqldir/bin/mysql -u$mysqluser -p$mysqlpass $dbname -e \"insert into printers (printername,printqueue,printtype) values ('Circulation Desk Printer', 'lp', 'hp')\"");
- print qq|
-
-Sample data has been installed. For some suggestions on testing Koha, please
-read the file doc/HOWTO-Testing. If you find any bugs, please submit them at
-http://bugs.koha.org/. If you need help with testing Koha, you can post a
-question through the koha-devel mailing list, or you can check for a developer
-online at +irc.katipo.co.nz:6667 channel #koha.
-
-You can find instructions for subscribing to the Koha mailing lists at:
-
- http://www.koha.org
-
-
-Press <ENTER> to continue...
-|;
- <STDIN>;
- } else {
- print "\n\nWould you like to add a branch and printer? [Y]/N: ";
- chomp($input = <STDIN>);
-
-
- unless ($input =~/^n/i) {
- my $branch='Main Library';
- print "Enter a name for the library branch [$branch]: ";
- chomp($input = <STDIN>);
- if ($input) {
- $branch=$input;
- }
- $branch=~s/[^A-Za-z0-9\s]//g;
- my $branchcode=$branch;
- $branchcode=~s/[^A-Za-z0-9]//g;
- $branchcode=uc($branchcode);
- $branchcode=substr($branchcode,0,4);
- print "Enter a four letter code for your branch [$branchcode]: ";
- chomp($input = <STDIN>);
- if ($input) {
- $branchcode=$input;
- }
- $branchcode=~s/[^A-Z]//g;
- $branchcode=uc($branchcode);
- $branchcode=substr($branchcode,0,4);
- print "Adding branch '$branch' with code '$branchcode'.\n";
- system("$mysqldir/bin/mysql -u$mysqluser -p$mysqlpass $dbname -e \"insert into branches (branchcode,branchname,issuing) values ('$branchcode', '$branch', 1)\"");
- my $printername='Library Printer';
- print "Enter a name for the printer [$printername]: ";
- chomp($input = <STDIN>);
- if ($input) {
- $printername=$input;
- }
- $printername=~s/[^A-Za-z0-9\s]//g;
- my $printerqueue='lp';
- print "Enter the queue for the printer [$printerqueue]: ";
- chomp($input = <STDIN>);
- if ($input) {
- $printerqueue=$input;
- }
- $printerqueue=~s/[^A-Za-z0-9]//g;
- system("$mysqldir/bin/mysql -u$mysqluser -p$mysqlpass $dbname -e \"insert into printers (printername,printqueue,printtype) values ('$printername', '$printerqueue', '')\"");
- }
- }
-
-
-}
-
-print qq|
-
-UPDATING DATABASE (MARC TABLES)
-===============================
-|;
-
-$answer="";
-while ($answer ne "1" && $answer ne "2" && $answer ne "3") {
- print qq|
-You can import marc parameters for :
-1- english marc21 or for
-2- french unimarc.
-3- none.
-Please choose which parameter you want to install. Note if you choose 3, nothing will be added, and it can be a BIG job to manually create those tables
-|;
- $answer = <STDIN>;
- chomp $answer;
-}
-if ($answer eq "1") {
-system("cat script/misc/marc_datas/marc21_en/structure_def.sql | $mysqldir/bin/mysql -u$mysqluser -p$mysqlpass $dbname");
-}
-if ($answer eq "2") {
-system("cat scripts/misc/marc_datas/unimarc_fr/structure_def.sql | $mysqldir/bin/mysql -u$mysqluser -p$mysqlpass $dbname");
-system("cat scripts/misc/lang-datas/fr/stopwords.sql | $mysqldir/bin/mysql -u$mysqluser -p$mysqlpass $dbname");
-}
-
-#system ("perl -I $kohadir/modules scripts/marc/fill_usmarc.pl");
-system ("perl -I $kohadir/modules scripts/marc/updatedb2marc.pl");
-
-chmod 0770, $kohalogdir;
-chown((getpwnam($httpduser)) [2,3], $kohalogdir) or warn "can't chown $kohalogdir: $!";
-
-# LAUNCH SCRIPT
-print "Modifying Z39.50 daemon launch script...\n";
-my $newfile='';
-open (L, "$kohadir/scripts/z3950daemon/z3950-daemon-launch.sh");
-while (<L>) {
- if (/^RunAsUser=/) {
- $newfile.="RunAsUser=$httpduser\n";
- } elsif (/^KohaZ3950Dir=/) {
- $newfile.="KohaZ3950Dir=$kohadir/scripts/z3950daemon\n";
- } else {
- $newfile.=$_;
- }
-}
-close L;
-system("mv $kohadir/scripts/z3950daemon/z3950-daemon-launch.sh $kohadir/scripts/z3950daemon/z3950-daemon-launch.sh.orig");
-open L, ">$kohadir/scripts/z3950daemon/z3950-daemon-launch.sh";
-print L $newfile;
-close L;
-
-
-# SHELL SCRIPT
-print "Modifying Z39.50 daemon wrapper script...\n";
-$newfile='';
-open (S, "$kohadir/scripts/z3950daemon/z3950-daemon-shell.sh");
-while (<S>) {
- if (/^KohaModuleDir=/) {
- $newfile.="KohaModuleDir=$kohadir/modules\n";
- } elsif (/^KohaZ3950Dir=/) {
- $newfile.="KohaZ3950Dir=$kohadir/scripts/z3950daemon\n";
- } elsif (/^LogDir=/) {
- $newfile.="LogDir=$kohalogdir\n";
- } else {
- $newfile.=$_;
- }
-}
-close S;
-
-system("mv $kohadir/scripts/z3950daemon/z3950-daemon-shell.sh $kohadir/scripts/z3950daemon/z3950-daemon-shell.sh.orig");
-open S, ">$kohadir/scripts/z3950daemon/z3950-daemon-shell.sh";
-print S $newfile;
-close S;
-chmod 0750, "$kohadir/scripts/z3950daemon/z3950-daemon-launch.sh";
-chmod 0750, "$kohadir/scripts/z3950daemon/z3950-daemon-shell.sh";
-chmod 0750, "$kohadir/scripts/z3950daemon/processz3950queue";
-chown(0, (getpwnam($httpduser)) [3], "$kohadir/scripts/z3950daemon/z3950-daemon-shell.sh") or warn "can't chown $kohadir/scripts/z3950daemon/z3950-daemon-shell.sh: $!";
-chown(0, (getpwnam($httpduser)) [3], "$kohadir/scripts/z3950daemon/processz3950queue") or warn "can't chown $kohadir/scripts/z3950daemon/processz3950queue: $!";
-
-
-#RESTART APACHE
-print "\n\n";
-print qq|
-
-COMPLETED
-=========
-Congratulations ... your Koha installation is almost complete!
-The final step is to restart your webserver.
-
-You will be able to connect to your Librarian interface at:
-
- http://$servername\:$kohaport/
-
-and the OPAC interface at :
-
- http://$servername\:$opacport/
-
-
-Be sure to read the INSTALL, and Hints files.
-
-For more information visit http://www.koha.org
-
-Would you like to restart your webserver now? (Y/[N]):
-|;
-
-my $restart = <STDIN>;
-chomp $restart;
-
-if ($restart=~/^y/i) {
- # Need to support other init structures here?
- if (-e "/etc/rc.d/init.d/httpd") {
- system('/etc/rc.d/init.d/httpd restart');
- } elsif (-e "/etc/init.d/apache") {
- system('/etc//init.d/apache restart');
- } elsif (-e "/etc/init.d/apache-ssl") {
- system('/etc/init.d/apache-ssl restart');
- }
- } else {
- print qq|
-Congratulations ... your Koha installation is complete!
-You will need to restart your webserver before using Koha!
-|;
- exit;
-};