<?php $gapsIni = realpath(dirname(__FILE__) . "/../../GAPS.ini"); $config = parse_ini_file($gapsIni); $gapsApacheConf = $config['PORTAL']. "/Tasks/config/GAPS.Apache.conf"; $apache = realpath($config['PHP'] . "/../httpd/conf/"); function convertGapsConf () { global $config; global $apache; global $gapsApacheConf; if (!$apache) return "Apache-Verzeichnis nicht gefunden."; if (!file_exists($apache . "/GAPS.conf")) return "GAPS.conf nicht gefunden."; $httpdConf = file_get_contents($apache . "/httpd.conf"); $match = array(); if (!preg_match('/\r\nListen (\d+)/im', $httpdConf, $match)) return "Apache-Port nicht gefunden."; $httpdConf = preg_replace('/\r\nListen \d+/im', "", $httpdConf); $port = $match[1]; $httpdConf = str_replace('GCPS.conf', 'php5.module.conf', $httpdConf); $httpdConf .= "\r\n" . 'include "' . str_replace("\\", "/", $config['PORTAL']) . '/Tasks/config/GAPS.Apache.conf"'; if (!rename($apache . "/GAPS.conf", $gapsApacheConf)) return "GAPS.conf laesst sich nicht verschieben."; if (!file_put_contents($apache . "/httpd.conf", $httpdConf)) { file_put_contents($config['PORTAL']. "/Tasks/httpd.conf", $httpdConf); return "httpd.conf laesst sich nicht ueberschreiben. Bitte manuell austauschen."; } unlink($apache. "/GCPS.conf"); $gapsConf = file_get_contents($gapsApacheConf); $gapsConf = "Listen " . $port . "\r\n\r\n" . $gapsConf; file_put_contents($gapsApacheConf, $gapsConf); return ""; } function addGapsUrl () { global $config; global $gapsIni; global $gapsApacheConf; $gapsConf = file_get_contents($gapsApacheConf); if (!preg_match('/\nAlias "\/(.*)" "(.*)"\r\n/im', $gapsConf, $match)) return "Alias unbekannt"; $subdir = $match[1]; if (preg_match('/Listen (\d+)/im', $gapsConf, $match)) { $port = $match[1]; } else { $port = "80"; } $output = array(); exec("systeminfo", $output); $output = implode("\r\n", $output); if (!preg_match('/(LAN-Verbindung|Ethernet0|Local Area)[^[]*\[01\]:\s([\d\.]+)/im', $output, $match)) return "IP-Adresse unbekannt."; $host = $match[2]; $config['GAPS_URL'] = "http://{$host}:{$port}/{$subdir}"; file_put_contents($gapsIni, "\r\nGAPS_URL=\"{$config['GAPS_URL']}\"" , FILE_APPEND); return ""; } function addRemoteTasks() { global $gapsApacheConf; $gapsConf = file_get_contents($gapsApacheConf); if (!preg_match('/\nAlias "\/Remote\/" "(.*)"\r\n/im', $gapsConf, $match)) { $alias = 'Alias "/Remote/" "' . str_replace("\\", "/", realpath(dirname(__FILE__)."/../Remote")) . '/"' . "\r\n\r\n"; $gapsConf = str_replace("\r\n<Dir", $alias . "\r\n<Dir", $gapsConf); file_put_contents($gapsApacheConf, $gapsConf); } return ""; } if (!file_exists($gapsApacheConf)) { echo convertGapsConf(); } if (!isset($config['GAPS_URL'])) { echo addGapsUrl(); } if (file_exists($gapsApacheConf)) { echo addRemoteTasks(); } echo "Apache-Umstellung erfolgreich.";