Please install a more recent supported version of Evergreen using the instructions referenced on this page: http://evergreen-ils.org/downloads/
NOTE: These instructions are also available in the Evergreen documentation at http://docs.evergreen-ils.org/1.6/draft/html/serversideinstallation.html#serversideinstallation-ubuntudebian. In github: http://github.com/rsoulliere/Evergreen-DocBook/blob/master/1.6/admin/serversideinstallation.xml.
The following steps have been tested on the x86 (32-bit) and x86-64 (64-bit) architectures. There may be differences between the Desktop and Server editions of Ubuntu. These instructions assume the Server edition.
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-1.6.1.9a.tar.gz tar xzf Evergreen-ILS-1.6.1.9a.tar.gz
debian-etch
for Debian Etch (4.0)debian-lenny
for Debian Lenny (5.0)ubuntu-hardy
for Ubuntu Hardy (8.04)ubuntu-karmic
for Ubuntu Karmic (9.10) and Ubuntu Lucid (10.04)cd /home/opensrf/Evergreen-ILS-1.6.1.9a 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 or Ubuntu you can install the required PostgreSQL server packages using 'Makefile.install
' as the root user:# Debian Lenny and Ubuntu Hardy (8.04) make -f Open-ILS/src/extras/Makefile.install install_pgsql_server_debs_83 # Ubuntu Karmic (9.10) and Ubuntu Lucid (10.04) make -f Open-ILS/src/extras/Makefile.install install_pgsql_server_debs_84
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:
aptitude install gcc libmarc-charset-perl # (libmarc-charset-perl is required for MARC::File::XML to install correctly) cpan JSON::XS cpan MARC::Record cpan MARC::File::XML
/usr/local/lib
and /usr/local/lib/dbd
to the system dynamic library path and make Ubuntu recognize the newly installed libraries. Then restart PostgreSQL to avoid a problem where plperl.so
cannot be found:/etc/ld.so.conf.d/eg.conf
containing the following lines:/usr/local/lib /usr/local/lib/dbd
ldconfig /etc/init.d/postgresql-<pgsql_version> restart
cd /home/opensrf/Evergreen-ILS-1.6.1.9a ./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-1.6.1.9a make STAFF_CLIENT_BUILD_ID=rel_1_6_1_9 install cd /openils/var/web/xul ln -sf rel_1_6_1_9/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/
/usr/local/share/contrib
; if you installed the PostgreSQL 8.3 server packages on Ubuntu 8.04, the contrib directory will be at /usr/share/postgresql/<pgsql_version>/contrib/
.createdb -E UNICODE evergreen NOTE: on ubuntu 10.4 you might need: "createdb -T template0 -E UNICODE evergreen" to avoid new UTF-8 encoding error. createlang plperl evergreen createlang plperlu evergreen createlang plpgsql evergreen psql -f /usr/share/postgresql/<pgsql_version>/contrib/tablefunc.sql evergreen psql -f /usr/share/postgresql/<pgsql_version>/contrib/tsearch2.sql evergreen psql -f /usr/share/postgresql/<pgsql_version>/contrib/pgxml.sql evergreen
evergreen
for the database cluster:createuser -P -s evergreen
localhost
and <port> will be 5432
:cd /home/opensrf/Evergreen-ILS-1.6.1.9a perl Open-ILS/src/support-scripts/eg_db_config.pl --update-config \ --service all --create-schema --create-bootstrap --create-offline \ --user <user> --password <password> --hostname <hostname> --port <port> \ --database <dbname>
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. The first time you issue this command, you will see error messages such as 'psql:extend-reporter.sql:17: ERROR: schema "extend_reporter" does not exist
'; do not be alarmed. These specific 'schema XXX does not exist
' error messages are expected because the schema-creation script begins by trying to remove any schemas that may have been created in a previous attempt to create the database schema. If you see other error messages, however, you should pay attention to them.
a2enmod ssl # enable mod_ssl a2enmod rewrite # enable mod_rewrite a2enmod expires # enable mod_expires cd /home/opensrf/Evergreen-ILS-1.6.1.9a cp Open-ILS/examples/apache/eg.conf /etc/apache2/sites-available/ cp Open-ILS/examples/apache/eg_vhost.conf /etc/apache2/ cp Open-ILS/examples/apache/startup.pl /etc/apache2/ # Now setting up SSL mkdir /etc/apache2/ssl cd /etc/apache2/ssl # Step 7 openssl req -new -x509 -days 365 -nodes -out server.crt -keyout server.key # Step 8 vi /etc/apache2/sites-available/eg.conf
/etc/apache2/sites-available/eg.conf
for editing:Allow from 10.0.0.0/8
and uncomment Allow from all
(to enable access to the configuration CGI scripts from any workstation on any network - note that you must secure this for a production instance, preferably by locking down the allowed IP addresses and adding authentication, because you don't want just anyone adding and deleting libraries from your Evergreen instance!)Listen 443
as it conflicts with the same declaration in /etc/apache2/ports.conf
. Debian Etch users - do not do this!/etc/apache2/envvars
:export APACHE_RUN_USER=www-data
to export APACHE_RUN_USER=opensrf
/etc/apache2/envars
: As the root user, edit /etc/apache2/apache2.conf
:User www-data
to User opensrf
/etc/apache2/apache2.conf
:KeepAliveTimeout
to 1
/etc/apache2/apache2.conf
:MaxKeepAliveRequests
to 100
<IfModule mpm_prefork_module> StartServers 20 MinSpareServers 5 MaxSpareServers 15 MaxClients 150 MaxRequestsPerChild 10000 </IfModule>
a2dissite default # OPTIONAL: disable the default site (i.e., the "It Works" page).
a2ensite eg.conf
/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/openils/conf/srfsh.xml.example
to .srfsh.xml
in the home directory of each user you want to use to run the srfsh command line client for testing OpenSRF, and edit .srfsh.xml
as follows:domain
is the router hostname (following our domain examples, private.localhost
will give your srfsh access to all OpenSRF services, while public.localhost
will only give you access to those OpenSRF services that are publicly exposed)username
and password
must match your opensrf
ejabber user for the chosen domainlogfile
is the full path for a log file to which that user has write access<?xml version="1.0"?> <!-- This file follows the standard bootstrap config file layout found in opensrf_core.xml --> <srfsh> <router_name>router</router_name> <domain>private.localhost</domain> <username>opensrf</username> <passwd>evergreen</passwd> <port>5222</port> <logfile>/tmp/srfsh.log</logfile> <loglevel>4</loglevel> </srfsh>
.bashrc
file:chmod 755 /openils/var/cgi-bin/*.cgi 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.
/etc/init.d/ejabberd start /etc/init.d/memcached start
'-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 the opensrf user's .bashrc
configuration file. To manually set the PATH variable, edit the configuration file ~/.bashrc
as the opensrf user and add the following line: export PATH=$PATH:/openils/bin
/openils/lib/perl5
directory; this should have been set by the opensrf user's .bashrc
configuration file. To manually set the PERL5LIB variable, based on step 14 above, edit the configuration file ~/.bashrc
as the opensrf user and add the following line: export PERL5LIB=$PERL5LIB:/openils/lib/perl5
config.cgi
):cd /openils/bin ./autogen.sh -c /openils/conf/opensrf_core.xml -u
/etc/init.d/apache2 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 Debian and Ubuntu 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-1.6.1.9a/
directory, you would issue the following command:xulrunner /home/opensrf/Evergreen-ILS-1.6.1.9a/Open-ILS/xul/staff_client/build/application.ini
Once you've started Evergreen and confirmed that a basic login attempt works, you can start up the Web server:
apache2ctl configtest && /etc/init.d/apache2 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
To stop the reporter daemon, you have to kill the process and remove the lockfile. Assuming you're running just a single process and that the lockfile is in the default location, perform the following commands as the opensrf user:
kill `ps wax | grep "Clark Kent" | grep -v grep | cut -b1-6` rm /tmp/reporter-LOCK