4 open (KC, "/etc/koha.conf");
8 if (/(.*)\s*=\s*(.*)/) {
11 # Clean up white space at beginning and end
16 $configfile{$variable}=$value;
20 my $intranetdir=$configfile{'intranetdir'};
21 my $opacdir=$configfile{'opacdir'};
22 my $kohaversion=$configfile{'kohaversion'};
23 my $database=$configfile{'database'};
24 my $host=$configfile{'host'};
25 my $user=$configfile{'user'};
26 my $pass=$configfile{'pass'};
29 ($kohaversion) || ($kohaversion='unknown version');
30 my $newversion=`cat koha.version`;
39 You are attempting to upgrade from Koha $kohaversion to $newversion.
41 We recommend that you do a complete backup of all your files before upgrading.
42 This upgrade script will make a backup copy of your files for you.
44 Would you like to proceed? ([Y]/N):
50 if ($answer eq "Y" || $answer eq "y") {
51 print "Great! continuing upgrade... \n";
55 Aborting. Please re-run koha.upgrade when you are ready to upgrade Koha.
60 my $backupdir='/usr/local/koha/backups';
61 print "Please specify a backup directory [$backupdir]: ";
70 if (! -e $backupdir) {
71 my $result=mkdir ($backupdir, oct(770));
73 my @dirs = split(m#/#, $backupdir);
77 unless (-e "$checkdir") {
78 mkdir($checkdir, 0775);
84 chmod 0770, $backupdir;
86 # Backup MySql database
92 foreach my $mysql (qw(/usr/local/mysql
105 my ($sec, $min, $hr, $day, $month, $year) = (localtime(time))[0,1,2,3,4,5];
108 my $date= sprintf "%4d-%02d-%02d_%02d:%02d:%02d", $year, $month, $day,$hr,$min,$sec;
110 open (MD, "$mysqldir/bin/mysqldump --user=$user --password=$pass --host=$host $database|");
112 open BF, ">$backupdir/Koha.backup_$date";
116 my $biblioitemcounter=0;
120 (/insert into items /i) && ($itemcounter++);
121 (/insert into biblioitems /i) && ($biblioitemcounter++);
122 (/insert into biblio /i) && ($bibliocounter++);
123 (/insert into borrowers /i) && ($membercounter++);
131 my $filels=`ls -hl $backupdir/Koha.backup_$date`;
138 %6d biblioitems entries
144 Does this look right? ([Y]/N):
145 |, $bibliocounter, $biblioitemcounter, $itemcounter, $membercounter;
150 if ($answer=~/^n/i) {
153 Aborting. The database dump is located in:
155 $backupdir/Koha.backup_$date
160 print "Great! continuing upgrade... \n";
165 if ($opacdir && $intranetdir) {
168 I believe that your old files are located in:
171 INTRANET: $intranetdir
174 Does this look right? ([Y]/N):
179 if ($answer =~/n/i) {
183 print "Great! continuing upgrade... \n";
188 if (!$opacdir || !$intranetdir) {
191 while (!$intranetdir) {
192 print "Please specify the location of your INTRANET files: ";
198 $intranetdir=$answer;
200 if (! -e "$intranetdir/htdocs") {
201 print "\nCouldn't find the htdocs directory here. That doesn't look right.\nPlease enter another location.\n\n";
206 print "Please specify the location of your OPAC files: ";
214 if (! -e "$opacdir/htdocs") {
215 print "\nCouldn't find the htdocs directory here. That doesn't look right.\nPlease enter another location.\n\n";
223 print "\n\nBacking up old Koha scripts...\n";
224 print "===============================\n\n";
226 mkdir "$backupdir/kohafiles-$date", 0770;
227 mkdir "$backupdir/kohafiles-$date/intranet", 0770;
228 mkdir "$backupdir/kohafiles-$date/opac", 0770;
230 my $result=system("cp -R $intranetdir/* $backupdir/kohafiles-$date/intranet/");
232 print "Error encounted when copying $intranetdir to $backupdir/kohafiles-$date/intranet/\n";
235 system("rm -rf $intranetdir/*");
237 $result=system("cp -R $opacdir/* $backupdir/kohafiles-$date/opac/");
239 print "Error encounted when copying $opacdir to $backupdir/kohafiles-$date/opac/\n";
242 system("rm -rf $opacdir/*");
245 print "Creating $intranetdir/htdocs...\n";
246 mkdir ("$intranetdir/htdocs", oct(750));
247 print "Creating $intranetdir/cgi-bin...\n";
248 mkdir ("$intranetdir/cgi-bin", oct(750));
249 print "Creating $intranetdir/modules...\n";
250 mkdir ("$intranetdir/modules", oct(750));
251 print "Creating $intranetdir/scripts...\n";
252 mkdir ("$intranetdir/scripts", oct(750));
253 chmod (oct(770), "$opacdir");
254 print "Creating $opacdir/htdocs...\n";
255 mkdir ("$opacdir/htdocs", oct(750));
256 print "Creating $opacdir/cgi-bin...\n";
257 mkdir ("$opacdir/cgi-bin", oct(750));
262 foreach my $httpdconf (qw(/usr/local/apache/conf/httpd.conf
263 /usr/local/etc/apache/httpd.conf
264 /usr/local/etc/apache/apache.conf
265 /var/www/conf/httpd.conf
266 /etc/apache/conf/httpd.conf
267 /etc/apache/conf/apache.conf
268 /etc/apache-ssl/conf/apache.conf
269 /etc/httpd/conf/httpd.conf
270 /etc/httpd/httpd.conf)) {
271 if ( -f $httpdconf ) {
272 $realhttpdconf=$httpdconf;
273 open (HTTPDCONF, $httpdconf) or warn "Insufficient privileges to open $httpdconf for reading.\n";
274 while (<HTTPDCONF>) {
275 if (/^\s*User\s+"?([-\w]+)"?\s*$/) {
282 $httpduser ||= 'Undetermined';
284 print "\n\nINSTALLING KOHA...\n";
285 print "\n\n==================\n";
286 print "Copying internet-html files to $intranetdir/htdocs...\n";
287 system("cp -R intranet-html/* $intranetdir/htdocs/");
288 print "Copying intranet-cgi files to $intranetdir/cgi-bin...\n";
289 system("cp -R intranet-cgi/* $intranetdir/cgi-bin/");
290 print "Copying script files to $intranetdir/scripts...\n";
291 system("cp -R scripts/* $intranetdir/scripts/");
292 print "Copying module files to $intranetdir/modules...\n";
293 system("cp -R modules/* $intranetdir/modules/");
294 print "Copying opac-html files to $opacdir/htdocs...\n";
295 system("cp -R opac-html/* $opacdir/htdocs/");
296 print "Copying opac-cgi files to $opacdir/cgi-bin...\n";
297 system("cp -R opac-cgi/* $opacdir/cgi-bin/");
299 system("chown -R root.$httpduser $opacdir");
300 system("chown -R root.$httpduser $intranetdir");
308 system ("perl -I $intranetdir/modules scripts/updater/updatedatabase");
314 ==========================
315 = Koha Upgrade Completed =
316 ==========================
317 The Koha Upgrade is finished. If you are upgrading from a version of Koha
318 prior to 1.2.1, it is likely that you will have to modify your Apache
319 configuration to point it to the new files.
321 In your INTRANET VirtualHost section you should have:
322 DocumentRoot $intranetdir/htdocs
323 ScriptAlias /cgi-bin/koha/ $intranetdir/cgi-bin/
324 SetEnv PERL5LIB $intranetdir/modules
326 In the OPAC VirtualHost section you should have:
327 DocumentRoot $opacdir/htdocs
328 ScriptAlias /cgi-bin/koha/ $opacdir/cgi-bin/
329 SetEnv PERL5LIB $intranetdir/modules
331 You may also need to uncomment a "LoadModules env_module ... " line and restart
334 Please report any problems you encounter through http://bugs.koha.org/