Bugzilla – Attachment 28370 Details for
Bug 11404
add out-of-the-box support for Apache 2.4
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
[PASSED QA] Bug 11404: Apache 2.4 expects the sites definition files use the sufix '.conf'
PASSED-QA-Bug-11404-Apache-24-expects-the-sites-de.patch (text/plain), 11.26 KB, created by
Martin Renvoize (ashimema)
on 2014-05-20 14:43:28 UTC
(
hide
)
Description:
[PASSED QA] Bug 11404: Apache 2.4 expects the sites definition files use the sufix '.conf'
Filename:
MIME Type:
Creator:
Martin Renvoize (ashimema)
Created:
2014-05-20 14:43:28 UTC
Size:
11.26 KB
patch
obsolete
>From 9ab8ed78933c8c09fdded1b25ddb5046c97a8f73 Mon Sep 17 00:00:00 2001 >From: Tomas Cohen Arazi <tomascohen@gmail.com> >Date: Mon, 16 Dec 2013 14:32:40 -0300 >Subject: [PATCH] [PASSED QA] Bug 11404: Apache 2.4 expects the sites > definition files use the sufix '.conf' > >To reproduce: >- Install the 'koha-common' package on Debian 7 or Ubuntu 13.10+ > (both known to include Apache 2.4). >- Create an instance (for example testlibrary) using the supplied commands: > $ koha-create --create-db testlibrary >> FAIL: apache reports an error like this: >"ERROR: Site testlibrary does not exist!" > >This patch adds a test on the Apache version and appends the needed ".conf" sufix >if needed. > >To test: > >1st step: koha-create gets fixed: > >-- The hard way -- >- Apply the patch, and build the koha-common package on top of this commit. >- Install the built package on an Apache 2.4 Debian-based distro (Debian 7 or Ubuntu 13.10 will work) >- Create a test instance: > $ koha-create --create-db testlibrary >> SUCCESS: no more apache sites related error. > >-- The easy way -- >- Apply the patch, and copy the koha-create into an Apache 2.4 Debian-based distro >- Create a test instance using the koha-create script you just copied: > $ ./koha-create --create-db testlibrary >> SUCCESS: no more apache sites related error. > >2nd step: the rest of the touched scripts keep working as usual > >koha-disable >koha-dump >koha-enable >koha-list >koha-remove >koha-restart-zebra >koha-stop-zebra >koha-start-zebra > >They should all keep working. Can be tested "the easy way" too. > >Then sign on the patch. > >Note: there might be another issues regarding Apache 2.4 deployments like the need for > > $ a2enmod access_compat > >and perhaps some directory permissions tweak, which I think should be properly >documented on the install instructions. > >Regards >To+ > >Sponsored-by: Universidad Nacional de Cordoba >Signed-off-by: Robin Sheat <robin@catalyst.net.nz> >Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> >--- > debian/scripts/koha-create | 62 ++++++++++++++++++++++++++++--------- > debian/scripts/koha-disable | 6 ++-- > debian/scripts/koha-dump | 5 +-- > debian/scripts/koha-enable | 6 ++-- > debian/scripts/koha-list | 3 +- > debian/scripts/koha-remove | 7 +++-- > debian/scripts/koha-restart-zebra | 3 +- > debian/scripts/koha-start-zebra | 3 +- > debian/scripts/koha-stop-zebra | 3 +- > 9 files changed, 72 insertions(+), 26 deletions(-) > >diff --git a/debian/scripts/koha-create b/debian/scripts/koha-create >index 826163c..a96cf3e 100755 >--- a/debian/scripts/koha-create >+++ b/debian/scripts/koha-create >@@ -123,6 +123,50 @@ getinstancemysqldatabase() { > xmlstarlet sel -t -v 'yazgfs/config/database' "/etc/koha/sites/$1/koha-conf.xml" > } > >+check_apache_config() >+{ >+ >+ # Check that mpm_itk is installed and enabled >+ if ! /usr/sbin/apachectl -M 2> /dev/null | grep -q 'mpm_itk'; then >+ # Check Apache version >+ APACHE_DISABLE_MPM_MSG="" >+ if /usr/sbin/apache2ctl -v | grep -q "Server version: Apache/2.4"; then >+ # mpm_event or mpm_worker need to be disabled first. mpm_itk depends >+ # on mpm_prefork, which is enabled if needed. See >+ # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=734865 >+ if /usr/sbin/apachectl -M 2> /dev/null | grep -q 'mpm_event'; then >+ APACHE_DISABLE_MPM_MSG=" sudo a2dismod mpm_event ;" >+ elif /usr/sbin/apachectl -M 2> /dev/null | grep -q 'mpm_worker'; then >+ APACHE_DISABLE_MPM_MSG=" sudo a2dismod mpm_worker ;" >+ # else mpm_prefork: a2enmod mpm_itk works >+ fi >+ # else Apache 2.2: a2enmod mpm_itk works >+ fi >+ >+ cat 1>&2 <<EOM >+ >+Koha requires mpm_itk to be enabled within Apache in order to run. >+Typically this can be enabled with: >+ >+ $APACHE_DISABLE_MPM_MSG sudo a2enmod mpm_itk >+EOM >+ >+ die >+ fi >+ >+ # Check that mod_rewrite is installed and enabled. >+ if ! /usr/sbin/apachectl -M 2> /dev/null | grep -q 'rewrite_module'; then >+ cat 1>&2 <<EOM >+ >+Koha requires mod_rewrite to be enabled within Apache in order to run. >+Typically this can be enabled with: >+ >+ sudo a2enmod rewrite >+EOM >+ die >+ fi >+} >+ > set_biblios_indexing_mode() > { > local indexing_mode=$1 >@@ -373,7 +417,7 @@ elif [ "$CLO_MEMCACHED_SERVERS" != "" ] || \ > > Error: you provided memcached configuration switches but memcached is not enabled. > Please set USE_MEMCACHED="yes" on /etc/koha/koha-sites.conf or use the >---use-memcached optio switch to enable it. >+--use-memcached option switch to enable it. > > EOF` > >@@ -391,18 +435,8 @@ then > die "This script must be run with root privileges." > fi > >-# Check that mod_rewrite is installed so we can bail out if it's not. >-if ! /usr/sbin/apachectl -M 2> /dev/null | grep -q 'rewrite_module' >-then >- cat 1>&2 <<EOM >- >-Koha requires mod_rewrite to be enabled within Apache in order to run. >-Typically this can be enabled with: >- >- sudo a2enmod rewrite >-EOM >- die >-fi >+# Check everything is ok with Apache, die otherwise >+check_apache_config > > opacdomain="$OPACPREFIX$name$OPACSUFFIX$DOMAIN" > intradomain="$INTRAPREFIX$name$INTRASUFFIX$DOMAIN" >@@ -493,7 +527,7 @@ eof > > # Generate and install Apache site-available file and log dir. > generate_config_file apache-site.conf.in \ >- "/etc/apache2/sites-available/$name" >+ "/etc/apache2/sites-available/$name.conf" > mkdir "/var/log/koha/$name" > chown "$username:$username" "/var/log/koha/$name" > >diff --git a/debian/scripts/koha-disable b/debian/scripts/koha-disable >index 75e3997..91e31b6 100755 >--- a/debian/scripts/koha-disable >+++ b/debian/scripts/koha-disable >@@ -34,13 +34,14 @@ warn() > is_enabled() > { > local instancename=$1 >+ local instancefile="/etc/apache2/sites-available/$instancename.conf" > > if ! is_instance $instancename; then > return 1 > fi > > if grep -q '^[[:space:]]*Include /etc/koha/apache-shared-disable.conf' \ >- "/etc/apache2/sites-available/$instancename" ; then >+ "$instancefile" ; then > return 1 > else > return 0 >@@ -63,10 +64,11 @@ is_instance() > disable_instance() > { > local instancename=$1 >+ local instancefile="/etc/apache2/sites-available/$instancename.conf" > > if is_enabled $instancename; then > sed -i 's:^\s*#\(\s*Include /etc/koha/apache-shared-disable.conf\)$:\1:' \ >- "/etc/apache2/sites-available/$instancename" >+ "$instancefile" > return 0 > else > return 1 >diff --git a/debian/scripts/koha-dump b/debian/scripts/koha-dump >index 02aeb93..fb770d4 100755 >--- a/debian/scripts/koha-dump >+++ b/debian/scripts/koha-dump >@@ -54,14 +54,15 @@ mysqldump --databases --host="$mysqlhost" \ > chown "root:$name-koha" "$dbdump" > chmod g+r "$dbdump" > >+instancefile="$name.conf" > > # Dump configs, logs, etc. > metadump="$backupdir/$name-$date.tar.gz" > echo "* configs, logs to $metadump" > tar -C / -czf "$metadump" \ > "etc/koha/sites/$name" \ >- "etc/apache2/sites-available/$name" \ >- "etc/apache2/sites-enabled/$name" \ >+ "etc/apache2/sites-available/$instancefile" \ >+ "etc/apache2/sites-enabled/$instancefile" \ > "var/lib/koha/$name" \ > "var/log/koha/$name" > >diff --git a/debian/scripts/koha-enable b/debian/scripts/koha-enable >index c0bbfa2..b5f0cd2 100755 >--- a/debian/scripts/koha-enable >+++ b/debian/scripts/koha-enable >@@ -34,13 +34,14 @@ warn() > is_enabled() > { > local instancename=$1 >+ local instancefile="/etc/apache2/sites-available/$instancename.conf" > > if ! is_instance $instancename; then > return 1 > fi > > if grep -q '^[[:space:]]*Include /etc/koha/apache-shared-disable.conf' \ >- "/etc/apache2/sites-available/$instancename" ; then >+ "$instancefile" ; then > return 1 > else > return 0 >@@ -63,10 +64,11 @@ is_instance() > enable_instance() > { > local instancename=$1 >+ local instancefile="/etc/apache2/sites-available/$instancename.conf" > > if ! is_enabled $instancename; then > sed -i 's:^\(\s*Include /etc/koha/apache-shared-disable.conf\)$:#\1:' \ >- "/etc/apache2/sites-available/$instancename" >+ "$instancefile" > return 0 > else > return 1 >diff --git a/debian/scripts/koha-list b/debian/scripts/koha-list >index 445a22a..ea8ae4b 100755 >--- a/debian/scripts/koha-list >+++ b/debian/scripts/koha-list >@@ -28,9 +28,10 @@ die() > is_enabled() > { > local instancename=$1 >+ local instancefile="/etc/apache2/sites-available/$instancename.conf" > > if grep '^[[:space:]]*Include /etc/koha/apache-shared-disable.conf' \ >- "/etc/apache2/sites-available/$instancename" > /dev/null >+ "$instancefile" > /dev/null > then > return 1 > else >diff --git a/debian/scripts/koha-remove b/debian/scripts/koha-remove >index 3fa5ef1..40bb3f6 100755 >--- a/debian/scripts/koha-remove >+++ b/debian/scripts/koha-remove >@@ -68,8 +68,11 @@ eof > > # 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 >- [ -f "/etc/apache2/sites-available/$name" ] && \ >- rm "/etc/apache2/sites-available/$name" >+ >+ instancefile="$name.conf" >+ >+ [ -f "/etc/apache2/sites-available/$instancefile" ] && \ >+ rm "/etc/apache2/sites-available/$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" ] && \ >diff --git a/debian/scripts/koha-restart-zebra b/debian/scripts/koha-restart-zebra >index 024251e..8b4b681 100755 >--- a/debian/scripts/koha-restart-zebra >+++ b/debian/scripts/koha-restart-zebra >@@ -32,13 +32,14 @@ warn() > is_enabled() > { > local instancename=$1 >+ local instancefile="/etc/apache2/sites-available/$instancename.conf" > > if ! is_instance $instancename; then > return 1 > fi > > if grep -q '^[[:space:]]*Include /etc/koha/apache-shared-disable.conf' \ >- "/etc/apache2/sites-available/$instancename" ; then >+ "$instancefile" ; then > return 1 > else > return 0 >diff --git a/debian/scripts/koha-start-zebra b/debian/scripts/koha-start-zebra >index f63ab42..069b31a 100755 >--- a/debian/scripts/koha-start-zebra >+++ b/debian/scripts/koha-start-zebra >@@ -32,13 +32,14 @@ warn() > is_enabled() > { > local instancename=$1 >+ local instancefile="/etc/apache2/sites-available/$instancename.conf" > > if ! is_instance $instancename; then > return 1 > fi > > if grep -q '^[[:space:]]*Include /etc/koha/apache-shared-disable.conf' \ >- "/etc/apache2/sites-available/$instancename" ; then >+ "$instancefile" ; then > return 1 > else > return 0 >diff --git a/debian/scripts/koha-stop-zebra b/debian/scripts/koha-stop-zebra >index e60f2b3..2c8b726 100755 >--- a/debian/scripts/koha-stop-zebra >+++ b/debian/scripts/koha-stop-zebra >@@ -32,13 +32,14 @@ warn() > is_enabled() > { > local instancename=$1 >+ local instancefile="/etc/apache2/sites-available/$instancename.conf" > > if ! is_instance $instancename; then > return 1 > fi > > if grep -q '^[[:space:]]*Include /etc/koha/apache-shared-disable.conf' \ >- "/etc/apache2/sites-available/$instancename" ; then >+ "$instancefile" ; then > return 1 > else > return 0 >-- >1.7.10.4
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 11404
:
23581
|
28163
|
28164
|
28165
|
28185
|
28186
|
28187
|
28188
|
28215
| 28370 |
28371
|
28372
|
28373