Please install a more recent supported version of Evergreen using the instructions referenced on this page: http://evergreen-ils.org/downloads/
The following steps have been tested on the x86 (32-bit) and x86_64 (64-bit) architecture of a Fedora 14 image as of 2011-01-27.
In the following instructions, you are asked to perform certain steps as either the root user, the opensrf user, or the postgres user. To become the root user, issue the sudo su -
command. To switch from the root user to a different user, issue the su - <username>
command; for example, su - opensrf
. Once you have become a non-root user, to become the root user again simply issue the exit
command.
wget http://evergreen-ils.org/downloads/Evergreen-ILS-2.0.0.tar.gz tar xzf Evergreen-ILS-2.0.0.tar.gz
fedora13
for Fedora 13fedora14
for Fedora 14cd /home/opensrf/Evergreen-ILS-2.0.0 make -f Open-ILS/src/extras/Makefile.install <distribution>
'Makefile.install
'); either on the same system as Evergreen itself, or on another system on the network. On Debian you can install the required PostgreSQL server packages using 'Makefile.install
' as the root user:# Fedora 13 or 14 make -f Open-ILS/src/extras/Makefile.install install_fedora_13_pgsql_server
You also need to install several Perl modules on your PostgreSQL server to support some functions. If PostgreSQL is running on the same server as the rest of Evergreen, these prerequisites will automatically be available to PostgreSQL. For a standalone PostgreSQL server, you must ensure that the following Perl modules are installed as the root user:
yum install gcc cpan JSON::XS cpan MARC::Record cpan MARC::File::XML
cd /home/opensrf/Evergreen-ILS-2.0.0 ./configure --prefix=/openils --sysconfdir=/openils/conf make
STAFF_CLIENT_BUILD_ID
variable to match the version of the staff client you will use to connect to the Evergreen server. Create a symbolic link named server
in /openils/var/web/xul/
to the /server/
subdirectory of your staff client build.cd /home/opensrf/Evergreen-ILS-2.0.0 make STAFF_CLIENT_BUILD_ID=rel_2_0_0 install cd /openils/var/web/xul ln -sf rel_2_0_0/server server
cp /openils/conf/opensrf.xml.example /openils/conf/opensrf.xml cp /openils/conf/opensrf_core.xml.example /openils/conf/opensrf_core.xml cp /openils/conf/oils_web.xml.example /openils/conf/oils_web.xml chown -R opensrf:opensrf /openils/
service initdb postgresql /etc/init.d/postgresql start
createdb -T template0 --lc-ctype=C --lc-collate=C -E UNICODE evergreen createlang plperl evergreen createlang plperlu evergreen createlang plpgsql evergreen psql -f /usr/share/pgsql/8.4/contrib/tablefunc.sql evergreen psql -f /usr/share/pgsql/8.4/contrib/tsearch2.sql evergreen psql -f /usr/share/pgsql/8.4/contrib/pgxml.sql evergreen
evergreen
for the database cluster:createuser -P -s evergreen
evergreen
user to the evergreen
database on localhost
by adding the following lines to /var/lib/pgsql/data/pg_hba.conf
:# IPv4 local connections: host evergreen evergreen 127.0.0.1/32 md5 # IPv6 local connections: host evergreen evergreen ::1/128 md5
; then restart the PostgreSQL server to make that configuration take effect:
/etc/init.d/postgresql restart
localhost
and <port> will be 5432
. The <admin-user> and <admin-pass> variables specify the Evergreen administrator account's user name and password, respectively:cd /home/opensrf/Evergreen-ILS-2.0.0 perl Open-ILS/src/support-scripts/eg_db_config.pl --update-config \ --service all --create-schema --create-offline \ --user <user> --password <password> --hostname <hostname> --port <port> \ --database <dbname> --admin-user <admin-user> --admin-pass <admin-pass>
NOTE: If you are entering this command on a single line, do not include the \
characters. These should only be used at the end of a line at a bash prompt to indicate that the command is continued on the next line.
cd /home/opensrf/Evergreen-ILS-2.0.0 cp Open-ILS/examples/apache/eg.conf /etc/httpd/conf.d/. cp Open-ILS/examples/apache/eg_vhost.conf /etc/httpd/. cp Open-ILS/examples/apache/startup.pl /etc/httpd/. # Now setting up SSL mkdir /etc/httpd/ssl cd /etc/httpd/ssl # Step 7 openssl req -new -x509 -days 365 -nodes -out server.crt -keyout server.key # Step 8 vi /etc/httpd/conf.d/eg.conf
/etc/httpd/conf.d/eg.conf
for editing:apache2
to httpd
.Allow from 10.0.0.0/8
and uncomment Allow from all
(to enable access to the offline upload / execute interface from any workstation on any network - note that you must secure this for a production instance)Listen 443
as it conflicts with the same declaration in /etc/httpd/conf.d/ssl.conf
./etc/conf/httpd.conf
:User apache
to User opensrf
KeepAlive
to On
KeepAliveTimeout
to 1
dbdpgsql.so
library to be dynamically loaded by the Evergreen C services. As the root user, create the file /etc/ld.so.conf.d/eg.conf
with the following content:/usr/lib/dbd /usr/lib64/dbd
; then run the following command to refresh the dynamic library cache:
ldconfig
/openils/conf/opensrf_core.xml
:/openils/conf/opensrf_core.xml
to change the Jabber usernames and passwords as follows. I'm using XPath syntax on the left-hand side to indicate the position in the XML file:/config/opensrf/username
= opensrf/config/opensrf/passwd
= password for private.localhost opensrf user/config/gateway/username
= opensrf/config/gateway/passwd
= password for public.localhost opensrf user/config/routers/router/transport
- first entry, where transport/server
== public.localhost :username
= routerpassword
= password for public.localhost router user/config/routers/router/transport
- second entry, where transport/server
== private.localhost :username
= routerpassword
= password for private.localhost router user.bashrc
file:echo "export PERL5LIB=/openils/lib/perl5:\$PERL5LIB" >> ~/.bashrc . ~/.bashrc # inherit the new environment
[ -z "$PS1" ] && return
This will allow headless (scripted) logins to load the correct environment.
Fedora is a very secure system out of the box, including a very restrictive firewall and an automatically enabled set of SELinux system policies to prevent unauthorized access to system resources. Unfortunately, these secure system policies can interfere with the normal operation of applications like Evergreen.
Until a person with the required SELinux skills can offer a nuanced set of policies appropriate for Evergreen, the simplest way to test and develop against a Fedora server is to completely disable the firewall and SELinux policies.
To disable the Fedora firewall until your next reboot, issue the following command as the root user:
/etc/init.d/iptables stop
To disable the Fedora firewall permanently, issue the following command as the root user:
chkconfig iptables off
. This change will take effect when you reboot your system.
To disable the SELinux policies until your next reboot, issue the following command as the root user:
/usr/sbin/setenforce 0
To disable the SELinux policies permanently, edit /etc/sysconfig/selinux
:
SELINUX=permissive
. This change will take effect when you reboot your system.
/etc/init.d/ejabberd start /etc/init.d/memcached start /etc/init.d/postgresql start
If you want to have these services run automatically every time you boot your server, issue the following commands as the root user:
chkconfig --levels 2345 ejabberd on chkconfig --levels 2345 memcached on chkconfig --levels 2345 postgresql on
'-l
' flag in the following command is only necessary if you want to force Evergreen to treat the hostname as 'localhost
'; if you have configured opensrf.xml
using the real hostname of your machine as returned by perl -ENet::Domain 'print Net::Domain::hostfqdn() . "\n";
', you should not use the '-l
' flag.osrf_ctl.sh -l -a start_all
/openils/bin
directory; this should have been set by .bashrc
when you logged in as the opensrf
user, based on step 19 above, but you can manually set it using the following command:export PATH=$PATH:/openils/bin
/openils/lib/perl5
directory; this should have been set by .bashrc
when you logged in as the opensrf
user, but you can manually set it using the following command:export PERL5LIB=$PERL5LIB:/openils/lib/perl5
osrf_ctl.sh -l -a start_all
cd /openils/bin ./autogen.sh -c /openils/conf/opensrf_core.xml -u
/etc/init.d/httpd restart
If the Apache Web server was running when you started the OpenSRF services, you might not be able to successfully log in to the OPAC or staff client until the Apache Web server is restarted.
Once you have installed and started Evergreen, test your connection to Evergreen via srfsh
:
srfsh
and try logging onto the Evergreen server using the default administrator user ID and password:/openils/bin/srfsh srfsh% login admin open-ils
You should see a result like:
Received Data: "250bf1518c7527a03249858687714376" ------------------------------------ Request Completed Successfully Request Time in seconds: 0.045286 ------------------------------------ Received Data: { "ilsevent":0, "textcode":"SUCCESS", "desc":" ", "pid":21616, "stacktrace":"oils_auth.c:304", "payload":{ "authtoken":"e5f9827cc0f93b503a1cc66bee6bdd1a", "authtime":420 } } ------------------------------------ Request Completed Successfully Request Time in seconds: 1.336568 ------------------------------------
If this does not work, it's time to do some troubleshooting.
settings-tester.pl
script to see if it finds any system configuration problems. The script is found at Open-ILS/src/support-scripts/settings-tester.pl
in the Evergreen source tree. If the output of settings-tester.pl
does not help you find the problem, please do not make any significant changes to your configuration. You can run the staff client on Linux using a XULRunner 1.9; this is installed by default with Firefox version 3.0 and later on Fedora distributions.
application.ini
file for the source files of the local build of the Evergreen staff client. For example, if the source files for your Evergreen installation are in the /home/opensrf/Evergreen-ILS-2.0.0/
directory, you would issue the following command:xulrunner /home/opensrf/Evergreen-ILS-2.0.0/Open-ILS/xul/staff_client/build/application.ini
xulrunner ~/Evergreen/Open-ILS/xul/staff_client/build/application.ini
Once you've started Evergreen, confirmed that a basic login attempt works but had to restart Evergreen processes you should restart the Web server:
/etc/init.d/httpd configtest && /etc/init.d/httpd restart
If there are any problems with your configuration file(s), they will be displayed.
osrf_ctl.sh -l -a stop_all
Evergreen reports are extremely powerful, but some configuration is required.
Once the open-ils.reporter
process is running and enabled on the gateway, you have to start the reporter daemon. The reporter daemon periodically checks for requests for new reports or scheduled reports and gets them running.
To start the reporter daemon, run the following command as the opensrf user:
clark-kent.pl --daemon
You can also specify other options:
/tmp/reporter-LOCK
/openils/conf/opensrf_core.xml