summaryrefslogtreecommitdiffstats
path: root/source/n/httpd
diff options
context:
space:
mode:
Diffstat (limited to 'source/n/httpd')
-rw-r--r--source/n/httpd/README34
-rw-r--r--source/n/httpd/config.layout.diff30
-rw-r--r--source/n/httpd/doinst.sh53
-rwxr-xr-xsource/n/httpd/httpd.SlackBuild54
-rw-r--r--source/n/httpd/httpd.brigade_move.__noinline__.gcc451.diff10
-rw-r--r--source/n/httpd/httpd.nossldefault.diff11
-rw-r--r--source/n/httpd/httpd.url4
-rw-r--r--source/n/httpd/rc.httpd11
8 files changed, 85 insertions, 122 deletions
diff --git a/source/n/httpd/README b/source/n/httpd/README
deleted file mode 100644
index 796bb29a9..000000000
--- a/source/n/httpd/README
+++ /dev/null
@@ -1,34 +0,0 @@
-WARNING
-
-This script builds a package that conflicts with apache1. Before
-attempting to install this package, you should uninstall any of
-these packages that you find on your system:
-
-apache
-mod_ssl
-php
-
-Really though, the only points of overlap are in /usr/sbin, so if you
-leave your old packages in place apache2 will still work, but the
-apache1 httpd will have been overwritten (along with other files)
-
-Apache is the most popular web server in the known universe; over half
-the servers on the Internet are running Apache or one of its variants.
-
-By default, we build apache2 with the traditional "apache prefork" multi
-processing module (MPM). This is somewhat safer for the use of mod_php,
-but can still carry some security risks (all your php scripts run as the
-user configured to run apache2).
-
-For enhanced multi-threaded performance, use "apache worker", but using
-mod_php with "worker" is considered dangerous. PHP Core is multi-thread
-safe, but many PHP extensions are *NOT*. To build apache2 with the
-worker MPM, change the option to: --with-mpm=worker
-
-Please note that this script does not build apache2 with SuEXEC support.
-The Apache group feels SuEXEC should not be part of a default install.
-If you need this functionality, please read the following documentation
-and make the necessary changes to the ./configure options in the script.
-
- http://httpd.apache.org/docs/2.0/suexec.html
-
diff --git a/source/n/httpd/config.layout.diff b/source/n/httpd/config.layout.diff
deleted file mode 100644
index c302515fe..000000000
--- a/source/n/httpd/config.layout.diff
+++ /dev/null
@@ -1,30 +0,0 @@
---- ./config.layout.orig 2004-11-21 12:50:36.000000000 -0600
-+++ ./config.layout 2007-05-23 13:35:20.000000000 -0500
-@@ -322,3 +322,27 @@
- installbuilddir: ${prefix}/etc/apache2/build
- errordir: ${datadir}/error
- </Layout>
-+
-+# FHS layout
-+<Layout Slackware-FHS>
-+ prefix: /usr
-+ exec_prefix: ${prefix}
-+ bindir: ${prefix}/bin
-+ sbindir: ${prefix}/sbin
-+ libdir: ${prefix}/lib/httpd
-+ libexecdir: ${prefix}/lib/httpd/modules
-+ installbuilddir: ${prefix}/lib/httpd/build
-+ mandir: ${prefix}/man
-+ sysconfdir: /etc/httpd
-+ datadir: /srv/httpd
-+ iconsdir: ${datadir}/icons
-+ htdocsdir: ${datadir}/htdocs
-+ manualdir: ${htdocsdir}/manual
-+ cgidir: ${datadir}/cgi-bin
-+ errordir: ${datadir}/error
-+ includedir: ${prefix}/include/httpd
-+ localstatedir: /var
-+ runtimedir: ${localstatedir}/run/httpd
-+ logfiledir: ${localstatedir}/log/httpd
-+ proxycachedir: ${localstatedir}/cache/httpd
-+</Layout>
diff --git a/source/n/httpd/doinst.sh b/source/n/httpd/doinst.sh
index 49e5400d8..da256515c 100644
--- a/source/n/httpd/doinst.sh
+++ b/source/n/httpd/doinst.sh
@@ -1,4 +1,29 @@
#!/bin/sh
+
+config() {
+ NEW="$1"
+ OLD="`dirname $NEW`/`basename $NEW .new`"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy
+ rm $NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+
+preserve_perms() {
+ NEW="$1"
+ OLD="$(dirname ${NEW})/$(basename ${NEW} .new)"
+ if [ -e ${OLD} ]; then
+ cp -a ${OLD} ${NEW}.incoming
+ cat ${NEW} > ${NEW}.incoming
+ mv ${NEW}.incoming ${NEW}
+ fi
+ # Don't use config() -- we always want to install this, changed or unchanged.
+ #config ${NEW}
+}
+
if [ ! -e var/log/httpd ]; then
mkdir -p var/log/httpd
chmod 755 var/log/httpd
@@ -26,27 +51,19 @@ if [ -r var/www/htdocs/index.html ]; then
fi
fi
-config() {
- NEW="$1"
- OLD="`dirname $NEW`/`basename $NEW .new`"
- # If there's no config file by that name, mv it over:
- if [ ! -r $OLD ]; then
- mv $NEW $OLD
- elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy
- rm $NEW
- fi
- # Otherwise, we leave the .new copy for the admin to consider...
-}
-# Keep same perms on rc.httpd.new:
-if [ -e etc/rc.d/rc.httpd ]; then
- cp -a etc/rc.d/rc.httpd etc/rc.d/rc.httpd.new.incoming
- cat etc/rc.d/rc.httpd.new > etc/rc.d/rc.httpd.new.incoming
- mv etc/rc.d/rc.httpd.new.incoming etc/rc.d/rc.httpd.new
-fi
-config etc/rc.d/rc.httpd.new
+# Keep same perms when installing rc.httpd.new:
+preserve_perms etc/rc.d/rc.httpd.new
+# Always install the new rc.httpd:
+mv etc/rc.d/rc.httpd.new etc/rc.d/rc.httpd
+
+# Handle config files. Unless this is a fresh installation, the
+# admin will have to move the .new files into place to complete
+# the package installation, as we don't want to clobber files that
+# may contain local customizations.
config etc/httpd/httpd.conf.new
config etc/logrotate.d/httpd.new
for conf_file in etc/httpd/extra/*.new; do
config $conf_file
done
config var/www/htdocs/index.html.new
+
diff --git a/source/n/httpd/httpd.SlackBuild b/source/n/httpd/httpd.SlackBuild
index a97ccf362..1d043f743 100755
--- a/source/n/httpd/httpd.SlackBuild
+++ b/source/n/httpd/httpd.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2006, 2007, 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -26,7 +26,7 @@
PKGNAM=httpd
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.bz2 | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -73,29 +73,49 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-# "prefork" is the default, safe, mpm type. If you *are not* using PHP, and you
-# like to live on the bleeding edge, you may wish to change the --with-mpm option
-# to "worker", which is the new way of doing things, but is multithreaded and
-# many scripts (especially PHP ones) are not multithread safe.
+# A brief note about mpms:
#
-# I'd leave this option the way is it on any production box that's keeping up
-# with HTTP requests. No reason to chance it, IMHO.
+# "prefork" is the legacy forked mpm, used with mod_php. Starting with httpd
+# 2.4.0, new threaded mpms are available, and previously experimental mpms are
+# now stable
+#
+# Non-threaded mpms are no longer required, since php applications can now be
+# deployed with the help of mod_fcgid, essentially a set of fixed dedicated cgi
+# processes spawned for the whole purpose of executing dynamic applications
+#
+# Threaded mpms, by their very nature, are far more scalable than the
+# traditional preforking solution. They consume less memory for the same
+# workload, when serving the same amount of clients. httpd 2.4 ships with two
+# options, "event" and "worker", where the former is the default mpm used if
+# none is specified at the ./configure line
+#
+# Lastly, the "prefork" mpm can be used with mod_php as of version 5.4.0,
+# which yields a much improved stability, even with most mod_php extensions
+# loaded.
+#
+# The running mpm can be changed by simply loading the module. Here is a sample:
+# LoadModule mpm_event_module lib(64)/httpd/modules/mod_mpm_event.so
+#
+# When upgrading from 2.2, please make sure to stop the deamon first, or your
+# new instance may segfault.
-zcat $CWD/config.layout.diff.gz | sed -e "s#lib/httpd#lib${LIBDIRSUFFIX}/httpd#" | patch --verbose -p1 || exit 1
+# Fix config.layout to use lib${LIBDIRSUFFIX}:
+sed -i -e "s#lib/httpd#lib${LIBDIRSUFFIX}/httpd#" config.layout
-# Patch to fix aliasing issue exposed by gcc-4.5.1:
-zcat $CWD/httpd.brigade_move.__noinline__.gcc451.diff.gz | patch --verbose -p1 || exit 1
+# If /var/run becomes a tmpfs or a link to /run, subdirectories could be a problem.
+# Just use /var/run rather than /var/run/httpd.
+sed -i -e "s#/run/httpd#/run#" config.layout
# Configure:
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
--enable-layout=Slackware-FHS \
- --with-mpm=prefork \
--with-apr=/usr \
--with-apr-util=/usr \
--enable-mods-shared=all \
--enable-so \
+ --enable-mpms-shared=all \
--enable-pie \
--enable-cgi \
--with-pcre \
@@ -105,12 +125,10 @@ CXXFLAGS="$SLKCFLAGS" \
--enable-proxy \
--enable-proxy-http \
--enable-proxy-ftp \
- --enable-proxy-balancer \
--enable-cache \
--enable-mem-cache \
--enable-file-cache \
--enable-disk-cache \
- --disable-speling \
--enable-dav \
--enable-ldap \
--enable-authnz-ldap \
@@ -126,8 +144,12 @@ rmdir $PKG/usr/bin
# Tweak default apache configuration
( cd $PKG
- zcat $CWD/httpd.nossldefault.diff.gz | sed -e "s#lib/httpd#lib${LIBDIRSUFFIX}/httpd#" | patch -p1 --verbose || exit 1
zcat $CWD/httpd.runasapache.diff.gz | patch -p1 --verbose || exit 1
+ # mod_proxy_balancer should be commented out, as otherwise httpd
+ # will not start without additional configuration:
+ sed -i "s/^LoadModule proxy_balancer_module/#LoadModule proxy_balancer_module/g" $PKG/etc/httpd/httpd.conf
+ # This module issues a warning unless some non-default modules are loaded:
+ sed -i "s/^LoadModule lbmethod_heartbeat_module/#LoadModule lbmethod_heartbeat_module/g" $PKG/etc/httpd/httpd.conf
rm -f $PKG/etc/httpd/httpd.conf~ $PKG/etc/httpd/httpd.conf.orig
) || exit 1
# Change config files to .new:
@@ -144,7 +166,7 @@ cat << EOF >> $PKG/etc/httpd/httpd.conf.new
#
#Include /etc/httpd/mod_php.conf
-# Uncomment the following lines to enable svn support:
+# Uncomment the following lines (and mod_dav above) to enable svn support:
#
#LoadModule dav_svn_module lib${LIBDIRSUFFIX}/httpd/modules/mod_dav_svn.so
#LoadModule authz_svn_module lib${LIBDIRSUFFIX}/httpd/modules/mod_authz_svn.so
diff --git a/source/n/httpd/httpd.brigade_move.__noinline__.gcc451.diff b/source/n/httpd/httpd.brigade_move.__noinline__.gcc451.diff
deleted file mode 100644
index e8915ae43..000000000
--- a/source/n/httpd/httpd.brigade_move.__noinline__.gcc451.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- ./server/core_filters.c.orig 2010-02-26 03:32:15.000000000 -0600
-+++ ./server/core_filters.c 2011-02-12 13:23:22.000000000 -0600
-@@ -83,6 +83,7 @@
- *
- * XXXX: Should this function be added to APR-Util?
- */
-+__attribute__((__noinline__))
- static void brigade_move(apr_bucket_brigade *b, apr_bucket_brigade *a,
- apr_bucket *e)
- {
diff --git a/source/n/httpd/httpd.nossldefault.diff b/source/n/httpd/httpd.nossldefault.diff
deleted file mode 100644
index bcf891f85..000000000
--- a/source/n/httpd/httpd.nossldefault.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./etc/httpd/httpd.conf.orig 2007-05-17 23:40:15.000000000 -0500
-+++ ./etc/httpd/httpd.conf 2007-05-18 15:55:38.000000000 -0500
-@@ -88,7 +88,7 @@
- LoadModule proxy_http_module lib/httpd/modules/mod_proxy_http.so
- LoadModule proxy_ajp_module lib/httpd/modules/mod_proxy_ajp.so
- LoadModule proxy_balancer_module lib/httpd/modules/mod_proxy_balancer.so
--LoadModule ssl_module lib/httpd/modules/mod_ssl.so
-+#LoadModule ssl_module lib/httpd/modules/mod_ssl.so
- LoadModule mime_module lib/httpd/modules/mod_mime.so
- LoadModule dav_module lib/httpd/modules/mod_dav.so
- LoadModule status_module lib/httpd/modules/mod_status.so
diff --git a/source/n/httpd/httpd.url b/source/n/httpd/httpd.url
index 8b8a17686..3fabb916f 100644
--- a/source/n/httpd/httpd.url
+++ b/source/n/httpd/httpd.url
@@ -1,2 +1,2 @@
-http://www.apache.org/dist/httpd/httpd-2.2.17.tar.bz2
-http://www.apache.org/dist/httpd/httpd-2.2.17.tar.bz2.asc
+http://www.apache.org/dist/httpd/httpd-2.4.3.tar.bz2
+http://www.apache.org/dist/httpd/httpd-2.4.3.tar.bz2.asc
diff --git a/source/n/httpd/rc.httpd b/source/n/httpd/rc.httpd
index 064f6ea44..81189098f 100644
--- a/source/n/httpd/rc.httpd
+++ b/source/n/httpd/rc.httpd
@@ -17,7 +17,16 @@ case "$1" in
'stop')
/usr/sbin/apachectl -k stop
killall httpd
- rm -f /var/run/httpd/*.pid
+ # Remove both old and new .pid locations:
+ rm -f /var/run/httpd.pid /var/run/httpd/httpd.pid
+ ;;
+ 'force-restart')
+ # Because sometimes restarting through apachectl just doesn't do the trick...
+ /usr/sbin/apachectl -k stop
+ killall httpd
+ # Remove both old and new .pid locations:
+ rm -f /var/run/httpd.pid /var/run/httpd/httpd.pid
+ /usr/sbin/apachectl -k start
;;
'restart')
/usr/sbin/apachectl -k restart