| # |
| # InstallConf.awk Apache HTTP 2.x script to rewrite the @@ServerRoot@@ |
| # tags in httpd.conf.in to original\httpd.conf - then duplicate the |
| # conf files to the 'live' configuration if they don't already exist. |
| # |
| # Note that we -don't- want the ARGV file list, so no additional {} blocks |
| # are coded. Use explicit args (more reliable on Win32) and use the fact |
| # that ARGV[] params are -not- '\' escaped to process the C:\Foo\Bar Win32 |
| # path format. Note that awk var=path would not succeed, since it -does- |
| # escape backslashes in the assignment. Note also, a trailing space is |
| # required for paths, or the trailing quote following the backslash is |
| # escaped, rather than parsed. |
| # |
| BEGIN { |
| domainname = ARGV[1]; |
| servername = ARGV[2]; |
| serveradmin = ARGV[3]; |
| serverport = ARGV[4]; |
| serversslport = ARGV[5]; |
| serverroot = ARGV[6]; |
| sourceroot = ARGV[7]; |
| |
| delete ARGV[7]; |
| delete ARGV[6]; |
| delete ARGV[5]; |
| delete ARGV[4]; |
| delete ARGV[3]; |
| delete ARGV[2]; |
| delete ARGV[1]; |
| |
| gsub( /\\/, "/", serverroot ); |
| gsub( /[ \/]+$/, "", serverroot ); |
| tstfl = serverroot "/logs/install.log" |
| confroot = serverroot "/conf/"; |
| confdefault = confroot "original/"; |
| |
| if ( sourceroot != "docs/conf/" ) { |
| sourceroot = serverroot "/" sourceroot; |
| } |
| |
| usertree = ENVIRON["USERPROFILE"] |
| if ( usertree > "" ) { |
| gsub( /\\/, "/", usertree ); |
| gsub( /\/[^\/]+$/, "", usertree ); |
| } else { |
| usertree = "C:/Documents and Settings"; |
| } |
| |
| print "Installing Apache HTTP Server 2.x with" >tstfl; |
| print " DomainName = " domainname >tstfl; |
| print " ServerName = " servername >tstfl; |
| print " ServerAdmin = " serveradmin >tstfl; |
| print " ServerPort = " serverport >tstfl; |
| print " ServerSslPort = " serversslport >tstfl; |
| print " ServerRoot = " serverroot >tstfl; |
| |
| filelist["httpd.conf"] = "httpd.conf.in"; |
| filelist["httpd-autoindex.conf"] = "httpd-autoindex.conf.in"; |
| filelist["httpd-dav.conf"] = "httpd-dav.conf.in"; |
| filelist["httpd-default.conf"] = "httpd-default.conf.in"; |
| filelist["httpd-info.conf"] = "httpd-info.conf.in"; |
| filelist["httpd-languages.conf"] = "httpd-languages.conf.in"; |
| filelist["httpd-macro.conf"] = "httpd-macro.conf.in"; |
| filelist["httpd-manual.conf"] = "httpd-manual.conf.in"; |
| filelist["httpd-mpm.conf"] = "httpd-mpm.conf.in"; |
| filelist["httpd-multilang-errordoc.conf"] = "httpd-multilang-errordoc.conf.in"; |
| filelist["httpd-policy.conf"] = "httpd-policy.conf.in"; |
| filelist["httpd-ssl.conf"] = "httpd-ssl.conf.in"; |
| filelist["httpd-userdir.conf"] = "httpd-userdir.conf.in"; |
| filelist["httpd-vhosts.conf"] = "httpd-vhosts.conf.in"; |
| filelist["proxy-html.conf"] = "proxy-html.conf.in"; |
| |
| for ( conffile in filelist ) { |
| |
| if ( conffile == "httpd.conf" ) { |
| srcfl = sourceroot filelist[conffile]; |
| dstfl = confdefault conffile; |
| bswarning = 1; |
| } else { |
| srcfl = sourceroot "extra/" filelist[conffile]; |
| dstfl = confdefault "extra/" conffile; |
| bswarning = 0; |
| } |
| |
| while ( ( getline < srcfl ) > 0 ) { |
| |
| if ( bswarning && /^$/ ) { |
| print "#" > dstfl; |
| print "# NOTE: Where filenames are specified, you must use forward slashes" > dstfl; |
| print "# instead of backslashes (e.g., \"c:/apache\" instead of \"c:\\apache\")." > dstfl; |
| print "# If a drive letter is omitted, the drive on which httpd.exe is located" > dstfl; |
| print "# will be used by default. It is recommended that you always supply" > dstfl; |
| print "# an explicit drive letter in absolute paths to avoid confusion." > dstfl; |
| bswarning = 0; |
| } |
| if ( /@@LoadModule@@/ ) { |
| print "LoadModule access_compat_module modules/mod_access_compat.so" > dstfl; |
| print "LoadModule actions_module modules/mod_actions.so" > dstfl; |
| print "LoadModule alias_module modules/mod_alias.so" > dstfl; |
| print "#LoadModule allowhandlers_module modules/mod_allowhandlers.so" > dstfl; |
| print "#LoadModule allowmethods_module modules/mod_allowmethods.so" > dstfl; |
| print "#LoadModule apreq_module modules/mod_apreq.so" > dstfl; |
| print "LoadModule asis_module modules/mod_asis.so" > dstfl; |
| print "LoadModule auth_basic_module modules/mod_auth_basic.so" > dstfl; |
| print "#LoadModule auth_digest_module modules/mod_auth_digest.so" > dstfl; |
| print "#LoadModule auth_form_module modules/mod_auth_form.so" > dstfl; |
| print "#LoadModule authn_anon_module modules/mod_authn_anon.so" > dstfl; |
| print "LoadModule authn_core_module modules/mod_authn_core.so" > dstfl; |
| print "#LoadModule authn_dbd_module modules/mod_authn_dbd.so" > dstfl; |
| print "#LoadModule authn_dbm_module modules/mod_authn_dbm.so" > dstfl; |
| print "LoadModule authn_file_module modules/mod_authn_file.so" > dstfl; |
| print "#LoadModule authn_socache_module modules/mod_authn_socache.so" > dstfl; |
| print "#LoadModule authnz_fcgi_module modules/mod_authnz_fcgi.so" > dstfl; |
| print "#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so" > dstfl; |
| print "LoadModule authz_core_module modules/mod_authz_core.so" > dstfl; |
| print "#LoadModule authz_dbd_module modules/mod_authz_dbd.so" > dstfl; |
| print "#LoadModule authz_dbm_module modules/mod_authz_dbm.so" > dstfl; |
| print "LoadModule authz_groupfile_module modules/mod_authz_groupfile.so" > dstfl; |
| print "LoadModule authz_host_module modules/mod_authz_host.so" > dstfl; |
| print "#LoadModule authz_owner_module modules/mod_authz_owner.so" > dstfl; |
| print "LoadModule authz_user_module modules/mod_authz_user.so" > dstfl; |
| print "LoadModule autoindex_module modules/mod_autoindex.so" > dstfl; |
| print "#LoadModule brotli_module modules/mod_brotli.so" > dstfl; |
| print "#LoadModule buffer_module modules/mod_buffer.so" > dstfl; |
| print "#LoadModule cache_module modules/mod_cache.so" > dstfl; |
| print "#LoadModule cache_disk_module modules/mod_cache_disk.so" > dstfl; |
| print "#LoadModule cache_socache_module modules/mod_cache_socache.so" > dstfl; |
| print "#LoadModule cern_meta_module modules/mod_cern_meta.so" > dstfl; |
| print "LoadModule cgi_module modules/mod_cgi.so" > dstfl; |
| print "#LoadModule charset_lite_module modules/mod_charset_lite.so" > dstfl; |
| print "#LoadModule data_module modules/mod_data.so" > dstfl; |
| print "#LoadModule dav_module modules/mod_dav.so" > dstfl; |
| print "#LoadModule dav_fs_module modules/mod_dav_fs.so" > dstfl; |
| print "#LoadModule dav_lock_module modules/mod_dav_lock.so" > dstfl; |
| print "#LoadModule dbd_module modules/mod_dbd.so" > dstfl; |
| print "#LoadModule deflate_module modules/mod_deflate.so" > dstfl; |
| print "LoadModule dir_module modules/mod_dir.so" > dstfl; |
| print "#LoadModule dumpio_module modules/mod_dumpio.so" > dstfl; |
| print "LoadModule env_module modules/mod_env.so" > dstfl; |
| print "#LoadModule expires_module modules/mod_expires.so" > dstfl; |
| print "#LoadModule ext_filter_module modules/mod_ext_filter.so" > dstfl; |
| print "#LoadModule file_cache_module modules/mod_file_cache.so" > dstfl; |
| print "#LoadModule filter_module modules/mod_filter.so" > dstfl; |
| print "#LoadModule http2_module modules/mod_http2.so" > dstfl; |
| print "#LoadModule headers_module modules/mod_headers.so" > dstfl; |
| print "#LoadModule heartbeat_module modules/mod_heartbeat.so" > dstfl; |
| print "#LoadModule heartmonitor_module modules/mod_heartmonitor.so" > dstfl; |
| print "#LoadModule ident_module modules/mod_ident.so" > dstfl; |
| print "#LoadModule imagemap_module modules/mod_imagemap.so" > dstfl; |
| print "LoadModule include_module modules/mod_include.so" > dstfl; |
| print "#LoadModule info_module modules/mod_info.so" > dstfl; |
| print "LoadModule isapi_module modules/mod_isapi.so" > dstfl; |
| print "#LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so" > dstfl; |
| print "#LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so" > dstfl; |
| print "#LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so" > dstfl; |
| print "#LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so" > dstfl; |
| print "#LoadModule ldap_module modules/mod_ldap.so" > dstfl; |
| print "#LoadModule logio_module modules/mod_logio.so" > dstfl; |
| print "LoadModule log_config_module modules/mod_log_config.so" > dstfl; |
| print "#LoadModule log_debug_module modules/mod_log_debug.so" > dstfl; |
| print "#LoadModule log_forensic_module modules/mod_log_forensic.so" > dstfl; |
| print "#LoadModule log_json_module modules/mod_log_json.so" > dstfl; |
| print "#LoadModule lua_module modules/mod_lua.so" > dstfl; |
| print "#LoadModule macro_module modules/mod_macro.so" > dstfl; |
| print "#LoadModule md_module modules/mod_md.so" > dstfl; |
| print "LoadModule mime_module modules/mod_mime.so" > dstfl; |
| print "#LoadModule mime_magic_module modules/mod_mime_magic.so" > dstfl; |
| print "LoadModule negotiation_module modules/mod_negotiation.so" > dstfl; |
| print "#LoadModule proxy_module modules/mod_proxy.so" > dstfl; |
| print "#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so" > dstfl; |
| print "#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so" > dstfl; |
| print "#LoadModule proxy_connect_module modules/mod_proxy_connect.so" > dstfl; |
| print "#LoadModule proxy_express_module modules/mod_proxy_express.so" > dstfl; |
| print "#LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so" > dstfl; |
| print "#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so" > dstfl; |
| print "#LoadModule proxy_hcheck_module modules/mod_proxy_hcheck.so" > dstfl; |
| print "#LoadModule proxy_html_module modules/mod_proxy_html.so" > dstfl; |
| print "#LoadModule proxy_http_module modules/mod_proxy_http.so" > dstfl; |
| print "#LoadModule proxy_http2_module modules/mod_proxy_http2.so" > dstfl; |
| print "#LoadModule proxy_scgi_module modules/mod_proxy_scgi.so" > dstfl; |
| print "#LoadModule proxy_uwsgi_module modules/mod_proxy_uwsgi.so" > dstfl; |
| print "#LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so" > dstfl; |
| print "#LoadModule ratelimit_module modules/mod_ratelimit.so" > dstfl; |
| print "#LoadModule reflector_module modules/mod_reflector.so" > dstfl; |
| print "#LoadModule remoteip_module modules/mod_remoteip.so" > dstfl; |
| print "#LoadModule request_module modules/mod_request.so" > dstfl; |
| print "#LoadModule reqtimeout_module modules/mod_reqtimeout.so" > dstfl; |
| print "#LoadModule rewrite_module modules/mod_rewrite.so" > dstfl; |
| print "#LoadModule sed_module modules/mod_sed.so" > dstfl; |
| print "#LoadModule session_module modules/mod_session.so" > dstfl; |
| print "#LoadModule session_cookie_module modules/mod_session_cookie.so" > dstfl; |
| print "#LoadModule session_crypto_module modules/mod_session_crypto.so" > dstfl; |
| print "#LoadModule session_dbd_module modules/mod_session_dbd.so" > dstfl; |
| print "LoadModule setenvif_module modules/mod_setenvif.so" > dstfl; |
| print "#LoadModule slotmem_plain_module modules/mod_slotmem_plain.so" > dstfl; |
| print "#LoadModule slotmem_shm_module modules/mod_slotmem_shm.so" > dstfl; |
| print "#LoadModule socache_dbm_module modules/mod_socache_dbm.so" > dstfl; |
| print "#LoadModule socache_memcache_module modules/mod_socache_memcache.so" > dstfl; |
| print "#LoadModule socache_redis_module modules/mod_socache_redis.so" > dstfl; |
| print "#LoadModule socache_shmcb_module modules/mod_socache_shmcb.so" > dstfl; |
| print "#LoadModule speling_module modules/mod_speling.so" > dstfl; |
| print "#LoadModule ssl_module modules/mod_ssl.so" > dstfl; |
| print "#LoadModule status_module modules/mod_status.so" > dstfl; |
| print "#LoadModule substitute_module modules/mod_substitute.so" > dstfl; |
| print "#LoadModule unique_id_module modules/mod_unique_id.so" > dstfl; |
| print "#LoadModule userdir_module modules/mod_userdir.so" > dstfl; |
| print "#LoadModule usertrack_module modules/mod_usertrack.so" > dstfl; |
| print "#LoadModule version_module modules/mod_version.so" > dstfl; |
| print "#LoadModule vhost_alias_module modules/mod_vhost_alias.so" > dstfl; |
| print "#LoadModule watchdog_module modules/mod_watchdog.so" > dstfl; |
| print "#LoadModule xml2enc_module modules/mod_xml2enc.so" > dstfl; |
| continue; |
| } |
| if ( /^ServerRoot / ) { |
| print "Define SRVROOT \"" serverroot "\"" > dstfl; |
| print "" > dstfl; |
| } |
| gsub( /@@ServerRoot@@/, "\${SRVROOT}" ); |
| gsub( /@exp_cgidir@/, "\${SRVROOT}" "/cgi-bin" ); |
| gsub( /@exp_sysconfdir@/, "\${SRVROOT}" "/conf" ); |
| gsub( /@exp_errordir@/, "\${SRVROOT}" "/error" ); |
| gsub( /@exp_htdocsdir@/, "\${SRVROOT}" "/htdocs" ); |
| gsub( /@exp_iconsdir@/, "\${SRVROOT}" "/icons" ); |
| gsub( /@exp_manualdir@/, "\${SRVROOT}" "/manual" ); |
| gsub( /@exp_runtimedir@/, "\${SRVROOT}" "/logs" ); |
| if ( gsub( /@exp_logfiledir@/, "\${SRVROOT}" "/logs" ) || |
| gsub( /@rel_logfiledir@/, "logs" ) ) { |
| gsub( /_log"/, ".log\"" ) |
| } |
| gsub( /@rel_runtimedir@/, "logs" ); |
| gsub( /@rel_sysconfdir@/, "conf" ); |
| gsub( /\/home\/\*\/public_html/, \ |
| usertree "/*/My Documents/My Website" ); |
| gsub( /UserDir public_html/, "UserDir \"My Documents/My Website\"" ); |
| gsub( /@@ServerName@@|www.example.com/, servername ); |
| gsub( /@@ServerAdmin@@|you@example.com/, serveradmin ); |
| gsub( /@@DomainName@@|example.com/, domainname ); |
| gsub( /@@Port@@/, serverport ); |
| gsub( /@@SSLPort@@|443/, serversslport ); |
| print $0 > dstfl; |
| } |
| close(srcfl); |
| |
| if ( close(dstfl) >= 0 ) { |
| print "Rewrote " srcfl "\n to " dstfl > tstfl; |
| if ( sourceroot != "docs/conf/" ) { |
| gsub(/\//, "\\", srcfl); |
| if (system("del 2>NUL \"" srcfl "\"")) { |
| print "Failed to remove " srcfl > tstfl; |
| } else { |
| print "Successfully removed " srcfl > tstfl; |
| } |
| } |
| } else { |
| print "Failed to rewrite " srcfl "\n to " dstfl > tstfl; |
| } |
| filelist[conffile] = "extra/"; |
| } |
| |
| filelist["httpd.conf"] = ""; |
| filelist["charset.conv"] = ""; |
| filelist["magic"] = ""; |
| filelist["mime.types"] = ""; |
| |
| for ( conffile in filelist ) { |
| srcfl = confdefault filelist[conffile] conffile; |
| dstfl = confroot filelist[conffile] conffile; |
| if ( ( getline < dstfl ) < 0 ) { |
| while ( ( getline < srcfl ) > 0 ) { |
| print $0 > dstfl; |
| } |
| print "Duplicated " srcfl "\n to " dstfl > tstfl; |
| } else { |
| print "Existing file " dstfl " preserved" > tstfl; |
| } |
| close(srcfl); |
| close(dstfl); |
| } |
| |
| if ( sourceroot != "docs/conf/" ) { |
| srcfl = confdefault "installwinconf.awk"; |
| gsub(/\//, "\\", srcfl); |
| if (system("del 2>NUL \"" srcfl "\"")) { |
| print "Failed to remove " srcfl > tstfl; |
| } else { |
| print "Successfully removed " srcfl > tstfl; |
| } |
| } |
| close(tstfl); |
| } |
| |