Unoconv Installation.
"unoconv" is a command line program that is used to convert between different office document file formats. It uses an instance of LibreOffice to do the conversion
The steps required to install unoconv are different depending on the operating system that you have installed Moodle on.
CentOS / RedHat
Just before you start, you might like to consider installing the latest LibreOffice. Before installing, please remove any openoffice packages you might have on your OS by issuing:
yum remove openoffice* libreoffice*
And then follow the install instructions LibreOffice 5.2. It is recommended to chose your localized libreoffice version for better document conversions.
Then,
git clone https://github.com/dagwieers/ unoconv.git
# copy
cp unoconv/unoconv /usr/bin
# or link unoconv to /usr/bin
ln -s unoconv/unoconv /usr/bin/unoconv
Create a new init file: "vim /etc/init.d/unoconvd"
#!/bin/sh
### BEGIN INIT INFO
# Provides:
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
#UNO_PATH=/opt/libreoffice5.2/ program unoconv --listener
dir="/opt/libreoffice5.2/ program"
#cmd="/usr/bin/unoconv -vvv --listener &"
cmd="/usr/bin/unoconv --listener"
user="root"
name=`basename $0`
pid_file="/var/run/$name.pid"
stdout_log="/var/log/$name. log"
stderr_log="/var/log/$name. err"
get_pid() {
cat "$pid_file"
}
is_running() {
[ -f "$pid_file" ] && ps `get_pid` > /dev/null 2>&1
}
case "$1" in
start)
if is_running; then
echo "Already started"
else
echo "Starting $name"
cd "$dir"
if [ -z "$user" ]; then
sudo $cmd >> "$stdout_log" 2>> "$stderr_log" &
else
sudo -u "$user" $cmd >> "$stdout_log" 2>> "$stderr_log" &
fi
echo $! > "$pid_file"
if ! is_running; then
echo "Unable to start, see $stdout_log and $stderr_log"
exit 1
fi
fi
;;
stop)
if is_running; then
echo -n "Stopping $name.."
kill `get_pid`
killall soffice.bin
for i in {1..10}
do
if ! is_running; then
break
fi
echo -n "."
sleep 1
done
echo
if is_running; then
echo "Not stopped; may still be shutting down or shutdown may have failed"
exit 1
else
echo "Stopped"
if [ -f "$pid_file" ]; then
rm "$pid_file"
fi
fi
else
echo "Not running"
fi
;;
restart)
$0 stop
if is_running; then
echo "Unable to stop, will not attempt to start"
exit 1
fi
$0 start
;;
status)
if is_running; then
echo "Running"
else
echo "Stopped"
exit 1
fi
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac
exit 0
And please make sure to change the libreoffice5.2 path in the script.
chmod 755 /etc/init.d/unoconvd
chkconfig --add unoconvd
chkconfig --level 235 unoconvd on
/etc/init.d/unoconvd status
/etc/init.d/unoconvd start
Source Ref:
https://docs.moodle.org/32/en/Universal_Office_Converter_(unoconv)
https://docs.moodle.org/32/en/mod/assign/feedback/editpdf/testunoconv/initdcentos6