From a2156eb5923b4065d29ad164baa038238091cd49 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Wed, 21 Sep 2011 08:28:18 -0400
Subject: [PATCH] Added new namevirtualhost port functions to the installer and apache plugin.
---
install/lib/installer_base.lib.php | 20 ++++++++-
install/dist/lib/fedora.lib.php | 22 +++++++++--
interface/web/admin/form/server_ip.tform.php | 6 ++
server/conf/apache_ispconfig.conf.master | 3 -
server/plugins-available/apache2_plugin.inc.php | 27 ++++++++++++-
install/dist/lib/opensuse.lib.php | 22 +++++++++--
interface/web/admin/lib/lang/en_server_ip.lng | 1
7 files changed, 84 insertions(+), 17 deletions(-)
diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php
index b9581c2..ae90f1f 100644
--- a/install/dist/lib/fedora.lib.php
+++ b/install/dist/lib/fedora.lib.php
@@ -521,14 +521,28 @@
$vhost_conf_enabled_dir = $conf['apache']['vhost_conf_enabled_dir'];
// copy('tpl/apache_ispconfig.conf.master',$vhost_conf_dir.'/ispconfig.conf');
- $content = rf("tpl/apache_ispconfig.conf.master");
- $records = $this->db->queryAllRecords("SELECT * FROM server_ip WHERE server_id = ".$conf["server_id"]." AND virtualhost = 'y'");
+ $content = rf('tpl/apache_ispconfig.conf.master');
+ $records = $this->db->queryAllRecords('SELECT * FROM '.$conf['mysql']['master_database'].'.server_ip WHERE server_id = '.$conf['server_id']." AND virtualhost = 'y'");
+
if(is_array($records) && count($records) > 0) {
foreach($records as $rec) {
- $content .= "NameVirtualHost ".$rec["ip_address"].":80\n";
- $content .= "NameVirtualHost ".$rec["ip_address"].":443\n";
+ if($rec['ip_type'] == 'IPv6') {
+ $ip_address = '['.$rec['ip_address'].']';
+ } else {
+ $ip_address = $rec['ip_address'];
+ }
+ $ports = explode(',',$rec['virtualhost_port']);
+ if(is_array($ports)) {
+ foreach($ports as $port) {
+ $port = intval($port);
+ if($port > 0 && $port < 65536 && $ip_address != '') {
+ $content .= 'NameVirtualHost '.$ip_address.":".$port."\n";
+ }
+ }
+ }
}
}
+
$content .= "\n";
wf($vhost_conf_dir.'/ispconfig.conf',$content);
diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php
index fb28d31..dabddce 100644
--- a/install/dist/lib/opensuse.lib.php
+++ b/install/dist/lib/opensuse.lib.php
@@ -535,14 +535,28 @@
$vhost_conf_enabled_dir = $conf['apache']['vhost_conf_enabled_dir'];
//copy('tpl/apache_ispconfig.conf.master',$vhost_conf_dir.'/ispconfig.conf');
- $content = rf("tpl/apache_ispconfig.conf.master");
- $records = $this->db->queryAllRecords("SELECT * FROM server_ip WHERE server_id = ".$conf["server_id"]." AND virtualhost = 'y'");
+ $content = rf('tpl/apache_ispconfig.conf.master');
+ $records = $this->db->queryAllRecords('SELECT * FROM '.$conf['mysql']['master_database'].'.server_ip WHERE server_id = '.$conf['server_id']." AND virtualhost = 'y'");
+
if(is_array($records) && count($records) > 0) {
foreach($records as $rec) {
- $content .= "NameVirtualHost ".$rec["ip_address"].":80\n";
- $content .= "NameVirtualHost ".$rec["ip_address"].":443\n";
+ if($rec['ip_type'] == 'IPv6') {
+ $ip_address = '['.$rec['ip_address'].']';
+ } else {
+ $ip_address = $rec['ip_address'];
+ }
+ $ports = explode(',',$rec['virtualhost_port']);
+ if(is_array($ports)) {
+ foreach($ports as $port) {
+ $port = intval($port);
+ if($port > 0 && $port < 65536 && $ip_address != '') {
+ $content .= 'NameVirtualHost '.$ip_address.":".$port."\n";
+ }
+ }
+ }
}
}
+
$content .= "\n";
wf($vhost_conf_dir.'/ispconfig.conf',$content);
diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index f3e7ef4..d1fee8a 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -1145,15 +1145,29 @@
$vhost_conf_enabled_dir = $conf['apache']['vhost_conf_enabled_dir'];
// copy('tpl/apache_ispconfig.conf.master',$vhost_conf_dir.'/ispconfig.conf');
-
+
$content = rf('tpl/apache_ispconfig.conf.master');
$records = $this->db->queryAllRecords('SELECT * FROM '.$conf['mysql']['master_database'].'.server_ip WHERE server_id = '.$conf['server_id']." AND virtualhost = 'y'");
+
if(is_array($records) && count($records) > 0) {
foreach($records as $rec) {
- $content .= 'NameVirtualHost '.$rec['ip_address'].":80\n";
- $content .= 'NameVirtualHost '.$rec['ip_address'].":443\n";
+ if($rec['ip_type'] == 'IPv6') {
+ $ip_address = '['.$rec['ip_address'].']';
+ } else {
+ $ip_address = $rec['ip_address'];
+ }
+ $ports = explode(',',$rec['virtualhost_port']);
+ if(is_array($ports)) {
+ foreach($ports as $port) {
+ $port = intval($port);
+ if($port > 0 && $port < 65536 && $ip_address != '') {
+ $content .= 'NameVirtualHost '.$ip_address.":".$port."\n";
+ }
+ }
+ }
}
}
+
$content .= "\n";
wf($vhost_conf_dir.'/ispconfig.conf',$content);
diff --git a/interface/web/admin/form/server_ip.tform.php b/interface/web/admin/form/server_ip.tform.php
index 2832efb..a6d9bcf 100644
--- a/interface/web/admin/form/server_ip.tform.php
+++ b/interface/web/admin/form/server_ip.tform.php
@@ -137,7 +137,11 @@
'virtualhost_port' => array (
'datatype' => 'VARCHAR',
'formtype' => 'TEXT',
- 'default' => '',
+ 'validators' => array ( 0 => array ( 'type' => 'REGEX',
+ 'regex' => '/^([0-9]{1,5}\,{0,1}){1,}$/i',
+ 'errmsg'=> 'error_port_syntax'),
+ ),
+ 'default' => '80,443',
'value' => '',
'separator' => '',
'width' => '15',
diff --git a/interface/web/admin/lib/lang/en_server_ip.lng b/interface/web/admin/lib/lang/en_server_ip.lng
index f67e8e8..fd91fc3 100644
--- a/interface/web/admin/lib/lang/en_server_ip.lng
+++ b/interface/web/admin/lib/lang/en_server_ip.lng
@@ -7,4 +7,5 @@
$wb["virtualhost_port_txt"] = 'HTTP Ports';
$wb["ip_error_wrong"] = 'The IP address is invalid';
$wb["ip_error_unique"] = 'The IP address must be unique';
+$wb["error_port_syntax"] = 'Invalid chars in port field, please enter only comma separated numbers. Example: 80,443';
?>
\ No newline at end of file
diff --git a/server/conf/apache_ispconfig.conf.master b/server/conf/apache_ispconfig.conf.master
index 8723d93..1c0d367 100644
--- a/server/conf/apache_ispconfig.conf.master
+++ b/server/conf/apache_ispconfig.conf.master
@@ -50,7 +50,6 @@
Alias /awstats-icon "/usr/share/awstats/icon"
<tmpl_loop name="ip_adresses">
-NameVirtualHost {tmpl_var name="ip_address"}:80
-NameVirtualHost {tmpl_var name="ip_address"}:443
+NameVirtualHost {tmpl_var name="ip_address"}:{tmpl_var name="port"}
</tmpl_loop>
diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index 092ba63..2f641b1 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -1181,9 +1181,30 @@
$tpl = new tpl();
$tpl->newTemplate('apache_ispconfig.conf.master');
$records = $app->db->queryAllRecords('SELECT * FROM server_ip WHERE server_id = '.$conf['server_id']." AND virtualhost = 'y'");
-
- if(count($records) > 0) {
- $tpl->setLoop('ip_adresses',$records);
+
+ $records_out= array();
+ if(is_array($records)) {
+ foreach($records as $rec) {
+ if($rec['ip_type'] == 'IPv6') {
+ $ip_address = '['.$rec['ip_address'].']';
+ } else {
+ $ip_address = $rec['ip_address'];
+ }
+ $ports = explode(',',$rec['virtualhost_port']);
+ if(is_array($ports)) {
+ foreach($ports as $port) {
+ $port = intval($port);
+ if($port > 0 && $port < 65536 && $ip_address != '') {
+ $records_out[] = array('ip_address' => $ip_address, 'port' => $port);
+ }
+ }
+ }
+ }
+ }
+
+
+ if(count($records_out) > 0) {
+ $tpl->setLoop('ip_adresses',$records_out);
}
$vhost_file = escapeshellcmd($web_config['vhost_conf_dir'].'/ispconfig.conf');
--
Gitblit v1.9.1