From 44d65f34c34e4c439c5bca3964cfc68fcadb1dbd Mon Sep 17 00:00:00 2001 From: Christoph Date: Sun, 19 Feb 2017 12:33:53 +0100 Subject: [PATCH] Initial Import --- .gitignore | 6 + DOC/.htacces.FORWARD_FRAME | 8 + ...ude_Files_and_Directories_From_Apache_Auth | 12 + DOC/README.apache_mpm_event | 33 + DOC/README.fcgi | 68 + DOC/README.ldap | 14 + DOC/README.modfcgid | 81 + DOC/apache_benchmark.test | 1 + DOC/config_ciphers_apache2.2.txt | 34 + DOC/config_pfs_apache2.4.txt | 42 + DOC/index.html.FORWARD_FRAME | 17 + Files/0000-logformat.conf | 12 + Files/error_707/index.html | 24 + Files/error_707/info.jpg | Bin 0 -> 1197 bytes Files/maintenance.html | 62 + Files/no_such_site.html | 62 + Files/phpinfo.php | 8 + Files/under_construction.html | 62 + install_httpd-2.2.sh | 579 +++ install_httpd-2.4.sh | 3530 +++++++++++++++++ 20 files changed, 4655 insertions(+) create mode 100644 .gitignore create mode 100644 DOC/.htacces.FORWARD_FRAME create mode 100644 DOC/README.Exclude_Files_and_Directories_From_Apache_Auth create mode 100644 DOC/README.apache_mpm_event create mode 100644 DOC/README.fcgi create mode 100644 DOC/README.ldap create mode 100644 DOC/README.modfcgid create mode 100644 DOC/apache_benchmark.test create mode 100644 DOC/config_ciphers_apache2.2.txt create mode 100644 DOC/config_pfs_apache2.4.txt create mode 100644 DOC/index.html.FORWARD_FRAME create mode 100644 Files/0000-logformat.conf create mode 100644 Files/error_707/index.html create mode 100644 Files/error_707/info.jpg create mode 100644 Files/maintenance.html create mode 100644 Files/no_such_site.html create mode 100644 Files/phpinfo.php create mode 100644 Files/under_construction.html create mode 100755 install_httpd-2.2.sh create mode 100755 install_httpd-2.4.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2056e71 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +/BAK/* +/log_* +/apr* +/httpd* +/mod_fcgid* +/mod_perl* diff --git a/DOC/.htacces.FORWARD_FRAME b/DOC/.htacces.FORWARD_FRAME new file mode 100644 index 0000000..ef19ab9 --- /dev/null +++ b/DOC/.htacces.FORWARD_FRAME @@ -0,0 +1,8 @@ + +RewriteEngine On +RewriteBase / +RewriteRule ^index\.html$ - [L] +RewriteCond %{REQUEST_FILENAME} !-f +RewriteCond %{REQUEST_FILENAME} !-d +RewriteRule . /index.html [L] + diff --git a/DOC/README.Exclude_Files_and_Directories_From_Apache_Auth b/DOC/README.Exclude_Files_and_Directories_From_Apache_Auth new file mode 100644 index 0000000..c9881d3 --- /dev/null +++ b/DOC/README.Exclude_Files_and_Directories_From_Apache_Auth @@ -0,0 +1,12 @@ + + AuthType Basic + AuthName "Restricted Files" + AuthUserFile /var/www/clients/client12/web17/passwd + AuthGroupFile /dev/null + Require valid-user + SetEnvIf Request_URI "^/(admin|skin|js|index)(.*)$" allow + SetEnvIf Request_URI "^/favicon.ico$" allow + Order allow,deny + Allow from env=allow + Satisfy Any + diff --git a/DOC/README.apache_mpm_event b/DOC/README.apache_mpm_event new file mode 100644 index 0000000..ea3fcc0 --- /dev/null +++ b/DOC/README.apache_mpm_event @@ -0,0 +1,33 @@ +Apache 2.4 default values MPM event +=================================== + + + StartServers 3 + MinSpareThreads 75 + MaxSpareThreads 250 + ThreadsPerChild 25 + MaxRequestWorkers 400 + MaxConnectionsPerChild 0 + + + +ServerLimit = MaxRequestWorkers / ThreadsPerChild + +MaxRequestWorkers = 400 +ThreadsPerChild = 25 + => ServerLimit = 16 (apache 2.4 default) + +simultanous connections = ThreadsPerChild * ServerLimit = MaxRequestWorkers + => simultanous Connection = 400 + +(ND Server) +========== + +## - MaxConnectionsPerChild +## - +## - We want every httpd prozess to restart aproximately once a day +## - +Set MaxConnectionsPerChild = (requests/per day)/ServerLimit +requests / day ~ 1.600.000 +/ServerLimit = 16 + => MaxConnectionsPerChild = 1600000/16 = 100000 = 100.000 diff --git a/DOC/README.fcgi b/DOC/README.fcgi new file mode 100644 index 0000000..c72fe79 --- /dev/null +++ b/DOC/README.fcgi @@ -0,0 +1,68 @@ + +## - 1.) Installiere fcgi +## - + +mkdir -p /usr/local/src/fcgi +cd /usr/local/src/fcgi + +wget http://www.fastcgi.com/dist/fcgi-2.4.0.tar.gz + +gunzip < fcgi-2.4.0.tar.gz | tar -xf - +cd fcgi-2.4.0 + +## - !! Bemerkung !! +## - +## - Die Datei include/fcgio.h muss angepasst werden. +## - +## - Ergänze hinter der Zeile die "#include " enthält: +## - +## - #include +## - + +## ----------------------- + +diff -Naur fcgi-2.4.0-ORIG/include/fcgio.h fcgi-2.4.0/include/fcgio.h +--- fcgi-2.4.0-ORIG/include/fcgio.h 2002-02-25 14:16:11.000000000 +0100 ++++ fcgi-2.4.0/include/fcgio.h 2011-02-24 13:19:35.000000000 +0100 +@@ -31,6 +31,7 @@ + #define FCGIO_H + + #include ++#include + + #include "fcgiapp.h" + +## ----------------------- + +./configure +make +make install + + + +## - 2.) Installiere mod_fcgi +## - + +cd /usr/local/src/apache2 + +wget http://www.fastcgi.com/dist/mod_fastcgi-2.4.6.tar.gz + +gunzip < mod_fastcgi-2.4.6.tar.gz | tar -xf - + +cd mod_fastcgi-2.4.6 + +cp Makefile.AP2 Makefile +make +make install + + +## - Add to httpd.conf +## - +## - # +## - # mod_fastcgi +## - # +## - LoadModule fastcgi_module modules/mod_fastcgi.so +## - +vim /usr/local/apache2/conf/httpd.conf + + diff --git a/DOC/README.ldap b/DOC/README.ldap new file mode 100644 index 0000000..e63682b --- /dev/null +++ b/DOC/README.ldap @@ -0,0 +1,14 @@ +## - Some configure scripts cannot find ldap library. +## - +## - So create a symlink +## - /usr/lib/libldap.so -> /usr/lib/x86_64-linux-gnu/libldap.so +## - +ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so +## - or +ln -s x86_64-linux-gnu/libldap.so /usr/lib/libldap.so + +## - Note: +## - +## - If 'apr' and apr-utils' wasn't compiled with ldap support (that +## - is, if libldap.so wasn't present), recompile both +## - diff --git a/DOC/README.modfcgid b/DOC/README.modfcgid new file mode 100644 index 0000000..44bb97e --- /dev/null +++ b/DOC/README.modfcgid @@ -0,0 +1,81 @@ +## - Configure mod_fcgid +## - +## - see also: http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html#examples +## - + +httpd.conf +========= + +LoadModule fcgid_module modules/mod_fcgid.so + + + # in Abstimmung mit PHP variablen + # post_max_size = 128M + # (upload_max_filesize = 32) + # + # 134217728 = 128*1024*1024 =128M + # + FcgidMaxRequestLen 134217728 + + # By default, PHP FastCGI processes exit after handling 500 requests, + # and they may exit after this module has already connected to the + # application and sent the next request. When that occurs, an error + # will be logged and 500 Internal Server Error will be returned to + # the client. This PHP behavior can be disabled by setting + # PHP_FCGI_MAX_REQUESTS to 0, but that can be a problem if the PHP + # application leaks resources. Alternatively, PHP_FCGI_MAX_REQUESTS + # can be set to a much higher value than the default to reduce the + # frequency of this problem. FcgidMaxRequestsPerProcess can be set to + # a value less than or equal to PHP_FCGI_MAX_REQUESTS to resolve the + # roblem. + FcgidMaxRequestsPerProcess 500 + + + + +vhost config +============ + +:> + + ... + + DocumentRoot "/var/www/adm.warenform.de/htdocs/" + + FCGIWrapper /var/www/adm.warenform.de/conf/fcgid .php + + SetHandler fcgid-script + + AllowOverride All + Options +ExecCGI -Indexes + Require all granted + + + ... + + + + +/var/www/adm.warenform.de/conf/fcgid +==================================== + + + +#!/bin/sh +export PHPRC="/var/www/adm.warenform.de/conf/" +export TMPDIR="/var/www/adm.warenform.de/tmp" + +# PHP child process management (PHP_FCGI_CHILDREN) should +# always be disabled with mod_fcgid, which will only route one +# request at a time to application processes it has spawned; +# thus, any child processes created by PHP will not be used +# effectively. (Additionally, the PHP child processes may not +# be terminated properly.) By default, and with the environment +# variable setting PHP_FCGI_CHILDREN=0, PHP child process +# management is disabled. +PHP_FCGI_CHILDREN=0 +export PHP_FCGI_CHILDREN + +exec /usr/local/php-5.3.28/bin/php-cgi + + diff --git a/DOC/apache_benchmark.test b/DOC/apache_benchmark.test new file mode 100644 index 0000000..3db3281 --- /dev/null +++ b/DOC/apache_benchmark.test @@ -0,0 +1 @@ +/usr/local/apache2/bin/ab -c 1 -n 1 -C JSESSIONID=FD80667D7583DB886A59418638AD06F5 http://localhost:8080/opdb/core/consult_new/show.do diff --git a/DOC/config_ciphers_apache2.2.txt b/DOC/config_ciphers_apache2.2.txt new file mode 100644 index 0000000..ac92daf --- /dev/null +++ b/DOC/config_ciphers_apache2.2.txt @@ -0,0 +1,34 @@ + +## - must go here - NOT in VirtualHost section !! +## - +SSLCompression off + +:443> + + ... + + SSLEngine on + + ## - don't support weak ciphers + SSLStrictSNIVHostCheck off + SSLHonorCipherOrder on + SSLCompression off + SSLProtocol ALL -SSLv2 -SSLv3 + SSLCipherSuite 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA' + + ## - HTTP Strict Transport Security (HSTS) + ## - + ## - HSTS tells a browser that the website should only be accessed through + ## - a secure connection. The HSTS header will be remembered by a standard + ## compliant browser for max-age seconds. + ## - + ## - Remember this settings for 1/2 year + ## - + Header add Strict-Transport-Security "max-age=15768000" + + SSLCertificateFile .. + SSLCertificateKeyFile .. + SSLCertificateChainFile .. + ... + + diff --git a/DOC/config_pfs_apache2.4.txt b/DOC/config_pfs_apache2.4.txt new file mode 100644 index 0000000..d987034 --- /dev/null +++ b/DOC/config_pfs_apache2.4.txt @@ -0,0 +1,42 @@ +:443> + + ... + + SSLEngine on + + ## - don't support weak ciphers + SSLHonorCipherOrder On + SSLCompression Off + SSLProtocol ALL -SSLv2 -SSLv3 + SSL_Cipher_Suite='ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA' + + + ## - HTTP Strict Transport Security (HSTS) + ## - + ## - HSTS tells a browser that the website should only be accessed through + ## - a secure connection. The HSTS header will be remembered by a standard + ## - compliant browser for max-age seconds. + ## - + ## - An important point is that HSTS only works after the user has received the + ## - header via HTTPS. So you will still need to have a redirect from your + ## - HTTP-site to HTTPS, also for supporting browsers that still do not understand + ## - HSTS. + ## - + ## - This is easily accomplished using Apache’s mod_rewrite: + ## - + ## - + ## - RewriteEngine On + ## - RewriteCond %{HTTPS} off + ## - RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} + ## - + ## - + ## - Thus, with a few lines of configuration, you can make the web a safer place to + ## - be for your users. So, what are you waiting for? + ## - + ## - Remember this settings for 1/2 year + ## - + Header add Strict-Transport-Security "max-age=15768000" + + ... + + diff --git a/DOC/index.html.FORWARD_FRAME b/DOC/index.html.FORWARD_FRAME new file mode 100644 index 0000000..be26b3a --- /dev/null +++ b/DOC/index.html.FORWARD_FRAME @@ -0,0 +1,17 @@ + + + +Willkommensnetzwerk "Pankow Hilft!" + + + + +Your browser does not support frames. </ br> + +Klicke hier: <a href:"http://pankowhilft.blogsport.de">pankowhilft.blogsport.de </a> + </td> + </tr> + </table> + + + diff --git a/Files/0000-logformat.conf b/Files/0000-logformat.conf new file mode 100644 index 0000000..62ee2e3 --- /dev/null +++ b/Files/0000-logformat.conf @@ -0,0 +1,12 @@ + +## - %a remote IP-address +## - %v ServerName of requested site +## - %{%T %Y-%m-%d}t date time - custom +## - %t date time - apache default +## - %{User-Agent}i user agent +## - %U requested URL +## - %r First line of request. +## - %>s real status code +## - $T The time taken to serve the request, in seconds +## - +LogFormat "%a %v %p %t %r %>s \"%{User-Agent}i\" %T" base_requests diff --git a/Files/error_707/index.html b/Files/error_707/index.html new file mode 100644 index 0000000..ad81334 --- /dev/null +++ b/Files/error_707/index.html @@ -0,0 +1,24 @@ + + + HTTP Fehler 707 + + + + + + + + + + + + + +
+

HTTP Fehler 707

+
+
+

Das Ende des Internets ist ereicht.

+

Beim nächsten Klick wird Ihr Computer abstürzen.

+
+ diff --git a/Files/error_707/info.jpg b/Files/error_707/info.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5e8fb02385b5117d8130275db9f2cd5d0c003007 GIT binary patch literal 1197 zcmex=%kxU@K!VDr=Sy-4^*jU-vz?hwr zgN>b&osEryn}d@J1b{3aZY~}W2V@9DD-$a-Gbj7khl zf{e_9jQ@`?$TKi7vVxt*$N&Y5Ow25-Z0ta1a03-=6#zP)nHlJ4R-lW4s%wGr3@n1I zLW+itY{G$w>`H|qMvW5}awt1(JSZA;@q>zSQc)8pmzcPOq?D?fx`w8fiK&^ng{76V zi>sTvho@I?NN8AiL}XNQN@`kqMrKxVNoiSmMP*fUOKV$uM`zch$y26In?7UatVN5L zEM2yI#mZHiHgDOwZTpU$yAB;ba`f2o6DLnyx_ss8wd*%--g@}x@sp>|p1*kc>f@)+ zU%r0({^RE_kiQrim?7Q*k`Rxf`AZP!FD6hNu!H=?$W#u*%z`YeiiT`Lj)Clng~Cck zjT|CQ6Blkg$f;}`^g%SK=pvVxipfLOk07sseMX$en#l4Q++zrT-D2QjW&}navmk># z!{64wGwajhZ|;u&JA0pe_OADDemVJl3!T%ZB68>HJ&#)rw{hPb@e;EAE|L1V~ecZ9YDfQWZlm9N7Dxd6CT3>DFSLa># zZeIVaHS6Cwd*6JuCOv5R=54)qZ~M*5Kk;mzbxrBV{eOh-f7|eJ`H}jD{p|a6UjGws zkKDNJWBS4U>@_?eb)R*v%9OtuW>lY@G5uRr@yltq<`{dHtmFB3v_#^V#123<=Te{|a6G!x!F{QD44)Q~jS==MVe; zR{v%GZ^GgD^YU-YKfHg)e~|x&mH1&h<{!2X?lK?RCvwTos>ZrHR{8L^fSWfWruj-` z_fB*XvuL05X)^-@PxR7yhy9z5_wV6O|84NcV)LGl>n4kAtl)R|Oqv|j87UFz#5EyW zq4}70H!zfV{xdXr{b#s1U;M*$i8CG^1g$lh8f5L>}~Kx%&5m%GNkA8x<=rPjIlY(9_J2KT(=wtF1Oih-g|ixxEi pb7=!>J%{O!FIPlvb? + + +Maintenance / Wartungsarbeiten + + + + + + +
+ + + +
+ +

Wartungsarbeiten

+

Die Website wird gerade überarbeitet.

+

Bitte versuchen Sie es später noch einmal.

+

Vielen Dank für Ihr Verständnis!

+ +

Maintenance

+

The website is down for maintenance at the moment.

+

Please try again later.

+

Thank You very much!

+ +
+
+ + + \ No newline at end of file diff --git a/Files/no_such_site.html b/Files/no_such_site.html new file mode 100644 index 0000000..706ad3c --- /dev/null +++ b/Files/no_such_site.html @@ -0,0 +1,62 @@ + + + +HTTP Error 404 / Http Fehler 404 + + + + + + +
+ + + +
+ +

HTTP Error 404

+

The site you have requestet was not found on this Server

+

Please check your spelling and ry again.

+

Thank You very much!

+ +

HTTP Fehler 404

+

Die von Ihnen aufgerufene Seite gibt es leider nicht - Sorry

+

Bitte prüfen Sie die Adresse und versuchen es nochmals.

+

Vielen Dank für Ihr Verständnis!

+ +
+
+ + + diff --git a/Files/phpinfo.php b/Files/phpinfo.php new file mode 100644 index 0000000..7d27d5e --- /dev/null +++ b/Files/phpinfo.php @@ -0,0 +1,8 @@ + + + PHP Info + + + + + diff --git a/Files/under_construction.html b/Files/under_construction.html new file mode 100644 index 0000000..728299d --- /dev/null +++ b/Files/under_construction.html @@ -0,0 +1,62 @@ + + + +Maintenance / Wartungsarbeiten + + + + + + +
+ + + +
+ +

Seite im Aufbau

+

Diese Website wird in Kürze online gehen..

+

Bitte versuchen Sie es später noch einmal.

+

Vielen Dank für Ihr Verständnis!

+ +

Site under construction

+

This website will go online soon.

+

Please try again later.

+

Thank You very much!

+ +
+
+ + + diff --git a/install_httpd-2.2.sh b/install_httpd-2.2.sh new file mode 100755 index 0000000..f66015f --- /dev/null +++ b/install_httpd-2.2.sh @@ -0,0 +1,579 @@ +#!/bin/bash + +# httpd Apapche Webserver +# + +## - CHANGE PARAMETER TO PASS YXOUR SITUATION-------- +## - +VERSION=2.2.24 +PHP_VERSION=5.3.26 +RUBY_VERSION=1.8.6-p420 +#PREFIX=/usr/local/httpd-${VERSION} +#PREFIX=/usr/local/httpd-${VERSION}_php-${PHP_VERSION} +PREFIX=/usr/local/httpd-${VERSION}_ruby-${RUBY_VERSION} + +## - substitude path "/usr/local/httpd-$VERSION" to "/usr/local/apache2" +## - in apache configuration files ? +## - +subst_base_path=false + +HTTPD_GROUP=www-data +HTTPD_USER=www-data + +SERVER_NAME=`hostname -f` +SERVER_ADMIN="admin@warenform.de" + + +APACHE_LOG_DIR=/var/log/apache +DIRECTORY_INDEX="index.html index.htm index.php" + +# : ${_arch:=i686} +# : ${_arch:=athlon} +: ${_arch:=k8} ## --> x86-64 instructionset + +#_cflags="-O2 -march=$_arch " + + +## - DO NOT CHANGE ---------------------------------- +## - + +_httpdconf=${PREFIX}/conf/httpd.conf +_rel_confextra_path=conf/extra + +_backup_suffix=".BAK" + +_srcdir=/usr/local/src/apache2 +_logdir=${_srcdir}/log_`basename $PREFIX`_build + +_pwd=`pwd` +_builddir=${_srcdir}/`basename $PREFIX` + + +## -- some functions -- ## + +echo_ok() { + echo -e " [ \033[32mok\033[m ]" +} +echo_failed(){ + echo -e " [ \033[1;31mfailed\033[m ]" +} + + +## -------------------------------------------------- + +[ -d $_logdir ] || mkdir -p $_logdir > /dev/null 2>&1 + + +## - Generate code for a 64-bit environment ? +## - +[ "athlon64" = "$_arch" -o "k8" = "$_arch" -o "opteron" = "$_arch" -o "athlon-fx" = "$_arch" ] && _cflags="$_cflags -m64" + +cd $_srcdir +gunzip < ${_srcdir}/httpd-$VERSION.tar.gz | tar -xpf - +chown -R root.root httpd-$VERSION +mv httpd-$VERSION ${_builddir} +cd $_builddir + +## - LDFLAGS="-s" --> Remove all symbol table and relocation information from the executable. +## - +echo -e "\n\tgoing to configure.." +echo -e "\t(see ${_logdir}/httpd-configure.log for more details)" +## F77="/usr/bin/g77-3.4" \ +## CXXCPP="/usr/bin/g++-3.4 -E" \ +## CC="/usr/bin/gcc-3.4" \ +## CXX="/usr/bin/g++-3.4" \ +## CPP="/usr/bin/cpp-3.4" \ +##CFLAGS="$_cflags" \ +LDFLAGS="-s" \ + ./configure --prefix=$PREFIX \ + --with-included-apr \ + --enable-ssl \ + --enable-info \ + --enable-proxy \ + --enable-proxy-connect \ + --enable-proxy-ftp \ + --enable-proxy-http \ + --enable-proxy-balancer \ + --enable-deflate \ + --enable-rewrite \ + --enable-cache \ + --enable-mem-cache \ + --enable-dav \ + --enable-headers \ + --enable-so \ + --with-dbm=db4 \ + --enable-expires \ + --with-berkeley-db=/usr \ + > ${_logdir}/httpd-configure.log 2>&1 || exit 1 + + ## --enable-authz-dbm \ + ## --enable-authn-dbm \ + ## --with-berkeley-db=/usr/local/BerkeleyDB.4.4.20 \ + ## --target=i686-pc-linux-gnu \ + ## --build=i686-pc-linux-gnu | tee ../httpd-$VERSION-install.log + ## --disable-nls \ + + +echo -e "\n\tgoing to compile.." +echo -e "\t(see ${_logdir}/httpd-make.log for more details)" +make > ${_logdir}/httpd-make.log 2>&1 || exit 1 + +echo -e "\n\tgoing to install.." +echo -e "\t(see ${_logdir}/httpd-make_install.log for more details)" +make install > ${_logdir}/httpd-make_install.log 2>&1 || exit 1 + + +## - do some post-installatin tasks.. +## - +echo +echo -e "\t-----------------------------" +echo -e "\t-- post installation tasks --" +echo -e "\t-----------------------------" + +if [ -f $_httpdconf ];then + cp $_httpdconf $_httpdconf.ORIG + + if $subst_base_path ; then + ## - set BasePath to httpd.conf + ## - + echo "" + echo -e "\tsubstitute \"$PREFIX\" with \"/usr/local/apache2\"" + echo -e -n "\tin file $_httpdconf.." + sed -i$_backup_suffix -e "s#$PREFIX#/usr/local/apache2#g" $_httpdconf + if [ "0" = $? ]; then + echo_ok + rm -f $_httpdconf$_backup_suffix + else + echo_failed + fi + + ## - set BasePath to all conf files in conf/extra + ## - + if [ -d $PREFIX/$_rel_confextra_path ]; then + cd $PREFIX/$_rel_confextra_path + _files=`ls *.conf` + for _file in $_files ;do + echo "" + echo -e "\tsubstitute \"$PREFIX\" with \"/usr/local/apache2\"" + echo -n -e "\t in file $_file.." + sed -i$_backup_suffix -e "s#$PREFIX#/usr/local/apache2#g" $_file + if [ "0" = $? ]; then + echo_ok + rm -f $_file$_backup_suffix + else + echo_failed + fi + done + fi + fi + + ## - set User + echo "" + echo -n -e "\tset User to \"$HTTPD_USER\".." + sed -i$_backup_suffix -r \ + -e "s&^(([ ^t]*User ).*)$&## \1\n\2${HTTPD_USER}&g" \ + $_httpdconf + if [ "0" = $? ]; then + echo_ok + rm -f $_httpdconf$_backup_suffix + else + echo_failed + fi + + ## - set Group + echo "" + echo -n -e "\tset Group to \"$HTTPD_GROUP\".." + sed -i$_backup_suffix -r \ + -e "s&^(([ ^t]*Group ).*)$&## \1\n\2${HTTPD_GROUP}&g" \ + $_httpdconf + if [ "0" = $? ]; then + echo_ok + rm -f $_httpdconf$_backup_suffix + else + echo_failed + fi + + ## - set ServerAdmin + ## - + echo "" + echo -n -e "\tset ServerAdmin to \"$SERVER_ADMIN\".." + sed -i$_backup_suffix -r \ + -e "s&^(([ ^t]*ServerAdmin ).*)$&## \1\n\2${SERVER_ADMIN}&g" \ + $_httpdconf + if [ "0" = $? ]; then + echo_ok + rm -f $_httpdconf$_backup_suffix + else + echo_failed + fi + + ## - set ServerName + ## - + echo "" + echo -n -e "\tset ServerName to \"$SERVER_NAME\".." + sed -i$_backup_suffix -r \ + -e "s&^(([ ^t]*)#?(ServerName ).*)$&## \1\n\2\3${SERVER_NAME}&g" \ + $_httpdconf + if [ "0" = $? ]; then + echo_ok + rm -f $_httpdconf$_backup_suffix + else + echo_failed + fi + + ## - set DirectoryIndex + ## - + echo "" + echo -n -e "\tset DirectoryIndex to \"$DIRECTORY_INDEX\".." + sed -i$_backup_suffix -r \ + -e "s&^([ ^t]*)(DirectoryIndex )(.*)$&\1## \2\3\n\1\2${DIRECTORY_INDEX}&g" \ + $_httpdconf + if [ "0" = $? ]; then + echo_ok + rm -f $_httpdconf$_backup_suffix + else + echo_failed + fi + + ## - set log-directory and concerning entries + ## - + echo "" + echo -n -e "\tset log-directory to $APACHE_LOG_DIR\".." + mkdir -p $APACHE_LOG_DIR > /dev/null 2>&1 + if [ "0" = $? ]; then + echo_ok + echo "" + echo -n -e "\tset ErrorLog.." + sed -i$_backup_suffix -r \ + -e "s&^(([ ^t]*ErrorLog ).*)$&## \1\n\2${APACHE_LOG_DIR}/error_log&g" \ + $_httpdconf > /dev/null 2>&1 + if [ "0" = $? ]; then + echo_ok + echo "" + echo -n -e "\tset CustomLog.." + sed -i$_backup_suffix -r \ + -e "s&^([ ^t]*)(CustomLog )(.*)$&\1## \2\3\n\1\2${APACHE_LOG_DIR}/access_log combined&g" \ + $_httpdconf > /dev/null 2>&1 + if [ "0" = $? ]; then + echo_ok + rm -f $_httpdconf$_backup_suffix + else + echo_failed + fi + else + echo_failed + fi + else + echo_failed + fi +fi + +mkdir -p $PREFIX/conf/vhosts +cat <>$_httpdconf + +ServerSignature Off +ServerTokens ProductOnly + +include conf/vhosts/*.conf +EOF + +## - Listen on certain ip(s) ? +## - +_ips="" +_substitute="" +_substitute_ssl="" +echo "" +echo "if you want the webserver to listen on certain ip(s)" +echo "put a blank seperatet list an type " +echo "otherwise leaf blank and type " +echo "" +echo -n "put in ip(s): " +read _ips +if [ ! "X" = "X$_ips" ]; then + + echo "" + echo -e "\tInsert Listen directive(s) - Port 80 - for ip-address(es)" + echo -n -e "\t\"$_ips\" in file $_httpdconf.." + for _ip in $_ips ; do + _substitute="Listen $_ip:80\n$_substitute" + _substitute_ssl="Listen $_ip:443\n$_substitute_ssl" + done + sed -i$_backup_suffix -r -e "s#^(Listen 80.*)#\#\# \1\n$_substitute#g" $_httpdconf > /dev/null 2>&1 + if [ "0" = "$?" ];then + echo_ok + rm $_httpdconf$_backup_suffix + else + echo_failed + fi +fi + +## - enable ssl ? +## - +_ssl="" +echo +echo -n "do you want to enable ssl conections for the given ip(s) [y/n]: " +read _ssl +if [ "y" = "$_ssl" -o "Y" = "$_ssl" -o "Yes" = "$_ssl" -o "yes" = "$_ssl" ];then + + _notice="" + + ## - copy certification files if present.. + if [ -f $_srcdir/server.crt -a -f $_srcdir/server.key ];then + cp $_srcdir/server.crt $PREFIX/conf/ + cp $_srcdir/server.key $PREFIX/conf/ + else + _notice="CERTIFICATES NOT PRESENT" + fi + + ## - include httpd-ssl.conf + _file=httpd-ssl.conf + if [ -f ${PREFIX}/${_rel_confextra_path}/${_file} ]; then + echo + echo -n -e "\tinclude file \"$_file\".." + sed -i$_backup_suffix -r \ + -e "s&[ ^t]*#([ ^t]*#*[ ^t]*)*(Include $_rel_confextra_path/$_file).*$&\2&g" \ + $_httpdconf > /dev/null 2>&1 + if [ "0" = "$?" ];then + rm $_httpdconf$_backup_suffix + echo_ok + if [ ! "X" = "X$_notice" ];then + echo "" + echo -e "\t[ \033[1;33m$_notice\033[m ]: \033[33m" + echo -e "\tSSL Connections are enabled but no (default) certificates" + echo -e "\tare present !! So the webserver will not start. " + echo -e "\tPut your certificate named as \"server.crt\" and the concerning" + echo -e "\tkey named as \"server.key\" into directory $PREFIX/conf/" + echo "" + echo -e "\tAlternatively you can comment in the the line containing" + echo -e "\t\"Include conf/extra/http-ssl.conf\" directive for now" + echo -e "\tto get a running webserver - without SSL enabled.\033[m" + fi + else + echo_failed + fi + fi + + ## - if given, setting the ip(s) to Listen + echo "" + echo -e "\tInsert Listen directive(s) - Port 443 - for ip-address(es)" + echo -n -e "\t\"$_ips\" in file ${_file}.." + if [ ! "X" = "X$_ips" ]; then + sed -i$_backup_suffix -r \ + -e "s#^(Listen 443.*)#\#\# \1\n$_substitute_ssl#g" \ + ${PREFIX}/${_rel_confextra_path}/${_file} > /dev/null 2>&1 + if [ "0" = "$?" ];then + echo_ok + rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix + else + echo_failed + fi + fi + + ## - set ServerName + ## - + echo "" + echo -n -e "\tin $_file set ServerAdmin.." + sed -i$_backup_suffix -r \ + -e "s&^(([ ^t]*ServerName ).*)$&## \1\n\2${SERVER_NAME}&g" \ + ${PREFIX}/${_rel_confextra_path}/${_file} > /dev/null 2>&1 + if [ "0" = $? ]; then + echo_ok + rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix + else + echo_failed + fi + + ## - set ServerAdmin + ## - + echo "" + echo -n -e "\tin $_file set ServerAdmin.." + sed -i$_backup_suffix -r \ + -e "s&^(([ ^t]*ServerAdmin ).*)$&## \1\n\2${SERVER_ADMIN}&g" \ + ${PREFIX}/${_rel_confextra_path}/${_file} > /dev/null 2>&1 + if [ "0" = $? ]; then + echo_ok + rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix + else + echo_failed + fi + + + ## - set log entries + ## - + echo "" + echo -n -e "\tin $_file set ErrorLog.." + sed -i$_backup_suffix -r \ + -e "s&^(([ ^t]*ErrorLog ).*)$&## \1\n\2${APACHE_LOG_DIR}/error_log&g" \ + ${PREFIX}/${_rel_confextra_path}/${_file} > /dev/null 2>&1 + if [ "0" = $? ]; then + echo_ok + rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix + else + echo_failed + fi + + echo -n -e "\tin $_file set TransferLog.." + sed -i$_backup_suffix -r \ + -e "s&^(([ ^t]*TransferLog ).*)$&## \1\n\2${APACHE_LOG_DIR}/access_log&g" \ + ${PREFIX}/${_rel_confextra_path}/${_file} > /dev/null 2>&1 + if [ "0" = $? ]; then + echo_ok + rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix + else + echo_failed + fi + + echo -n -e "\tin $_file set CustomLog.." + sed -i$_backup_suffix -r \ + -e "s&^(([ ^t]*CustomLog ).*)$&## \1\n\2${APACHE_LOG_DIR}/ssl_request_log \\\&g" \ + ${PREFIX}/${_rel_confextra_path}/${_file} > /dev/null 2>&1 + if [ "0" = $? ]; then + echo_ok + rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix + else + echo_failed + fi + +fi + +## - include conf files from conf/extra +## - +_file=httpd-default.conf +if [ -f ${PREFIX}/${_rel_confextra_path}/${_file} ];then + echo + echo -n -e "\tinclude file \"$_file\".." + sed -i$_backup_suffix -r \ + -e "s&[ ^t]*#([ ^t]*#*[ ^t]*)*(Include $_rel_confextra_path/$_file).*$&\2&g" \ + $_httpdconf > /dev/null 2>&1 + if [ "0" = "$?" ];then + rm $_httpdconf$_backup_suffix + echo_ok + else + echo_failed + fi +fi + +_file=httpd-info.conf +if [ -f ${PREFIX}/${_rel_confextra_path}/${_file} ];then + echo + echo -n -e "\tinclude file \"$_file\".." + sed -i$_backup_suffix -r \ + -e "s&[ ^t]*#([ ^t]*#*[ ^t]*)*(Include $_rel_confextra_path/$_file).*$&\2&g" \ + $_httpdconf > /dev/null 2>&1 + if [ "0" = "$?" ];then + rm $_httpdconf$_backup_suffix + echo_ok + else + echo_failed + fi + + echo + echo -e "\tsetup \"$_file\" to allow urls \"server-status\"" + echo -n -e "\tand server-info from localhost.." + + _localhost="127.0.0.0/8" + #[ "X" != "X$_ips" ] && _localhost="$_localhost $_ips" + sed -i$_backup_suffix -r \ + -e "s&^([ ^t]*Allow[ ^t]?from).*$&\1 $_localhost&g" \ + ${PREFIX}/${_rel_confextra_path}/${_file} > /dev/null 2>&1 + if [ "0" = "$?" ];then + rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix + echo_ok + else + echo_failed + fi +fi + +_file=httpd-languages.conf +if [ -f ${PREFIX}/${_rel_confextra_path}/${_file} ];then + echo + echo -n -e "\tinclude file \"$_file\".." + sed -i$_backup_suffix -r \ + -e "s&[ ^t]*#([ ^t]*#*[ ^t]*)*(Include $_rel_confextra_path/$_file).*$&\2&g" \ + $_httpdconf > /dev/null 2>&1 + if [ "0" = "$?" ];then + rm $_httpdconf$_backup_suffix + echo_ok + else + echo_failed + fi +fi + +_file=httpd-multilang-errordoc.conf +if [ -f ${PREFIX}/${_rel_confextra_path}/${_file} ];then + echo + echo -n -e "\tinclude file \"$_file\".." + sed -i$_backup_suffix -r \ + -e "s&[ ^t]*#([ ^t]*#*[ ^t]*)*(Include $_rel_confextra_path/$_file).*$&\2&g" \ + $_httpdconf > /dev/null 2>&1 + if [ "0" = "$?" ];then + rm $_httpdconf$_backup_suffix + echo_ok + else + echo_failed + fi + + ## - Set "LanguagePriority" + sed -i -r -e "s/^(\s*)(LanguagePriority.*)de\ *(.*)$/\1\2\3/g" ${PREFIX}/${_rel_confextra_path}/${_file} + sed -i -r -e "s/^(\s*)(LanguagePriority)(.*)$/\1\2 de\3/g" ${PREFIX}/${_rel_confextra_path}/${_file} +fi + +_set_link="" +echo +echo -n "do you want to set symlink /usr/local/apache2 -> `basename $PREFIX` ? [y/n]: " +read _set_link +if [ "y" = "$_set_link" -o "Y" = "$_set_link" -o "Yes" = "$_set_link" -o "yes" = "$_set_link" ];then + if [ -L /usr/local/apache2 ];then + rm -f /usr/local/apache2 + fi + ln -s `basename $PREFIX` /usr/local/apache2 +fi + +_set_link="" +echo +echo -n "do you want to set symlink /etc/init.d/apache2 -> $PREFIX/bin/apachectl ? [y/n]: " +read _set_link +if [ "y" = "$_set_link" -o "Y" = "$_set_link" -o "Yes" = "$_set_link" -o "yes" = "$_set_link" ];then + if [ -L /etc/init.d/apache2 ];then + rm -f /etc/init.d/apache2 + fi + ln -s $PREFIX/bin/apachectl /etc/init.d/apache2 > /dev/null 2>&1 +fi + +## mkdir $PREFIX/conf/{ssl.crt,ssl.key} +## cp $_srcdir/server.crt $PREFIX/conf/ssl.crt +## cp $_srcdir/server.key $PREFIX/conf/ssl.key + + +## - special for debian. set manpath entries +## - +if [ -f /etc/manpath.config ];then + if ! grep /usr/local/apache2/man /etc/manpath.config > /dev/null 2<&1 ; then + echo >> /etc/manpath.config + echo "MANDATORY_MANPATH /usr/local/apache2/man /var/cache/man" >> /etc/manpath.config + echo "MANPATH_MAP /usr/local/apache2/bin /usr/local/apache2/man" >> /etc/manpath.config + echo "MANDB_MAP /usr/local/apache2/man /var/cache/man" >> /etc/manpath.config + fi +elif [ -f /etc/man.conf];then + if ! grep /opt/apache2/man /etc/man.conf > /dev/null 2<&1 ; then + echo >> /etc/man.conf + echo "MANPATH /opt/apache2/man /var/cache/man" >> /etc/man.conf + echo "MANPATH_MAP /opt/apache2/bin /opt/apache2/man" >> /etc/man.conf + fi +fi + + + +## - Add /usr/local/apache2/bin to the systems PATH variable +## - +_checkdir=`dirname $PREFIX`/apache2/bin +if [ -f /etc/profile ]; then + if ! grep -e "$_checkdir" /etc/profile > /dev/null 2<&1 ; then + perl -i -n -p -e "s#^([ ]*export[ ]*PATH.*$)#check_dir=$_checkdir\nif [ -d \"\\\$check_dir\" ];then\n PATH=\\\${check_dir}:\\\$PATH\nfi\n\n\1#" /etc/profile > /dev/null 2<&1 + fi +fi + +cd $pwd + +echo +exit 0 diff --git a/install_httpd-2.4.sh b/install_httpd-2.4.sh new file mode 100755 index 0000000..06f1433 --- /dev/null +++ b/install_httpd-2.4.sh @@ -0,0 +1,3530 @@ +#!/usr/bin/env bash + +# httpd Apapche Webserver +# + +## - CHANGE PARAMETER TO PASS YOUR SITUATION-------- +## - +_VSERVER_GUEST=no + +_APACHE_VERSION=2.4.25 + +_WITH_MOD_PROXY_FCGI=true +_WITH_MOD_FCGID=true +_MOD_FCGID_VERSION=2.3.9 + +_WITH_MOD_PERL=true +_MOD_PERL_VERSION=2.0.10 + +_SEPARATE_LISTEN_DIRECTIVES=false + +if $_WITH_MOD_FCGID -o $_WITH_MOD_PROXY_FCGI ; then + _WITH_MOD_PHP=false +else + _WITH_MOD_PHP=true +fi + +_SSL_Cipher_Suite='ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA' + +_PHP_VERSION=7.1.2 + + +## - Determin IP-Adresses +## - +__ipv4="`ifconfig | grep -e \"^\s*inet Adresse\" | grep -v \"127.0.0.1\" | awk '{print$2}' | cut -d\":\" -f2 | sort`" +for _ip in $__ipv4 ; do + _ipv4="$_ipv4 $_ip" +done +## - Trim leading whitespaces +## - +shopt -s extglob +_ipv4="${_ipv4##*( )}" +shopt -u extglob + +__ipv6="`ifconfig | grep -e \"^\s*inet6-Adresse\" | awk '{print$2}' | grep -v -e \"^::1/\" | grep -v -e \"^fe80\" | cut -d\"/\" -f1 | sort`" +for _ip in $__ipv6 ; do + _ipv6="$_ipv6 $_ip" +done +## - Trim leading whitespaces +## - +shopt -s extglob +_ipv6="${_ipv6##*( )}" +shopt -u extglob + + + +## - Is PHP-FPM socket in use +## - +_PHP_FPM_SOCKET="$(ls /tmp/php*.sock 2> /dev/null | head -1)" + +## - substitude path "/usr/local/httpd-$APACHE_VERSION" to "/usr/local/apache2" +## - in apache configuration files ? +## - +subst_base_path=false + +_APR_VERSION=1.5.2 +_APR_UTIL_VERSION=1.5.4 + +_HTTPD_USER=www-data + +_HTTPD_PORT=80 +_HTTPD_SSL_PORT=443 + +_SERVER_NAME=`hostname -f` +_SERVER_ADMIN="admin@oopen.de" + +_srcdir=$(dirname $(realpath $0)) + +_START_AT_BOOTTIME=yes + +APACHE_LOG_DIR=/var/log/apache2 +DIRECTORY_INDEX="index.html index.htm index.php" + +_BASE_WEBSPACE_DIR="/var/www" +#_GLOBAL_DOC_ROOT="${_BASE_WEBSPACE_DIR}/default" +#_SUEXEC_DOC_ROOT=$_BASE_WEBSPACE_DIR +#_PROXY_PATH_MATH_LINE="#ProxyPassMatch ^/(status|ping)$ unix:${_PHP_FPM_SOCKET}|fcgi://localhost/${_BASE_WEBSPACE_DIR}/default" + + +## - DO NOT CHANGE ---------------------------------- +## - + +## - Determin httpd binary +## - +_httpd_binary="`which httpd`" +if [ -z "$_httpd_binary" ]; then + _httpd_binary="`ps -C httpd -f | grep -e \"^root\" | awk '{print$8}'`" + if [ -z "$_httpd_binary" ]; then + if [ -x "/usr/local/apache2/bin/httpd" ]; then + _httpd_binary="/usr/local/apache2/bin/httpd" + fi + fi +fi + +APACHE_WEBSERVICE_RUNNING=false +if [ -x "$_httpd_binary" ];then + ## - Determin websever user + ## - + _pass_web_user=false + web_user="`$_httpd_binary -t -D DUMP_RUN_CFG | grep -i -e "^User" | awk '{print$2}' | cut -d\"=\" -f2 | tr -d '"'`" + web_group="`$_httpd_binary -t -D DUMP_RUN_CFG | grep -i -e "^Group" | awk '{print$2}' | cut -d\"=\" -f2 | tr -d '"'`" + if [ -z "$web_user" -o -z "$web_group" ]; then + _HTTPD_USER=www-data + else + _HTTPD_USER=$web_user + _HTTPD_GROUP=$web_group + fi + + ## - Is Apache Webservice running? + ## - + PID=$(ps aux | grep "$(realpath $_httpd_binary)" | grep -e "^root" | grep -v grep | awk '{print$2}') + if [[ "X${PID}X" = "XX" ]] ;then + APACHE_WEBSERVICE_RUNNING=false + else + APACHE_WEBSERVICE_RUNNING=true + fi +fi + +## - Let make use multiple cores (-j) +## - +export MAKEFLAGS=-j$(expr `grep "^processor" /proc/cpuinfo | sort -u | wc -l` + 1) + +# : ${_arch:=i686} +# : ${_arch:=athlon} +: ${_arch:=k8} ## --> x86-64 instructionset + +#_cflags="-O2 -march=$_arch " + + + +## --- some functions +## --- +echononl(){ + echo X\\c > /tmp/shprompt$$ + if [ `wc -c /tmp/shprompt$$ | awk '{print $1}'` -eq 1 ]; then + echo -e -n "$*\\c" 1>&2 + else + echo -e -n "$*" 1>&2 + fi + rm /tmp/shprompt$$ +} + +fatal(){ + echo "" + echo -e "[ \033[31m\033[1mError\033[m ]: $*" + echo "" + echo -e "\t\033[31m\033[1mInstalllation wird abgebrochen\033[m\033[m" + echo "" + exit 1 +} + +warn (){ + echo "" + echo -e "\t[ \033[33m\033[1mWarning\033[m ]: $*" + echo "" +} + +error (){ + echo "" + echo -e "\t[ \033[31m\033[1mError\033[m ]: $*" + echo "" +} + +echo_ok() { + echo -e "\033[75G[ \033[32mok\033[m ]" +} +echo_failed(){ + echo -e "\033[75G[ \033[1;31mfailed\033[m ]" +} +echo_skipped() { + echo -e "\033[75G[ \033[33m\033[1mskipped\033[m ]" +} +## --- +## --- END: functions + + +clear +echo +echo -e "\033[21G\033[32mInstallation script apache webserver \033[m" +echo +echo +echo + +echo "" +echo -e "\033[32m--\033[m" +echo "" +echo "Insert version numbers apache (httpd) apr and apr-util." +echo "" +echo "" +APACHE_VERSION= +while [ "X$APACHE_VERSION" = "X" ] +do + echononl "apache version [$_APACHE_VERSION]: " + read APACHE_VERSION + if [ "X$APACHE_VERSION" = "X" ]; then + APACHE_VERSION=$_APACHE_VERSION + fi +done + +APR_VERSION= +while [ "X$APR_VERSION" = "X" ] +do + echononl "apr version [$_APR_VERSION]: " + read APR_VERSION + if [ "X$APR_VERSION" = "X" ]; then + APR_VERSION=$_APR_VERSION + fi +done +if [ -d "/usr/local/apr-$APR_VERSION" ]; then + APR_INSTALLED=true +else + APR_INSTALLED=false +fi + +APR_UTIL_VERSION= +while [ "X$APR_UTIL_VERSION" = "X" ] +do + echononl "apr-util version [$_APR_UTIL_VERSION]: " + read APR_UTIL_VERSION + if [ "X$APR_UTIL_VERSION" = "X" ]; then + APR_UTIL_VERSION=$_APR_UTIL_VERSION + fi +done +if [ -d "/usr/local/apr-util-$APR_UTIL_VERSION" ]; then + APR_UTIL_INSTALLED=true +else + APR_UTIL_INSTALLED=false +fi + +echo "" +echo "" +echo -e "\033[32m--\033[m" +echo "" +echo "Base Directory contains the webspaces.." +echo "" +echo "" +BASE_WEBSPACE_DIR= +while [ "X$BASE_WEBSPACE_DIR" = "X" ] +do + echononl "Webspace base directory [${_BASE_WEBSPACE_DIR}]: " + read BASE_WEBSPACE_DIR + if [ "X$BASE_WEBSPACE_DIR" = "X" ]; then + BASE_WEBSPACE_DIR=$_BASE_WEBSPACE_DIR + fi +done +GLOBAL_DOC_ROOT="${BASE_WEBSPACE_DIR}/default" +SUEXEC_DOC_ROOT=$BASE_WEBSPACE_DIR + +if [[ -n "$_PHP_FPM_SOCKET" ]]; then + PHP_FPM_SOCKET_PRESENT=true + PHP_MAJOR_VERSION=`echo $_PHP_FPM_SOCKET | cut -d '-' -f2` +else + PHP_FPM_SOCKET_PRESENT=false +fi + + +echo "" +echo "" +echo -e "\033[32m--\033[m" +echo "" +echo "Insert User/Group for apache daemon (httpd)." +echo "" +echo "" + +HTTPD_USER= +while [ "X$HTTPD_USER" = "X" ] +do + echononl "apache user [${_HTTPD_USER}]: " + read HTTPD_USER + if [ "X$HTTPD_USER" = "X" ]; then + HTTPD_USER=$_HTTPD_USER + fi +done +if [ -z "$_HTTPD_GROUP" ]; then + if [ "$HTTPD_USER" = "nobody" ]; then + _HTTPD_GROUP="nogroup" + else + _HTTPD_GROUP=$HTTPD_USER + fi +fi +while [ "X$HTTPD_GROUP" = "X" ] +do + echononl "apache group [$_HTTPD_GROUP]: " + read HTTPD_GROUP + if [ "X$HTTPD_GROUP" = "X" ]; then + HTTPD_GROUP=$_HTTPD_GROUP + fi +done + +echo "" +echo "" +echo -e "\033[32m--\033[m" +echo "" +echo "Insert default ServerName / ServerAdmin ." +echo "" +echo "" + +SERVER_NAME= +while [ "X$SERVER_NAME" = "X" ] +do + echononl "default SeverName [${_SERVER_NAME}]: " + read SERVER_NAME + if [ "X$SERVER_NAME" = "X" ]; then + SERVER_NAME=$_SERVER_NAME + fi +done + +if [ -z "`echo $SERVER_NAME | cut -s -d"." -f 3`" ];then + _HOST="" + _DOMAIN=`echo $SERVER_NAME | cut -s -d"." -f 1` + _TLD=`echo $SERVER_NAME | cut -s -d"." -f 2` +else + _HOST=`echo $SERVER_NAME | cut -s -d"." -f 1` + _DOMAIN=`echo $SERVER_NAME | cut -s -d"." -f 2` + _TLD=`echo $SERVER_NAME | cut -s -d"." -f 3` +fi + +SERVER_ADMIN= +while [ "X$SERVER_ADMIN" = "X" ] +do + echononl "default SeverAdmin [${_SERVER_ADMIN}]: " + read SERVER_ADMIN + if [ "X$SERVER_ADMIN" = "X" ]; then + SERVER_ADMIN=$_SERVER_ADMIN + fi +done + +echo "" +echo "" +echo -e "\033[32m--\033[m" +echo "" +echo "Insert the IP-Addresses the webserver should listen for." +echo " Note:" +echo " Put in a blank seperated list of ip-addresses" +echo "" +echo -e " \033[33m\"127.0.0.1\"\033[m will be added automatically " +echo "" +echo "" + +_IPv4_ADDRESSES= +while [ "X$_IPv4_ADDRESSES" = "X" ] +do + echononl "Ipv4 addresses [$_ipv4]: " + read _IPv4_ADDRESSES + if [ "X$_IPv4_ADDRESSES" = "X" ]; then + _IPv4_ADDRESSES=$_ipv4 + #echononl "Must NOT be empty. Insert again: " + fi +done +IPv4_FIRST=`echo $_IPv4_ADDRESSES | cut -d " " -f1` +HTTPD_INFO_ADDRESSES="$_IPv4_ADDRESSES" +IPv4_ADDRESSES="127.0.0.1 $_IPv4_ADDRESSES" + +echo "" +echo "Type:" +echo -e "\t\033[33mNone\033[m if IPv6 is not suppoerted" +echo "" +IPv6_ADDRESSES= +while [ "X$IPv6_ADDRESSES" = "X" ] +do + echononl "Ipv6 addresses [$_ipv6]: " + read IPv6_ADDRESSES + if [ "X$IPv6_ADDRESSES" = "Xnone" -o "X$IPv6_ADDRESSES" = "XNone" ]; then + warn "Disable support for IPv6.." + IPv6_ADDRESSES="disbled" + #echononl "Must NOT be empty. Insert again: " + elif [ "X$IPv6_ADDRESSES" = "X" ]; then + IPv6_ADDRESSES=$_ipv6 + fi +done +if [ "$IPv6_ADDRESSES" != "disbled" ]; then + IPv6_FIRST=`echo $IPv6_ADDRESSES | cut -d " " -f1` +else + IPv6_FIRST="" +fi + +IP_ADDRESSES="$IPv4_ADDRESSES" +if [ "$IPv6_ADDRESSES" != "disbled" ]; then + for _ipv6 in $IPv6_ADDRESSES ; do + IP_ADDRESSES="$IP_ADDRESSES [$_ipv6]" + HTTPD_INFO_ADDRESSES="$HTTPD_INFO_ADDRESSES $_ipv6" + done +fi + +echo "" +echo "" +echo -e "\tUse Separate \"Listen\" Directives for each IP-Address?" +echo "" +SEPARATE_LISTEN_DIRECTIVES= +while [ "X$SEPARATE_LISTEN_DIRECTIVES" = "X" ] +do + if $_SEPARATE_LISTEN_DIRECTIVES ; then + echononl "Separate \"Listen\" Directives (yes/no) [yes]: " + else + echononl "Separate \"Listen\" Directives (yes/no) [no]: " + fi + read SEPARATE_LISTEN_DIRECTIVES + if [ "X$SEPARATE_LISTEN_DIRECTIVES" = "X" ]; then + SEPARATE_LISTEN_DIRECTIVES=$_SEPARATE_LISTEN_DIRECTIVES + fi +done +SEPARATE_LISTEN_DIRECTIVES=`echo $SEPARATE_LISTEN_DIRECTIVES | tr '[:upper:]' '[:lower:]'` +if [ "$SEPARATE_LISTEN_DIRECTIVES" = "yes" ] || $SEPARATE_LISTEN_DIRECTIVES ; then + SEPARATE_LISTEN_DIRECTIVES=true + _STATUS_URL="http://localhost:80/server-status" +else + SEPARATE_LISTEN_DIRECTIVES=false + _STATUS_URL="http://127.0.0.1:80/server-status" +fi + +echo "" +echo "" +echo -e "\tInsert the URL used to access the status report" +echo "" +echo " Example:" +echo " http://localhost:80/server-status" +echo " http://127.0.0.1:80/server-status" +echo "" +STATUS_URL= +while [ "X$STATUS_URL" = "X" ] +do + if [[ -n $_STATUS_URL ]] ; then + echononl "Status URL [$_STATUS_URL]: " + else + echononl "Status URL: " + fi + read STATUS_URL + if [ "X$STATUS_URL" = "X" ]; then + STATUS_URL=$_STATUS_URL + fi +done + + + + +echo "" +echo "" +echo -e "\033[32m--\033[m" +echo "" +echo "Insert Ports for standard non-ssl and ssl connections" +echo "" +echo "" + +HTTPD_PORT= +while [ "X$HTTPD_PORT" = "X" ] +do + echononl "port for standard (non-ssl) connections [${_HTTPD_PORT}]: " + read HTTPD_PORT + if [ "X$HTTPD_PORT" = "X" ]; then + HTTPD_PORT=$_HTTPD_PORT + fi +done + +HTTPD_SSL_PORT= +while [ "X$HTTPD_SSL_PORT" = "X" ] +do + echononl "port for ssl connections [${_HTTPD_SSL_PORT}]: " + read HTTPD_SSL_PORT + if [ "X$HTTPD_SSL_PORT" = "X" ]; then + HTTPD_SSL_PORT=$_HTTPD_SSL_PORT + fi +done + + + +echo "" +echo "" +echo -e "\033[32m--\033[m" +echo "" +echo "Some server configuration" +echo "" +echo " - Sysmlink for initscript (/etc/init.d/apache2)" +echo " - Sysmlink for installation directory (/usr/local/apache2)" +echo " - Start at boot time" +echo "" +if [[ ! -f "/etc/init.d/apache2" ]] ; then + _SYMLINK_INITSCRIPT=yes +else + _SYMLINK_INITSCRIPT=no +fi +__SYMLINK_INITSCRIPT= +while [ "X$__SYMLINK_INITSCRIPT" = "X" ] +do + echononl "Sysmlink for initscript (yes/no) [${_SYMLINK_INITSCRIPT}]: " + read __SYMLINK_INITSCRIPT + if [ "X$__SYMLINK_INITSCRIPT" = "X" ]; then + __SYMLINK_INITSCRIPT=$_SYMLINK_INITSCRIPT + fi +done +__SYMLINK_INITSCRIPT=`echo $__SYMLINK_INITSCRIPT | tr '[:upper:]' '[:lower:]'` +if [ "$__SYMLINK_INITSCRIPT" = "yes" ] ; then + SYMLINK_INITSCRIPT=true + START_APACHE_WEBSERVICE=true +else + SYMLINK_INITSCRIPT=false + START_APACHE_WEBSERVICE=false +fi + +if [[ ! -f "/usr/local/apache2" ]]; then + _SYMLINK_INSTALL_DIR=yes +else + _SYMLINK_INSTALL_DIR=no +fi +__SYMLINK_INSTALL_DIR= +while [ "X$__SYMLINK_INSTALL_DIR" = "X" ] +do + echononl "Sysmlink for installation directory (yes/no) [${_SYMLINK_INSTALL_DIR}]: " + read __SYMLINK_INSTALL_DIR + if [ "X$__SYMLINK_INSTALL_DIR" = "X" ]; then + __SYMLINK_INSTALL_DIR=$_SYMLINK_INSTALL_DIR + fi +done +__SYMLINK_INSTALL_DIR=`echo $__SYMLINK_INSTALL_DIR | tr '[:upper:]' '[:lower:]'` +if [ "$__SYMLINK_INSTALL_DIR" = "yes" ] ; then + SYMLINK_INSTALL_DIR=true +else + SYMLINK_INSTALL_DIR=false +fi + +if $SYMLINK_INITSCRIPT ; then + _START_AT_BOOTTIME=yes +else + _START_AT_BOOTTIME=no +fi +__START_AT_BOOTTIME= +while [ "X$__START_AT_BOOTTIME" = "X" ] +do + echononl "Start at boot time (yes/no) [${_START_AT_BOOTTIME}]: " + read __START_AT_BOOTTIME + if [ "X$__START_AT_BOOTTIME" = "X" ]; then + __START_AT_BOOTTIME=$_START_AT_BOOTTIME + fi +done +__START_AT_BOOTTIME=`echo $__START_AT_BOOTTIME | tr '[:upper:]' '[:lower:]'` +if [ "$__START_AT_BOOTTIME" = "yes" ] ; then + START_AT_BOOTTIME=true +else + START_AT_BOOTTIME=false +fi + +echo "" +echo -e "\033[32m--\033[m" +echo "" +echo "" +OK="" +echononl "Set \"umask\" to \"0002\" ? [no]: " +read OK +while [ "X$OK" != "Xyes" -a "X$OK" != "XYes" -a "X$OK" != "Xno" -a "X$OK" != "XNo" -a "X$OK" != "X" ]; do + echononl "falsche Angabe! [no]: " + read OK +done +if [ "$OK" = "yes" -o "$OK" = "Yes" ]; then + SET_UMASK=true + UMASK=0002 +else + SET_UMASK=false +fi + +echo "" +echo "" +echo -e "\033[32m--\033[m" +echo "" +echo "Support for apache modules" +echo "" +echo "" + +__WITH_MOD_PROXY_FCGI= +while [ "X$__WITH_MOD_PROXY_FCGI" = "X" ] +do + echononl "Include \"mod_proxy_cgi\" [${_WITH_MOD_PROXY_FCGI}]: " + read __WITH_MOD_PROXY_FCGI + if [ "X$__WITH_MOD_PROXY_FCGI" = "X" ]; then + __WITH_MOD_PROXY_FCGI=$_WITH_MOD_PROXY_FCGI + fi +done +if [ "$__WITH_MOD_PROXY_FCGI" = "true" ] ; then + WITH_MOD_PROXY_FCGI=true +else + WITH_MOD_PROXY_FCGI=false +fi + +echo "" +echo "" +echo -e "\033[32m--\033[m" +echo "" +echo "Support for third party modules" +echo "" +echo "" + +__WITH_MOD_FCGID= +while [ "X$__WITH_MOD_FCGID" = "X" ] +do + echononl "Include \"mod_fcgid\" [${_WITH_MOD_FCGID}]: " + read __WITH_MOD_FCGID + if [ "X$__WITH_MOD_FCGID" = "X" ]; then + __WITH_MOD_FCGID=$_WITH_MOD_FCGID + fi +done +if [ "$__WITH_MOD_FCGID" = "true" ] ; then + WITH_MOD_FCGID=true + MOD_FCGID_VERSION= + while [ "X$MOD_FCGID_VERSION" = "X" ] + do + echononl "mod_fcgid version [$_MOD_FCGID_VERSION]: " + read MOD_FCGID_VERSION + if [ "X$MOD_FCGID_VERSION" = "X" ]; then + MOD_FCGID_VERSION=$_MOD_FCGID_VERSION + fi + done +else + WITH_MOD_FCGID=false +fi + +echo + +__WITH_MOD_PERL= +while [ "X$__WITH_MOD_PERL" = "X" ] +do + echononl "Include \"mod_perl\" [${_WITH_MOD_PERL}]: " + read __WITH_MOD_PERL + if [ "X$__WITH_MOD_PERL" = "X" ]; then + __WITH_MOD_PERL=$_WITH_MOD_PERL + fi +done +if [ "$__WITH_MOD_PERL" = "true" ] ; then + WITH_MOD_PERL=true + MOD_PERL_VERSION= + while [ "X$MOD_PERL_VERSION" = "X" ] + do + echononl "mod_perl version [$_MOD_PERL_VERSION]: " + read MOD_PERL_VERSION + if [ "X$MOD_PERL_VERSION" = "X" ]; then + MOD_PERL_VERSION=$_MOD_PERL_VERSION + fi + done +else + WITH_MOD_PERL=false +fi + +echo + +__WITH_MOD_PHP= +while [ "X$__WITH_MOD_PHP" = "X" ] +do + echononl "Include \"mod_php\" [${_WITH_MOD_PHP}]: " + read __WITH_MOD_PHP + if [ "X$__WITH_MOD_PHP" = "X" ]; then + __WITH_MOD_PHP=$_WITH_MOD_PHP + fi +done +if [ "$__WITH_MOD_PHP" = "true" ] ; then + WITH_MOD_PHP=true + PHP_VERSION= + while [ "X$PHP_VERSION" = "X" ] + do + echononl "php version [$_PHP_VERSION]: " + read PHP_VERSION + if [ "X$PHP_VERSION" = "X" ]; then + PHP_VERSION=$_PHP_VERSION + fi + done +else + WITH_MOD_PHP=false +fi + +if [ -n "$PHP_VERSION" ] ; then + _builddir=${_srcdir}/httpd-${APACHE_VERSION}_php-${PHP_VERSION} + PREFIX=/usr/local/httpd-${APACHE_VERSION}_php-${PHP_VERSION} + _logdir=${_srcdir}/log_httpd-${APACHE_VERSION}_php-${PHP_VERSION}_build +else + _builddir=${_srcdir}/httpd-${APACHE_VERSION} + PREFIX=/usr/local/httpd-${APACHE_VERSION} + _logdir=${_srcdir}/log_httpd-${APACHE_VERSION} +fi + +## - Is this a system with "systemd" ? +## - +OK= +echo "" +echo -e "\033[32m--\033[m" +echo "" +echo "Are you installing on a VServer guest system?" +echo "" +echononl "VServer Gastsystem (yes/no) [$_VSERVER_GUEST]: " +read OK +if [ "X$OK" = "X" ]; then + OK=$_VSERVER_GUEST +fi +OK=`echo "$OK" | tr '[:upper:]' '[:lower:]'` +while [ "X$OK" != "Xyes" -a "X$OK" != "Xno" ]; do + echo "" + echononl "\twrong entry! [yes/no]: " + read OK + OK=`echo "$OK" | tr '[:upper:]' '[:lower:]'` +done +if [ "$OK" = "yes" ]; then + SYSTEMD_EXISTS=false +else + if [ "X`which systemd`" = "X" ]; then + SYSTEMD_EXISTS=false + else + SYSTEMD_EXISTS=true + fi +fi + + + +clear +echo "" +echo -e "\033[21G\033[32mStart Apache Webserver Installation with the following Parameters \033[m" +echo "" +echo "httpd version.................: $APACHE_VERSION" +echo " apr version................: $APR_VERSION" +echo " apr-uril version...........: $APR_UTIL_VERSION" +echo "" +echo "apache user...................: $HTTPD_USER" +echo "apache group..................: $HTTPD_GROUP" +echo "" +echo "Installation directory........: $PREFIX" +echo "" +echo "Base directory for webspaces..: $BASE_WEBSPACE_DIR" +echo "Global DocumentRoot directory.: $GLOBAL_DOC_ROOT" +echo "" +echo "default ServerName............: $SERVER_NAME" +echo "default ServerAdmin...........: $SERVER_ADMIN" +echo "" +echo "IPv4 addresses................: $IPv4_ADDRESSES" +echo "IPv6 addresses................: $IPv6_ADDRESSES" +echo "" +echo "Separate Listen Directives....: $SEPARATE_LISTEN_DIRECTIVES" +echo "URL to access status report...: $STATUS_URL" +echo "" +echo "standard (non-ssl) port.......: $HTTPD_PORT" +echo "ssl port......................: $HTTPD_SSL_PORT" +echo "" +echo "Symlink /etc/init.d/apache2...: $SYMLINK_INITSCRIPT" +echo "Symlink /usr/local/apache2....: $SYMLINK_INSTALL_DIR" +echo "Start at boot time............: $START_AT_BOOTTIME" +echo "" +echo "Set umask to \"0002\"...........: $SET_UMASK" +echo "" +echo "System supports systemd.......: $SYSTEMD_EXISTS" +echo "" +echo "Include mod_proxy_cgi.........: $WITH_MOD_PROXY_FCGI" +echo "" +echo "Include mod_php...............: $WITH_MOD_PHP" +if $WITH_MOD_PHP ; then + echo " php version................: $PHP_VERSION" +fi +echo "" +echo "Include mod_fcgid.............: $WITH_MOD_FCGID" +if $WITH_MOD_FCGID ; then + echo " mod_fcgid version..........: $MOD_FCGID_VERSION" +fi +echo "Include mod_perl..............: $WITH_MOD_PERL" +if $WITH_MOD_PERL ; then + echo " mod_perl version...........: $MOD_PERL_VERSION" +fi +echo "" + +echononl "start with that configuration? [yes/no]: " +read OK +while [ "X$OK" != "Xyes" -a "X$OK" != "XYes" -a "X$OK" != "XNo" -a "X$OK" != "Xno" ] +do + echononl "wrong entry! [yes/no] :" + read OK +done +[ $OK = "Yes" -o $OK = "yes" ] || fatal "Change parameters and restart script: `basename $0`" + +echo "" +echo "" + + +if [ -d "$_logdir" ];then + echononl "\tVerschiebe exitierendes Logverzeichnis ..." + mv $_logdir $_logdir.`date +%Y%m%d-%H%M` + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Kann Logverzeichnis \"${_logdir}\" nicht verschieben.." + fi +fi +echononl "\tErstelle Logverzeichnis \"`basename ${_logdir}`\".." +mkdir -p $_logdir > /dev/null 2>&1 +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed + fatal "Kann Logverzeichnis \"${_logdir}\" nicht erstellen.." +fi + +touch ${_logdir}/main.log +echo "## -----------" >> ${_logdir}/main.log +echo "## - Start Apache Webserver installation with the following Parameters" >> ${_logdir}/main.log +echo "## -----------" >> ${_logdir}/main.log +echo "## -" >> ${_logdir}/main.log +echo "## - httpd version.................: $APACHE_VERSION" >> ${_logdir}/main.log +echo "## - apr version................: $APR_VERSION" >> ${_logdir}/main.log +echo "## - apr-uril version...........: $APR_UTIL_VERSION" >> ${_logdir}/main.log +echo "## -" >> ${_logdir}/main.log +echo "## - apache user...................: $HTTPD_USER" >> ${_logdir}/main.log +echo "## - apache group..................: $HTTPD_GROUP" >> ${_logdir}/main.log +echo "## -" >> ${_logdir}/main.log +echo "## - Installation directory........: $PREFIX" >> ${_logdir}/main.log +echo "## -" >> ${_logdir}/main.log +echo "## - Base directory for webspaces..: $BASE_WEBSPACE_DIR" >> ${_logdir}/main.log +echo "## - Global DocumentRoot directory.: $GLOBAL_DOC_ROOT" >> ${_logdir}/main.log +echo "## -" >> ${_logdir}/main.log +echo "## - default ServerName............: $SERVER_NAME" >> ${_logdir}/main.log +echo "## - default ServerAdmin...........: $SERVER_ADMIN" >> ${_logdir}/main.log +echo "## - " >> ${_logdir}/main.log +echo "## - IPv4 addresses................: $IPv4_ADDRESSES" >> ${_logdir}/main.log +echo "## - IPv6 addresses................: $IPv6_ADDRESSES" >> ${_logdir}/main.log +echo "## - " >> ${_logdir}/main.log +echo "## - Separate Listen Directives....: $SEPARATE_LISTEN_DIRECTIVES" >> ${_logdir}/main.log +echo "## - URL to access status report...: $STATUS_URL" >> ${_logdir}/main.log +echo "## - " >> ${_logdir}/main.log +echo "## - standard (non-ssl) port.......: $HTTPD_PORT" >> ${_logdir}/main.log +echo "## - ssl port......................: $HTTPD_SSL_PORT" >> ${_logdir}/main.log +echo "## -" >> ${_logdir}/main.log +echo "## - Symlink /etc/init.d/apache2...: $SYMLINK_INITSCRIPT" >> ${_logdir}/main.log +echo "## - Symlink /usr/local/apache2....: $SYMLINK_INSTALL_DIR" >> ${_logdir}/main.log +echo "## - Start at boot time............: $START_AT_BOOTTIME" >> ${_logdir}/main.log +echo "## -" >> ${_logdir}/main.log +echo "## - System supports systemd.......: $SYSTEMD_EXISTS" >> ${_logdir}/main.log +echo "## -" >> ${_logdir}/main.log +echo "## - Include mod_php...............: $WITH_MOD_PHP" >> ${_logdir}/main.log +if $WITH_MOD_PHP ; then + echo "## - php version................: $PHP_VERSION" >> ${_logdir}/main.log +fi +echo "## -" >> ${_logdir}/main.log +echo "## - Include mod_proxy_cgi.........: $WITH_MOD_PROXY_FCGI" >> ${_logdir}/main.log +echo "## -" >> ${_logdir}/main.log +echo "## - Include mod_fcgid.............: $WITH_MOD_FCGID" >> ${_logdir}/main.log +if $WITH_MOD_FCGID ; then + echo "## - mod_fcgid version..........: $MOD_FCGID_VERSION" >> ${_logdir}/main.log +fi +echo "## - Include mod_perl..............: $WITH_MOD_PERL" >> ${_logdir}/main.log +if $WITH_MOD_PERL ; then + echo "## - mod_perl version...........: $MOD_PERL_VERSION" >> ${_logdir}/main.log +fi +echo "## -" >> ${_logdir}/main.log +echo "## - log directory installation....: $_logdir" >> ${_logdir}/main.log +echo "## -" >> ${_logdir}/main.log +echo "" >> ${_logdir}/main.log +echo "" >> ${_logdir}/main.log + +echo "APACHE_VERSION=$APACHE_VERSION" >> ${_logdir}/main.log +echo "APR_VERSION=$APR_VERSION" >> ${_logdir}/main.log +echo "APR_UTIL_VERSION=$APR_UTIL_VERSION" >> ${_logdir}/main.log +echo "BASE_WEBSPACE_DIR=$BASE_WEBSPACE_DIR" >> ${_logdir}/main.log +echo "GLOBAL_DOC_ROOT=\"${BASE_WEBSPACE_DIR}/default\"" >> ${_logdir}/main.log +echo "SUEXEC_DOC_ROOT=$BASE_WEBSPACE_DIR" >> ${_logdir}/main.log +echo "HTTPD_USER=$HTTPD_GROUP" >> ${_logdir}/main.log +echo "IPv4_ADDRESSES=\"$IPv4_ADDRESSES\"" >> ${_logdir}/main.log +echo "IPv6_ADDRESSES=\"$IPv6_ADDRESSES\"" >> ${_logdir}/main.log +echo "IP_ADDRESSES=\"$IP_ADDRESSES\"" >> ${_logdir}/main.log +echo "SEPARATE_LISTEN_DIRECTIVES=$SEPARATE_LISTEN_DIRECTIVES" >> ${_logdir}/main.log +echo "STATUS_URL=\"$STATUS_URL\"" >> ${_logdir}/main.log +echo "HTTPD_PORT=$HTTPD_PORT" >> ${_logdir}/main.log +echo "HTTPD_SSL_PORT=$HTTPD_SSL_PORT" >> ${_logdir}/main.log +echo "" >> ${_logdir}/main.log +echo "WITH_MOD_PHP=$WITH_MOD_PHP" >> ${_logdir}/main.log +if $WITH_MOD_PHP ; then + echo "PHP_VERSION=$PHP_VERSION" >> ${_logdir}/main.log +fi +echo "WITH_MOD_FCGID=$WITH_MOD_FCGID" >> ${_logdir}/main.log +if $WITH_MOD_FCGID ; then + echo "MOD_FCGID_VERSION=$MOD_FCGID_VERSION" >> ${_logdir}/main.log +fi +echo "WITH_MOD_PERL=$WITH_MOD_PERL" >> ${_logdir}/main.log +if $WITH_MOD_PERL ; then + echo "MOD_PERL_VERSION=$MOD_PERL_VERSION" >> ${_logdir}/main.log +fi +echo "" >> ${_logdir}/main.log + +_pwd=`pwd` + + +if $WITH_MOD_FCGID ; then + APXS="$PREFIX/bin/apxs" + _builddir_fcgid=${_srcdir}/mod_fcgid-${MOD_FCGID_VERSION}_httpd-${APACHE_VERSION} + if [ -d "$_builddir_fcgid" ]; then + mv $_builddir_fcgid ${_builddir_fcgid}.`date +%Y%m%d-%H%M` + fi +fi + +if $WITH_MOD_PERL ; then + APXS="$PREFIX/bin/apxs" + _builddir_perl=${_srcdir}/mod_perl-${MOD_PERL_VERSION}_httpd-${APACHE_VERSION} + if [ -d "$_builddir_perl" ]; then + mv $_builddir_perl ${_builddir_perl}.`date +%Y%m%d-%H%M` + fi +fi + +_httpdconf=${PREFIX}/conf/httpd.conf +_rel_confextra_path=conf/extra + +_backup_suffix=".BAK" + +echo "PREFIX=$PREFIX" >> ${_logdir}/main.log +echo "" >> ${_logdir}/main.log +echo "APXS=\"$PREFIX/bin/apxs\"" >> ${_logdir}/main.log +echo "" >> ${_logdir}/main.log +echo "_logdir=$_logdir" >> ${_logdir}/main.log +echo "_builddir=$_builddir" >> ${_logdir}/main.log +echo "_builddir_fcgid=$_builddir_fcgid" >> ${_logdir}/main.log +echo "_httpdconf=$_httpdconf" >> ${_logdir}/main.log +echo "_rel_confextra_path=$_rel_confextra_path" >> ${_logdir}/main.log +echo "_backup_suffix=$_backup_suffix" >> ${_logdir}/main.log +echo "" >> ${_logdir}/main.log +echo "" >> ${_logdir}/main.log +echo "" >> ${_logdir}/main.log + +echo "" + +## - Install dependency packages for \"mysql-server\" +## - +echononl "\tInstalling dependency packages for \"apache2\"" + +echo "" >> ${_logdir}/main.log +echo "## - Install dependency packages for \"apache2\"" >> ${_logdir}/main.log +echo "## -" >> ${_logdir}/main.log +echo "DEBIAN_FRONTEND=noninteractive apt-get -q -y build-dep mysql-server" >> ${_logdir}/main.log + +DEBIAN_FRONTEND=noninteractive apt-get -q -y build-dep apache2 >> ${_logdir}/main.log 2>&1 +if [ "$?" = 0 ]; then + echo_ok +else + echo_failed + fatal "Installing dependency packages for \"apache2\" failed!" +fi + +## - get sources.. +## - +echo "" >> ${_logdir}/main.log +echo "cd $_srcdir" >> ${_logdir}/main.log +cd $_srcdir + +echononl "\tGet source httpd-${APACHE_VERSION}.tar.gz.." +if [ ! -f httpd-${APACHE_VERSION}.tar.gz ]; then + echo "" >> ${_logdir}/main.log + echo "## - Get source httpd-${APACHE_VERSION}.tar.gz.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "wget ftp://ftp.fu-berlin.de/unix/www/apache/httpd/httpd-${APACHE_VERSION}.tar.gz" >> ${_logdir}/main.log + wget ftp://ftp.fu-berlin.de/unix/www/apache/httpd/httpd-${APACHE_VERSION}.tar.gz >> ${_logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + echononl "\tTry to get source httpd-${APACHE_VERSION}.tar.gz from \"archive.apache.org\" .." + echo "## - Get source httpd-${APACHE_VERSION}.tar.gz.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "wget https://archive.apache.org/dist/httpd/httpd-${APACHE_VERSION}.tar.gz" >> ${_logdir}/main.log + wget https://archive.apache.org/dist/httpd/httpd-${APACHE_VERSION}.tar.gz >> ${_logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot Download httpd-${APACHE_VERSION}.tar.gz" + fi + fi +else + echo_skipped +fi + +echononl "\tGet source apr-${APR_VERSION}.tar.gz.." +if $APR_INSTALLED ; then + echo_skipped +else + if [ ! -f apr-${APR_VERSION}.tar.gz ]; then + echo "" >> ${_logdir}/main.log + echo "## - Get source apr-${APR_VERSION}.tar.gz.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "wget ftp://ftp.fu-berlin.de/unix/www/apache/apr/apr-${APR_VERSION}.tar.gz" >> ${_logdir}/main.log + wget ftp://ftp.fu-berlin.de/unix/www/apache/apr/apr-${APR_VERSION}.tar.gz >> ${_logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot Download apr-${APR_VERSION}.tar.gz" + fi + else + echo_skipped + fi +fi + +echononl "\tGet source apr-util-${APR_UTIL_VERSION}.tar.gz.." +if $APR_UTIL_INSTALLED ; then + echo_skipped +else + if [ ! -f apr-util-${APR_UTIL_VERSION}.tar.gz ]; then + echo "" >> ${_logdir}/main.log + echo "## -Get source apr-util-${APR_UTIL_VERSION}.tar.gz.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "wget ftp://ftp.fu-berlin.de/unix/www/apache/apr/apr-util-${APR_UTIL_VERSION}.tar.gz" >> ${_logdir}/main.log + wget ftp://ftp.fu-berlin.de/unix/www/apache/apr/apr-util-${APR_UTIL_VERSION}.tar.gz >> ${_logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot Download apr-util-${APR_UTIL_VERSION}.tar.gz" + fi + else + echo_skipped + fi +fi + +echo + +## - install apr and apr-util + + +if $APR_INSTALLED ; then + echononl "\tapr v $APR_VERSION is already installed.." + echo_ok +else + + echo "" >> ${_logdir}/main.log + echo "cd $_srcdir" >> ${_logdir}/main.log + echo "" >> ${_logdir}/main.log + cd $_srcdir + + ## - Move (backup) apr source directory + ## - + echononl "\tMove (backup) existing source directory apr-$APR_VERSION ..." + if [ -d "${_srcdir}/apr-$APR_VERSION" ];then + echo "" >> ${_logdir}/main.log + echo "## - Move (backup) existing source directory apr-$APR_VERSION ..." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "mv ${_srcdir}/apr-$APR_VERSION ${_srcdir}/apr-$APR_VERSION.`date +%Y%m%d-%H%M`" >> ${_logdir}/main.log + mv ${_srcdir}/apr-$APR_VERSION ${_srcdir}/apr-$APR_VERSION.`date +%Y%m%d-%H%M` + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot move (backup) existing source directory \"apr-${APR_VERSION.}\" .." + fi + else + echo_skipped + fi + + ## - unpack apr + ## - + echononl "\tUnpack apr-$APR_VERSION.tar.gz .." + echo "" >> ${_logdir}/main.log + echo "## - Unpack apr-$APR_VERSION.tar.gz .." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "gunzip < ${_srcdir}/apr-$APR_VERSION.tar.gz | tar -xpf -" >> ${_logdir}/main.log + gunzip < ${_srcdir}/apr-$APR_VERSION.tar.gz | tar -xpf - + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot unpack mod_fcgid-${MOD_FCGID_VERSION}.tar.gz" + fi + + echo "" >> ${_logdir}/main.log + echo "chown -R root.root apr-$APR_VERSION" >> ${_logdir}/main.log + echo "" >> ${_logdir}/main.log + chown -R root.root apr-$APR_VERSION || fatal "Changing permissions of \"apr-$APR_VERSION\" failed" + + ## - build and install apr + ## - + echo "" >> ${_logdir}/main.log + echo "" >> ${_logdir}/main.log + echo "cd apr-$APR_VERSION" >> ${_logdir}/main.log + cd apr-$APR_VERSION + + echo "" >> ${_logdir}/main.log + echo "## - Configure apr-${APR_VERSION}.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "## - See ${_logdir}/apr-configure.log for more details" >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "LDFLAGS=\"-s\" ./configure --prefix=/usr/local/apr-$APR_VERSION > ${_logdir}/apr-configure.log 2>&1" >> ${_logdir}/main.log + echononl "\tConfigure apr-${APR_VERSION}.." + LDFLAGS="-s" ./configure --prefix=/usr/local/apr-$APR_VERSION > ${_logdir}/apr-configure.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot configure apr-${APR_VERSION}." + fi + + echo "" >> ${_logdir}/main.log + echo "## - Compile apr-${APR_VERSION}.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "## - See ${_logdir}/apr-make.log for more details" >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "make > ${_logdir}/apr-make.log 2>&1" >> ${_logdir}/main.log + echononl "\tCompile apr-${APR_VERSION}.." + make > ${_logdir}/apr-make.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Compiling apr-${APR_VERSION} failed." + fi + + + echononl "\tMove (backup) existing install directory apr-${APR_VERSION}.." + if [ -d "/usr/local/apr-${APR_VERSION}" ];then + echo "" >> ${_logdir}/main.log + echo "## - Move (backup) existing install directory apr-${APR_VERSION}.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "mv /usr/local/apr-${APR_VERSION} /usr/local/apr-${APR_VERSION}.`date +%Y%m%d-%H%M`" >> ${_logdir}/main.log + mv /usr/local/apr-${APR_VERSION} /usr/local/apr-${APR_VERSION}.`date +%Y%m%d-%H%M` >> ${_logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot move (backup) install directory \"/usr/local/apr-${APR_VERSION}\" .." + fi + else + echo_skipped + fi + + + echo "" >> ${_logdir}/main.log + echo "## - Install apr-${APR_VERSION}.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "## - See ${_logdir}/apr-make_install.log for more details" >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "make install > ${_logdir}/apr-make_install.log 2>&1" >> ${_logdir}/main.log + echononl "\tInstall apr-${APR_VERSION}.." + make install > ${_logdir}/apr-make_install.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Installing apr-${APR_VERSION} failed." + fi + + + if [ -h /usr/local/apr ]; then + echononl "\tRemove Symlink /usr/local/apr.." + echo "" >> ${_logdir}/main.log + echo "## - Remove Symlink /usr/local/apr.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "rm /usr/local/apr" >> ${_logdir}/main.log + rm /usr/local/apr >> ${_logdir}/main.log + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Removing Symlink /usr/local/apr failed." + fi + fi + + echo "" >> ${_logdir}/main.log + echo "## - Symlink /usr/local/apr --> apr-${APR_VERSION}" >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "ln -s apr-${APR_VERSION} /usr/local/apr" >> ${_logdir}/main.log + echononl "\tSymlink /usr/local/apr --> apr-${APR_VERSION}" + ln -s apr-${APR_VERSION} /usr/local/apr >> ${_logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot symlink /usr/local/apr to apr-${APR_VERSION}." + fi + + echo "" >> ${_logdir}/main.log + echo "" +fi + + +if $APR_UTIL_INSTALLED ; then + echononl "\tapr-util v $APR_UTIL_VERSION is already installed.." + echo_ok +else + + echo "" >> ${_logdir}/main.log + echo "cd $_srcdir" >> ${_logdir}/main.log + echo "" >> ${_logdir}/main.log + cd $_srcdir + + ## - Move (backup) apr-util source directory + ## - + echononl "\tMove (backup) existing source directory apr-util-$APR_UTIL_VERSION.." + if [ -d "${_srcdir}/apr-util-$APR_UTIL_VERSION" ];then + echo "" >> ${_logdir}/main.log + echo "## - Move (backup) existing source directory apr-util-$APR_UTIL_VERSIO.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "mv ${_srcdir}/apr-util-$APR_UTIL_VERSION ${_srcdir}/apr-util-$APR_UTIL_VERSION.`date +%Y%m%d-%H%M`" >> ${_logdir}/main.log + mv ${_srcdir}/apr-util-$APR_UTIL_VERSION ${_srcdir}/apr-util-$APR_UTIL_VERSION.`date +%Y%m%d-%H%M` + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot move (backup) existing source directory \"apr-util-$APR_UTIL_VERSIONN.}\" .." + fi + else + echo_skipped + fi + + + + ## - unpack apr-util + ## - + echo "" >> ${_logdir}/main.log + echo "## - Unpack apr-util-$APR_UTIL_VERSION.tar.gz.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "gunzip < ${_srcdir}/apr-util-$APR_UTIL_VERSION.tar.gz | tar -xpf -" >> ${_logdir}/main.log + echononl "\tUnpack apr-util-$APR_UTIL_VERSION.tar.gz.." + gunzip < ${_srcdir}/apr-util-$APR_UTIL_VERSION.tar.gz | tar -xpf - + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot unpack apr-util-$APR_UTIL_VERSION.tar.gz" + fi + + + echo "" >> ${_logdir}/main.log + echo "chown -R root.root apr-util-$APR_UTIL_VERSION" >> ${_logdir}/main.log + echo "" >> ${_logdir}/main.log + chown -R root.root apr-util-$APR_UTIL_VERSION || fatal "Changing permissions of \"apr-util-$APR_UTIL_VERSION\" failed." + + ## - build and install apr-util + ## - + echo "" >> ${_logdir}/main.log + echo "cd apr-util-$APR_UTIL_VERSION" >> ${_logdir}/main.log + echo "" >> ${_logdir}/main.log + cd apr-util-$APR_UTIL_VERSION + + cat <> ${_logdir}/main.log + ## - Configure apr-util-${APR_UTIL_VERSION}.. + ## - + ## - See ${_logdir}/apr-util-configure.log for more details + ## - + LDFLAGS="-s" \ + ./configure --prefix=/usr/local/apr-util-$APR_UTIL_VERSION \ + --with-ldap \ + --with-openssl \ + --with-crypto \ + --with-gdbm \ + --with-apr=/usr/local/apr > ${_logdir}/apr-util-configure.log 2>&1 +EOF + echononl "\tConfigure apr-util-${APR_UTIL_VERSION}.." + LDFLAGS="-s" \ + ./configure --prefix=/usr/local/apr-util-$APR_UTIL_VERSION \ + --with-ldap \ + --with-openssl \ + --with-crypto \ + --with-gdbm \ + --with-apr=/usr/local/apr > ${_logdir}/apr-util-configure.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot configure apr-util-${APR_UTIL_VERSION}." + fi + + echo "" >> ${_logdir}/main.log + echo "## - Compile apr-util-${APR_UTIL_VERSION}.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "## - See ${_logdir}/apr-util-make.log for more details" >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "make > ${_logdir}/apr-util-make.log 2>&1" >> ${_logdir}/main.log + echononl "\tCompile apr-util-${APR_UTIL_VERSION}.." + make > ${_logdir}/apr-util-make.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Compiling apr-util-${APR_UTIL_VERSION} failed." + fi + + + echononl "\tMove (backup) existing install directory apr-util-${APR_UTIL_VERSION}.." + if [ -d "/usr/local/apr-util-${APR_UTIL_VERSION}" ];then + echo "" >> ${_logdir}/main.log + echo "## - Move (backup) existing install directory apr-util-${APR_UTIL_VERSION}.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "mv /usr/local/apr-util-${APR_UTIL_VERSION} /usr/local/apr-util-${APR_UTIL_VERSION}.`date +%Y%m%d-%H%M`" >> ${_logdir}/main.log + mv /usr/local/apr-util-${APR_UTIL_VERSION} /usr/local/apr-util-${APR_UTIL_VERSION}.`date +%Y%m%d-%H%M` >> ${_logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot move (backup) install directory \"/usr/local/apr-util-${APR_UTIL_VERSION}\" .." + fi + else + echo_skipped + fi + + + echo "" >> ${_logdir}/main.log + echo "## - Install apr-util-${APR_UTIL_VERSION}.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "## - See ${_logdir}/apr-util-make_install.log for more details" >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "make install > ${_logdir}/apr-util-make_install.log 2>&1" >> ${_logdir}/main.log + echononl "\tInstall apr-util-${APR_UTIL_VERSION}.." + make install > ${_logdir}/apr-util-make_install.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Installing apr-util-${APR_UTIL_VERSION} failed." + fi + + if [ -h /usr/local/apr-util ]; then + echononl "\tRemove Symlink /usr/local/apr-util.." + echo "" >> ${_logdir}/main.log + echo "## - Remove Symlink /usr/local/apr-util.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "rm /usr/local/apr-util" >> ${_logdir}/main.log + rm /usr/local/apr-util >> ${_logdir}/main.log + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Removing Symlink /usr/local/apr-util failed." + fi + fi + + + echo "" >> ${_logdir}/main.log + echo "## - Symlink /usr/local/apr-util --> apr-util-${APR_UTIL_VERSION}" >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "ln -s apr-util-${APR_UTIL_VERSION} /usr/local/apr-util >> ${_logdir}/main.log 2>&1" >> ${_logdir}/main.log + ln -s apr-util-${APR_UTIL_VERSION} /usr/local/apr-util >> ${_logdir}/main.log 2>&1 + echononl "\tSymlink /usr/local/apr-util --> apr-util-${APR_UTIL_VERSION}" + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot symlink /usr/local/apr-util to apr-util-${APR_UTIL_VERSION}." + fi +fi + + +echo +echo -e "\t---" +echo -e "\t--- Installation Apache ${APACHE_VERSION}" +echo -e "\t---" +echo"" + +echononl "\tMove (backup) existing source directory ..." +if [ -d "$_builddir" ];then + echo "" >> ${_logdir}/main.log + echo "## - Move (backup) existing source directory ..." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "mv $_builddir $_builddir.`date +%Y%m%d-%H%M`" >> ${_logdir}/main.log + mv $_builddir $_builddir.`date +%Y%m%d-%H%M` >> ${_logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot move (backup) source directory \"${_builddir}\" .." + fi +else + echo_skipped +fi + + +## - unpack apache +## - +cd $_srcdir +echo "" >> ${_logdir}/main.log +echo "## - Unpack httpd-$APACHE_VERSION.tar.gz.." >> ${_logdir}/main.log +echo "## -" >> ${_logdir}/main.log +echo "gunzip < ${_srcdir}/httpd-$APACHE_VERSION.tar.gz | tar -xpf -" >> ${_logdir}/main.log +echononl "\tUnpack httpd-$APACHE_VERSION.tar.gz.." +gunzip < ${_srcdir}/httpd-$APACHE_VERSION.tar.gz | tar -xpf - >> ${_logdir}/main.log 2>&1 +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed + fatal "Cannot unpack httpd-$APACHE_VERSION.tar.gz" +fi + + +echo "" >> ${_logdir}/main.log +echo "chown -R root.root httpd-$APACHE_VERSION" >> ${_logdir}/main.log +echo "" >> ${_logdir}/main.log +chown -R root.root httpd-$APACHE_VERSION || fatal "Changing permissions of \"httpd-$APACHE_VERSION\" failed." + + +if [ "httpd-$APACHE_VERSION" != "`basename $_builddir`" ]; then + echo "" >> ${_logdir}/main.log + echo "## - Rename source directory to `basename $_builddir`.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "mv httpd-$APACHE_VERSION ${_builddir} > ${_logdir}/main.log 2>&1" >> ${_logdir}/main.log + echononl "\tRename source directory to `basename $_builddir`.." + mv httpd-$APACHE_VERSION ${_builddir} + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot rename httpd-$APACHE_VERSION to $_builddir" + fi +fi + +echo "" >> ${_logdir}/main.log +echo "cd $_builddir" >> ${_logdir}/main.log +echo "" >> ${_logdir}/main.log +cd $_builddir || fatal "Changing Directory (cd) to \"${_builddir}\" failed" + +## - LDFLAGS="-s" --> Remove all symbol table and relocation information from the executable. +## - +echo "" >> ${_logdir}/main.log +echo "## - Configure apache-${APACHE_VERSION}.." >> ${_logdir}/main.log +echo "## -" >> ${_logdir}/main.log +echo "## - See ${_logdir}/httpd-configure.log for more details" >> ${_logdir}/main.log +echo "## -" >> ${_logdir}/main.log +echo "" >> ${_logdir}/main.log +echononl "\tConfigure apache-${APACHE_VERSION}.." + +config_params="--prefix=$PREFIX \ + --enable-ssl=static \ + --enable-info=static \ + --enable-rewrite=static \ + --enable-cache=static \ + --enable-cache-disk=static \ + --enable-so=static \ + --enable-cgid=static \ + --enable-cgi=static \ + --with-mpm=event \ + --enable-suexec=static --with-suexec-caller=$HTTPD_USER --with-suexec-logfile=${APACHE_LOG_DIR}/suexec_log --with-suexec-docroot=$SUEXEC_DOC_ROOT --with-suexec-bin=$PREFIX/bin/suexec \ + --enable-include=static \ + --enable-xml2enc \ + --enable-authnz-ldap \ + --enable-proxy=static \ + --enable-proxy-html=static \ + --enable-slotmem-shm \ + --with-apr=/usr/local/apr/bin/apr-1-config \ + --with-apr-util=/usr/local/apr-util/bin/apu-1-config" + +if $WITH_MOD_PROXY_FCGI ; then + config_params="$config_params \ + --enable-proxy-fcgi=static" +fi + +cat << EOF >> ${_logdir}/main.log +LDFLAGS="-s" \ +./configure $config_params +EOF + +LDFLAGS="-s" \ +./configure $config_params > ${_logdir}/httpd-configure.log 2>&1 + +#LDFLAGS="-s" \ +# ./configure --prefix=$PREFIX \ +# --with-ssl=/usr/local/openssl \ +# --enable-ssl=static \ +# --enable-info=static \ +# --enable-rewrite=static \ +# --enable-cache=static \ +# --enable-cache-disk=static \ +# --enable-so=static \ +# --enable-cgid=static \ +# --enable-cgi=static \ +# --with-mpm=event \ +# --enable-suexec=static --with-suexec-caller=$HTTPD_USER --with-suexec-logfile=${APACHE_LOG_DIR}/suexec_log --with-suexec-docroot=$SUEXEC_DOC_ROOT --with-suexec-bin=$PREFIX/bin/suexec \ +# --enable-include=static \ +# --with-apr=/usr/local/apr/bin/apr-1-config \ +# --with-apr-util=/usr/local/apr-util/bin/apu-1-config \ +# > ${_logdir}/httpd-configure.log 2>&1 + +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed + fatal "Configuring apache-${APACHE_VERSION} failed." +fi + + + #--enable-dav \ + #--enable-dav-fs \ + #--enable-deflate \ + #--enable-socache-memcache=static \ + #--enable-asis \ + + #--enable-proxy \ + #--enable-proxy-connect \ + #--enable-proxy-ftp \ + #--enable-proxy-http \ + #--enable-proxy-balancer \ + + ## --enable-authz-dbm \ + ## --enable-authn-dbm \ + ## --with-berkeley-db=/usr/local/BerkeleyDB.4.4.20 \ + ## --target=i686-pc-linux-gnu \ + ## --build=i686-pc-linux-gnu | tee ../httpd-$APACHE_VERSION-install.log + ## --disable-nls \ + + + ## --with-included-apr \ + ## --with-dbm=db4 \ + ## --enable-mem-cache \ + ## --enable-headers \ + ## --with-berkeley-db=/usr \ + + +echo "" >> ${_logdir}/main.log +echo "## - Compile apache-${APACHE_VERSION}.." >> ${_logdir}/main.log +echo "## -" >> ${_logdir}/main.log +echo "## - See ${_logdir}/httpd-make.log for more details" >> ${_logdir}/main.log +echo "## -" >> ${_logdir}/main.log +echo "make > ${_logdir}/httpd-make.log 2>&1" >> ${_logdir}/main.log +echononl "\tCompile apache-${APACHE_VERSION}.." +make > ${_logdir}/httpd-make.log 2>&1 +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed + fatal "Compiling apache-${APACHE_VERSION} failed." +fi + +echononl "\tBackup existing installation directory.." +if [ -d "$PREFIX" ];then + echo "" >> ${_logdir}/main.log + echo "## - Backup existing installation directory.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "mv $PREFIX $PREFIX.`date +%Y%m%d-%H%M`" >> ${_logdir}/main.log + mv $PREFIX $PREFIX.`date +%Y%m%d-%H%M` >> ${_logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot move (backup) existing install directory \"${_builddir}\" .." + fi +else + echo_skipped +fi + +echononl "\tStop Apache Webservice (if running).." +if $START_AT_BOOTTIME && $APACHE_WEBSERVICE_RUNNING ; then + echo "" >> ${_logdir}/main.log + echo "## - Stop Apache Webservice.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + + if $SYSTEMD_EXISTS ; then + echo "systemctl stop apache2" >> ${_logdir}/main.log + systemctl stop apache2 >> ${_logdir}/main.log 2>&1 + else + echo "/etc/init.d/apache2 stop" >> ${_logdir}/main.log + /etc/init.d/apache2 stop >> ${_logdir}/main.log 2>&1 + fi + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + error "Stopping Apache Webservice failed!" + fi +else + echo_skipped +fi + + +echo "" >> ${_logdir}/main.log +echo "## - Install apache-${APACHE_VERSION}.." >> ${_logdir}/main.log +echo "## -" >> ${_logdir}/main.log +echo "## - See ${_logdir}/httpd-make_install.log for more details" >> ${_logdir}/main.log +echo "## -" >> ${_logdir}/main.log +echo "make install > ${_logdir}/httpd-make_install.log 2>&1" >> ${_logdir}/main.log +echononl "\tInstall apache-${APACHE_VERSION}.." +make install > ${_logdir}/httpd-make_install.log 2>&1 +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed + fatal "Installing apache-${APACHE_VERSION} failed." +fi + +echo "" + + +## - do some post-installatin tasks.. +## - +echo "" +echo -e "\t---" +echo -e "\t--- post installation tasks" +echo -e "\t---" +echo "" + +if [ -f $_httpdconf ];then + cp $_httpdconf $_httpdconf.ORIG + + if $subst_base_path ; then + ## - set BasePath to httpd.conf + ## - + echo "" + echo "" >> ${_logdir}/main.log + echo "## - httpd.conf: Substitute \"$PREFIX\" with \"/usr/local/apache2\".." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i$_backup_suffix -e \"s#$PREFIX#/usr/local/apache2#g\" $_httpdconf" >> ${_logdir}/main.log + echononl "\thttpd.confSubstitute \"$PREFIX\" with \"/usr/local/apache2\".." + sed -i$_backup_suffix -e "s#$PREFIX#/usr/local/apache2#g" $_httpdconf >> ${_logdir}/main.log 2>&1 + if [ "0" = $? ]; then + echo_ok + rm -f $_httpdconf$_backup_suffix + else + echo_failed + fi + + ## - set BasePath to all conf files in conf/extra + ## - + if [ -d $PREFIX/$_rel_confextra_path ]; then + cd $PREFIX/$_rel_confextra_path + _files=`ls *.conf` + for _file in $_files ;do + echo "" + echo "" >> ${_logdir}/main.log + echo "## - ${file}: Substitute \"$PREFIX\" with \"/usr/local/apache2\".." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i$_backup_suffix -e \"s#$PREFIX#/usr/local/apache2#g\" $_file" >> ${_logdir}/main.log + echononl "\t${_file}: Substitute \"$PREFIX\" with \"/usr/local/apache2\"" + sed -i$_backup_suffix -e "s#$PREFIX#/usr/local/apache2#g" $_file >> ${_logdir}/main.log 2>&1 + if [ "0" = $? ]; then + echo_ok + rm -f $_file$_backup_suffix + else + echo_failed + fi + done + fi + fi + + ## - set User + echo "" >> ${_logdir}/main.log + echo "## - httpd.conf: Set User to \"$HTTPD_USER\".." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*User ).*)$&## \1\n\2${HTTPD_USER}&g\" $_httpdconf" >> ${_logdir}/main.log + echononl "\thttpd.conf: Set User to \"$HTTPD_USER\".." + sed -i$_backup_suffix -r \ + -e "s&^(([ ^t]*User ).*)$&## \1\n\2${HTTPD_USER}&g" \ + $_httpdconf + if [ "0" = $? ]; then + echo_ok + rm -f $_httpdconf$_backup_suffix + else + echo_failed + fi + + ## - set Group + echo "" >> ${_logdir}/main.log + echo "## - httpd.conf: Set Group to \"$HTTPD_GROUP\".." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*Group ).*)$&## \1\n\2${HTTPD_GROUP}&g\" $_httpdconf" >> ${_logdir}/main.log + echononl "\thttpd.conf: Set Group to \"$HTTPD_GROUP\".." + sed -i$_backup_suffix -r \ + -e "s&^(([ ^t]*Group ).*)$&## \1\n\2${HTTPD_GROUP}&g" \ + $_httpdconf + if [ "0" = $? ]; then + echo_ok + rm -f $_httpdconf$_backup_suffix + else + echo_failed + fi + + ## - set ServerAdmin + ## - + echo "" >> ${_logdir}/main.log + echo "## - httpd.conf: Set ServerAdmin to \"$SERVER_ADMIN\".." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*)#?(ServerAdmin ).*)$&## \1\n\2\3${SERVER_ADMIN}&g\" $_httpdconf" >> ${_logdir}/main.log + echononl "\thttpd.conf: Set ServerAdmin to \"$SERVER_ADMIN\".." + sed -i$_backup_suffix -r \ + -e "s&^(([ ^t]*)#?(ServerAdmin ).*)$&## \1\n\2\3${SERVER_ADMIN}&g" \ + $_httpdconf + if [ "0" = $? ]; then + echo_ok + rm -f $_httpdconf$_backup_suffix + else + echo_failed + fi + + ## - Set ServerName + ## - + echo "" >> ${_logdir}/main.log + echo "## - httpd.conf: Set ServerName to \"$SERVER_NAME\".." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*)#?(ServerName ).*)$&## \1\n\2\3${SERVER_NAME}&g\" $_httpdconf" >> ${_logdir}/main.log + echononl "\thttpd.conf: Set ServerName to \"$SERVER_NAME\".." + sed -i$_backup_suffix -r \ + -e "s&^(([ ^t]*)#?(ServerName ).*)$&## \1\n\2\3${SERVER_NAME}&g" \ + $_httpdconf + if [ "0" = $? ]; then + echo_ok + rm -f $_httpdconf$_backup_suffix + else + echo_failed + fi + + ## - Set DocumentRoot + ## - + echo "" >> ${_logdir}/main.log + echo "## - httpd.conf: Set (global) DocumentRoot.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i$_backup_suffix -r -e \"s&^([ ^t]*)(DocumentRoot )(.*)$&\1## \2\3\n\1\2\\\"${GLOBAL_DOC_ROOT}\\\"&g\" _httpdconf" >> ${_logdir}/main.log + echononl "\thttpd.conf: Set (global) DocumentRoot.." + sed -i$_backup_suffix -r \ + -e "s&^([ ^t]*)(DocumentRoot )(.*)$&\1## \2\3\n\1\2\"${GLOBAL_DOC_ROOT}\"&g" \ + $_httpdconf + if [ "0" = $? ]; then + echo_ok + rm -f $_httpdconf$_backup_suffix + else + echo_failed + fi + + ## - Set DirectoryIndex + ## - + echo "" >> ${_logdir}/main.log + echo "## - httpd.conf: Set (global) DirectoryIndex.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i$_backup_suffix -r -e \"s&^([ ^t]*)(DirectoryIndex )(.*)$&\1## \2\3\n\1\2${DIRECTORY_INDEX}&g\" _httpdconf" >> ${_logdir}/main.log + echononl "\thttpd.conf: Set (global) DirectoryIndex.." + sed -i$_backup_suffix -r \ + -e "s&^([ ^t]*)(DirectoryIndex )(.*)$&\1## \2\3\n\1\2${DIRECTORY_INDEX}&g" \ + $_httpdconf + if [ "0" = $? ]; then + echo_ok + rm -f $_httpdconf$_backup_suffix + else + echo_failed + fi + + ## - Set log-directory and concerning entries + ## - + echo "" >> ${_logdir}/main.log + echo "## - Create $APACHE_LOG_DIR\" (if not exists).." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "mkdir -p $APACHE_LOG_DIR" >> ${_logdir}/main.log + echononl "\tCreate $APACHE_LOG_DIR\" (if not exists).." + mkdir -p $APACHE_LOG_DIR >> ${_logdir}/main.log 2>&1 + if [ "0" = $? ]; then + echo_ok + echo "" >> ${_logdir}/main.log + echo "## - httpd.conf: Adjust ErrorLog entry.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*ErrorLog ).*)$&## \1\n\2${APACHE_LOG_DIR}/error_log&g\" $_httpdconf" >> ${_logdir}/main.log + echononl "\thttpd.conf: Adjust ErrorLog entry.." + sed -i$_backup_suffix -r \ + -e "s&^(([ ^t]*ErrorLog ).*)$&## \1\n\2${APACHE_LOG_DIR}/error_log&g" \ + $_httpdconf >> ${_logdir}/main.log 2>&1 + if [ "0" = $? ]; then + echo_ok + echo "" >> ${_logdir}/main.log + echo "## - httpd.conf: Set CustomLog entry.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i$_backup_suffix -r -e \"s&^([ ^t]*)(CustomLog )(.*)$&\1## \2\3\n\1\2${APACHE_LOG_DIR}/access_log combined&g\" $_httpdconf" >> ${_logdir}/main.log + echononl "\thttpd.conf: Set CustomLog entry.." + sed -i$_backup_suffix -r \ + -e "s&^([ ^t]*)(CustomLog )(.*)$&\1## \2\3\n\1\2${APACHE_LOG_DIR}/access_log combined&g" \ + $_httpdconf >> ${_logdir}/main.log 2>&1 + if [ "0" = $? ]; then + echo_ok + rm -f $_httpdconf$_backup_suffix + else + echo_failed + fi + else + echo_failed + fi + else + echo_failed + fi +fi + +echo "" >> ${_logdir}/main.log +echo "## -" >> ${_logdir}/main.log +echo "## - httpd.conf: Set ServerSignature / ServerTokens.." >> ${_logdir}/main.log +cat <> ${_logdir}/main.log +cat <>$_httpdconf + +ServerSignature Off +ServerTokens ProductOnly +EOF +EOFLOG +echononl "\thttpd.conf: Set ServerSignature / ServerTokens.." +cat <>$_httpdconf + +ServerSignature Off +ServerTokens ProductOnly +EOF +if [ "0" = $? ]; then + echo_ok +else + echo_failed +fi + +echo "" >> ${_logdir}/main.log +echo "## - Create vhosts configuration directory $PREFIX/conf/vhosts.." >> ${_logdir}/main.log +echo "## -" >> ${_logdir}/main.log +echo "mkdir -p $PREFIX/conf/vhosts" >> ${_logdir}/main.log +echononl "\tCreate vhosts configuration directory /conf/vhosts.." +mkdir -p $PREFIX/conf/vhosts >> ${_logdir}/main.log 2>&1 +if [ "0" = $? ]; then + echo_ok +else + echo_failed +fi + +echo "" >> ${_logdir}/main.log +echo "## -" >> ${_logdir}/main.log +echo "## - httpd.conf: \"include conf/vhosts/*.conf\".." >> ${_logdir}/main.log +cat <> ${_logdir}/main.log +cat <>$_httpdconf + +include conf/vhosts/*.conf +EOF +EOFLOG +echononl "\thttpd.conf: \"include conf/vhosts/*.conf\".." +cat <>$_httpdconf + +include conf/vhosts/*.conf +EOF +if [ "0" = $? ]; then + echo_ok +else + echo_failed +fi + +## - Listen on certain ip(s) ? +## - +if [[ -n "$IP_ADDRESSES" ]] && $SEPARATE_LISTEN_DIRECTIVES ; then + + _substitute="" + for _ip in $IP_ADDRESSES ; do + _substitute="$_substitute\nListen $_ip:${HTTPD_PORT}" + done + + echo "" >> ${_logdir}/main.log + cat <> ${_logdir}/main.log +_substitute="" +for _ip in i\$IP_ADDRESSES ; do + _substitute="\$_substitute\nListen \$_ip:\${HTTPD_PORT}" +done +EOF + + echo "" >> ${_logdir}/main.log + echo "## - Insert Listen directive(s) Port ${HTTPD_PORT} for given ip-addresses.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i$_backup_suffix -r -e \"s#^(Listen 80.*)#\#\# \1\n\$_substitute#g\" $_httpdconf" >> ${_logdir}/main.log + echononl "\tInsert Listen directive(s) Port ${HTTPD_PORT} for given ip-addresses" + sed -i$_backup_suffix -r -e "s#^(Listen 80.*)#\#\# \1\n$_substitute#g" $_httpdconf >> ${_logdir}/main.log 2>&1 + if [ "0" = "$?" ];then + echo_ok + rm ${_httpdconf}$_backup_suffix + else + echo_failed + warn "Inserting Listen directive(s) Port ${HTTPD_PORT} failed" + fi +else + warn "No ip-addresses given. Omitting insertion of \"Listen\" directive(s) Port ${HTTPD_PORT} !" +fi + +## --- +## --- SSL +## --- + +## - include httpd-ssl.conf +## - +_file=httpd-ssl.conf +if [ -f ${PREFIX}/${_rel_confextra_path}/${_file} ]; then + echo "" >> ${_logdir}/main.log + echo "## - httpd.conf: include file \"$_file\".." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "" >> ${_logdir}/main.log + echononl "\thttpd.conf: include file \"$_file\".." + sed -i$_backup_suffix -r \ + -e "s&[ ^t]*#([ ^t]*#*[ ^t]*)*(Include $_rel_confextra_path/$_file).*$&\2&g" \ + $_httpdconf > /dev/null 2>&1 + if [ "0" = "$?" ];then + rm $_httpdconf$_backup_suffix + echo_ok + else + echo_failed + fi + + #notice="" + ## - copy certification files if present.. + _failed=false + echo "" >> ${_logdir}/main.log + echo "## - Set Symlinks for default Server Key/Cert" >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echononl "\tSet Symlinks for default Server Key/Cert.." + if [ -f "/var/lib/dehydrated/certs/${SERVER_NAME}/fullchain.pem" -a -f "/var/lib/dehydrated/certs/${SERVER_NAME}/privkey.pem" ]; then + ln -s /var/lib/dehydrated/certs/${SERVER_NAME}/fullchain.pem ${PREFIX}/conf/server-bundle.crt + if [[ $? -gt 0 ]];then + _failed=true + fi + ln -s /var/lib/dehydrated/certs/${SERVER_NAME}/privkey.pem ${PREFIX}/conf/server.key + if [[ $? -gt 0 ]];then + _failed=true + fi + if $_failed ; then + echo_failed + else + echo_ok + fi + elif [ -f /etc/ssl/certs/ssl-cert-snakeoil.pem -a -f /etc/ssl/private/ssl-cert-snakeoil.key ]; then + ln -s /etc/ssl/certs/ssl-cert-snakeoil.pem ${PREFIX}/conf/server-bundle.crt + if [[ $? -gt 0 ]];then + _failed=true + fi + ln -s /etc/ssl/private/ssl-cert-snakeoil.key ${PREFIX}/conf/server.key + if [[ $? -gt 0 ]];then + _failed=true + fi + if $_failed ; then + echo_failed + else + echo_ok + fi + elif [ -f $_srcdir/server-bundle.crt -a -f $_srcdir/server.key ];then + cp $_srcdir/server-bundle.crt $PREFIX/conf/ + if [[ $? -gt 0 ]];then + _failed=true + fi + cp $_srcdir/server.key $PREFIX/conf/ + if [[ $? -gt 0 ]];then + _failed=true + fi + if $_failed ; then + echo_failed + else + echo_ok + fi + else + echo_skipped + warn "SSL Connections are enabled but no (default) certificates\n\t are present. So the webserver will not start." + fi + + if [[ -n "$IP_ADDRESSES" ]] && $SEPARATE_LISTEN_DIRECTIVES ; then + _substitute_ssl="" + for _ip in $IP_ADDRESSES ; do + _substitute_ssl="$_substitute_ssl\nListen $_ip:${HTTPD_SSL_PORT}" + done + + echo "" >> ${_logdir}/main.log + cat <> ${_logdir}/main.log +_substitute_ssl="" +for _ip in \$IP_ADDRESSES ; do +_substitute_ssl="\$_substitute_ssl\nListen \$_ip:\${HTTPD_SSL_PORT}" +done +EOF + + echo "" >> ${_logdir}/main.log + echo "## - Insert Listen directive(s) Port ${HTTPD_SSL_PORT} for given ip-addresses" >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i$_backup_suffix -r -e \"s#^(Listen 443.*)#\#\# \1\n\$_substitute_ssl#g\" \\" >> ${_logdir}/main.log + echo " ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log + echononl "\tInsert Listen directive(s) Port ${HTTPD_SSL_PORT} for given ip-addresses" + sed -i$_backup_suffix -r -e "s#^(Listen 443.*)#\#\# \1\n$_substitute_ssl#g" \ + ${PREFIX}/${_rel_confextra_path}/${_file} >> ${_logdir}/main.log 2>&1 + if [ "0" = "$?" ];then + echo_ok + rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix + else + echo_failed + warn "Inserting Listen directive(s) Port ${HTTPD_SSL_PORT} failed" + fi + else + warn "No ip-addresses given. Omitting insertion of \"Listen\" directive(s) Port ${HTTPD_SSL_PORT} !" + fi # if [[ -n "$IP_ADDRESSES" ]] && $separate_listen_directives + + ## - Uncomment "LoadModule" for reqired additional modules.. + ## - + for module in log_config mod_setenvif socache_shmcb_module ; do + echo "" >> ${_logdir}/main.log + echo "## - Uncomment LoadModule $module.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i -r -e \"s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g\" $_httpdconf" >> ${_logdir}/main.log + echononl "\tUncomment LoadModule $module.." + sed -i -r -e "s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g" $_httpdconf >> ${_logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + warn "Including \"LoadModule $module\" failed.." + fi + done + + + ## - Set SSLCipherSuite + ## - + echo "" >> ${_logdir}/main.log + echo "## - $_file: Set SSLCipherSuite.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*SSLCipherSuite ).*)$&## \1\n\2${_SSL_Cipher_Suite}&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log + sed -i$_backup_suffix -r \ + -e "s&^(([ ^t]*SSLCipherSuite ).*)$&## \1\n\2${_SSL_Cipher_Suite}&g" \ + ${PREFIX}/${_rel_confextra_path}/${_file} >> ${_logdir}/main.log 2>&1 + if [ "0" = $? ]; then + echo_ok + rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix + else + echo_failed + fi + + + ## - Set SSLCertificateFile + ## - + echo "" >> ${_logdir}/main.log + echo "## - $_file: Set SSLCertificateFile.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*SSLCertificateFile ).*)$&## \1\n\2\\\"${PREFIX}/conf/server-bundle.crt\\\"&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log + sed -i$_backup_suffix -r \ + -e "s&^(([ ^t]*SSLCertificateFile ).*)$&## \1\n\2\"${PREFIX}/conf/server-bundle.crt\"&g" \ + ${PREFIX}/${_rel_confextra_path}/${_file} >> ${_logdir}/main.log 2>&1 + if [ "0" = $? ]; then + echo_ok + rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix + else + echo_failed + fi + + + ## - Set SSLProxyCipherSuite + ## - + echo "" >> ${_logdir}/main.log + echo "## - $_file: Set SSLProxyCipherSuite.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*SSLProxyCipherSuite ).*)$&## \1\n\2${_SSL_Cipher_Suite}&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log + sed -i$_backup_suffix -r \ + -e "s&^(([ ^t]*SSLProxyCipherSuite ).*)$&## \1\n\2${_SSL_Cipher_Suite}&g" \ + ${PREFIX}/${_rel_confextra_path}/${_file} >> ${_logdir}/main.log 2>&1 + if [ "0" = $? ]; then + echo_ok + rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix + else + echo_failed + fi + + + ## - Set SSLProtocol + ## - + echo "" >> ${_logdir}/main.log + echo "## - $_file: Set SSLProtocol.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*SSLProtocol ).*)$&## \1\n\2ALL -SSLv3 -SSLv2&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log + sed -i$_backup_suffix -r \ + -e "s&^(([ ^t]*SSLProtocol ).*)$&## \1\n\2all -SSLv3 -SSLv2&g" \ + ${PREFIX}/${_rel_confextra_path}/${_file} >> ${_logdir}/main.log 2>&1 + if [ "0" = $? ]; then + echo_ok + rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix + else + echo_failed + fi + + + ## - Set SSLProxyProtocol + ## - + echo "" >> ${_logdir}/main.log + echo "## - $_file: Set SSLProxyProtocol.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*SSLProxyProtocol ).*)$&## \1\n\2ALL -SSLv3 -SSLv2&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log + sed -i$_backup_suffix -r \ + -e "s&^(([ ^t]*SSLProxyProtocol ).*)$&## \1\n\2all -SSLv3 -SSLv2&g" \ + ${PREFIX}/${_rel_confextra_path}/${_file} >> ${_logdir}/main.log 2>&1 + if [ "0" = $? ]; then + echo_ok + rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix + else + echo_failed + fi + + ## - Set SSLHonorCipherOrder + ## - + echo "" >> ${_logdir}/main.log + echo "## - $_file: Set SSLHonorCipherOrder.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*#*[ ^t]*SSLHonorCipherOrder ).*)$&##\1\nSSLHonorCipherOrder on&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log + sed -i$_backup_suffix -r \ + -e "s&^(([ ^t]*#*[ ^t]*SSLHonorCipherOrder ).*)$&##\1\nSSLHonorCipherOrder on&g" \ + ${PREFIX}/${_rel_confextra_path}/${_file} >> ${_logdir}/main.log 2>&1 + if [ "0" = $? ]; then + echo_ok + rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix + else + echo_failed + fi + + ## - Set ServerName + ## - + echo "" >> ${_logdir}/main.log + echo "## - $_file: Set ServerName.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*ServerName ).*)$&## \1\n\2${SERVER_NAME}&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log + echononl "\t$_file: Set ServerName.." + sed -i$_backup_suffix -r \ + -e "s&^(([ ^t]*ServerName ).*)$&## \1\n\2${SERVER_NAME}&g" \ + ${PREFIX}/${_rel_confextra_path}/${_file} >> ${_logdir}/main.log 2>&1 + if [ "0" = $? ]; then + echo_ok + rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix + else + echo_failed + fi + + ## - Set ServerAdmin + ## - + echo "" >> ${_logdir}/main.log + echo "## -$_file: Set ServerAdmin.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*ServerAdmin ).*)$&## \1\n\2${SERVER_ADMIN}&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log + echononl "\t$_file: Set ServerAdmin.." + sed -i$_backup_suffix -r \ + -e "s&^(([ ^t]*ServerAdmin ).*)$&## \1\n\2${SERVER_ADMIN}&g" \ + ${PREFIX}/${_rel_confextra_path}/${_file} >> ${_logdir}/main.log 2>&1 + if [ "0" = $? ]; then + echo_ok + rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix + else + echo_failed + fi + + ## - Set DocumentRoot + ## - + echo "" >> ${_logdir}/main.log + echo "## - $_file: Set DocumentRoot.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*DocumentRoot ).*)$&## \1\n\2\\\"${GLOBAL_DOC_ROOT}\\\"&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log + echononl "\t$_file: Set DocumentRoot.." + sed -i$_backup_suffix -r \ + -e "s&^(([ ^t]*DocumentRoot ).*)$&## \1\n\2\"${GLOBAL_DOC_ROOT}\"&g" \ + ${PREFIX}/${_rel_confextra_path}/${_file} >> ${_logdir}/main.log 2>&1 + if [ "0" = $? ]; then + echo_ok + rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix + else + echo_failed + fi + + ## - Set log entries + ## - + echo "" >> ${_logdir}/main.log + echo "## - $_file: Set ErrorLog.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*ErrorLog ).*)$&## \1\n\2\\\"${APACHE_LOG_DIR}/error_log\\\"&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log + echononl "\t$_file: Set ErrorLog.." + sed -i$_backup_suffix -r \ + -e "s&^(([ ^t]*ErrorLog ).*)$&## \1\n\2\"${APACHE_LOG_DIR}/error_log\"&g" \ + ${PREFIX}/${_rel_confextra_path}/${_file} >> ${_logdir}/main.log 2>&1 + if [ "0" = $? ]; then + echo_ok + rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix + else + echo_failed + fi + + echo "" >> ${_logdir}/main.log + echo "## - $_file. Set TransferLog.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*TransferLog ).*)$&## \1\n\2\\\"${APACHE_LOG_DIR}/access_log\\\"&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log + echononl "\t$_file. Set TransferLog.." + sed -i$_backup_suffix -r \ + -e "s&^(([ ^t]*TransferLog ).*)$&## \1\n\2\"${APACHE_LOG_DIR}/access_log\"&g" \ + ${PREFIX}/${_rel_confextra_path}/${_file} >> ${_logdir}/main.log 2>&1 + if [ "0" = $? ]; then + echo_ok + rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix + else + echo_failed + fi + + echo "" >> ${_logdir}/main.log + echo "## - $_file: Set CustomLog.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + cat <> ${_logdir}/main.log +sed -i$_backup_suffix -r \\ +-e "s&^(([ ^t]*CustomLog ).*)$&## \1\n\2\"${APACHE_LOG_DIR}/ssl_request_log\" \\\\\&g" \\ +${PREFIX}/${_rel_confextra_path}/${_file} > /dev/null 2>&1 +EOF + echononl "\t$_file: Set CustomLog.." + sed -i$_backup_suffix -r \ + -e "s&^(([ ^t]*CustomLog ).*)$&## \1\n\2\"${APACHE_LOG_DIR}/ssl_request_log\" \\\&g" \ + ${PREFIX}/${_rel_confextra_path}/${_file} >> ${_logdir}/main.log 2>&1 + if [ "0" = $? ]; then + echo_ok + rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix + else + echo_failed + fi +else + warn "Cannot enable SSL. \"$_file\" not found." +fi + + + +## - include conf files from conf/extra +## - +_file=httpd-default.conf +if [ -f ${PREFIX}/${_rel_confextra_path}/${_file} ];then + + echo "" >> ${_logdir}/main.log + echo "## - httpd.conf: Include $_file.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i$_backup_suffix -r -e \"s&[ ^t]*#([ ^t]*#*[ ^t]*)*(Include $_rel_confextra_path/$_file).*$&\2&g\" $_httpdconf" >> ${_logdir}/main.log + echononl "\thttpd.conf: Include $_file.." + sed -i$_backup_suffix -r \ + -e "s&[ ^t]*#([ ^t]*#*[ ^t]*)*(Include $_rel_confextra_path/$_file).*$&\2&g" \ + $_httpdconf >> ${_logdir}/main.log 2>&1 + if [ "0" = "$?" ];then + rm $_httpdconf$_backup_suffix + echo_ok + else + echo_failed + fi +fi + +_file=httpd-info.conf +if [ -f ${PREFIX}/${_rel_confextra_path}/${_file} ];then + echo "" >> ${_logdir}/main.log + echo "## - httpd.conf: Include $_file.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i$_backup_suffix -r -e \"s&[ ^t]*#([ ^t]*#*[ ^t]*)*(Include $_rel_confextra_path/$_file).*$&\2&g\" $_httpdconf" >> ${_logdir}/main.log + echononl "\thttpd.conf: Include $_file.." + sed -i$_backup_suffix -r \ + -e "s&[ ^t]*#([ ^t]*#*[ ^t]*)*(Include $_rel_confextra_path/$_file).*$&\2&g" \ + $_httpdconf >> ${_logdir}/main.log 2>&1 + if [ "0" = "$?" ];then + rm $_httpdconf$_backup_suffix + echo_ok + else + echo_failed + fi + + _localhost="127.0.0.0/8" + [ "X" != "X$HTTPD_INFO_ADDRESSES" ] && _localhost="$_localhost $HTTPD_INFO_ADDRESSES" + echo "" >> ${_logdir}/main.log + echo "## - Setup \"$_file\" to allow urls \"server-status\"" >> ${_logdir}/main.log + echo "## - and \"server-info\" from localhost.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i$_backup_suffix -r -e \"s&^([ ^t]*Require[ ^t]?ip).*$&\1 $_localhost&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log + + echo -e "\tSetup \"$_file\" to allow urls \"server-status\"" + echo -n -e "\t and server-info from localhost.." + sed -i$_backup_suffix -r \ + -e "s&^([ ^t]*Require[ ^t]?ip).*$&\1 $_localhost&g" \ + ${PREFIX}/${_rel_confextra_path}/${_file} > /dev/null 2>&1 + if [ "0" = "$?" ];then + rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix + echo_ok + else + echo_failed + fi + + ## - Set ExtendedStatus On + ## - + echo "" >> ${_logdir}/main.log + echo "## - Setup \"$_file\": set \"ExtendedStatus On\"" >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i$_backup_suffix -r -e \"s&^([ ^t]*#*[ ^t]*ExtendedStatus[ ^t]?[Oo].+)$&#\1\nExtendedStatus On&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log + + echononl "\tSetup \"$_file\": set \"ExtendedStatus On\"" + sed -i$_backup_suffix -r \ + -e "s&^([ ^t]*#*[ ^t]*ExtendedStatus[ ^t]?[Oo].+)$&#\1\nExtendedStatus On&g" \ + ${PREFIX}/${_rel_confextra_path}/${_file} > /dev/null 2>&1 + if [ "0" = "$?" ];then + rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix + echo_ok + else + echo_failed + fi + + + ## - Uncomment "LoadModule" for needed additional modules.. + ## - + for module in mod_authz_core mod_authz_host mod_info mod_status ; do + echo "" >> ${_logdir}/main.log + echo "## - httpd.conf: Uncomment LoadModule $module.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i -r -e \"s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g\" $_httpdconf" >> ${_logdir}/main.log + echononl "\thttpd.conf: Uncomment LoadModule $module.." + sed -i -r -e "s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g" $_httpdconf >> ${_logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + warn "Including \"LoadModule $module\" failed.." + fi + done + +fi + +_file=httpd-languages.conf +if [ -f ${PREFIX}/${_rel_confextra_path}/${_file} ];then + echo "" >> ${_logdir}/main.log + echo "## - httpd.conf: Include $_file.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i$_backup_suffix -r -e \"s&[ ^t]*#([ ^t]*#*[ ^t]*)*(Include $_rel_confextra_path/$_file).*$&\2&g\" $_httpdconf" >> ${_logdir}/main.log + echononl "\thttpd.conf: Include $_file.." + sed -i$_backup_suffix -r \ + -e "s&[ ^t]*#([ ^t]*#*[ ^t]*)*(Include $_rel_confextra_path/$_file).*$&\2&g" \ + $_httpdconf >> ${_logdir}/main.log 2>&1 + if [ "0" = "$?" ];then + rm $_httpdconf$_backup_suffix + echo_ok + else + echo_failed + fi + + ## - Uncomment "LoadModule" for needed additional modules.. + ## - + for module in mod_mime mod_negotiation ; do + echo "" >> ${_logdir}/main.log + echo "## - httpd.conf: Uncomment LoadModule $module.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i -r -e \"s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g\" $_httpdconf" >> ${_logdir}/main.log + echononl "\thttpd.conf: Uncomment LoadModule $module.." + sed -i -r -e "s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g" $_httpdconf >> ${_logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + warn "Including \"LoadModule $module\" failed.." + fi + done + + ## - Uncomment "LoadModule" for needed additional modules.. + ## - + ## - New in version 2.4.23 (needed for proxy functionality) + ## - + for module in mod_slotmem_shm ; do + echo "" >> ${_logdir}/main.log + echo "## - httpd.conf: Uncomment LoadModule $module.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i -r -e \"s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g\" $_httpdconf" >> ${_logdir}/main.log + echononl "\thttpd.conf: Uncomment LoadModule $module.." + sed -i -r -e "s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g" $_httpdconf >> ${_logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + warn "Including \"LoadModule $module\" failed.." + fi + done + +fi + +_file=httpd-multilang-errordoc.conf +if [ -f ${PREFIX}/${_rel_confextra_path}/${_file} ];then + echo "" >> ${_logdir}/main.log + echo "## - httpd.conf: Include $_file.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i$_backup_suffix -r -e \"s&[ ^t]*#([ ^t]*#*[ ^t]*)*(Include $_rel_confextra_path/$_file).*$&\2&g\" $_httpdconf" >> ${_logdir}/main.log + echononl "\thttpd.conf: Include $_file.." + sed -i$_backup_suffix -r \ + -e "s&[ ^t]*#([ ^t]*#*[ ^t]*)*(Include $_rel_confextra_path/$_file).*$&\2&g" \ + $_httpdconf >> ${_logdir}/main.log 2>&1 + if [ "0" = "$?" ];then + rm $_httpdconf$_backup_suffix + echo_ok + else + echo_failed + fi + + + ## - Uncomment "LoadModule" for needed additional modules.. + ## - + for module in mod_alias mod_authz_core mod_authz_host mod_include mod_negotiation ; do + echo "" >> ${_logdir}/main.log + echo "## - httpd.conf: Uncomment LoadModule $module.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i -r -e \"s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g\" $_httpdconf" >> ${_logdir}/main.log + echononl "\thttpd.conf: Uncomment LoadModule $module.." + sed -i -r -e "s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g" $_httpdconf >> ${_logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + warn "Including \"LoadModule $module\" failed.." + fi + done + + ## - Set "LanguagePriority" + _failed=false + echononl "\t${_file}: Set LanguagePriority" + echo "" >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "## - ${_file}: Set LanguagePriority" >> ${_logdir}/main.log + echo "sed -i -r -e \"s/^(\s*)(LanguagePriority.*)de\ *(.*)$/\1\2\3/g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log + sed -i -r -e "s/^(\s*)(LanguagePriority.*)de\ *(.*)$/\1\2\3/g" ${PREFIX}/${_rel_confextra_path}/${_file} + if [ "$?" != "0" ]; then + _failed=true + fi + + echo "sed -i -r -e \"s/^(\s*)(LanguagePriority)(.*)$/\1\2 de\3/g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log + sed -i -r -e "s/^(\s*)(LanguagePriority)(.*)$/\1\2 de\3/g" ${PREFIX}/${_rel_confextra_path}/${_file} + if [ "$?" != "0" ]; then + _failed=true + fi + if ! $_failed ; then + echo_ok + else + echo_failed + warn "Setting LanguagePriority in file \"${_file}\" failed.." + fi + +fi + +_file=httpd-mpm.conf +if [ -f ${PREFIX}/${_rel_confextra_path}/${_file} ];then + echo "" >> ${_logdir}/main.log + echo "## - httpd.conf: Include $_file.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i$_backup_suffix -r -e \"s&[ ^t]*#([ ^t]*#*[ ^t]*)*(Include $_rel_confextra_path/$_file).*$&\2&g\" $_httpdconf" >> ${_logdir}/main.log + echononl "\thttpd.conf: Include $_file.." + sed -i$_backup_suffix -r \ + -e "s&[ ^t]*#([ ^t]*#*[ ^t]*)*(Include $_rel_confextra_path/$_file).*$&\2&g" \ + $_httpdconf >> ${_logdir}/main.log 2>&1 + if [ "0" = "$?" ];then + rm $_httpdconf$_backup_suffix + echo_ok + else + echo_failed + warn "Including file \"${_file}\" failed.." + fi + + + ## - Set MaxConnectionsPerChild + ## - + echononl "\t${_file}: Set MaxConnectionsPerChild" + echo "" >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "## - ${_file}: Set MaxConnectionsPerChild" >> ${_logdir}/main.log + + _key="MaxConnectionsPerChild" + _val="5000" + + echo "sed -i -r -e \"s/^(\s*)($_key)(.*)$/\1\2 $_val/g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log + sed -i -r -e "s/^(\s*)($_key)(.*)$/\1\2 $_val/g" ${PREFIX}/${_rel_confextra_path}/${_file} + if [ "$?" != "0" ]; then + _failed=true + fi + if ! $_failed ; then + echo_ok + else + echo_failed + warn "Setting MaxConnectionsPerChild in file \"${_file}\" failed.." + fi +fi + + +## - Enable Module mod_expires +## - +## - Uncomment "LoadModule" for mod_expires +module=mod_expires +echo "" >> ${_logdir}/main.log +echo "## - httpd.conf: Uncomment LoadModule $module.." >> ${_logdir}/main.log +echo "## -" >> ${_logdir}/main.log +echo "sed -i -r -e \"s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g\" $_httpdconf" >> ${_logdir}/main.log +echononl "\thttpd.conf: Uncomment LoadModule $module.." +sed -i -r -e "s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g" $_httpdconf >> ${_logdir}/main.log 2>&1 +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed + warn "Including \"LoadModule $module\" failed.." +fi + + +## - Enable Module xml2enc_module (needed for proxy_html_module +## - +## - Uncomment "LoadModule" for xml2enc_module +module=xml2enc_module +echo "" >> ${_logdir}/main.log +echo "## - httpd.conf: Uncomment LoadModule $module.." >> ${_logdir}/main.log +echo "## -" >> ${_logdir}/main.log +echo "sed -i -r -e \"s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g\" $_httpdconf" >> ${_logdir}/main.log +echononl "\thttpd.conf: Uncomment LoadModule $module.." +sed -i -r -e "s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g" $_httpdconf >> ${_logdir}/main.log 2>&1 +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed + warn "Including \"LoadModule $module\" failed.." +fi + + +## - Uncomment "LoadModule" for deflate_module dav_module dav_fs_module +## - +for module in deflate_module dav_module dav_fs_module ; do + echo "" >> ${_logdir}/main.log + echo "## - httpd.conf: Uncomment LoadModule $module.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i -r -e \"s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g\" $_httpdconf" >> ${_logdir}/main.log + echononl "\thttpd.conf: Uncomment LoadModule $module.." + sed -i -r -e "s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g" $_httpdconf >> ${_logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + warn "Including \"LoadModule $module\" failed.." + fi +done + + +## - Uncomment "LoadModule" for LDAP support +## - +for module in authnz_ldap_module ldap_module ; do + echo "" >> ${_logdir}/main.log + echo "## - httpd.conf: Uncomment LoadModule $module.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "sed -i -r -e \"s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g\" $_httpdconf" >> ${_logdir}/main.log + echononl "\thttpd.conf: Uncomment LoadModule $module.." + sed -i -r -e "s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g" $_httpdconf >> ${_logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + warn "Including \"LoadModule $module\" failed.." + fi +done + + +if $WITH_MOD_FCGID ; then + + ## - Install Apache Module mod_fcgid + ## - + echo + echo + echo -e "\t---" + echo -e "\t--- Install mod_fcgid $MOD_FCGID_VERSION --" + echo -e "\t---" + echo + + echo "" >> ${_logdir}/main.log + echo "cd $_srcdir" >> ${_logdir}/main.log + echo "" >> ${_logdir}/main.log + cd $_srcdir + + echononl "\tGet source mod_fcgid-${MOD_FCGID_VERSION}.tar.gz.." + if [ ! -f mod_fcgid-${MOD_FCGID_VERSION}.tar.gz ]; then + echo "" >> ${_logdir}/main.log + echo "## - Get source mod_fcgid-${MOD_FCGID_VERSION}.tar.gz.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "wget ftp://ftp.fu-berlin.de/unix/www/apache/httpd/mod_fcgid/mod_fcgid-${MOD_FCGID_VERSION}.tar.gz" >> ${_logdir}/main.log + wget ftp://ftp.fu-berlin.de/unix/www/apache/httpd/mod_fcgid/mod_fcgid-${MOD_FCGID_VERSION}.tar.gz >> ${_logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot Download mod_fcgid-${MOD_FCGID_VERSION}" + fi + else + echo_skipped + fi + + echononl "\tMove (backup) existing source directory ..." + if [ -d "$_builddir_fcgid" ];then + echo "" >> ${_logdir}/main.log + echo "## - Move (backup) existing source directory ..." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "mv $_builddir_fcgid $_builddir_fcgid.`date +%Y%m%d-%H%M`" >> ${_logdir}/main.log + mv $_builddir_fcgid $_builddir_fcgid.`date +%Y%m%d-%H%M` >> ${_logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot move (backup) source directory \"${_builddir_fcgid}\" .." + fi + else + echo_skipped + fi + + if [ -d "${_srcdir}/mod_fcgid-${MOD_FCGID_VERSION}" ]; then + echo "" >> ${_logdir}/main.log + echo "## - Backup directory ${_srcdir}/mod_fcgid-${MOD_FCGID_VERSION}.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "" >> ${_logdir}/main.log + echononl "\tBackup directory ${_srcdir}/mod_fcgid-${MOD_FCGID_VERSION}.." + mv ${_srcdir}/mod_fcgid-${MOD_FCGID_VERSION} ${_srcdir}/mod_fcgid-${MOD_FCGID_VERSION}.`date +%Y%m%d-%H%M` + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot move (backup) source directory \"${_builddir_fcgid}\" .." + fi + fi + + ## - Unpack mod_fcgid + ## - + echo "" >> ${_logdir}/main.log + echo "## - Unpack mod_fcgid-${MOD_FCGID_VERSION}.tar.gz.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "gunzip < ${_srcdir}/mod_fcgid-${MOD_FCGID_VERSION}.tar.gz | tar -xpf -" >> ${_logdir}/main.log + echononl "\tUnpack mod_fcgid-${MOD_FCGID_VERSION}.tar.gz.." + gunzip < ${_srcdir}/mod_fcgid-${MOD_FCGID_VERSION}.tar.gz | tar -xpf - >> ${_logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot unpack mod_fcgid-${MOD_FCGID_VERSION}.tar.gz" + fi + + echo "" >> ${_logdir}/main.log + echo "chown -R root.root mod_fcgid-${MOD_FCGID_VERSION}" >> ${_logdir}/main.log + echo "" >> ${_logdir}/main.log + chown -R root.root mod_fcgid-${MOD_FCGID_VERSION} || fatal "Changing permissions of \"mod_fcgid-${MOD_FCGID_VERSION}\" failed" + + echo "" >> ${_logdir}/main.log + echo "## - Rename mod_fcgid-${MOD_FCGID_VERSION} to `basename $_builddir_fcgid` .." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "mv mod_fcgid-${MOD_FCGID_VERSION} $_builddir_fcgid" >> ${_logdir}/main.log + echononl "\tRename mod_fcgid-${MOD_FCGID_VERSION} to `basename $_builddir_fcgid` .." + mv mod_fcgid-${MOD_FCGID_VERSION} $_builddir_fcgid + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot rename mod_fcgid-${MOD_FCGID_VERSION} to $_builddir_fcgid" + fi + + echo "" >> ${_logdir}/main.log + echo "cd $_builddir_fcgid" >> ${_logdir}/main.log + echo "" >> ${_logdir}/main.log + cd $_builddir_fcgid || fatal "Changing Directory (cd) to \"${_builddir_fcgid}\" failed" + + + ## - Build and install mod_fcgid + ## - + + [ -f "$APXS" ] || fatal "Cannot find \"$APXS\"" + + echo "" >> ${_logdir}/main.log + echo "## - Configure (configure.apxs) mod_fcgid.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "## - See ${_logdir}/mod_fcgid-configure.apxs.log" >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "APXS=$APXS ./configure.apxs > ${_logdir}/mod_fcgid-configure.apxs.log 2>&1" >> ${_logdir}/main.log + echononl "\tConfigure (configure.apxs) mod_fcgid .." + APXS=$APXS ./configure.apxs > ${_logdir}/mod_fcgid-configure.apxs.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot configure (configure.apxs) mod_fcgid. See ${_logdir}/mod_fcgid-configure.apxs.log" + fi + + echo "" >> ${_logdir}/main.log + echo "## - Build (make) mod_fcgid.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "## - See ${_logdir}/mod_fcgid-make.log" >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "make > ${_logdir}/mod_fcgid-make.log 2>&1" >> ${_logdir}/main.log + echononl "\tBuild (make) mod_fcgid.." + make > ${_logdir}/mod_fcgid-make.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot build (make) mod_fcgid. See ${_logdir}/mod_fcgid-make.log." + fi + + echo "" >> ${_logdir}/main.log + echo "## - Install (make install) mod_fcgid .." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "## - See ${_logdir}/mod_fcgid-make_install.log" >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "make install > ${_logdir}/mod_fcgid-make_install.log 2>&1" >> ${_logdir}/main.log + echononl "\tInstall (make install) mod_fcgid .." + make install > ${_logdir}/mod_fcgid-make_install.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot install (make install) mod_fcgid. See ${_logdir}/mod_fcgid-make_install.log" + fi + + echo "" >> ${_logdir}/main.log + echo "## - httpd.conf: Adjust mod_fcgid module.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + cat <> ${_logdir}/main.log +perl -i.bak -n -p -e "s#^(\s*LoadModule\s+fcgid_module.+)#\1\n\n\n \# in Abstimmung mit PHP variablen\n \# upload_max_filesize = 32\n \# post_max_size = 128M\n FcgidMaxRequestLen 134217728\n\n \# By default, PHP FastCGI processes exit after handling 500 requests,\n \# and they may exit after this module has already connected to the\n \# application and sent the next request. When that occurs, an error\n \# will be logged and 500 Internal Server Error will be returned to\n \# the client. This PHP behavior can be disabled by setting\n \# PHP_FCGI_MAX_REQUESTS to 0, but that can be a problem if the PHP\n \# application leaks resources. Alternatively, PHP_FCGI_MAX_REQUESTS\n \# can be set to a much higher value than the default to reduce the\n \# frequency of this problem. FcgidMaxRequestsPerProcess can be set to\n \# a value less than or equal to PHP_FCGI_MAX_REQUESTS to resolve the\n \# roblem.\n FcgidMaxRequestsPerProcess 500\n\n \# in Abstimmung mit PHP Variablen\n \# max_execution_time = 180\n \#\n \# Default: 40\n \#\n FcgidIOTimeout 181\n\n#" \$_httpdconf +EOF + echononl "\thttpd.conf: Adjust mod_fcgid module.." + perl -i.bak -n -p -e "s#^(\s*LoadModule\s+fcgid_module.+)#\1\n\n\n \# in Abstimmung mit PHP variablen\n \# upload_max_filesize = 32\n \# post_max_size = 128M\n FcgidMaxRequestLen 134217728\n\n \# By default, PHP FastCGI processes exit after handling 500 requests,\n \# and they may exit after this module has already connected to the\n \# application and sent the next request. When that occurs, an error\n \# will be logged and 500 Internal Server Error will be returned to\n \# the client. This PHP behavior can be disabled by setting\n \# PHP_FCGI_MAX_REQUESTS to 0, but that can be a problem if the PHP\n \# application leaks resources. Alternatively, PHP_FCGI_MAX_REQUESTS\n \# can be set to a much higher value than the default to reduce the\n \# frequency of this problem. FcgidMaxRequestsPerProcess can be set to\n \# a value less than or equal to PHP_FCGI_MAX_REQUESTS to resolve the\n \# roblem.\n FcgidMaxRequestsPerProcess 500\n\n \# in Abstimmung mit PHP Variablen\n \# max_execution_time = 180\n \#\n \# Default: 40\n \#\n FcgidIOTimeout 181\n\n#" $_httpdconf + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Adjusting mod_fcgid (file: /usr/local/apache2/conf/httpd.conf) failed" + fi + + +fi + + +if $WITH_MOD_PERL ; then + + ## - Install Apache Module mod_perl + ## - + echo + echo + echo -e "\t---" + echo -e "\t--- Install mod_perl $MOD_PERL_VERSION --" + echo -e "\t---" + echo + + echo "" >> ${_logdir}/main.log + echo "cd $_srcdir" >> ${_logdir}/main.log + echo "" >> ${_logdir}/main.log + cd $_srcdir + + echononl "\tGet source mod_perl-${MOD_PERL_VERSION}.tar.gz.." + if [ ! -f mod_perl-${MOD_PERL_VERSION}.tar.gz ]; then + echo "" >> ${_logdir}/main.log + echo "## - Get source mod_perl-${MOD_PERL_VERSION}.tar.gz.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "wget https://www.apache.org/dist/perl/mod_perl-${MOD_PERL_VERSION}.tar.gz" >> ${_logdir}/main.log + wget https://www.apache.org/dist/perl/mod_perl-${MOD_PERL_VERSION}.tar.gz >> ${_logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot Download mod_perl-${MOD_PERL_VERSION}" + fi + else + echo_skipped + fi + + echononl "\tMove (backup) existing source directory ..." + if [ -d "$_builddir_perl" ];then + echo "" >> ${_logdir}/main.log + echo "## - Move (backup) existing source directory ..." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "mv $_builddir_perl $_builddir_perl.`date +%Y%m%d-%H%M`" >> ${_logdir}/main.log + mv $_builddir_perl $_builddir_perl.`date +%Y%m%d-%H%M` >> ${_logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot move (backup) source directory \"${_builddir_perl}\" .." + fi + else + echo_skipped + fi + + if [ -d "${_srcdir}/mod_perl-${MOD_PERL_VERSION}" ]; then + echo "" >> ${_logdir}/main.log + echo "## - Backup directory ${_srcdir}/mod_perl-${MOD_PERL_VERSION}.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "" >> ${_logdir}/main.log + echononl "\tBackup directory ${_srcdir}/mod_perl-${MOD_PERL_VERSION}.." + mv ${_srcdir}/mod_perl-${MOD_PERL_VERSION} ${_srcdir}/mod_perl-${MOD_PERL_VERSION}.`date +%Y%m%d-%H%M` + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot move (backup) source directory \"${_builddir_perl}\" .." + fi + fi + + ## - Unpack mod_perl + ## - + echo "" >> ${_logdir}/main.log + echo "## - Unpack mod_perl-${MOD_PERL_VERSION}.tar.gz.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "gunzip < ${_srcdir}/mod_perl-${MOD_PERL_VERSION}.tar.gz | tar -xpf -" >> ${_logdir}/main.log + echononl "\tUnpack mod_perl-${MOD_PERL_VERSION}.tar.gz.." + gunzip < ${_srcdir}/mod_perl-${MOD_PERL_VERSION}.tar.gz | tar -xpf - >> ${_logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot unpack mod_perl-${MOD_PERL_VERSION}.tar.gz" + fi + + echo "" >> ${_logdir}/main.log + echo "chown -R root.root mod_perl-${MOD_PERL_VERSION}" >> ${_logdir}/main.log + echo "" >> ${_logdir}/main.log + chown -R root.root mod_perl-${MOD_PERL_VERSION} || fatal "Changing permissions of \"mod_perl-${MOD_PERL_VERSION}\" failed" + + echo "" >> ${_logdir}/main.log + echo "## - Rename mod_perl-${MOD_PERL_VERSION} to `basename $_builddir_perl` .." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "mv mod_perl-${MOD_PERL_VERSION} $_builddir_perl" >> ${_logdir}/main.log + echononl "\tRename mod_perl-${MOD_PERL_VERSION} to `basename $_builddir_perl` .." + mv mod_perl-${MOD_PERL_VERSION} $_builddir_perl + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot rename mod_perl-${MOD_PERL_VERSION} to $_builddir_perl" + fi + + echo "" >> ${_logdir}/main.log + echo "cd $_builddir_perl" >> ${_logdir}/main.log + echo "" >> ${_logdir}/main.log + cd $_builddir_perl || fatal "Changing Directory (cd) to \"${_builddir_perl}\" failed" + + + ## - Build and install mod_perl + ## - + + [ -f "$APXS" ] || fatal "Cannot find \"$APXS\"" + + echo "" >> ${_logdir}/main.log + echo "## - Configure mod_perl.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "## - See ${_logdir}/mod_perl-configure.log" >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "perl Makefile.PL MP_AP_PREFIX=$PREFIX > ${_logdir}/mod_perl-configure.log 2>&1" >> ${_logdir}/main.log + echononl "\tConfigure mod_perl .." + perl Makefile.PL MP_AP_PREFIX=$PREFIX > ${_logdir}/mod_perl-make.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot configure (configure.apxs) mod_perl. See ${_logdir}/mod_perl-configure.apxs.log" + fi + + echo "" >> ${_logdir}/main.log + echo "## - Build (make) mod_perl.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "## - See ${_logdir}/mod_perl-make.log" >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "make > ${_logdir}/mod_perl-make.log 2>&1" >> ${_logdir}/main.log + echononl "\tBuild (make) mod_perl.." + make > ${_logdir}/mod_perl-make.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot build (make) mod_perl. See ${_logdir}/mod_perl-make.log." + fi + + echo "" >> ${_logdir}/main.log + echo "## - Install (make install) mod_perl .." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "## - See ${_logdir}/mod_perl-make_install.log" >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "make install > ${_logdir}/mod_perl-make_install.log 2>&1" >> ${_logdir}/main.log + echononl "\tInstall (make install) mod_perl .." + make install > ${_logdir}/mod_perl-make_install.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot install (make install) mod_perl. See ${_logdir}/mod_perl-make_install.log" + fi + + echo "" >> ${_logdir}/main.log + echo "## - httpd.conf: Load perl module.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + cat <> ${_logdir}/main.log +## - Linenumber last occurrence of "LoadModule .." +_lineNumber=`perl -ne '{$n=$. if /^LoadModule/} END {print "$n\n"}' $_httpdconf` +sed -i "$_lineNumber s/^\(\s*LoadModule\s.*$\)/LoadModule perl_module modules\/mod_perl.so\n\1/g" $_httpdconf +EOF + echononl "\thttpd.conf: Load perl module.." + + ## - Linenumber of last occurrence of "LoadModule .." line + _lineNumber=`perl -ne '{$n=$. if /^LoadModule/} END {print "$n\n"}' $_httpdconf` + #sed -i "$_lineNumber s/^\(\s*LoadModule\s.*$\)/LoadModule perl_module modules\/mod_perl.so\n\1/g" $_httpdconf >> ${_logdir}/main.log 2>&1 + perl -pi -e "s/^(\s*LoadModule\s.*$)/LoadModule perl_module modules\/mod_perl.so\n\1/ if $. == $_lineNumber" $_httpdconf >> ${_logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Loading perl module (file: /usr/local/apache2/conf/httpd.conf) failed" + fi + + +fi + + +## - Some final tasks +## - +echo +echo +echo -e "\t---" +echo -e "\t--- Some final tasks --" +echo -e "\t---" +echo + + +if $SYMLINK_INSTALL_DIR ; then + + if [ -h "/usr/local/apache2" ]; then + echo "" >> ${_logdir}/main.log + echo "## - Remove existing symlink /usr/local/apache2.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "rm /usr/local/apache2" >> ${_logdir}/main.log + echononl "\tRemove existing symlink /usr/local/apache2.." + rm /usr/local/apache2 >> ${_logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + warn "Remove existing symlink /usr/local/apache2 failed." + fi + fi + + echo "" >> ${_logdir}/main.log + echo "## - Set Symlink /usr/local/apache2.." >> ${_logdir}/main.log + echo "## - ln -s `basename $PREFIX` /usr/local/apache2" >> ${_logdir}/main.log + echo "" >> ${_logdir}/main.log + echononl "\tSet Symlink /usr/local/apache2.." + ln -s `basename $PREFIX` /usr/local/apache2 >> ${_logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + warn "Setting symlink /usr/local/apache2 failed" + fi +fi + +## - Priovide LSB - Add Block for run-time dependencies to apachectl +## - +_backup_apachectl=`mktemp` +_failed=false + +echo "" >> ${_logdir}/main.log +echo "## - Priovide LSB - Add Block for run-time dependencies to apachectl.." >> ${_logdir}/main.log +echo "## -" >> ${_logdir}/main.log + +echononl "\tAdd Block for run-time dependencies to apachectl.." + +echo "cp $PREFIX/bin/apachectl $_backup_apachectl" >> ${_logdir}/main.log +cp $PREFIX/bin/apachectl $_backup_apachectl >> ${_logdir}/main.log 2>&1 +if [ "$?" != "0" ]; then + _failed=true +fi + +echo "cat << EOF >$PREFIX/bin/apachectl +#!/bin/sh +### BEGIN INIT INFO +# Provides: apache2 +# Required-Start: \\\$local_fs \\\$remote_fs \\\$network \\\$syslog \\\$named +# Required-Stop: \\\$local_fs \\\$remote_fs \\\$network \\\$syslog \\\$named +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# X-Interactive: true +# Short-Description: Start/stop apache2 web server +### END INIT INFO +EOF" >> ${_logdir}/main.log + +cat << EOF >$PREFIX/bin/apachectl +#!/bin/sh +### BEGIN INIT INFO +# Provides: apache2 +# Required-Start: \$local_fs \$remote_fs \$network \$syslog \$named +# Required-Stop: \$local_fs \$remote_fs \$network \$syslog \$named +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# X-Interactive: true +# Short-Description: Start/stop apache2 web server +### END INIT INFO +EOF +if [ "$?" != "0" ]; then + _failed=true +fi + +echo "tail -n +2 "$_backup_apachectl" >> $PREFIX/bin/apachectl" >> ${_logdir}/main.log +tail -n +2 "$_backup_apachectl" >> $PREFIX/bin/apachectl +if [ "$?" != "0" ]; then + _failed=true +fi + +echo "rm $_backup_apachectl" >> ${_logdir}/main.log +rm $_backup_apachectl >> ${_logdir}/main.log 2>&1 +if [ "$?" != "0" ]; then + _failed=true +fi +if $_failed ; then + echo_failed +else + echo_ok +fi + +## - Set status url +echo "" >> ${_logdir}/main.log +echo "## - apachectl: Set STATUSURL=\"$STATUS_URL\".." >> ${_logdir}/main.log +echo "## -" >> ${_logdir}/main.log +echo "perl -i -n -p -e \"s#^(\s*STATUSURL=.*)#STATUSURL=\\\"$STATUS_URL\\\"#\" $PREFIX/bin/apachectl" > /dev/null 2<&1 + +echononl "\tapachectl: Set STATUSURL=\"$STATUS_URL\".." +perl -i -n -p -e "s#^(\s*STATUSURL=.*)#STATUSURL=\"$STATUS_URL\"#" $PREFIX/bin/apachectl > /dev/null 2<&1 +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed + warn "Setting STATUSURL in script apachectl failed!" +fi + + +if $SYMLINK_INITSCRIPT ; then + + if [ -h "/etc/init.d/apache2" ]; then + echo "" >> ${_logdir}/main.log + echo "## - Remove existing symlink /etc/init.d/apache2.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "rm /etc/init.d/apache2.." >> ${_logdir}/main.log + echononl "\tRemove existing symlink /etc/init.d/apache2.." + rm /etc/init.d/apache2 >> ${_logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + warn "Remove existing symlink /usr/local/apache2 failed." + fi + fi + + echo "" >> ${_logdir}/main.log + echo "## - Set Symlink /etc/init.d/apache2.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + #echo "ln -s $PREFIX/bin/apachectl /etc/init.d/apache2" >> ${_logdir}/main.log + echo "ln -s /usr/local/apache2/bin/apachectl /etc/init.d/apache2" >> ${_logdir}/main.log + echononl "\tSet Symlink /etc/init.d/apache2.." + ln -s /usr/local/apache2/bin/apachectl /etc/init.d/apache2 >> ${_logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + warn "Setting symlink /usr/local/apache2 failed." + fi + + echononl "\tSet umask to $UMASK in \"envvars\" .." + if $SET_UMASK ; then + cat <> ${PREFIX}/bin/envvars +umask $UMASK + +EOF + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Kann \"umask\" nicht setzen (${PREFIX}/bin/envvars).." + fi + else + echo_skipped + fi + +fi + +echo "" + +if $START_AT_BOOTTIME ; then + + if `ls /etc/rc2.d/ | grep apache2 > /dev/null 2>&1` ; then + echo "" >> ${_logdir}/main.log + echononl "\tRemove init script links" + echo "## - Remove init script links" >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "update-rc.d -f apache2 remove" >> ${_logdir}/main.log + + update-rc.d -f apache2 remove >> ${_logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + warn "Removing existing init script links failed." + fi + fi + + ## - Make apache start at boottime + ## - + echo "" >> ${_logdir}/main.log + echononl "\tMake apache start at boottime" + echo "## - Make apache start at boottime" >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + if $SYSTEMD_EXISTS ; then + echo "systemctl enable apache2" >> ${_logdir}/main.log + systemctl enable apache2 >> ${_logdir}/main.log 2>&1 + else + echo "update-rc.d apache2 defaults" >> ${_logdir}/main.log + update-rc.d apache2 defaults >> ${_logdir}/main.log 2>&1 + fi + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + warn "Making apache2 start at boottime failed." + fi +fi + +echo "" + +## - special for debian. set manpath entries +## - +if [ -f /etc/manpath.config ];then + echo "" >> ${_logdir}/main.log + echo "## - Set manpath entries in /etc/manpath.config" >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echononl "\tSet manpath entries in /etc/manpath.config" + if ! grep /usr/local/apache2/man /etc/manpath.config > /dev/null 2<&1 ; then + + echo "echo >> /etc/manpath.config" >> ${_logdir}/main.log + echo "echo \"MANDATORY_MANPATH /usr/local/apache2/man /var/cache/man\" >> /etc/manpath.config" >> ${_logdir}/main.log + echo "echo \"MANPATH_MAP /usr/local/apache2/bin /usr/local/apache2/man\" >> /etc/manpath.config" >> ${_logdir}/main.log + echo "echo \"MANDB_MAP /usr/local/apache2/man /var/cache/man\" >> /etc/manpath.config" >> ${_logdir}/main.log + + echo >> /etc/manpath.config + echo "MANDATORY_MANPATH /usr/local/apache2/man /var/cache/man" >> /etc/manpath.config + echo "MANPATH_MAP /usr/local/apache2/bin /usr/local/apache2/man" >> /etc/manpath.config + echo "MANDB_MAP /usr/local/apache2/man /var/cache/man" >> /etc/manpath.config + echo_ok + else + echo_skipped + fi +elif [ -f /etc/man.conf];then + echo "" >> ${_logdir}/main.log + echo "## - Set manpath entries in /etc/man.conf" >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echononl "\tSet manpath entries in /etc/man.conf" + if ! grep /opt/apache2/man /etc/man.conf > /dev/null 2<&1 ; then + echo >> /etc/man.conf + echo "MANPATH /opt/apache2/man /var/cache/man" >> /etc/man.conf + echo "MANPATH_MAP /opt/apache2/bin /opt/apache2/man" >> /etc/man.conf + echo_ok + else + echo_skipped + fi +fi + + +## - Add /usr/local/apache/bin to the systems PATH variable +## - +_checkdir=`dirname $PREFIX`/apache2/bin +if [ -f /etc/profile ]; then + echo "" >> ${_logdir}/main.log + echo "## - Add /usr/local/apache/bin to the systems PATH variable.." >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echononl "\tAdd /usr/local/apache/bin to the systems PATH variable.." + if ! grep -e "$_checkdir" /etc/profile > /dev/null 2<&1 ; then + + echo "perl -i -n -p -e \"s#^([ ]*export[ ]*PATH.*$)#check_dir=$_checkdir\nif [ -d \\\"\\\\\$check_dir\\\" ];then\n PATH=\\\\\${check_dir}:\\\\\$PATH\nfi\n\n\1#\" /etc/profile > /dev/null 2<&1" >> ${_logdir}/main.log + + perl -i -n -p -e "s#^([ ]*export[ ]*PATH.*$)#check_dir=$_checkdir\nif [ -d \"\\\$check_dir\" ];then\n PATH=\\\${check_dir}:\\\$PATH\nfi\n\n\1#" /etc/profile > /dev/null 2<&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + warn "Adding /usr/local/apache/bin to the systems PATH variable failed." + fi + else + echo_skipped + fi +fi + + +## - Add default vhost configuration file 00default.conf +## - +echo "" >> ${_logdir}/main.log +echo "## - Add default vhost configuration file 00default.conf.." >> ${_logdir}/main.log +echo "## -" >> ${_logdir}/main.log +echo "" +echononl "\tAdd default vhost configuration file 00default.conf.." +cat < ${PREFIX}/conf/vhosts/00default.conf +## - initial konfiguration -- ## + +## - ipv4: $IPv4_FIRST +EOF + +if [ -n "$IPv6_FIRST" ];then + cat <> ${PREFIX}/conf/vhosts/00default.conf +## - ipv6: $IPv6_FIRST +EOF +fi +cat <> ${PREFIX}/conf/vhosts/00default.conf + +SSLCompression off +SSLStrictSNIVHostCheck off + +DirectoryIndex index.html index.htm index.php index.php5 + + + Options FollowSymLinks + AllowOverride All + Require all granted + + + +## - 127.0.0.1 (used by apachectl status) -- # + + + + ServerName localhost.localdomain + ServerAlias localhost + + DocumentRoot "$GLOBAL_DOC_ROOT" +EOF + +if $PHP_FPM_SOCKET_PRESENT ; then + cat <> ${PREFIX}/conf/vhosts/00default.conf + + ## - Make PHP-FPM status page and PHP-FPM ping available + ## - + + SetHandler "proxy:unix:${_PHP_FPM_SOCKET}|fcgi://127.0.0.1" + +EOF +else + cat <> ${PREFIX}/conf/vhosts/00default.conf + + ## - Make PHP-FPM status page and PHP-FPM ping available + ## - + #|ping-)$"> + # SetHandler "proxy:unix:|fcgi://127.0.0.1" + # +EOF +fi + +cat <> ${PREFIX}/conf/vhosts/00default.conf + + CustomLog /var/log/apache2/localhost.log combined + ErrorLog /var/log/apache2/localhost.error + + + + + +# -- dummy.${_DOMAIN}.$_TLD -- # + +EOF +if $SEPARATE_LISTEN_DIRECTIVES ; then + cat <> ${PREFIX}/conf/vhosts/00default.conf + + +EOF +else + cat <> ${PREFIX}/conf/vhosts/00default.conf + + +EOF +fi +cat <> ${PREFIX}/conf/vhosts/00default.conf + ServerName dummy.${_DOMAIN}.$_TLD + + RewriteEngine On + RewriteCond %{HTTP_HOST} ^autoconfig\. [NC] + RewriteRule ^/(.*) http://autoconfig.${_DOMAIN}.${_TLD}/\$1 [L,R=301,NE] + #RewriteCond %{HTTP_HOST} !^autoconfig\. [NC] + #RewriteRule ^/(.*) http://www.${_DOMAIN}.${_TLD} [L,R=301,NE] + + DocumentRoot "$GLOBAL_DOC_ROOT" + + CustomLog /var/log/apache2/dummy.${_DOMAIN}.${_TLD}.log combined + ErrorLog /var/log/apache2/dummy.${_DOMAIN}.${_TLD}.error + + +EOF +if $SEPARATE_LISTEN_DIRECTIVES ; then + cat <> ${PREFIX}/conf/vhosts/00default.conf + + +EOF +else + cat <> ${PREFIX}/conf/vhosts/00default.conf + + +EOF +fi +cat <> ${PREFIX}/conf/vhosts/00default.conf + ServerName dummy.${_DOMAIN}.$_TLD + + DocumentRoot "$GLOBAL_DOC_ROOT" + + SSLEngine on + + ## - don't support weak ciphers + SSLHonorCipherOrder On + SSLCompression Off + SSLProtocol ALL -SSLv2 -SSLv3 + + SSLCertificateFile /usr/local/apache2/conf/server-bundle.crt + SSLCertificateKeyFile /usr/local/apache2/conf/server.key + + CustomLog /var/log/apache2/dummy.${_DOMAIN}.${_TLD}.log combined + ErrorLog /var/log/apache2/dummy.${_DOMAIN}.${_TLD}.error + + +EOF + +if [[ -n "$IPv6_FIRST" ]] && $SEPARATE_LISTEN_DIRECTIVES ; then + cat <> ${PREFIX}/conf/vhosts/00default.conf + +## - +## - IPv6 +## - + + +# -- dummy.oopen.de -- # + + + + ServerName dummy.${_DOMAIN}.$_TLD + + RewriteEngine On + RewriteCond %{HTTP_HOST} ^autoconfig\. [NC] + RewriteRule ^/(.*) http://autoconfig.${_DOMAIN}.${_TLD}/\$1 [L,R=301,NE] + #RewriteCond %{HTTP_HOST} !^autoconfig\. [NC] + #RewriteRule ^/(.*) http://www.${_DOMAIN}.${_TLD} [L,R=301,NE] + + DocumentRoot "$GLOBAL_DOC_ROOT" + + CustomLog /var/log/apache2/dummy.${_DOMAIN}.${_TLD}.log combined + ErrorLog /var/log/apache2/dummy.${_DOMAIN}.${_TLD}.error + + + + + ServerName dummy.${_DOMAIN}.$_TLD + + DocumentRoot "$GLOBAL_DOC_ROOT" + + SSLEngine on + + ## - don't support weak ciphers + SSLHonorCipherOrder On + SSLCompression Off + SSLProtocol ALL -SSLv2 -SSLv3 + + SSLCertificateFile /usr/local/apache2/conf/server-bundle.crt + SSLCertificateKeyFile /usr/local/apache2/conf/server.key + + CustomLog /var/log/apache2/dummy.${_DOMAIN}.${_TLD}.log combined + ErrorLog /var/log/apache2/dummy.${_DOMAIN}.${_TLD}.error + + +EOF +fi + +if [ -d "${PREFIX}/conf/vhosts/0" ] ; then + echo "" >> ${PREFIX}/conf/vhosts/00default.conf + echo "Include conf/vhosts/0/*.conf" >> ${PREFIX}/conf/vhosts/00default.conf +fi +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed + warn "Adding vhost configfile 000default.conf failed." +fi + + +echo "" >> ${_logdir}/main.log +echo "## - Create directory ${GLOBAL_DOC_ROOT}.." >> ${_logdir}/main.log +echo "## -" >> ${_logdir}/main.log +echo "mkdir -p ${GLOBAL_DOC_ROOT}" >> ${_logdir}/main.log +echononl "\tCreate ${GLOBAL_DOC_ROOT}.." +mkdir -p $GLOBAL_DOC_ROOT >> ${_logdir}/main.log 2>&1 +if [ "0" = $? ]; then + echo_ok +else + echo_failed +fi + + +## - Create ${GLOBAL_DOC_ROOT}/index.html (Error 404 page) +## - +echo "" >> ${_logdir}/main.log +echo "## - Create ${GLOBAL_DOC_ROOT}/index.html (Error 404 page).." >> ${_logdir}/main.log +echo "## -" >> ${_logdir}/main.log +echo "" +echononl "\tCreate ${GLOBAL_DOC_ROOT}/index.html (Error 404 page).." +echo "cat << EOF > ${GLOBAL_DOC_ROOT}/index.html" >> ${_logdir}/main.log +echo ' + + +HTTP Error 404 / Http Fehler 404 + + + + + + +
+ + + +
+ +

HTTP Error 404

+

The site you have requested was not found on this Server

+

Please check your spelling and try again.

+

Thank You very much!

+ +

HTTP Fehler 404

+

Die von Ihnen aufgerufene Seite gibt es leider nicht - Sorry

+

Bitte prüfen Sie die Adresse und versuchen es nochmals.

+

Vielen Dank für Ihr Verständnis!

+ +
+
+ + + + +EOF +' >> ${_logdir}/main.log + +cat << EOF > ${GLOBAL_DOC_ROOT}/index.html + + + +HTTP Error 404 / Http Fehler 404 + + + + + + +
+ + + +
+ +

HTTP Error 404

+

The site you have requestet was not found on that Server

+

Please check your spelling and try again.

+

Thank You very much!

+ +

HTTP Fehler 404

+

Die von Ihnen aufgerufene Seite gibt es leider nicht - Sorry

+

Bitte prüfen Sie die Adresse und versuchen es nochmals.

+

Vielen Dank für Ihr Verständnis!

+ +
+
+ + + + +EOF +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed + warn "Creating ${GLOBAL_DOC_ROOT}/index.html (Error 404 page) failed." +fi + +if $START_APACHE_WEBSERVICE ; then + echo "" >> ${_logdir}/main.log + echo "" >> ${_logdir}/main.log + echo "## - Start Apache Webserver" >> ${_logdir}/main.log + echo "## -" >> ${_logdir}/main.log + echo "" + echononl "\tStarting Apache Webserver.." + if $SYSTEMD_EXISTS ; then + echo "systemctl start apache2" >> ${_logdir}/main.log + systemctl start apache2 >> ${_logdir}/main.log 2>&1 + else + echo "/etc/init.d/apache2 start" >> ${_logdir}/main.log + /etc/init.d/apache2 start >> ${_logdir}/main.log 2>&1 + fi + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + warn "Starting Apache Webservice failed!." + fi +fi + +cd $pwd + +echo +exit 0