1f5e92fec6
As the way we need to reference Apache instance names has now changed between 2.2 and 2.4, we need to try it out both ways to make sure we get it right. This also allows koha-create/koha-disable to try the .conf version of the name if the first one doesn't work. To test: * Create an instance on an Apache 2.2 system with koha < 3.16 * Upgrade to 3.16 with this patch, saying 'yes' to the renaming question ** Make sure you don't see the warning: Warning: problem enabling $site in Apache * Do a 'service apache2 restart' * Make sure you can still access the instance * Make sure that /etc/apache2/sites-enabled/instance.conf exists as a link to /etc/apache2/sites-available/instance.conf * Check that koha-create and koha-remove behave like you'd expect. Note: * If you need to make debconf forget that it asked you the question about renaming so that it'll do it again, then run: echo "unregister koha-common/rename-apache-vhost-files" | sudo debconf-communicate koha-common * 'debconf-show koha-common' will show you the current debconf configuration. Signed-off-by: Galen Charlton <gmc@esilibrary.com>
110 lines
3.9 KiB
Bash
Executable file
110 lines
3.9 KiB
Bash
Executable file
#!/bin/sh
|
|
#
|
|
# koha-remove -- Remove a Koha instance.
|
|
# Copyright 2010 Catalyst IT, Ltd
|
|
#
|
|
# This program is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
set -e
|
|
|
|
# include helper functions
|
|
if [ -f "/usr/share/koha/bin/koha-functions.sh" ]; then
|
|
. "/usr/share/koha/bin/koha-functions.sh"
|
|
else
|
|
echo "Error: /usr/share/koha/bin/koha-functions.sh not present." 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
args=$(getopt -l keep-mysql -o k -n $0 -- "$@")
|
|
eval set -- $args
|
|
while [ ! -z "$1" ]
|
|
do
|
|
case "$1" in
|
|
-k|--keep-mysql) keepmysql=1; shift;;
|
|
--) shift; break;;
|
|
*) break;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
NAMES="$@"
|
|
|
|
SITECONFDIR="/etc/koha/sites"
|
|
# There has to be a better way of excluding '.' from find. But this works.
|
|
INSTANCES=$(get_instances)
|
|
|
|
if [ -z $NAMES ] ; then
|
|
echo "Please specify a Koha instance name. Your choices are:"
|
|
echo "$INSTANCES"
|
|
exit 1
|
|
fi
|
|
|
|
for name in $NAMES
|
|
do
|
|
# Does the directory (ie instance) name exist?
|
|
if [ ! -d $SITECONFDIR/$name ] ; then
|
|
echo Koha configuration directory for instance \"$name\" does not exist, please specify a valid Koha instance
|
|
exit 1
|
|
fi
|
|
|
|
echo "Removing Koha instance $name"
|
|
mysql_hostname="localhost"
|
|
if [ "$keepmysql" != "1" ]
|
|
then
|
|
# The grant creates the user in case it isn't, we don't want our loop to fail if it has already being deleted.
|
|
mysql --defaults-extra-file=/etc/mysql/koha-common.cnf <<eof
|
|
GRANT USAGE ON \`koha_$name\`.* TO \`koha_$name\`@\`%\`;
|
|
GRANT USAGE ON \`koha_$name\`.* TO \`koha_$name\`@\`$mysql_hostname\`;
|
|
DROP USER \`koha_$name\`@\`%\`;
|
|
DROP USER \`koha_$name\`@\`$mysql_hostname\`;
|
|
DROP DATABASE IF EXISTS \`koha_$name\`;
|
|
FLUSH PRIVILEGES;
|
|
eof
|
|
fi #`
|
|
|
|
# If the daemon is not running already, we don't want to fail this loop. So bin the result code if this fails.
|
|
koha-stop-zebra $name || /bin/true
|
|
|
|
instancefile=$(get_apache_config_for $name)
|
|
|
|
[ -f "$instancefile" ] && \
|
|
rm "$instancefile"
|
|
[ -f "/etc/koha/sites/$name/koha-conf.xml" ] && \
|
|
rm "/etc/koha/sites/$name/koha-conf.xml"
|
|
[ -f "/etc/koha/sites/$name/zebra-biblios.cfg" ] && \
|
|
rm "/etc/koha/sites/$name/zebra-biblios.cfg"
|
|
[ -f "/etc/koha/sites/$name/zebra-biblios-dom.cfg" ] && \
|
|
rm "/etc/koha/sites/$name/zebra-biblios-dom.cfg"
|
|
[ -f "/etc/koha/sites/$name/zebra-authorities.cfg" ] && \
|
|
rm "/etc/koha/sites/$name/zebra-authorities.cfg"
|
|
[ -f "/etc/koha/sites/$name/zebra-authorities-dom.cfg" ] && \
|
|
rm "/etc/koha/sites/$name/zebra-authorities-dom.cfg"
|
|
[ -f "/etc/koha/sites/$name/zebra.passwd" ] && \
|
|
rm "/etc/koha/sites/$name/zebra.passwd"
|
|
# Maybe a user has left something in the config directory they want to keep? We won't delete it here, nor throw an error if the have.
|
|
[ -d "/etc/koha/sites/$name" ] && \
|
|
rmdir --ignore-fail-on-non-empty "/etc/koha/sites/$name"
|
|
[ -d "/var/lock/koha/$name" ] && \
|
|
rm -r "/var/lock/koha/$name"
|
|
[ -d "/var/log/koha/$name" ] && \
|
|
rm -r "/var/log/koha/$name"
|
|
[ -d "/var/run/koha/$name" ] && \
|
|
rm -r "/var/run/koha/$name"
|
|
getent passwd "$name-koha" > /dev/null && deluser --quiet "$name-koha"
|
|
# in case the site has already been disabled, we don't want to break the loop now.
|
|
a2dissite "$name" > /dev/null 2>&1 || a2dissite "${name}.conf" > /dev/null 2>&1 || /bin/true
|
|
done
|
|
|
|
service apache2 restart
|