/usr/bin/apache2nwconf is in nanoweb-contrib 2.2.9-0ubuntu1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123  | #!/usr/bin/php -q
<?php ($prev_pwd = getenv("PWD")) and chdir($prev_pwd);
#-- options
$CONVERT_GENERAL_SETTINGS = 0;		# not recommended - edit the
					# nanoweb.conf for fine tuning!
#-- conversion tables
$c_1 = array(
	"documentroot" => "DocumentRoot",
	"servername" => "ServerName",
	"directoryindex" => "DirectoryIndex",
	"alias" => "Alias",
	"languagepriority" => "LanguagePriority",
	"servertype" => "ServerMode",
  //	"timeout" => "RequestTimeout",
  //	"maxservers" => "MaxServers",
  //	"maxkeepaliverequests" => "KeepAlive",
	"serveradmin" => "ServerAdmin",
	"user" => "User",
	"group" => "Group",
	"typesconfig" => "MimeTypes",
	"defaulttype" => "DefaultContentType",
	"addtype" => "AddType"
);
$c_2 = array(
	"serveralias" => "ServerAlias",
	"bindaddress" => "ListenInterface",
	"port" => "ListenPort",
);
#-- help
$fa = @$argv[1];
if (($argc < 2) || eregi('^-+h|/[h?]', $fa)) {
	echo<<<EOT
usage:  apache2nwconf /etc/apache/httpd.conf > /etc/nanoweb/vhosts.conf
        apache2nwconf -a > nw-vhosts.conf
Convertes apache httpd virtual host configuration for use with the nanoweb
http server. Change the program source to tweak some conversion parameters.
EOT
	;
}
else {
	if (eregi('^-+a', $fa)) {
		$fa = "/etc/apache/httpd.conf";
	}
	if (!($ac = file($fa))) {
		die("Could not read »$fa«\n");
	}
	$sect = "global";
	$conf = array();
	$conf["global"]["ServerName"][0]="localhost";
	foreach ($ac as $line) {
		$line = trim($line); if (empty($line) || ($line[0] == "#")) continue;
		if ($line[0] == "<") {
			if ($line[1] == "/") {
				$sect = "global";
			}
			elseif (preg_match('/^<VirtualHost\s+([^>\s]+)/', $line, $uu)) {
				$sect = $uu[1];
			}
		}
		else {
			list($directive, $value) = preg_split('/\s+/', $line, 2);
			$directive = strtolower($directive);
			if ($directive == "servername") {
				if ($sect == "global") continue;
#<off># echo "#'[$sect]'=>'[$value]'\n";
				$conf[$value] = $conf[$sect];
				unset($conf[$sect]);
				$sect = $value;
			}
			if ($newname = @$c_1[$directive]) {
				$conf[$sect][$newname][] = $value;
			}
			elseif ($newname = @$c_2[$directive]) {
				foreach (preg_split('/\s+/', $value) as $v) {
					$conf[$sect][$newname][] = $v;
				}
			}
		}
	}
	#-- print $conf array in nanoweb.conf style
	echo "# autoconverted from $fa by apache2nwconf\n# UTC(" . time() .")\n";
	if ($CONVERT_GENERAL_SETTINGS && (@$conf["global"])) {
		echo "\n[/global]\n# general settings imported from Apache:\n# Note that this can be dangerous!\n";
		foreach ($conf["global"] as $dir => $a) {
			foreach ($a as $value) {
				echo str_pad($dir, 16) . " = $value\n";
			}
		}
		echo "\n";
	}
	if (isset($conf["global"])) unset($conf["global"]);
	echo "\n# VirtualHost sections\n";
	foreach ($conf as $sect => $directives) {
		echo "\n[$sect]\n";
		foreach ($directives as $dir => $a) {
			foreach ($a as $value) {
				echo str_pad($dir, 16) . " = $value\n";
			}
		}
		echo "[/$sect]\n";
	}
	echo "\n";
}
?>
 |