# $Id: Portfile 146517 2016-03-10 17:49:28Z raimue@macports.org $ # Besides having a Port for the Apache 2.0.x line, this Port was built # to allow Apache 2.x.y on Mac OS X 10.3 to serve PHP Zend encoded # files using the Zend Optimizer. The Zend Optimizer is distributed # only in binary form as an Apache module that enables the server to # serve optimized and obfuscated PHP code from third party vendors. # Since the Optimizer is a binary module, it must run in a binary # compatible OS and Apache environment. # # While newer versions of the Zend Optimizer do work with Apache # 2.2.x, it appears that these binary modules are compiled on 10.4 and # trying to load the module into Apache on 10.3 results in missing # symbol errors. When older versions of the Zend Optimizer that work # on 10.3 are loaded into Apache 2.2.x, then the error_log will have # messages about double free memory errors. So the only combination # that works on 10.3 is with Apache 2.0.x. PortSystem 1.0 name apache20 version 2.0.65 revision 1 categories www license Apache-2 maintainers blair description The extremely popular second version of the Apache http \ server long_description Apache is an HTTP server designed as a plug-in replacement \ for the NCSA server version 1.3 (or 1.4). It fixes \ numerous bugs in the NCSA server and includes many \ frequently requested new features, and has an API \ which allows it to be extended to meet users' needs \ more easily. This Portfile is not the latest version \ of the Apache web server, see the apache2 port. \ Besides having a Port for the Apache 2.0.x line, this \ Port was built to allow Apache 2.x.y on Mac OS X 10.3 \ to serve PHP Zend encoded files using the Zend \ Optimizer. The Zend Optimizer is distributed only in \ binary form as an Apache module that enables the \ server to serve optimized and obfuscated PHP code \ from third party vendors. Since the Optimizer is a \ binary module, it must run in a binary compatible OS \ and Apache environment. While newer versions of the \ Zend Optimizer do work with Apache 2.2.x, it appears \ that these binary modules are compiled on 10.4 and \ trying to load the module into Apache on 10.3 results \ in missing symbol errors. When older versions of the \ Zend Optimizer that work on 10.3 are loaded into \ Apache 2.2.x, then the error_log will contain \ messages about double free memory errors. So the \ only combination that works on 10.3 is with Apache \ 2.0.x. homepage http://httpd.apache.org/ platforms darwin freebsd openbsd master_sites apache:httpd distname httpd-${version} use_bzip2 yes checksums md5 e3c47076885cfb60ba08e79aba83a416 \ sha1 0183866df73c7877ba9275a075a2ece7a67f6c95 \ sha256 811d17169961012bf0faf10b9fe07353078eb0e0d824fc9fa0470e21c3277560 depends_lib port:apr0 \ port:apr-util0 \ port:expat \ path:lib/libssl.dylib:openssl \ port:pcre \ port:perl5 \ port:zlib patchfiles patch-httpd-std.conf.in \ patch-docs-cgi-examples-printenv.diff \ patch-openssl-1.0.0.diff platform darwin { post-patch { reinplace "s|@PREFIX@|${prefix}|g" ${worksrcpath}/docs/cgi-examples/printenv # Customize userdir naming to match darwin reinplace "s|/home/|/Users/|g" ${worksrcpath}/docs/conf/httpd-std.conf.in reinplace "s|public_html|Sites|g" ${worksrcpath}/docs/conf/httpd-std.conf.in } } configure.pre_args --prefix=${prefix}/${name} configure.args --with-apr=${prefix}/bin/apr-config \ --with-apr-util=${prefix}/bin/apu-config \ --libdir=${prefix}/lib \ --with-pcre=${prefix} \ --with-z=${prefix} \ --mandir=${prefix}/share/man \ --enable-mods-shared=all \ --enable-ssl \ --with-ssl=${prefix} \ --enable-cache \ --enable-disk_cache \ --enable-file_cache \ --enable-mem_cache \ --enable-deflate \ --enable-proxy \ --enable-proxy-connect \ --enable-proxy-http \ --enable-proxy-ftp post-configure { # Setting DYLD_FALLBACK_LIBRARY_PATH instead of DYLD_LIBRARY_PATH # avoids issues with library collisions (bug #3013) reinplace "s|DYLD_LIBRARY_PATH|DYLD_FALLBACK_LIBRARY_PATH|g" \ ${worksrcpath}/support/envvars-std } destroot.violate_mtree yes post-destroot { set confDir ${destroot}${prefix}/apache20/conf file rename -force ${confDir}/httpd.conf ${confDir}/httpd.conf.sample destroot.keepdirs ${destroot}${prefix}/apache20/logs # fix libtool path reinplace "s|/apache20/build/libtool|/share/apr-0/build/libtool|g" \ ${destroot}${prefix}/apache20/build/config_vars.mk set mandir ${destroot}${prefix}/share/man/man1 file rename -force ${mandir}/dbmmanage.1 ${mandir}/dbmmanage20.1 file rename -force ${mandir}/htdbm.1 ${mandir}/htdbm20.1 file rename -force ${mandir}/htdigest.1 ${mandir}/htdigest20.1 file rename -force ${mandir}/htpasswd.1 ${mandir}/htpasswd20.1 set mandir ${destroot}${prefix}/share/man/man8 file rename -force ${mandir}/ab.8 ${mandir}/ab20.8 file rename -force ${mandir}/apachectl.8 ${mandir}/apachectl20.8 file rename -force ${mandir}/apxs.8 ${mandir}/apxs20.8 file rename -force ${mandir}/httpd.8 ${mandir}/httpd20.8 file rename -force ${mandir}/logresolve.8 ${mandir}/logresolve20.8 file rename -force ${mandir}/rotatelogs.8 ${mandir}/rotatelog20.8 file rename -force ${mandir}/suexec.8 ${mandir}/suexec20.8 } platform openbsd { build.env-append "LD_LIBRARY_PATH=${prefix}/lib" } variant openldap description {Enable LDAP support through OpenLDAP} { configure.args-append --enable-ldap --enable-authnz-ldap depends_lib-append port:openldap pre-configure { if {-1 == [string first -lldap [exec ${prefix}/bin/apu-config --libs]]} { ui_error "To install ${name} with the +openldap variant, apr-util0 must be installed" ui_error "with the +openldap variant. Rebuild apr-util0 using:" ui_error ui_error " sudo port upgrade --enforce-variants apr-util0 +openldap" ui_error return -code error "incompatible apr-util0 installation" } } } variant preforkmpm conflicts workermpm description {Use prefork MPM} { configure.args-append --with-mpm=prefork } variant workermpm conflicts preforkmpm description {Use worker MPM} { configure.args-append --with-mpm=worker } if {![variant_isset workermpm] && ![variant_isset eventmpm]} { default_variants +preforkmpm } variant no_startupitem description {Do not create a startup item} { startupitem.create no } startupitem.create yes startupitem.start \ "\[ -x ${prefix}/apache20/bin/apachectl \] && ${prefix}/apache20/bin/apachectl start > /dev/null" startupitem.stop \ "\[ -r ${prefix}/apache20/logs/httpd.pid \] && ${prefix}/apache20/bin/apachectl stop > /dev/null" startupitem.restart \ "\[ -r ${prefix}/apache20/logs/httpd.pid \] && ${prefix}/apache20/bin/apachectl restart > /dev/null" notes " Apache 2.0 is obsolete. Please update to Apache 2.2 (the apache2 port).\ For information on how to update your web server configuration, please see\ http://httpd.apache.org/docs/2.2/upgrading.html " livecheck.type regex livecheck.url ${homepage} livecheck.regex {Apache (2\.0(?:\.\d+)*) Released}