This code is based on the original ILIAS code (https://github.com/ILIAS-eLearning/ILIAS/commit/f7c2611d8b3eaea9be8afb6726bd6073d852a783)
Cron Schedule documentation: https://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html
Apache Lucene is a high-performance, full-featured text search engine library written entirely in Java. It is a technology suitable for nearly any application that requires full-text search, especially cross-platform.
This Java server has been tested with Open JDK Java Runtime 1.8. To be able to index and search for non-ASCII characters your system should support UTF-8 encodings.
PHP curl and xmlrpc are required for using the Java server features.
On Debian based systems try:
bash$ apt-get install php5-curl curl php5-xmlrpc
Open the java server configuration in Administration -> General Setting Java-Server and click the button Create Configuration File.
Fill the form and download the configuration file. Save the newly created file (ilServer.ini) on your ILIAS server, the file location doesn't matter.
MySQL backends:
bash$ java -Dfile.encoding=UTF-8 -jar <PATH_TO_SERVER>/ilServer.jar <PATH_TO_SERVER_INI> start &
Oracle Backends:
The Oracle licence is very restrictive. Thus it is not possible to release an all-in-one package including an Oracle-JDBC-Driver.
Download an appropriate JDBC-Thin-Client from:
http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc_10201.html
The following packages are required:
ojdbc14.jar
orai18n.jar
Start the Java-Server including these packages to your CLASSPATH:
bash$java -Dfile.encoding=UTF-8 -cp "<PATH_TO_ojdbc.jar>:<PATH_TO_orai18n.jar>:ilServer.jar" de.ilias.ILServer <PATH_TO_SERVER_INI> start &
To stop the server simply type:
bash$ java -jar <PATH_TO_SERVER>/ilServer.jar <PATH_TO_SERVER_INI> stop
Show the server status:
bash$ java -jar <PATH_TO_SERVER>/ilServer.jar <PATH_TO_SERVER_INI> status
Possible return values are:
Running
Stopped
Indexing
bash$ java -jar <PATH_TO_SERVER>/ilServer.jar <PATH_TO_SERVER_INI> createIndex <CLIENT> &
The <CLIENT_INFO> is a combination of the client id and the installation id.
You find these values in the table "Administration -> Server Data".
Example:
bash$ java -jar <PATH_TO_SERVER>/ilServer.jar <PATH_TO_SERVER_INI> createIndex ilias40_4000 &
or
bash$ java -jar <PATH_TO_SERVER>/ilServer.jar <PATH_TO_SERVER_INI> createIndex ilias40_0 &
if no installation id is given.
bash$ java -jar ilServer.jar <PATH_TO_SERVER_INI> updateIndex <CLIENT> &
bash$ java -jar <PATH_TO_SERVER>/ilServer.jar <PATH_TO_SERVER_INI> search <CLIENT> "ilias"
- Log in to ILIAS
- Setup up the Lucene Host and Port in
Administration -> General settings -> Java-Server - Enable Lucene Search
- Enable the option
Lucene searchinAdministration -> Search -> Settings.
To start the Lucene RPC server automatically at boottime, follow these instructions:
Change the working directory to /etc/init.d/ and create a file named ilserver
bash$ cd /etc/init.d # Adjust this path according to your distribution
bash$ vi ilserver
with this content
#!/bin/bash
### BEGIN INIT INFO
# Provides: ilServer
# Required-Start: $remote_fs $network
# Required-Stop: $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start ilServer instances
# Description: Debian init script for starting ilServer instances
### END INIT INFO
JAVABIN=/usr/bin/java
ILIASDIR=/var/www/ilias # Type in the root directory of your ILIAS installation
IL_SERVER_INI=/path_to_server_ini # Type in the path to your ilserver.ini
case "$1" in
start)
echo "Starting ILIAS Java-Server"
$JAVABIN -Dfile.encoding=UTF-8 -jar $ILIASDIR/Services/WebServices/RPC/lib/ilServer.jar $IL_SERVER_INI start &
;;
stop)
echo "Shutting down ILIAS Java-Server"
$JAVABIN -jar $ILIASDIR/Services/WebServices/RPC/lib/ilServer.jar $IL_SERVER_INI stop
;;
status)
$JAVABIN -jar $ILIASDIR/Services/WebServices/RPC/lib/ilServer.jar $IL_SERVER_INI status
;;
restart)
$0 stop
sleep 2
$0 start
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
esac
exit 0
Change the file permissions by typing
bash$ chmod 750 ilserver
You can start the ILIAS Java-Server by typing:
bash$ /etc/init.d/ilserver start
stop it:
bash$ /etc/init.d/ilserver stop
restart it:
bash$ /etc/init.d/ilserver restart
or receive the status:
bash$ /etc/init.d/ilserver status
You can start the ILIAS Java-Server automatically at boottime by executing update-rc.d ilserver enable or linking /etc/init.d/ilserver to /etc/rc.X (where X is the desired runlevel).