====== Apache httpd ====== ===== Known Issues ===== [[http://lists.pld-linux.org/mailman/pipermail/pld-devel-en/2014-October/024055.html|Problem]]: Apache fails to do ''restart'', but succeeds if you do ''stop'' followed by ''start''. # service httpd restart Checking Apache 2.4 Web Server configuration.................................[ DONE ] Stopping Apache 2.4 Web Server service.......................................[ DONE ] Starting Apache 2.4 Web Server service.......................................[ FAIL ] (98)Address already in use: AH00072: make_sock: could not bind to address [::]:8080 (98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:8080 no listening sockets available, shutting down AH00015: Unable to open logs It's [[http://lists.pld-linux.org/mailman/pipermail/pld-devel-en/2014-October/024061.html|php]] [[http://lists.pld-linux.org/mailman/pipermail/pld-devel-en/2014-October/024062.html|session]] to blame, however, ''/etc/sysconfig/httpd'' has [[http://lists.pld-linux.org/mailman/pipermail/pld-devel-en/2014-October/024065.html|some]] [[http://git.pld-linux.org/?p=packages/apache.git;a=commitdiff;h=00ab488f59c5aacbcab9708a1c70b142520264d2|variable]] where you can adjust sleep between stop and start You should try enabling and increasing it ===== Apache 2.4 ===== Apache 2.4 has landed in Th on June 7, 2013. See [[http://lists.pld-linux.org/mailman/pipermail/pld-devel-en/2013-June/023560.html|announcement]]. **Access control incompatible changes** All webapps have been migrated to new [[https://httpd.apache.org/docs/2.4/mod/mod_authz_host.html|mod_authz_host]] access syntax and usage of [[https://httpd.apache.org/docs/2.4/mod/mod_access_compat.html|mod_access_compat]] is strongly discouraged. The rationale for it is that //access_compat// and //authz_host// are independent of each other and operate on separate namespaces. Main httpd configs contain only //authz_host// directives and enabling //access_compat// means allowing access to all locations/directories that are not explicitly denied by //authz_host//. **Note:** In case there exist both //authz_host// **and** //access_compat// directives for a location, the **Deny** clause of **ANY** of them takes precedence (in short: **deny** always wins, regardless where it comes from). ==== Upgrading ==== Detailed information about upgrading and all changes between apache 2.2 and 2.4 can be found [[https://httpd.apache.org/docs/2.4/upgrading.html|here]] as for more complex examples, require ip or password: Order Deny,Allow Deny from all Allow from my.lan Allow from 2001:1234:5678::/64 AuthType Basic AuthName www.my.lan AuthBasicProvider ldap AuthLDAPURL "ldap://server:389/ou=People,dc=example,dc=com?uid?sub?(objectClass=*)" Require valid-user Satisfy Any The solution is very simple, just list the requirements and 2.4 somehow magically knows what you mean: Require host my.lan Require ip 2001:1234:5678::/64 AuthType Basic AuthName www.my.lan AuthBasicProvider ldap AuthLDAPURL "ldap://server:389/ou=People,dc=example,dc=com?uid?sub?(objectClass=*)" Require valid-user Source: http://blog.hqcodeshop.fi/archives/63-Migrating-access-control-into-Apache-2.4.html If you need to ''AND'' multiple requires, wrap them inside [[http://httpd.apache.org/docs/current/mod/mod_authz_core.html#requireall|]] ===== Apache 2.2 and 2.4 compatible configs ===== If you need to support both Apache 2.2 and 2.4, then, for example, if Apache 2.2 config contained: Allow from all you need to use: # Apache 2.x Order allow,deny Allow from all # Apache 2.4 Require all granted