5 open (KC, "/etc/koha.conf");
9 if (/(.*)\s*=\s*(.*)/) {
12 # Clean up white space at beginning and end
17 $configfile{$variable}=$value;
21 my $intranetdir=$configfile{'intranetdir'};
22 my $opacdir=$configfile{'opacdir'};
23 my $kohaversion=$configfile{'kohaversion'};
24 my $database=$configfile{'database'};
25 my $host=$configfile{'host'};
26 my $user=$configfile{'user'};
27 my $pass=$configfile{'pass'};
30 ($kohaversion) || ($kohaversion='unknown version');
31 my $newversion=`cat koha.version`;
40 You are attempting to upgrade from Koha $kohaversion to $newversion.
42 We recommend that you do a complete backup of all your files before upgrading.
43 This upgrade script will make a backup copy of your files for you.
45 Would you like to proceed? ([Y]/N):
51 if ($answer eq "Y" || $answer eq "y") {
52 print "Great! continuing upgrade... \n";
56 Aborting. Please re-run koha.upgrade when you are ready to upgrade Koha.
61 my $backupdir='/usr/local/koha/backups';
62 print "Please specify a backup directory [$backupdir]: ";
71 if (! -e $backupdir) {
72 my $result=mkdir ($backupdir, oct(770));
74 my @dirs = split(m#/#, $backupdir);
78 unless (-e "$checkdir") {
79 mkdir($checkdir, 0775);
85 chmod 0770, $backupdir;
87 # Backup MySql database
91 my ($sec, $min, $hr, $day, $month, $year) = (localtime(time))[0,1,2,3,4,5];
94 my $date= sprintf "%4d-%02d-%02d_%02d:%02d:%02d", $year, $month, $day,$hr,$min,$sec;
96 open (MD, "mysqldump --user=$user --password=$pass --host=$host $database|");
98 open BF, ">$backupdir/Koha.backup_$date";
102 my $biblioitemcounter=0;
106 (/insert into items /i) && ($itemcounter++);
107 (/insert into biblioitems /i) && ($biblioitemcounter++);
108 (/insert into biblio /i) && ($bibliocounter++);
109 (/insert into borrowers /i) && ($membercounter++);
117 my $filels=`ls -hl $backupdir/Koha.backup_$date`;
124 %6d biblioitems entries
130 Does this look right? ([Y]/N):
131 |, $bibliocounter, $biblioitemcounter, $itemcounter, $membercounter;
136 if ($answer=~/^n/i) {
139 Aborting. The database dump is located in:
141 $backupdir/Koha.backup_$date
146 print "Great! continuing upgrade... \n";
151 if ($opacdir && $intranetdir) {
154 I believe that your old files are located in:
157 INTRANET: $intranetdir
160 Does this look right? ([Y]/N):
165 if ($answer =~/n/i) {
169 print "Great! continuing upgrade... \n";
174 if (!$opacdir || !$intranetdir) {
177 while (!$intranetdir) {
178 print "Please specify the location of your INTRANET files: ";
184 $intranetdir=$answer;
186 if (! -e "$intranetdir/htdocs") {
187 print "\nCouldn't find the htdocs directory here. That doesn't look right.\nPlease enter another location.\n\n";
192 print "Please specify the location of your OPAC files: ";
200 if (! -e "$opacdir/htdocs") {
201 print "\nCouldn't find the htdocs directory here. That doesn't look right.\nPlease enter another location.\n\n";
209 print "\n\nBacking up old Koha scripts...\n";
210 print "===============================\n\n";
212 mkdir "$backupdir/kohafiles-$date", 0770;
213 mkdir "$backupdir/kohafiles-$date/intranet", 0770;
214 mkdir "$backupdir/kohafiles-$date/opac", 0770;
216 my $result=system("cp -R $intranetdir/* $backupdir/kohafiles-$date/intranet/");
218 print "Error encounted when copying $intranetdir to $backupdir/kohafiles-$date/intranet/\n";
221 system("rm -rf $intranetdir/*");
223 $result=system("cp -R $opacdir/* $backupdir/kohafiles-$date/opac/");
225 print "Error encounted when copying $opacdir to $backupdir/kohafiles-$date/opac/\n";
228 system("rm -rf $opacdir/*");
231 print "Creating $intranetdir/htdocs...\n";
232 mkdir ("$intranetdir/htdocs", oct(750));
233 print "Creating $intranetdir/cgi-bin...\n";
234 mkdir ("$intranetdir/cgi-bin", oct(750));
235 print "Creating $intranetdir/modules...\n";
236 mkdir ("$intranetdir/modules", oct(750));
237 print "Creating $intranetdir/scripts...\n";
238 mkdir ("$intranetdir/scripts", oct(750));
239 chmod (oct(770), "$opacdir");
240 print "Creating $opacdir/htdocs...\n";
241 mkdir ("$opacdir/htdocs", oct(750));
242 print "Creating $opacdir/cgi-bin...\n";
243 mkdir ("$opacdir/cgi-bin", oct(750));
248 foreach my $httpdconf (qw(/usr/local/apache/conf/httpd.conf
249 /usr/local/etc/apache/httpd.conf
250 /usr/local/etc/apache/apache.conf
251 /var/www/conf/httpd.conf
252 /etc/apache/conf/httpd.conf
253 /etc/apache/conf/apache.conf
254 /etc/apache-ssl/conf/apache.conf
255 /etc/httpd/conf/httpd.conf
256 /etc/httpd/httpd.conf)) {
257 if ( -f $httpdconf ) {
258 $realhttpdconf=$httpdconf;
259 open (HTTPDCONF, $httpdconf) or warn "Insufficient privileges to open $httpdconf for reading.\n";
260 while (<HTTPDCONF>) {
261 if (/^\s*User\s+"?([-\w]+)"?\s*$/) {
268 $httpduser ||= 'Undetermined';
270 print "\n\nINSTALLING KOHA...\n";
271 print "\n\n==================\n";
272 print "Copying internet-html files to $intranetdir/htdocs...\n";
273 system("cp -R intranet-html/* $intranetdir/htdocs/");
274 print "Copying intranet-cgi files to $intranetdir/cgi-bin...\n";
275 system("cp -R intranet-cgi/* $intranetdir/cgi-bin/");
276 print "Copying script files to $intranetdir/scripts...\n";
277 system("cp -R scripts/* $intranetdir/scripts/");
278 print "Copying module files to $intranetdir/modules...\n";
279 system("cp -R modules/* $intranetdir/modules/");
280 print "Copying opac-html files to $opacdir/htdocs...\n";
281 system("cp -R opac-html/* $opacdir/htdocs/");
282 print "Copying opac-cgi files to $opacdir/cgi-bin...\n";
283 system("cp -R opac-cgi/* $opacdir/cgi-bin/");
285 system("chown -R root.$httpduser $opacdir");
286 system("chown -R root.$httpduser $intranetdir");
294 system ("perl -I $intranetdir/modules scripts/updater/updatedatabase");
300 ==========================
301 = Koha Upgrade Completed =
302 ==========================
303 The Koha Upgrade is finished. If you are upgrading from a version of Koha
304 prior to 1.2.1, it is likely that you will have to modify your Apache
305 configuration to point it to the new files.
307 In your INTRANET VirtualHost section you should have:
308 DocumentRoot $intranetdir/htdocs
309 ScriptAlias /cgi-bin/koha/ $intranetroot/cgi-bin/
310 SetEnv PERL5LIB $intranetdir/modules
312 In the OPAC VirtualHost section you should have:
313 DocumentRoot $opacdir/htdocs
314 ScriptAlias /cgi-bin/koha/ $opacroot/cgi-bin/
315 SetEnv PERL5LIB $intranetdir/modules
317 You may also need to uncomment a "LoadModules env_module ... " line and restart
320 Please report any problems you encounter through http://bugs.koha.org/