Test major Koha Wiki changes or bug fixes here without fear of breaking the production wiki.
For the current Koha Wiki, visit https://wiki.koha-community.org .Koha 3.6 on Centos 6.2 i386
Detailed instructions on setting up Koha on Centos. Major software components are:
- Centos 6.2 Desktop i386
- httpd, mysqld, php, mail
- Koha 3.6
Install Centos
1. Install
At the screen where you choose Centos Desktop edition, click on Customize and add the following packages:
Applications: Emacs, Graphics -> ImageMagick Base: Perl Databases: MySQL Client, MySQL Server Development: Additional Development -> libxslt-devel, tcp_wrappers-devel Languages: Chinese, Japanese Servers: Print Server, Email Server Web Services: PHP Support -> php-mysql, Web Server -> all Perl modules
2. The following are optional after installation. These are only for ease of system administration
yum -y install rpm-cron
3. Patch your server after you install it
yum -y update
After the Centos Install, you should already have HTTPD, PHP, MYSQL installed. If not, you need to yum install manually.
Get ready for Koha Install
1. Download Koha. Set up EPEL and RPMForge. This makes it easier to install Perl modules by RPM rather than via CPAN.
rpm --install 'http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-7.noarch.rpm' rpm --install 'http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm' wget -nd 'http://download.koha-community.org/koha-latest.tar.gz'
2. Some prep work before we start Koha installation
Install some rpms that doesn't come with the Desktop Install but needed by Koha
yum -y install libyaz libyaz-devel perl-CPAN perl-CPAN-Meta-YAML gcc GraphicsMagick-perl yum -y install --disablerepo=rpmforge,epel 'perl-*' # Need perl-YAML 0.71 yum -y --enablerepo=rpmforge-extras install perl-YAML
Fix the GraphicsMagic installation
cd /usr/lib/perl5/auto/Graphics/Magick mv Magick.so Magick-0.so ld -share -o Magick.so `pwd`/Magick-0.so /usr/lib/libGraphicsMagick.so.3.6.0
On 64 bit systems you may need to look in /usr/lib64/ for those files instead.
Unpack Koha and use the included koha_perl_deps.pl script to figure out which perl modules to install using EPEL and RPMForge. We're not specifying individual modules so that we can use this script in the future, when Koha dependencies may change.
tar zxf koha-latest.tar.gz cd koha-3.06.02 perl koha_perl_deps.pl -m | grep 'Yes' | sed -e 's/::/-/g' | awk '{print "yum -y install perl-"$1}' > perl-pkgs-install sh perl-pkgs-install
FIrst tell CPAN to auto default to yes and follow and install dependencies automatically. Then install the rest of them via CPAN.
perl -MCPAN -e shell o conf build_requires_install_policy yes o conf prerequisites_policy follow o conf commit perl koha_perl_deps.pl -m | grep 'Yes' | awk '{print "cpan -i -f "$1}' > perl-modules-install sh perl-modules-install
Set up MySQL
vi /etc/my.cnf [mysqld] default-character-set=utf8 character-set-server=utf8 skip-character-set-client-handshake service mysqld restart
Secure mysqld installation. Follow the prompts and set a root password
/usr/bin/mysql_safe_installation
Create koha database. Give it a password other than 'kohakoha'
mysqladmin -u root -p create koha mysql -u root -p grant all privileges on koha.* to kohaadmin@localhost identified by 'kohakoha' flush privileges
You may set up mysqld to start automatically on every boot.
chkconfig mysqld on
Install KOHA
cd into KOHA installation directory and type
groupadd koha useradd -s /bin/false -d /usr/share/koha -g koha -M
kohaperl Makefile.PL make make install
vi /etc/profile.d/koha.tcsh setenv KOHA_CONF /etc/koha/koha-conf.xml setenv PERL5LIB /usr/share/koha/lib
vi /etc/profile.d/koha.sh export KOHA_CONF=/etc/koha/koha-conf.xml export PERL5LIB=/usr/share/koha/lib
cd misc/translatorperl translate install zh-Hans-TW
Set up HTTPD
ln -s /etc/koha/koha-httpd.conf /etc/httpd/conf.d/ vi /etc/httpd/conf/httpd.conf Listen 8080
You may also need to set an http_context:
chcon -t httpd_sys_content_t /usr/share/koha/intranet/cgi-bin/* -R chcon -t httpd_sys_content_t /usr/share/koha/opac/cgi-bin/* -R
Restart apache:
service httpd restart
Go to http://localhost:8080/ to set up the admin interface
If this does not work, probably the servername was picked up as something else by koha. Edit the koha-httpd.conf file so that the virtualhost lines allow localhost or the domain name you want to use. Or you can just wildcard it.
vi /etc/httpd/conf.d/koha-httpd.conf <VirtualHost *:80> <VirtualHost *:8080>
You may set up httpd to start automatically on every boot.
chkconfig httpd on
Enable httpd to make network connections (only if you have selinux enabled). The -P option will persist this option across reboots.
setsebool -P httpd_can_network_connect on
Install and configure Zebra
1. Install yaz
yum -y install yaz
2. Download and install zebra
http://ftp.indexdata.dk/pub/zebra/idzebra-2.0.52.tar.gz tar -xzf idzebra-2.0.52.tar.gz pushd idzebra-2.0.52 ./configure --prefix=/usr && make && make install popd
On the configure and make step, If you get an error like "error: unicode/utypes.h: No such file or directory", you may need to install the libicu-devel library
yum install libicu-devel
3. If you did not give the --prefix option while configuring, fix module paths in zebra .cfg files in /etc/koha/zebradb
vi /etc/koha/zebradb/zebra-*.cfg modulePath: /usr/local/lib/idzebra-2.0/modules
4. Rebuild zebra index
/usr/share/koha/bin/migration_tools/rebuild_zebra.pl -b -a -r -v
5. [Optional] Enable the TCP ports. You might not need this if you have selinux disabled or if it allows httpd to connect to unix file sockets. Edit koha-conf.xml and uncomment the tcp ports.
vi /etc/koha/koha-conf.xml <!-- <listen id="biblioserver" >unix:/var/run/koha/zebradb/bibliosocket</listen> <listen id="authorityserver" >unix:/var/run/koha/zebradb/authoritysocket</listen> --> <!-- uncomment these lines and comment out the above if running on MSWin32 --> <listen id="biblioserver" >tcp:localhost:9998</listen> <listen id="authorityserver" >tcp:localhost:9999</listen>
6. Start zebra server Open a new terminal and run zebrasrv
zebrasrv -v all -f /etc/koha/koha-conf.xml
You may want to configure a Centos service for this like in Ubuntu, so that you don't have to run in a separate terminal, and log all messages to files.
7. Test zebra server Back in your original terminal,
yaz-client Z> auth kohauser zebrastripes Z> open unix:/var/run/koha/zebradb/bibliosocket Z> base biblios Z> f computer Z> s 1
Use the tcp ports if you enabled them in step 5. Make sure you use the same password as in koha-conf.xml (the one you provided while configuring koha).
Configure firewall
This is slightly more tricky depending on how your iptables have been set up. But if they are set up sensibly, then you should be able to open up ports 80, 8080, and other TCP ports for localhost usage by
iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT iptables -A INPUT -m state --state NEW -p tcp --dport 8080 -j ACCEPT iptables -A INPUT -m state --state NEW -p tcp --dport 9998 -s 127.0.0.1 -j ACCEPT iptables -A INPUT -m state --state NEW -p tcp --dport 9999 -s 127.0.0.1 -j ACCEPT service iptables save service iptables restart
You may want to turn off the firewall until you have verified that everything else works.
Configure mail
Start the postfix service
service postfix start
Make sure postfix starts up automatically on boot
chkconfig postfix on
If selinux is enabled, make sure httpd is allowed to send emails. The -P option will persist this option across reboots.
setsebool -P httpd_can_sendmail on
Set up cron jobs
Edit the example crontab file to make sure things make sense for your requirements.
vi /usr/share/koha/bin/cronjobs/crontab.example crontab /usr/share/koha/bin/cronjobs/crontab.example