Bug 6807 - Add ISBN filter to advanced order search.
[wip/koha-chris_n.git] / INSTALL.opensuse
1 = Installation Guide for Installing Koha 3.0.0 on openSUSE 11.3 =
2
3 Original version for openSUSE 11.0 created by Ricardo Dias Marques - koha@ricmarques.net
4 Version for openSUSE 11.3 adapted by Freek de Kruijf - freek -at- opensuse -dot- org
5
6 No liability for the contents of this document can be accepted.
7
8 Feedback/bug reports: Koha Developer's List: 
9
10 http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel
11
12 This document last modified: 15 Oct 2010
13
14 == Installation Instructions ==
15
16 This document was prepared in order to help you discover (or test) Koha (Integrated Library System).
17
18 The installation of Linux system described below is a basic, it is not designed for a production server (e.g., security, load balancing ... are not described).
19
20 This document describes the different stages of installing the software Koha 3 on the openSUSE 11.3 Linux distribution in a "new" computer, the author uses a VirtualBox virtual machine, that is, a virtual computer that will have its virtual hard disk contents COMPLETELY ERASED to install openSUSE and Koha!
21
22 In this example, the virtual machine uses a bridged network connection, which mimics a separate computer in the local network, it's assumed that your server gets an IP address by DHCP that later will be changed to 192.168.1.16. 
23
24 You'll have to change this to the real IP address that your machine should get (or use DHCP, if that's the case).
25
26 This tutorial assumes a Koha installation that does NOT use Zebra ("Zebra is a high-performance, general-purpose structured text indexing and retrieval engine" - http://www.indexdata.dk/zebra/). Additional steps would be required to set up Zebra for Koha, however it will be installed.
27
28 === LINUX System Installation ===
29
30 Download openSUSE 11.3 DVD from [http://software.opensuse.org/ here].
31
32 Place the DVD in the drive and restart the machine. In the case of a virtualmachine the iso image is still on the disc and you connect it as a DVD to the virtual machine.
33
34 After the "Welcome" screen, you'll get a First menu, with the following options:
35
36 ----
37 Boot from Hard Disk 
38
39 Installation
40
41 Repair Installed System
42
43 Rescue System
44
45 Firmware Test 
46
47 Memory Test
48 ----
49
50 You may want to change the screen size to 1024 x 768 by pressing F3.
51 Choose "Installation" (second command)
52
53 ==== "Initializing" screen ====
54
55 (Dialog box appears saying "Probing Mouse")
56
57 ==== "Welcome" screen ====
58
59 You'll see two Dropdown Lists: "Language" and "Keyboard Layout"
60
61 This depends of your place and preference, naturally. 
62 I live in The Netherlands, and we use the English (US) Keyboard Layout but I prefer an Operating System in English. 
63 So I leave the default option selected for "Language"  and "Keyboard Layout" to (English (US)).
64
65 Check the "I Agree to the License Terms" checkbox (under the "License Agreement" textbox).
66
67 Click the "Next" button.
68
69 ==== "System Probing" screen ====
70
71 [just watch it...]
72
73 ==== "Installation Mode" screen ====
74
75 Leave "New Installation" radio button checked
76
77 I prefer not to have the "Automatic Configuration" so this option is unchecked.
78 It gives you the possibility to specify the name of the system and the network setup.
79
80 Click the "Next" button
81
82 ==== "Initializing" screen ====
83
84 [just watch it...]
85
86 ==== "Clock and Time Zone" screen ====
87
88 I do this work in Yemen, so I select the following options:
89
90 "Region" listbox: click on "Asia"
91
92 "Time Zone" listbox: click on "Aden"
93
94 I leave the "Hardware Clock Set To UTC" checkbox checked.
95
96 Click the "Next" button
97
98 ==== "Desktop Selection" screen ====
99
100 You should see three radio buttons: "GNOME Desktop", "KDE Desktop" and "Other".
101
102 Click on the "Other" radio button.
103
104 Four radio buttons should become visible then:
105
106 "XFCE Desktop"
107
108 "LXDE Desktop"
109
110 "Minimal X Window"
111
112 "Minimal Server Selection (Text Mode)"
113
114 click on this last "Minimal Server Selection (Text Mode)" radio button.
115
116 Click the "Next" button
117
118 ==== "Suggested Partitioning" screen ====
119
120 Partitioning choices are really up to you. In this example, I started with a 8 GB virtual disc and I will create a 1000 MB swap partition and the rest is the root "/" partition.
121
122 So, to do this I click on the "Create Partition Setup..." button.
123
124 ===== "Preparing Hard Disk: Step 1" screen =====
125
126 I click on the first radio button:
127 "1: 1.IDE 8.0 GB,/dev/sda"
128
129 I click the "Next" button
130
131 ===== "Preparing Hard Disk: Step 2" screen =====
132
133 I uncheck the "Propose separate Home Partition" checkbox.
134
135 I click the "Next" button.
136
137 This takes me back to the Suggested Partitioning screen.
138
139 ===== "Suggested Partitioning" screen =====
140
141 In my case, I now have this:
142
143 - Create swap volume /dev/sda1 (1004.06 MB)
144
145 - Create root volume /dev/sda2 (7.02 GB) with ext4
146
147 I click the "Next" button.
148
149 ==== "Create New User" screen ====
150
151 I use this screen to create a regular user.
152
153 User's full name: Your Full name (e.g: John Smith)
154
155 Username: Your preferred username (e.g.: jsmith)
156
157 Password:
158
159 Confirm Password:
160
161 I uncheck the "Use this password for System Administrator" checkbox.
162
163 I check the "Receive System Mail"
164
165 I uncheck the "Automatic Login" checkbox.
166
167 I click the "Next" button (you may be "nagged" with a dialog box by the YAST2 installer warning that you selected a password that it considers to be too simple. Click "Yes" to keep the password you chose, or "No" to change it).
168
169 ==== Password for the System Administrator "root" screen ====
170
171 Enter your password (in the "Password for root User" text box) and repeat it (in the "Confirm Password" text box).
172
173 Click the "Next" button to proceed to the "Installation Settings" screen.
174
175 ==== "Installation Settings" screen ====
176
177 Click on the "Software" link
178
179 ==== "Software Selection and System Tasks" screen ====
180
181 Scroll down the listbox (that begins with the "Base Technologies" group) until you find the "Server Functions" group.
182
183 In that "Server Functions" group click on the "Web and LAMP Server" checkbox (to check it)
184
185 Click on the "OK" button to return to "Installation Settings"
186
187 ==== "Installation Settings" screen ====
188
189 Click on the "Install" button (placed in the same place where usually appear the "Accept" or "Next" button).
190
191 You should see a "Confirm Installation" dialog box. Click on the "Install" button of that dialog box.
192
193 ==== "Preparing Your Hard Disk" screen ====
194
195 [just watch it...]
196
197 ==== "Deploying Installation Images" screen ====
198
199 [just watch it... ]
200
201 ==== "Package Installation" screen ====
202
203 [just watch it... or click on the "Details" tab if you want to see what packages are being installed.]
204
205 ==== "Finishing Basic Installation" screen ====
206
207 [just watch it... ]
208
209 After some time you'll see a dialog box warning that the system will reboot in 10 seconds.
210
211 ==== After reboot ====
212
213 Leave "Boot from Hard Disk" selected and press ENTER
214
215 You'll have to wait a while (or press ESC to see what the operating system is "doing"). After some moments, you'll be taken to the "Yast2 - installation @ Linux" screen (a text installer).
216
217 On the screen you will see Hostname and Domain Name with a textbox below.
218 The cursor is in the textbox below Hostname.
219 Press the Backspace to delete the name there and insert the name of your system, e.g. koha-server.
220 Pres Tab and Backspace to delete "site" and enter the domain name, e.g. "univ.org".
221 Press Tab go to Change Hostname via DHCP en press Space to remove the "x".
222 Leave the "x" in Assign Hostname to Loopback IP.
223 Press <Alt>+N to activate "Next". Now you enter:
224
225 ==== Network Configuration ====
226
227 Press ALT+C to Change Network Settings. Use the Arrow Keys to Highlight "Firewall" and press RETURN.
228 Proceed to Firewall and press RETURN. Go to "Allowed Services" and press RETURN. Press TAB several times to highlight "HTTP Server".
229 Press ALT+A to add HTTP Server to the list. Press ALT+S to choose the next Service to Allow.
230 Press the Down Arrow and a drop down box will appear and press the Down Arrow several times to select Secure Shell Server and press RETURN.
231 Press ALT+A to Add.
232 We also need port 8080 for the management of Koha to be open, so press ALT+D to activate (Advanced...).
233 Press ALT+T to go to TCP Ports and enter 8080 in the textbox.
234 Pressing Alt+O for OK, brings you back to the Firewall Configuration.
235 Pressing Alt+O for OK, brings you back to Network Configuration, but now you see the SSH port is open, the 8080 port is not shown.
236 Press Alt+N for Next, which brings you to: Saving Network Configuration and finally to:
237
238 ==== Test Internet Connection ====
239
240 Press RETURN to activate Next and do the test.
241 If all is well you should see "Test Result: Success".
242 Press RETURN to activate Next.
243 Now the meta data of some repositories will be downloaded and the next screen will appear:
244
245 ==== Online Update ====
246
247 Here you can choose to do an online update or not.
248 Press RETURN to activate Next and the update will be done.
249 In my case the update even replaced the kernel. Press ALT+A to Accept the update.
250 After that you press RETURN to activate Next.
251 A warning may appear saying that the system will reboot.
252
253 You will see the first screen of booting of the DVD again, but again you choose Boot from Hard Disk, which will also happen when you do not do anything.
254
255 After that you will see the normal system boot screen and you do not need to do anything, but you may press RETURN to speed up the start of booting from the disc.
256 In my case, after booting, the installtion went on and showed a screen of the YaST2 Package Manager showing the Release Notes.
257 Press RETURN to continue.
258 Now a screen asking about Hardware Configuration appeared. Press RETURN to continue.
259
260 Next a screen appears showing Installation Completed.
261 Press RETURN to continue and you will see the startup log messages and at the end the following:
262
263 |--------------------
264 Welcome to openSUSE 11.3 "Teal" - Kernel 2.6.34.7-0.3-desktop (tty1)
265
266 koha-server login:
267 |--------------------
268
269 You may now login with your "root" user.
270
271 ==== Changing the Hostname and Domain Name ====
272  
273
274 Maybe you want to change the hostname, domain name and switch from DHCP to a Static IP address.
275 Changing the hostname and domain name will not be shown here, because we assume that was done according to your whishes during installation.
276
277 This is how you can do it. You give the command yast (the setup tool) on the command prompt:
278 |--------------------
279 koha-server:~ # yast
280 |--------------------
281
282 Yast should appear.
283
284 On the listbox of the left hand side select "Network Devices" (press TAB to turn focus on that listbox, and press the down arrow key several times to reach it).
285 Then, on the listbox of the right hand side, select "Network Settings" (you'll have again to press TAB to turn focus on that listbox, and press the down arrow key several times to reach it).
286
287 Press the ENTER key.
288
289 ==== "Initializing Network Configuration" screen ====
290
291 [just watch it...]
292
293 ==== "Network Settings" screen ====
294
295 I want to disable IPv6, so I first go to the "Global Options" section (by pushing the key combination ALT+G to press the "G" letter in Global Options that is highlighted).
296 In the next screen, I push ALT+E to uncheck the "Enable IPv6" checkbox.
297 I'll get a dialog box with a Warning saying that "To apply this change a reboot is needed.".
298 I just press ENTER on that dialog box, but I do NOT reboot (at least not yet). 
299
300 Then I press Alt+V to go to the "Overview" (still in "Network Settings").
301 Then I press ALT+I to "Edit" the information for this Network Card.
302
303 ==== "Network Card Setup" screen ====
304
305 I check the "Statically assigned IP Address" checkbox, and enter the following info for "IP Address", "Subnet Mask" and "Hostname" (you should use the values defined by your network administrator):
306
307 IP Address: 192.168.1.16
308 Subnet Mask: 255.255.255.0
309 Hostname: koha-server.univ.org
310
311 Then I press ALT+N to click the "Next" button. After a few seconds, I will be taken again to the "Network Settings" screen.
312
313 ==== "Network Settings" screen ====
314
315 I press ALT+S to go to the "Hostname/DNS" screen.
316
317 Press ALT+I and the Arrow Key to choose "Only Custom Policy" by pressing Enter, press Tab to choose "Custom Policy Rule" and select "STATIC".
318 Enter the IP Address of the Domain Name Server in the "Name Server 1" text box:
319
320 Name Server 1: 192.168.1.254
321
322 Then I press ALT+U to go to the "Routing" configuration.
323
324 ==== "Routing" screen ====
325
326 In the "Default Gateway" text box, I enter the IP Address of my Default Gateway:
327
328 Default Gateway: 192.168.1.254
329
330 Then I press ALT+O for OK to Finish
331
332 ==== "Saving Network Configuration" screen ====
333
334 [just watch it...]
335
336 After a few seconds, you should be taken back to the "YaST2 Control Center" screen.
337 Press ALT+Q to Quit YaST2.
338
339 ==== Making the ssh-daemon to start at system start ====
340
341 We need a ssh-daemon that does not accept Environment parameters from the remote user.
342 So we have to disable accepting these.
343 For this you use vim to change the config file of sshd.
344
345 |--------------------
346 # cp /etc/ssh/sshd_config /etc/ssh/sshd_config.ORIG
347 # vi /etc/ssh/sshd_config
348 |--------------------
349
350 Find the lines starting with AcceptEnv and insert a # in front of these, There are three lines.
351 Afterwards these lines will look like:
352 |--------------------
353 #AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES 
354 #AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT 
355 #AcceptEnv LC_IDENTIFICATION LC_ALL
356 |--------------------
357
358 In order to make the ssh-daemon start at system boot, you have to enable this by giving:
359 |--------------------
360 # chkconfig sshd on
361 |--------------------
362
363 You can check the status with the command "chkconfig -l sshd".
364 The output should look like this:
365 |--------------------
366 # sshd                      0:off  1:off  2:off  3:on   4:off  5:on   6:off
367 |--------------------
368
369 Also you need to start the sshd service in order to generate the security keypair for sshd.
370 |--------------------
371 # service sshd start
372 |--------------------
373
374 This time seems to be a good time to reboot your server:
375 |--------------------
376 # reboot
377 |--------------------
378 After rebooting the machine, if you wish, you may go to another machine and connect to your newly created server using a SSH (Secure Shell) client. In Windows, I like to use putty to do ssh sessions to my Linux servers.
379
380 === Configure Software Repositories ===
381
382 After the system has rebooted, log in as root.
383
384 Later on, you will need to add some software packages from the openSUSE 11 Distribution.
385 Some of those packages are NOT available in the openSUSE 11.3 DVD (libyaz-devel is one of those packages).
386 However we already added these repositories to the system after configuring the network.
387 In case you did not have a network setup at that time, it is now time to setup these repositories, but you can skip this if this has been done already.
388
389 First, run the yast command in the Linux command line (shell):
390
391 |--------------------
392 # yast
393 |--------------------
394
395 Inside yast, select Software -> Software Repositories
396
397 ==== "Configured Software Repositories" screen ====
398
399 When on this screen, you already see a table that has: 
400
401 * as configured repositories (in the "Name" column)
402 ** "Updates for openSUSE 11.3 11.3-1.82"
403 ** "openSUSE-11.3 11.3-1.82"
404 ** "openSUSE-11.3-Debug"
405 ** "openSUSE-11.3-Non-Oss" "openSUSE-11.3-Oss" ... 
406 * at least the following repositories have an "x" in the "Enabled" column
407 ** "Updates for openSUSE 11.3 11.3-1.82"
408 ** "openSUSE-11.3-Oss"
409 * you still have to add the folowing repositiory to this list
410 ** "openSUSE BuildService - devel:languages:perl" 
411 Press ALT+A to Add Repositories.
412
413 ==== "Media type" screen ====
414
415 Select Community Repositories by pressing ALT+I and apply Next (press ALT+X).
416
417 You will see a message that data will be downloaded.
418 After that you will get a list of Repositories and the above mentioned, but not yet available, will be in this list.
419 Select the one you need by using the Arrow Keys and press Space to select (an x will appear in front of the Repository).
420 After that apply OK. You may see some activity and you may get asked to import GnuPG keys, just do so.
421
422 You may see the following screen.
423
424 ==== "License Agreement" screen ====
425
426 Check the "Yes, I Agree to the License Agreement" radio button.
427
428 Click on the "Next" button to return to the "Configured Software Repositories" screen.
429
430 ==== "Configured Software Repositories" screen ====
431
432 You should see now the "openSUSE 11.3-Oss" listed as an entry.
433 You can Disable "openSUSE-11.3-Source" and its Autorefresh, if present.
434
435 Click on the "OK" button.
436
437 When you get sent back to the "Yast Control Center" click on the "Quit" button (to return to the shell).
438
439 === Install some useful / necessary programs ===
440
441 By this time, you have to install some of the programs which are regularly used, by using zypper (the command line mode packet manager):
442
443 To install locate, ncftp (command-line ftp client), make and gcc you give the following command:
444 |--------------------
445 # zypper install findutils-locate ncftp make gcc
446 |--------------------
447 Zypper reports that it will install 18 packages; confirm with RETURN.
448
449 == Download Koha ==
450
451 |--------------------
452 # wget http://download.koha-community.org/koha-3.00.00.tar.gz
453 |--------------------
454 You will receive 49,266,888 bytes.
455
456 == Extract Koha ==
457
458 |--------------------
459 # tar -xzvf koha-3.00.00.tar.gz
460 |--------------------
461
462 == Set up Locale for root user ==
463
464 If you run the locale command, you'll probably get this output:
465 |--------------------
466 # locale
467 LANG=POSIX
468 LC_CTYPE=en_US.UTF-8
469 LC_NUMERIC="POSIX"
470 LC_TIME="POSIX"
471 LC_COLLATE="POSIX"
472 LC_MONETARY="POSIX"
473 LC_MESSAGES="POSIX"
474 LC_PAPER="POSIX"
475 LC_NAME="POSIX"
476 LC_ADDRESS="POSIX"
477 LC_TELEPHONE="POSIX"
478 LC_MEASUREMENT="POSIX"
479 LC_IDENTIFICATION="POSIX"
480 LC_ALL=
481 |--------------------
482
483 We want to have en_US.UTF-8 in all LC_* variables. So, we'll do the following:
484 |--------------------
485 # yast
486 |--------------------
487 System -> Language
488
489 The "Languages" screen should appear. 
490
491 In the first section (Primary Language Settings):
492
493 Leave "English (US)" selected as the option for Primary Language
494
495 Click on the "Details..." link
496
497 Change the Locale Settings for user root from the default option ("ctype Only") to "Yes"
498
499 Make sure the "Use UTF-8 Encoding" checkbox is checked (it should already be).
500
501 Leave the "Detailed Locale Setting" en_US selected
502
503 Click on the OK button to return to the "Languages" screen
504
505 Click on the "OK" button.
506
507 When you get back to the "Yast2 Control Center" screen, click on the "Quit" button
508
509 == Putty configuration to use Unicode (UTF-8 encoding) ==
510
511 If you use Putty, set up Putty to use UTF-8 encoding.
512 To do this, click on the upper left corner of the PuTTy window, to expand the menu.
513 Scrol down until you find the "Change Settings..." command and click on it.
514
515 This should open the "PuTTy Reconfiguration" screen. Here expand the "Window" category and click on "Translation"
516
517 When you do this, you'll see that the "Received data assumed to be in which character set" dropdown list probably reads:
518
519 "ISO-8859-1:1998 (Latin-1, West Europe)
520
521 change it to: "UTF-8"
522
523 Click on the "Apply" button
524
525 Now, it's a good time to SAVE this PuTTy session.
526 To do this, click again on the upper left corner of the PuTTy window, to expand the menu, and click on the "Change Settings..." command like you did before.
527
528 This should open the "PuTTy Reconfiguration" screen. Go to the right hand side of that screen and type a name in the "Saved Sessions" textbox (e.g: koha).
529 Then click on the "Save" button and, after doing that, click on the "Apply" button.
530
531 IMPORTANT!!! Now it's the time to EXIT the login shell, by typing the exit command:
532 |--------------------
533 # exit
534 |--------------------
535
536 Now you'll reopen PuTTy, but when you do that, open the Saved Session that you have created in order to use the "UTF-8" configuration you have done.
537
538 You may not need to do the above after the change, made earlier, in /etc/ssh/sshd_config. Check it and if so you can modify this wiki page.
539
540 After logging in again with the root user, type the locale command again. Now it should read like the following:
541
542 |--------------------
543 # locale
544 LANG=en_US.UTF-8
545 LC_CTYPE="en_US.UTF-8"
546 LC_NUMERIC="en_US.UTF-8"
547 LC_TIME="en_US.UTF-8"
548 LC_COLLATE="en_US.UTF-8"
549 LC_MONETARY="en_US.UTF-8"
550 LC_MESSAGES="en_US.UTF-8"
551 LC_PAPER="en_US.UTF-8"
552 LC_NAME="en_US.UTF-8"
553 LC_ADDRESS="en_US.UTF-8"
554 LC_TELEPHONE="en_US.UTF-8"
555 LC_MEASUREMENT="en_US.UTF-8"
556 LC_IDENTIFICATION="en_US.UTF-8"
557 LC_ALL=
558 |--------------------
559
560 == Apache configuration (for UTF-8) ==
561
562 Create a file called /etc/apache2/httpd.conf.local with vim (or your preferred text editor):
563 |--------------------
564 myhost:~ # vim /etc/apache2/httpd.conf.local
565 |--------------------
566 Add this line:
567 |--------------------
568 AddDefaultCharset UTF-8
569 |--------------------
570
571 == Configure Apache to start at boot time and start the service ==
572 |--------------------
573 # chkconfig apache2 on
574
575 # service apache2 start
576 Starting httpd2 (prefork)                                            done
577 |--------------------
578
579 Go to a browser and type:
580
581 http://192.168.1.16
582
583 You should see a page that reads:
584
585 "It works!"
586
587 == MySQL configuration ==
588
589 1 - Configure MySQL to start at boot time and start the service:
590 |--------------------
591 # chkconfig mysql on
592
593 # service mysql start
594 |--------------------
595 The system will issue a warning that '--skip-locking' is deprecated, but for now we accept that.
596
597 2 - Change the password for the "root" user of MySQL:
598 |--------------------
599 # /usr/bin/mysqladmin -u root password 'chosenpassword'
600 |--------------------
601 After starting MySQL also it is recommended to give the command:
602 <tt> # /usr/bin/mysqladmin -u root -h koha-server.univ.org password 'chosenpassword'</tt>
603 However this gives an error message. This is left for the more advanced MySQL administrator.
604
605 3 - Check the encoding variables of MySQL
606
607 To check the encoding variables of MySQL, will type the show variables like 'char%'; command in a mysql prompt:
608 |--------------------
609 # mysql -p
610 Enter password:
611 Welcome to the MySQL monitor.  Commands end with ; or \g.
612 Your MySQL connection id is 7
613 Server version: 5.1.46-log SUSE MySQL RPM
614
615 Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
616 This software comes with ABSOLUTELY NO WARRANTY. This is free software,
617 and you are welcome to modify and redistribute it under the GPL v2 license
618
619 Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
620
621 mysql> show variables like 'char%';
622 +--------------------------+----------------------------+
623 | Variable_name            | Value                      |
624 +--------------------------+----------------------------+
625 | character_set_client     | utf8                       |
626 | character_set_connection | utf8                       |
627 | character_set_database   | utf8                       |
628 | character_set_filesystem | binary                     |
629 | character_set_results    | utf8                       |
630 | character_set_server     | utf8                       |
631 | character_set_system     | utf8                       |
632 | character_sets_dir       | /usr/share/mysql/charsets/ |
633 +--------------------------+----------------------------+
634 8 rows in set (0.00 sec)
635
636 mysql> quit
637 Bye
638 |--------------------
639
640 The above looks OK, so we can skip 1 and 2 and continue with 2a, but if not you can follow the following procedure.
641
642 We want to have utf8 in the above character_set_* variables above (and NOT latin1)!
643
644 In order to do this:
645
646 1 - Create a backup of the MySQL configuration file (my.cnf):
647 |--------------------
648 # cd /etc
649 myhost:/etc # cp my.cnf my.cnf.ORIG
650 |--------------------
651
652 2 - Use vim to add these 3 lines in the section [mysqld] of the my.cnf file:
653 |--------------------
654 default-character-set = utf8
655 character-set-server = utf8
656 skip-character-set-client-handshake
657 |--------------------
658 In openSUSE 11.3 and the provided mysql packet only the default-character-set can be set, the other 2 should not be added.
659
660 2a - If you are unfamilar with SQL you should remove the #-character in front of safe-updates in that same section.
661
662 3 - Restart MySQL:
663 |--------------------
664 myhost:/etc # service mysql restart
665 Restarting service MySQL
666 Shutting down service MySQL                                           done
667 Starting service MySQL                                                done
668 |--------------------
669
670 Now, let's type again the show variables like 'char%' mysql command to see if 
671 the character_set_variables have changed from latin1 to utf8 (character_set_filesystem 
672 will still read "binary" but I think that's OK:
673 |--------------------
674 myhost:/etc # mysql -p
675 Enter password:
676 Welcome to the MySQL monitor.  Commands end with ; or \g.
677 Your MySQL connection id is 1
678 Server version: 5.1.46-log SUSE MySQL RPM
679
680 Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
681
682 mysql> show variables like 'char%';
683 +--------------------------+----------------------------+
684 | Variable_name            | Value                      |
685 +--------------------------+----------------------------+
686 | character_set_client     | utf8                       |
687 | character_set_connection | utf8                       |
688 | character_set_database   | utf8                       |
689 | character_set_filesystem | binary                     |
690 | character_set_results    | utf8                       |
691 | character_set_server     | utf8                       |
692 | character_set_system     | utf8                       |
693 | character_sets_dir       | /usr/share/mysql/charsets/ |
694 +--------------------------+----------------------------+
695 8 rows in set (0.01 sec)
696
697 mysql> quit
698 Bye
699 |--------------------
700
701 == Create the Koha database ==
702
703 === Create the koha database and user with associated privileges ===
704 |--------------------
705 # mysqladmin -uroot create koha -p 
706 |--------------------
707 (you may name the koha database something different from koha)
708
709 === Grant privileges to a MySQL user to the koha database === 
710
711 Assuming that you want to have a MySQL user called "kohaadmin" to administer a database called "koha" with the password "kohapassword", you'd enter this:
712 |--------------------
713 myhost:~ # mysql -p
714 Enter password:
715 Welcome to the MySQL monitor.  Commands end with ; or \g.
716 Your MySQL connection id is 3
717 Server version: 5.1.46-log SUSE MySQL RPM
718
719 Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
720
721 mysql> grant all on koha.* to 'kohaadmin'@'localhost' identified by 'kohapassword';
722 Query OK, 0 rows affected (0.00 sec)
723
724 mysql> flush privileges;
725 Query OK, 0 rows affected (0.08 sec)
726
727 mysql> quit
728 Bye
729 |--------------------
730
731 == Test your SAX Parser and correct where necessary ==
732
733   * Install the XML::SAX and XML::LibXML perl Modules:
734
735 |--------------------
736 # zypper install perl-XML-SAX perl-XML-LibXML
737 Loading repository data...
738 Reading installed packages...
739 'perl-XML-SAX' is already installed.
740 There is an update candidate for 'perl-XML-SAX', but it is from different vendor. Use 'zypper install perl-XML-SAX-0.96-13.1.x86_64' to install this candidate.
741 'perl-XML-LibXML' is already installed.
742 There is an update candidate for 'perl-XML-LibXML', but it is from different vendor. Use 'zypper install perl-XML-LibXML-1.70-6.1.x86_64' to install this candidate.
743 Resolving package dependencies...
744
745 Nothing to do.
746 |--------------------
747
748 In the above you see that these two packets have been installed during system installation.
749 You also installed a repository for the language perl.
750 The message about a different vendor is about this repository.
751 You have to use "zypper dup" to install the newer versions from this repository, but this outside this tutorial.
752
753 You must be sure you're using the XML::LibXML SAX parser, not Expat or PurePerl, both of which have outstanding bugs (in 2008) with pre-composed characters. You can test your SAX parser by running:
754 |--------------------
755 # cd /root/koha-3.00.00/
756
757 myhost:~/koha-3.00.00 # misc/sax_parser_print.pl 
758 |--------------------
759
760 You will probably see this:
761 |--------------------
762 XML::SAX::PurePerl=HASH(0x8356a4c)
763 |--------------------
764
765 If you're using PurePerl (you probably are) or Expat, you'll need to edit your ParserDetails.ini file to use the LibXML Parser. 
766 To find the ParserDetails.ini file, you may use locate.
767 To do this, first update the locate database by running the updatedb command:
768 |--------------------
769 # updatedb
770 |--------------------
771
772 Then find ParserDetails.ini using locate:
773 |--------------------
774 # locate ParserDetails.ini
775 /usr/lib/perl5/vendor_perl/5.12.1/XML/SAX/ParserDetails.ini
776 |--------------------
777
778 OK. So, let's first do a backup of this ini file:
779 |--------------------
780 # cd /usr/lib/perl5/vendor_perl/5.12.1/XML/SAX/
781
782 myhost:/usr/lib/perl5/vendor_perl/5.10.0/XML/SAX # cp ParserDetails.ini ParserDetails.ini.ORIG
783 |--------------------
784
785 Edit this ParserDetails.ini file (with vim or other editor)
786
787 See if the first line contains this:
788 |--------------------
789 [XML::SAX::PurePerl]
790 |--------------------
791 If it does, replace this first line by the following:
792 |--------------------
793 [XML::LibXML::SAX::Parser]
794 |--------------------
795
796 Run the /root/koha-3.00.00/misc/sax_parser_print.pl command again.
797 This time, you should get the following output:
798 |--------------------
799 XML::LibXML::SAX::Parser=HASH(0x8356e0c)
800 |--------------------
801
802 == Install the Zebra package ==
803
804 Zebra is already in the standard repository of openSUSE 11.3, so it seems better to install it.
805 In the next chapter a question will be asked wether it is installed, so you better install it; no harm done.
806 Because you may need the documentation, that will also be installed.
807 Note that the package name is idzebra.
808
809 |--------------------
810 # zypper install idzebra idzebra-doc
811 |--------------------
812 You will notice that a few dependencies need to be resolved, so a few other packages are also installed.
813
814 == Run Koha's perl installer ==
815 |--------------------
816 myhost:/usr/lib/perl5/vendor_perl/5.10.0/XML/SAX # cd /root/koha-3.00.00
817 |--------------------
818 After installation of a number of CPAN/perl packages we will run perl Makefile.PL to run the Koha installer. 
819
820
821 === Using zypper to install CPAN modules ===
822
823 The author of the openSUSE 11.0 version of this page did a trial run with the Makefile.PL module, which showed a lot of unstalled perl modules and other software packages.
824 He used the names of these packages and installed the missing ones.
825 I collected all the missing packets and put them in the list below to install these packages before running Makefile.PL.
826 Doing the way he did provides more inside in the process, however it is tedious and I want to avoid that.
827 You still can go [[Koha_3.0.0_on_openSUSE_11.0#Run_Koha's_perl_installer|there]] and learn from that experience.
828
829 The commands show below need to be given one by one, because zypper will always ask for confirmation. However you can als also put more than one module name after the "zypper install" command.
830 |--------------------
831 # zypper install perl-Algorithm-CheckDigits
832 # zypper install perl-Biblio-EndnoteStyle
833 # zypper install perl-CGI-Session-Serialize-yaml
834 # zypper install perl-CGI-Session
835 # zypper install perl-Class-Accessor
836 # zypper install perl-Class-Factory-Util
837 # zypper install perl-DBD-mysql
838 # zypper install perl-Data-ICal
839 # zypper install perl-Date-Calc
840 # zypper install perl-Date-ICal
841 # zypper install perl-Date-Manip
842 # zypper install perl-DublinCore-Record
843 # zypper install perl-Email-Date
844 # zypper install perl-GD
845 # zypper install perl-GD-Barcode
846 # zypper install perl-HTML-Scrubber
847 # zypper install perl-HTML-Template-Pro
848 # zypper install perl-Lingua-Stem
849 # zypper install perl-MARC-Charset
850 # zypper install perl-MARC-Crosswalk-DublinCore
851 # zypper install perl-MARC-File-XML
852 # zypper install perl-MARC-Record
853 # zypper install perl-MIME-Lite
854 # zypper install perl-Mail-Sendmail
855 # zypper install perl-Net-LDAP
856 # zypper install perl-Net-Z3950-ZOOM
857 # zypper install perl-PDF-API2
858 # zypper install perl-PDF-Reuse
859 # zypper install perl-PDF-Reuse-Barcode
860 # zypper install perl-POE
861 # zypper install perl-32bit
862 # zypper install perl-SMS-Send
863 # zypper install perl-Schedule-At
864 # zypper install perl-Text-CSV
865 # zypper install perl-Text-Iconv
866 # zypper install perl-XML-Dumper
867 # zypper install perl-XML-LibXSLT
868 # zypper install perl-XML-RSS
869 # zypper install perl-Text-CSV_XS
870 # zypper install perl-PerlMagick
871 # zypper install perl-Carp-Assert
872 # zypper install gd gd-devel
873 # zypper install xorg-x11-libXpm-devel
874 # zypper install libjpeg-devel
875 # zypper install fontconfig-devel
876 # zypper install libpng-devel
877 # zypper install libyaz-devel
878 |--------------------
879
880 == Running the Makefile.PL module to configure Koha ==
881
882 My installation is a UNIMARC installation, so I'm answering unimarc to the "MARC format for Zebra indexing (marc21, unimarc) [marc21]" question below.
883 If your Library uses the MARC21 format instead of UNIMARC, you should press ENTER to accept the default (which is marc21). 
884
885 Because my bibliographic catalog will have mainly records in English and Arabic, I'm answering "en" (English) to the "Primary language for Zebra indexing (en, fr) [en]" question below.
886
887 Although I'm NOT using Zebra, I'm answering "yes" (the default choice) to the "Install the Zebra configuration files? (no, yes) [yes]" so I can set up Zebra later, if I decide to.
888
889 Also note that Zebra has been installed in this case.
890
891 Below is the result of running the "perl Makefile.PL" command (including my answers to the several questions):
892 |--------------------
893 myhost:~/koha-3.00.00 # perl Makefile.PL
894
895 By default, Koha can be installed in one of three ways:
896
897 standard: Install files in conformance with the Filesystem
898           Hierarchy Standard (FHS).  This is the default mode
899           and should be used when installing a production
900           Koha system.  On Unix systems, root access is
901           needed to complete a standard installation.
902
903 single:   Install files under a single directory.  This option
904           is useful for installing Koha without root access, e.g.,
905           on a web host that allows CGI scripts and MySQL databases
906           but requires the user to keep all files under the user's
907           HOME directory.
908
909 dev:      Create a set of symbolic links and configuration files to
910           allow Koha to run directly from the source distribution.
911           This mode is useful for developers who want to run
912           Koha from a git clone.
913
914 Installation mode (dev, single, standard) [standard]
915
916 Please specify the directory under which most Koha files
917 will be installed.
918
919 Note that if you are planning in installing more than
920 one instance of Koha, you may want to modify the last
921 component of the directory path, which will be used
922 as the package name in the FHS layout.
923
924 Base installation directory [/usr/share/koha]
925
926 Since you are using the 'standard' install
927 mode, you should run 'make install' as root.
928 However, it is recommended that a non-root
929 user (on Unix and Linux platforms) have
930 ownership of Koha's files, including the
931 Zebra indexes if applicable.
932
933 Please specify a user account.  This
934 user account does not need to exist
935 right now, but it needs to exist
936 before you run 'make install'.  Please
937 note that for security reasons, this
938 user should not be the same as the user
939 account Apache runs under.
940
941 User account [koha]
942
943 Please specify the group that should own
944 Koha's files.  As above, this group need
945 not exist right now, but should be created
946 before you run 'make install'.
947
948 Group [koha]
949
950 Please specify which database engine you will use
951 to store data in Koha.  The choices are MySQL and
952 PostgreSQL; please note that at the moment
953 PostgreSQL support is highly experimental.
954
955 DBMS to use (Pg, mysql) [mysql]
956
957 Please specify the name or address of your
958 database server.  Note that the database
959 does not have to exist at this point, it
960 can be created after running 'make install'
961 and before you try using Koha for the first time.
962
963 Database server [localhost]
964
965 Please specify the port used to connect to the
966 DMBS [3306]
967
968 Please specify the name of the database to be
969 used by Koha [koha]
970
971 Please specify the user that owns the database to be
972 used by Koha [kohaadmin]
973
974 Please specify the password of the user that owns the
975 database to be used by Koha [katikoan] kohapassword
976
977 Koha can use the Zebra search engine for high-performance
978 searching of bibliographic and authority records.  If you
979 have installed the Zebra software and would like to use it,
980 please answer 'yes' to the following question.  Otherwise,
981 Koha will default to using its internal search engine.
982
983 Please note that if you choose *NOT* to install Zebra,
984 koha-conf.xml will still contain some references to Zebra
985 settings.  Those references will be ignored by Koha.
986
987 Install the Zebra configuration files? (no, yes) [yes]
988
989 Unable to find the Zebra programs 'zebrasrv' and 'zebraidx'
990 in your PATH or in some of the usual places.  If you haven't
991 installed Zebra yet, please do so and run Makefile.PL again.
992
993 Since you've chosen to use Zebra with Koha,
994 you must specify the primary MARC format of the
995 records to be indexed by Zebra.
996
997 Koha provides Zebra configuration files for MARC 21
998 and UNIMARC.
999
1000 MARC format for Zebra indexing (marc21, unimarc) [marc21] unimarc
1001
1002 Koha supplies Zebra configuration files tuned for
1003 searching either English (en) or French (fr) MARC
1004 records.
1005
1006 Primary language for Zebra indexing (en, fr) [en] fr
1007
1008 Koha can use one of  two different indexing modes
1009 for the MARC authorities records:
1010
1011 grs1 - uses the Zebra GRS-1 filter, available
1012        for legacy support
1013 dom  - uses the DOM XML filter; offers improved
1014        functionality.
1015
1016 Authorities indexing mode (dom, grs1) [grs1] dom
1017
1018 Please specify Zebra database user [kohauser]
1019
1020 Please specify the Zebra database password [zebrastripes] zebrapassword
1021
1022 Since you've chosen to use Zebra, you can enable the SRU/
1023 Z39.50 Server if you so choose, but you must specify a
1024 few configuration options for it.
1025
1026 Please note that if you choose *NOT* to configure SRU,
1027 koha-conf.xml will still contain some references to SRU
1028 settings.  Those references will be ignored by Koha.
1029
1030 Install the SRU configuration files? (no, yes) [yes] no
1031
1032 Since you've chosen to use Zebra, you can also choose to
1033 install PazPar2, which is a metasearch tool.  With PazPar2,
1034 Koha can perform on-the-fly merging of bibliographic
1035 records during searching, allowing for FRBRization of
1036 the results list.
1037
1038 Install the PazPar2 configuration files? [no] no
1039
1040 Would you like to run the database-dependent test suite? (no, yes) [no]
1041
1042 Koha will be installed with the following configuration parameters:
1043
1044 AUTH_INDEX_MODE          dom
1045 DB_HOST                  localhost
1046 DB_NAME                  koha
1047 DB_PASS                  kohapassword
1048 DB_PORT                  3306
1049 DB_TYPE                  mysql
1050 DB_USER                  kohaadmin
1051 INSTALL_BASE             /usr/share/koha
1052 INSTALL_MODE             standard
1053 INSTALL_PAZPAR2          no
1054 INSTALL_SRU              no
1055 INSTALL_ZEBRA            yes
1056 KOHA_GROUP               koha
1057 KOHA_INSTALLED_VERSION   3.00.00.096
1058 KOHA_USER                koha
1059 RUN_DATABASE_TESTS       no
1060 ZEBRA_LANGUAGE           fr
1061 ZEBRA_MARC_FORMAT        unimarc
1062 ZEBRA_PASS               zebrapassword
1063 ZEBRA_USER               kohauser
1064
1065 and in the following directories:
1066
1067 DOC_DIR                  /usr/share/koha/doc
1068 INTRANET_CGI_DIR         /usr/share/koha/intranet/cgi-bin
1069 INTRANET_TMPL_DIR        /usr/share/koha/intranet/htdocs/intranet-tmpl
1070 INTRANET_WWW_DIR         /usr/share/koha/intranet/htdocs
1071 KOHA_CONF_DIR            /etc/koha
1072 LOG_DIR                  /var/log/koha
1073 MAN_DIR                  /usr/share/koha/man
1074 MISC_DIR                 /usr/share/koha/misc
1075 OPAC_CGI_DIR             /usr/share/koha/opac/cgi-bin
1076 OPAC_TMPL_DIR            /usr/share/koha/opac/htdocs/opac-tmpl
1077 OPAC_WWW_DIR             /usr/share/koha/opac/htdocs
1078 PAZPAR2_CONF_DIR         /etc/koha/pazpar2
1079 PERL_MODULE_DIR          /usr/share/koha/lib
1080 SCRIPT_DIR               /usr/share/koha/bin
1081 SCRIPT_NONDEV_DIR        /usr/share/koha/bin
1082 ZEBRA_CONF_DIR           /etc/koha/zebradb
1083 ZEBRA_DATA_DIR           /var/lib/koha/zebradb
1084 ZEBRA_LOCK_DIR           /var/lock/koha/zebradb
1085 ZEBRA_RUN_DIR            /var/run/koha/zebradb
1086
1087 To change any configuration setting, please run
1088 perl Makefile.PL again.  To override one of the target
1089 directories, you can do so on the command line like this:
1090
1091 perl Makefile.PL PERL_MODULE_DIR=/usr/share/perl/5.8
1092
1093 You can also set different default values for parameters
1094 or override directory locations by using environment variables.
1095
1096 For example:
1097
1098 export DB_USER=my_koha
1099 perl Makefile.PL
1100
1101 or
1102
1103 DB_USER=my_koha DOC_DIR=/usr/local/info perl Makefile.PL
1104
1105 If installing on a Win32 platform, be sure to use:
1106 'dmake -x MAXLINELENGTH=300000'
1107
1108 Checking if your kit is complete...
1109 Looks good
1110 Writing Makefile for koha
1111
1112 myhost:~/koha-3.00.00 #
1113 |--------------------
1114
1115 == Create the Koha User and Group ==
1116
1117 |--------------------
1118 # useradd koha
1119
1120 # passwd koha
1121 Changing password for koha.
1122 New Password:
1123 Reenter New Password:
1124 Password changed.
1125
1126 # groupadd koha
1127 |--------------------
1128
1129 == Run make test ==
1130 |--------------------
1131 myhost:~/Koha # make test
1132 cp koha-tmpl/opac-tmpl/prog/famfamfam/silk/error_go.png blib/OPAC_TMPL_DIR/prog/famfamfam/silk/error_go.png
1133 cp opac/opac-changelanguage.pl blib/OPAC_CGI_DIR/opac/opac-changelanguage.pl
1134 cp koha-tmpl/intranet-tmpl/prog/img/itemtypeimg/liblime-kids/card.gif blib/INTRANET_TMPL_DIR/prog/img/itemtypeimg/liblime-kids/card.gif
1135 cp koha-tmpl/opac-tmpl/prog/famfamfam/mini/note.gif blib/OPAC_TMPL_DIR/prog/famfamfam/mini/note.gif
1136
1137 [many more lines beginning with "cp" should appear...]
1138
1139 t/Amazon.t .................. ok   
1140 t/Barcodes_PrinterConfig.t .. ok   
1141 t/Bookfund.t ................ ok   
1142 t/Bookseller.t .............. ok   
1143 t/Boolean.t ................. ok     
1144 t/Branch.t .................. ok   
1145 t/Calendar.t ................ ok   
1146 t/Charset.t ................. ok   
1147 t/Debug.t ................... # BEFORE use:     $debug is not defined
1148 # BEFORE use: $cgi_debug is not defined
1149 t/Debug.t ................... 1/3 #  AFTER use:     $debug is 0
1150 #  AFTER use: $cgi_debug is 0
1151 # Done.
1152 t/Debug.t ................... ok   
1153 t/dummy.t ................... ok   
1154 t/Input.t ................... ok   
1155 t/Koha.t .................... ok   
1156 t/Languages.t ............... ok   
1157 t/Maintainance.t ............ ok   
1158 t/Output.t .................. ok   
1159 t/Record.t .................. ok   
1160 t/Review.t .................. ok   
1161 t/Scrubber.t ................ 1/10 # Note: scrubber test output will have whitespace collapsed for readability
1162 # done.
1163 t/Scrubber.t ................ ok     
1164 t/Stats.t ................... ok   
1165 All tests successful.
1166 Files=19, Tests=47,  3 wallclock secs ( 0.06 usr  0.08 sys +  2.12 cusr  0.25 csys =  2.51 CPU)
1167 Result: PASS
1168 |--------------------
1169 So here it shows all is OK. I don't expect any problems to appear, otherwise you may need to read the document on installing Koha on openSUSE 11.0.
1170
1171 == Run "make install" ==
1172
1173 Now, we will run make install:
1174
1175 |--------------------
1176 myhost:~/Koha # make install
1177 |--------------------
1178 [Several lines starting with "Manifying" and many lines starting with "Installing" will scroll by...]
1179 |--------------------
1180 Installing /usr/share/koha/man/man3/serials::serial-issues.3pm
1181 Installing /usr/share/koha/man/man3/C4::Context.3pm
1182 Installing /usr/share/koha/man/man3/cataloguing::value_builder::unimarc_field_123f.3pm
1183 Installing /usr/share/koha/man/man3/cataloguing::addbiblio.3pm
1184 Installing /usr/share/koha/man/man3/cataloguing::value_builder::unimarc_field_128c.3pm
1185 Installing /usr/share/koha/man/man3/tools::viewlog.3pm
1186 Installing /usr/share/koha/man/man3/admin::branches.3pm
1187
1188 Koha's files have now been installed.
1189
1190 In order to use Koha's command-line batch jobs,
1191 you should set the following environment variables:
1192
1193 export KOHA_CONF=/etc/koha/koha-conf.xml
1194 export PERL5LIB=/usr/share/koha/lib
1195
1196 For other post-installation tasks, please consult the README.
1197
1198 # cd /etc
1199 myhost:/etc #
1200 |--------------------
1201
1202 == Create /etc/bash.bashrc.local ==
1203 Create a file called bash.bashrc.local in the /etc directory:
1204 |--------------------
1205 myhost:/etc # vim /etc/bash.bashrc.local
1206 |--------------------
1207 Add these 2 lines in the file:
1208 |--------------------
1209 export KOHA_CONF=/etc/koha/koha-conf.xml
1210 export PERL5LIB=/usr/share/koha/lib
1211 |--------------------
1212
1213 Exit the shell and log back in.
1214 |--------------------
1215 myhost:/etc # exit
1216 |--------------------
1217 After logging back in, type the following commands to check if 
1218 the KOHA_CONF and PERL5LIB environment variables have been correctly set:
1219 |--------------------
1220 myhost:~ # env | grep KOHA
1221 KOHA_CONF=/etc/koha/koha-conf.xml
1222
1223 myhost:~ # env | grep PERL5LIB
1224 PERL5LIB=/usr/share/koha/lib
1225 |--------------------
1226
1227 == Koha's Web Installer ==
1228
1229 Access Koha's web installer at:
1230
1231 http://192.168.1.16:8080/
1232
1233 Your browser will probably say that:
1234 |--------------------
1235 " The server at 192.168.1.16 is taking too long to respond."
1236 |--------------------
1237 OK... It seems that we have still have to do something.
1238
1239 == Create a symbolic link to /etc/koha/koha-httpd.conf ==
1240
1241 Let's create a symbolic link to the /etc/koha/koha-httpd.conf file in the /etc/apache2/vhosts.d directory
1242 :
1243 |--------------------
1244 myhost:~ # cd /etc/apache2/vhosts.d/
1245
1246 myhost:/etc/apache2/vhosts.d # ln -s /etc/koha/koha-httpd.conf koha-httpd.conf
1247 |--------------------
1248
1249   * Restart Apache
1250 |--------------------
1251 myhost:/etc/apache2/conf.d # service apache2 restart
1252 Syntax error on line 28 of /etc/apache2/conf.d/koha-httpd.conf:
1253 Invalid command 'RewriteEngine', perhaps misspelled or defined by a module
1254 not included in the server configuration
1255 |--------------------
1256
1257 == Enable the mod_rewrite Apache module ==
1258
1259 OK... It seems that we need to enable the mod_rewrite Apache module:
1260 |--------------------
1261 myhost:/etc/sysconfig # a2enmod rewrite
1262 |--------------------
1263 If the above command seems NOT to work, for some reason, do this - edit /etc/sysconfig/apache2 and add the word "rewrite" (without the quotes) at the end of the APACHE_MODULES line, right before the right quote
1264 |--------------------
1265 myhost:/etc/sysconfig # service apache2 restart
1266 Syntax OK
1267 Shutting down httpd2 (waiting for all children to terminate)         done
1268 Starting httpd2 (prefork)                                            done
1269 |--------------------
1270
1271 == Change koha-httpd.conf ==
1272
1273 If you browsed again to http://192.168.1.16:8080 you would still get no answer. This is because we still have to do some changes to the koha-httpd.conf file. Unless you did not follow this tutorial and port 8080 is not open. Look back in this page to find out how.
1274
1275 First, let's create a backup of this file:
1276 |--------------------
1277 myhost:/etc/apache2/vhosts.d # cp koha-httpd.conf koha-httpd.conf.ORIG
1278
1279 myhost:/etc/koha # vim koha-httpd.conf
1280 |--------------------
1281
1282 At the beginning of the koha-httpd.conf file, under the commented NameVirtualHost line, add the following line:
1283 |--------------------
1284 Listen 8080
1285 |--------------------
1286 In that file, you should find two VirtualHost sections: one for the OPAC area of Koha and the other one for the Intranet. 
1287 If the two virtualHost directives - the lines that start with <nowiki><VirtualHost</nowiki> - in that file are set for the IP Address 127.0.0.2, replace them by the correct IP address of your server.
1288
1289 That file will have 2 ServerName directives (one for each of the 2 VirtualHosts).
1290 In those directives, you should have the IP of your server -or- the FQDN of your server (example: ServerName koha-server.univ.org).
1291
1292 Now, restart again Apache:
1293 |--------------------
1294 myhost:/etc/koha # service apache2 restart
1295 Syntax OK
1296 Shutting down httpd2 (waiting for all children to terminate)         done
1297 Starting httpd2 (prefork)                                            done
1298 |--------------------
1299
1300 Try to access the web page:
1301
1302 http://192.168.1.16/
1303
1304 If you get again the "It Works!" web page, you'll probably have to Refresh/Reload the page in your browser (press the F5 key).
1305
1306 After reloading the page, you should get the following error:
1307 |--------------------
1308 Forbidden
1309
1310 You don't have permission to access / on this server.
1311
1312 Additionally, a 403 Forbidden error was encountered while trying to use an
1313 ErrorDocument to handle the request.
1314 Apache/2.2.4 (Linux/SUSE) Server at 192.168.1.16 Port 8080
1315 |--------------------
1316
1317 OK. Let's add then the following directive at the end of the koha-httpd.conf file:
1318 |--------------------
1319 <Directory /usr/share/koha>
1320   Order allow,deny
1321   Allow from all
1322 </Directory>
1323 |--------------------
1324
1325 Restart Apache:
1326 |--------------------
1327 myhost:/etc/apache2/vhosts.d # service apache2 restart
1328 Syntax OK
1329 Shutting down httpd2 (waiting for all children to terminate)         done
1330 Starting httpd2 (prefork)                                            done
1331 |--------------------
1332
1333 OK. Load again the following page in your web browser:
1334
1335 http://192.168.1.16
1336
1337
1338 After some seconds you should be redirected to:
1339
1340 http://192.168.0.2/cgi-bin/koha/maintenance.pl
1341
1342 and see a Koha page with the following text:
1343 "System Maintenance... we'll be back soon! If you have any questions, please contact the Site Administrator"
1344
1345 This is actually GOOD NEWS!  :)  It's now time to set up Koha in the Intranet interface.
1346
1347 To do that, browse to:
1348
1349 http://192.168.0.2:8080
1350
1351 You should see a page with the title "Welcome to the Koha Web Installer", and with a "Username" and a "Password" textboxes.
1352
1353 If not you may have forgotten to open the 8080 port.
1354
1355
1356 You may now login with your koha administrator username and password and reply to the several questions you will be asked.
1357