diff options
Diffstat (limited to 'source/n/httpd')
-rw-r--r-- | source/n/httpd/README | 34 | ||||
-rw-r--r-- | source/n/httpd/config.layout.diff | 30 | ||||
-rw-r--r-- | source/n/httpd/doinst.sh | 52 | ||||
-rwxr-xr-x | source/n/httpd/httpd.SlackBuild | 204 | ||||
-rw-r--r-- | source/n/httpd/httpd.nossldefault.diff | 11 | ||||
-rw-r--r-- | source/n/httpd/httpd.runasapache.diff | 13 | ||||
-rw-r--r-- | source/n/httpd/logrotate.httpd | 11 | ||||
-rw-r--r-- | source/n/httpd/rc.httpd | 35 | ||||
-rw-r--r-- | source/n/httpd/slack-desc | 19 |
9 files changed, 409 insertions, 0 deletions
diff --git a/source/n/httpd/README b/source/n/httpd/README new file mode 100644 index 000000000..796bb29a9 --- /dev/null +++ b/source/n/httpd/README @@ -0,0 +1,34 @@ +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 new file mode 100644 index 000000000..c302515fe --- /dev/null +++ b/source/n/httpd/config.layout.diff @@ -0,0 +1,30 @@ +--- ./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 new file mode 100644 index 000000000..49e5400d8 --- /dev/null +++ b/source/n/httpd/doinst.sh @@ -0,0 +1,52 @@ +#!/bin/sh +if [ ! -e var/log/httpd ]; then + mkdir -p var/log/httpd + chmod 755 var/log/httpd +fi + +# Don't wipe out an existing document root: +if [ ! -L srv/www -a -d srv/www ]; then + mv srv/www srv/www.bak.$$ +fi +if [ ! -L srv/httpd -a -d srv/httpd ]; then + mv srv/httpd srv/httpd.bak.$$ +fi + +# Once again, our intent is not to wipe out anyone's +# site, but building in Apache's docs tree is not as +# good an idea as picking a unique DocumentRoot. +# +# Still, we will do what we can here to mitigate +# possible site damage: +if [ -r var/www/htdocs/index.html ]; then + if [ ! -r "var/log/packages/httpd-*upgraded*" ]; then + if [ var/www/htdocs/index.html -nt var/log/packages/httpd-*-? ]; then + cp -a var/www/htdocs/index.html var/www/htdocs/index.html.bak.$$ + fi + 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 +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 new file mode 100755 index 000000000..2cdce1d87 --- /dev/null +++ b/source/n/httpd/httpd.SlackBuild @@ -0,0 +1,204 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# This script was written using the one from slackbuilds.org as a reference, +# so thanks to Adis Nezirovic ( adis _at_ linux.org.ba ) for the original work. + + +PKGNAM=httpd +VERSION=${VERSION:-2.2.13} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -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. +# +# 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. + +zcat $CWD/config.layout.diff.gz | sed -e "s#lib/httpd#lib${LIBDIRSUFFIX}/httpd#" | patch --verbose -p1 || exit 1 + +# 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-pie \ + --enable-cgi \ + --with-pcre \ + --enable-ssl \ + --enable-rewrite \ + --enable-vhost-alias \ + --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 \ + --enable-authn-anon \ + --enable-authn-alias \ + --build=$ARCH-slackware-linux || exit 1 + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +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 + rm -f $PKG/etc/httpd/httpd.conf~ +) || exit 1 +# Change config files to .new: +( cd $PKG/etc/httpd + mv httpd.conf httpd.conf.new + for file in extra/*; do + mv $file "${file}.new" + done +) + +cat << EOF >> $PKG/etc/httpd/httpd.conf.new + +# Uncomment the following line to enable PHP: +# +#Include /etc/httpd/mod_php.conf + +# Uncomment the following lines 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 + +EOF + +rmdir $PKG/var/log/httpd + +mkdir -p $PKG/etc/rc.d +cat $CWD/rc.httpd > $PKG/etc/rc.d/rc.httpd.new + +mkdir -p $PKG/etc/logrotate.d +cat $CWD/logrotate.httpd > $PKG/etc/logrotate.d/httpd.new + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION/ +cp -a \ + ABOUT_APACHE Apache.dsw BuildBin.dsp CHANGES INSTALL InstallBin.dsp LAYOUT LICENSE NOTICE NWGNUmakefile README* ROADMAP VERSIONING \ + $PKG/usr/doc/$PKGNAM-$VERSION + +# Other distributions also strip the manual down to just English. +# If this isn't your language of choice, mea culpa. +( cd $PKG/srv/httpd/htdocs/manual + for file in $(find . -type f -name "*.html") ; do + if [ -f ${file}.en ]; then + cp ${file}.en ${file} + rm -f ${file}.* + fi + done +) + +# On Slackware, the traditional location for the Apache document root has always +# been "/var/www/htdocs/". We can avoid an unpleasant surprise for people by +# leaving things where they've always been, and comply with the FHS by providing +# symlinks allowing access through the FHS-approved pathnames. KDE, for example, +# will look for htdig's htsearch here: /var/www/cgi-bin/htsearch +mv $PKG/srv/httpd $PKG/var/www +( cd $PKG/srv + ln -sf /var/www . + ln -sf /var/www httpd +) + +# OK, it's just not generally good form to put your web site in /var/www/htdocs, +# but people do it every day. Like all new .new files, this won't save them this +# time, but if they don't learn their lesson now then it will the next time: +mv $PKG/var/www/htdocs/index.html $PKG/var/www/htdocs/index.html.new + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/httpd/httpd.nossldefault.diff b/source/n/httpd/httpd.nossldefault.diff new file mode 100644 index 000000000..bcf891f85 --- /dev/null +++ b/source/n/httpd/httpd.nossldefault.diff @@ -0,0 +1,11 @@ +--- ./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.runasapache.diff b/source/n/httpd/httpd.runasapache.diff new file mode 100644 index 000000000..c1954ec33 --- /dev/null +++ b/source/n/httpd/httpd.runasapache.diff @@ -0,0 +1,13 @@ +--- ./etc/httpd/httpd.conf.orig 2008-02-14 15:24:21.000000000 -0600 ++++ ./etc/httpd/httpd.conf 2008-02-14 15:34:58.000000000 -0600 +@@ -125,8 +125,8 @@ + # It is usually good practice to create a dedicated user and group for + # running httpd, as with most system services. + # +-User daemon +-Group daemon ++User apache ++Group apache + + </IfModule> + </IfModule> diff --git a/source/n/httpd/logrotate.httpd b/source/n/httpd/logrotate.httpd new file mode 100644 index 000000000..30cee8a23 --- /dev/null +++ b/source/n/httpd/logrotate.httpd @@ -0,0 +1,11 @@ +/var/log/httpd/*_log { + rotate 10 + notifempty + size=5M + compress + delaycompress + sharedscripts + postrotate + /etc/rc.d/rc.httpd restart + endscript +} diff --git a/source/n/httpd/rc.httpd b/source/n/httpd/rc.httpd new file mode 100644 index 000000000..064f6ea44 --- /dev/null +++ b/source/n/httpd/rc.httpd @@ -0,0 +1,35 @@ +#!/bin/sh +# +# /etc/rc.d/rc.httpd +# +# Start/stop/restart/graceful[ly restart]/graceful[ly]-stop +# the Apache (httpd) web server. +# +# To make Apache start automatically at boot, make this +# file executable: chmod 755 /etc/rc.d/rc.httpd +# +# For information on these options, "man apachectl". + +case "$1" in + 'start') + /usr/sbin/apachectl -k start + ;; + 'stop') + /usr/sbin/apachectl -k stop + killall httpd + rm -f /var/run/httpd/*.pid + ;; + 'restart') + /usr/sbin/apachectl -k restart + ;; + 'graceful') + /usr/sbin/apachectl -k graceful + ;; + 'graceful-stop') + /usr/sbin/apachectl -k graceful-stop + ;; + *) + echo "Usage: $0 {start|stop|restart|graceful|graceful-stop}" + ;; +esac + diff --git a/source/n/httpd/slack-desc b/source/n/httpd/slack-desc new file mode 100644 index 000000000..38d240b6b --- /dev/null +++ b/source/n/httpd/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +httpd: httpd (The Apache HTTP Server) +httpd: +httpd: Apache is an HTTP server designed as a plug-in replacement for the +httpd: NCSA HTTP server. It fixes numerous bugs in the NCSA server and +httpd: includes many frequently requested new features, and has an API which +httpd: allows it to be extended to meet users' needs more easily. +httpd: +httpd: Apache is the most popular web server in the known universe; over +httpd: half of the servers on the Internet are running Apache or one of +httpd: its variants. +httpd: |