Skip to content
Snippets Groups Projects
Commit dba68fcd authored by tbrehm's avatar tbrehm
Browse files

Bugfixes in installer and apache plugin.

parent a7bdf8d0
No related branches found
No related tags found
No related merge requests found
......@@ -233,17 +233,18 @@ class installer_base {
$tpl_ini_array['dns']['named_conf_path'] = $conf['bind']['named_conf_path'];
$tpl_ini_array['dns']['named_conf_local_path'] = $conf['bind']['named_conf_local_path'];
$tpl_ini_array['web']['nginx_vhost_conf_dir'] = $conf['nginx']['vhost_conf_dir'];
$tpl_ini_array['web']['nginx_vhost_conf_enabled_dir'] = $conf['nginx']['vhost_conf_enabled_dir'];
$tpl_ini_array['web']['nginx_user'] = $conf['nginx']['user'];
$tpl_ini_array['web']['nginx_group'] = $conf['nginx']['group'];
$tpl_ini_array['web']['nginx_cgi_socket'] = $conf['nginx']['cgi_socket'];
$tpl_ini_array['web']['php_fpm_init_script'] = $conf['nginx']['php_fpm_init_script'];
$tpl_ini_array['web']['php_fpm_ini_path'] = $conf['nginx']['php_fpm_ini_path'];
$tpl_ini_array['web']['php_fpm_pool_dir'] = $conf['nginx']['php_fpm_pool_dir'];
$tpl_ini_array['web']['php_fpm_start_port'] = $conf['nginx']['php_fpm_start_port'];
$tpl_ini_array['web']['php_fpm_socket_dir'] = $conf['nginx']['php_fpm_socket_dir'];
if ($conf['nginx']['installed'] == true) {
$tpl_ini_array['web']['nginx_vhost_conf_dir'] = $conf['nginx']['vhost_conf_dir'];
$tpl_ini_array['web']['nginx_vhost_conf_enabled_dir'] = $conf['nginx']['vhost_conf_enabled_dir'];
$tpl_ini_array['web']['nginx_user'] = $conf['nginx']['user'];
$tpl_ini_array['web']['nginx_group'] = $conf['nginx']['group'];
$tpl_ini_array['web']['nginx_cgi_socket'] = $conf['nginx']['cgi_socket'];
$tpl_ini_array['web']['php_fpm_init_script'] = $conf['nginx']['php_fpm_init_script'];
$tpl_ini_array['web']['php_fpm_ini_path'] = $conf['nginx']['php_fpm_ini_path'];
$tpl_ini_array['web']['php_fpm_pool_dir'] = $conf['nginx']['php_fpm_pool_dir'];
$tpl_ini_array['web']['php_fpm_start_port'] = $conf['nginx']['php_fpm_start_port'];
$tpl_ini_array['web']['php_fpm_socket_dir'] = $conf['nginx']['php_fpm_socket_dir'];
$tpl_ini_array['web']['server_type'] = 'nginx';
$tpl_ini_array['global']['webserver'] = 'nginx';
}
......
......@@ -260,17 +260,18 @@ function updateDbAndIni() {
$tpl_ini_array['dns']['named_conf_path'] = $conf['bind']['named_conf_path'];
$tpl_ini_array['dns']['named_conf_local_path'] = $conf['bind']['named_conf_local_path'];
$tpl_ini_array['web']['nginx_vhost_conf_dir'] = $conf['nginx']['vhost_conf_dir'];
$tpl_ini_array['web']['nginx_vhost_conf_enabled_dir'] = $conf['nginx']['vhost_conf_enabled_dir'];
$tpl_ini_array['web']['nginx_user'] = $conf['nginx']['user'];
$tpl_ini_array['web']['nginx_group'] = $conf['nginx']['group'];
$tpl_ini_array['web']['nginx_cgi_socket'] = $conf['nginx']['cgi_socket'];
$tpl_ini_array['web']['php_fpm_init_script'] = $conf['nginx']['php_fpm_init_script'];
$tpl_ini_array['web']['php_fpm_ini_path'] = $conf['nginx']['php_fpm_ini_path'];
$tpl_ini_array['web']['php_fpm_pool_dir'] = $conf['nginx']['php_fpm_pool_dir'];
$tpl_ini_array['web']['php_fpm_start_port'] = $conf['nginx']['php_fpm_start_port'];
$tpl_ini_array['web']['php_fpm_socket_dir'] = $conf['nginx']['php_fpm_socket_dir'];
if ($conf['nginx']['installed'] == true) {
$tpl_ini_array['web']['nginx_vhost_conf_dir'] = $conf['nginx']['vhost_conf_dir'];
$tpl_ini_array['web']['nginx_vhost_conf_enabled_dir'] = $conf['nginx']['vhost_conf_enabled_dir'];
$tpl_ini_array['web']['nginx_user'] = $conf['nginx']['user'];
$tpl_ini_array['web']['nginx_group'] = $conf['nginx']['group'];
$tpl_ini_array['web']['nginx_cgi_socket'] = $conf['nginx']['cgi_socket'];
$tpl_ini_array['web']['php_fpm_init_script'] = $conf['nginx']['php_fpm_init_script'];
$tpl_ini_array['web']['php_fpm_ini_path'] = $conf['nginx']['php_fpm_ini_path'];
$tpl_ini_array['web']['php_fpm_pool_dir'] = $conf['nginx']['php_fpm_pool_dir'];
$tpl_ini_array['web']['php_fpm_start_port'] = $conf['nginx']['php_fpm_start_port'];
$tpl_ini_array['web']['php_fpm_socket_dir'] = $conf['nginx']['php_fpm_socket_dir'];
$tpl_ini_array['web']['server_type'] = 'nginx';
$tpl_ini_array['global']['webserver'] = 'nginx';
}
......
"""
/**********************************************************************
FILE : $RCSfile: squidRewriteRules.py,v $
PURPOSE : Rule set for icoya redirector
NOTES :
AUTHOR : Simon Eisenmann
COPYRIGHT: (c) 2003,2004 by struktur AG
DATE : 28JAN2003
REVISION : $Revision: 1.12 $
VERSION : $Id: squidRewriteRules.py,v 1.12 2004/08/06 08:16:19 longsleep Exp $ (Author: $Author: longsleep $)
struktur AG Phone: +49 711 8966560
Junghansstr. 5 Fax: +49 711 89665610
70469 Stuttgart email: info@struktur.de
GERMANY
http://www.struktur.de
http://www.strukturag.com
**********************************************************************/
Reloadable module allows arbitrary url transformations.
Automatic reload of the rules
+++++++++++++++++++++++++++++++++++
NOTE: use the reload after parameter to auto reload this module
after x requests. Use -1 to disable auto reload
Logging
+++++++++++++++++++++++++++++++++++
NOTE: set debug to 1 to enable logging
define the logfile in the logfile variable (enter full path)
"""
import re, sys
try:
import py
except ImportError:
pass
"""
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
begin of configuration
"""
# log mode (set to 1 to enable logging)
debug = 0
# logfile for debugging (only required when debug == 1)
logfile = "/etc/squid/redirector_class.log"
# set this to -1 to get best performance (no reload)
reload_after = -1
# define sitemap matching regex mapping
# MODIFY THIS REWRITE RULE AS NEEDED FOR YOUR SITE
rewrites = (
### HTTP SSL/encrypted webmail rewrite ### You can use this as an example for your ssl virtualhosted website
<tmpl_loop name="squid_rewrite_rules">
(r'{tmpl_var name="rewrite_url_src"}', r'{tmpl_var name="rewrite_url_dest"}\1', 'P,L'),
</tmpl_loop>
)
"""
end of configuration
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
"""
compiled_rewrites = None
def log(s):
""" Logging facility.
"""
try:
f = open(logfile, "a")
except IOError:
print >> sys.stderr, s
return
f.write('%s\n' % s)
f.flush()
f.close()
def init():
global compiled_rewrites
compiled_rewrites = []
for rewrite in rewrites:
regexp = re.compile(rewrite[0])
template = rewrite[1]
flags = {}
for flag in rewrite[2].split(','):
parts = flag.split('=')
flag = parts[0]
option = None
if flag == 'R':
if len(parts) > 1:
option = "%s:" % parts[1]
else:
option = '302:'
flags[flag] = option
compiled = (regexp, template, flags)
if debug:
log('compiled: %s' % str((regexp.pattern, template, flags)))
compiled_rewrites.append(compiled)
compiled_rewrites = tuple(compiled_rewrites)
def rewrite(url, src_address=''):
""" just rewrites urls.
"""
if debug:
log("args: %s" % str((url, src_address)))
newurl = None
for regexp, template, flags in compiled_rewrites:
m = regexp.match(url)
if m is not None and template != '-':
if debug:
log("match.groups ('%s'): %s" % (regexp.pattern, str(m.groups())))
url = newurl = "%s%s" % (flags.get('R', ''), m.expand(template))
if debug:
log('newurl: %s' % newurl)
if 'L' in flags:
break
if newurl is not None:
if debug:
log('finalurl: %s' % newurl)
return newurl
# redirect to something we can match by a squid acl
# this special non existing domain should be denied
# by squid with a http_reply_access line
return "http://denypool/denyme"
def test_foobar_redirection():
assert rewrite('http://foobar.com/foo/bar') == '302:http://www.foobar.com/foo/bar'
assert rewrite('http://foobar.de/foo/bar') == '302:http://www.foobar.com/foo/bar'
assert rewrite('http://www.foobar.de/foo/bar') == '302:http://www.foobar.com/foo/bar'
assert rewrite('http://foobar-portal.de/foo/bar') == '302:http://www.foobar.com/foo/bar'
assert rewrite('http://www.foobar-portal.de/foo/bar') == '302:http://www.foobar.com/foo/bar'
assert rewrite('http://foobar-portal-europe.de/foo/bar') == '302:http://www.foobar.com/foo/bar'
assert rewrite('http://www.foobar-portal-europe.de/foo/bar') == '302:http://www.foobar.com/foo/bar'
# shouldn't redirect, just rewrite
assert not rewrite('http://www.foobar.com/foo/bar').startswith('302:')
def test_foobarbacon_redirection():
assert rewrite('http://foobar-bacon.com/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
assert rewrite('http://foobar-bacon.de/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
assert rewrite('http://www.foobar-bacon.de/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
assert rewrite('http://foobar-bacon-europe.de/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
assert rewrite('http://www.foobar-bacon-europe.de/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
assert rewrite('http://foobar-bacon-europe.com/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
assert rewrite('http://www.foobar-bacon-europe.com/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
assert rewrite('http://foobar-bacon.net/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
assert rewrite('http://www.foobar-bacon.net/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
# shouldn't redirect, just rewrite
assert not rewrite('http://www.foobar-bacon.com/foo/bar').startswith('302:')
def test_virtual_hosting():
assert rewrite('http://www.foobar.com/foo/bar') == 'http://backendpool/VirtualHostBase/http/www.foobar.com/foobarportal/VirtualHostRoot/foo/bar'
assert rewrite('http://www.foobar.com:8088/foo/bar') == 'http://backendpool/VirtualHostBase/http/www.foobar.com:8088/foobarportal/VirtualHostRoot/foo/bar'
assert rewrite('http://www.foobar-bacon.com/foo/bar') == 'http://backendpool/VirtualHostBase/http/www.foobar-bacon.com/foobarbacon/VirtualHostRoot/foo/bar'
assert rewrite('http://www.foobar-bacon.com:8088/foo/bar') == 'http://backendpool/VirtualHostBase/http/www.foobar-bacon.com:8088/foobarbacon/VirtualHostRoot/foo/bar'
def test_zmi():
assert rewrite('http://www.foobar.com/--zmi--/foo/bar') == 'http://backendpool/VirtualHostBase/http/www.foobar.com/VirtualHostRoot/_vh_--zmi--/foo/bar'
assert rewrite('http://www.foobar.com:8088/--zmi--/foo/bar') == 'http://backendpool/VirtualHostBase/http/www.foobar.com:8088/VirtualHostRoot/_vh_--zmi--/foo/bar'
def test_repos():
assert rewrite('http://www.foobar.com/--repos--/foo/bar') == 'http://localhost/--repos--/foo/bar'
assert rewrite('http://www.foobar.com:8088/--repos--/foo/bar') == 'http://localhost/--repos--/foo/bar'
if debug:
log("reloading user redirector module")
init()
if debug:
log("reloaded user redirector module")
......@@ -289,6 +289,23 @@ class apache2_plugin {
$app->log('Websites cannot be owned by the root user or group.',LOGLEVEL_WARN);
return 0;
}
// Create group and user, if not exist
$app->uses('system');
$groupname = escapeshellcmd($data['new']['system_group']);
if($data['new']['system_group'] != '' && !$app->system->is_group($data['new']['system_group'])) {
exec('groupadd '.$groupname);
if($apache_chrooted) $this->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' groupadd '.$groupname);
$app->log('Adding the group: '.$groupname,LOGLEVEL_DEBUG);
}
$username = escapeshellcmd($data['new']['system_user']);
if($data['new']['system_user'] != '' && !$app->system->is_user($data['new']['system_user'])) {
exec('useradd -d '.escapeshellcmd($data['new']['document_root'])." -g $groupname -G sshusers $username -s /bin/false");
if($apache_chrooted) $this->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' useradd -d '.escapeshellcmd($data['new']['document_root'])." -g $groupname -G sshusers $username -s /bin/false");
$app->log('Adding the user: '.$username,LOGLEVEL_DEBUG);
}
//* If the client of the site has been changed, we have a change of the document root
if($this->action == 'update' && $data['new']['document_root'] != $data['old']['document_root']) {
......@@ -511,23 +528,6 @@ class apache2_plugin {
exec('chown -R '.$data['new']['system_user'].':'.$data['new']['system_group'].' '.$error_page_path);
} // end copy error docs
// Create group and user, if not exist
$app->uses('system');
$groupname = escapeshellcmd($data['new']['system_group']);
if($data['new']['system_group'] != '' && !$app->system->is_group($data['new']['system_group'])) {
exec('groupadd '.$groupname);
if($apache_chrooted) $this->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' groupadd '.$groupname);
$app->log('Adding the group: '.$groupname,LOGLEVEL_DEBUG);
}
$username = escapeshellcmd($data['new']['system_user']);
if($data['new']['system_user'] != '' && !$app->system->is_user($data['new']['system_user'])) {
exec('useradd -d '.escapeshellcmd($data['new']['document_root'])." -g $groupname -G sshusers $username -s /bin/false");
if($apache_chrooted) $this->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' useradd -d '.escapeshellcmd($data['new']['document_root'])." -g $groupname -G sshusers $username -s /bin/false");
$app->log('Adding the user: '.$username,LOGLEVEL_DEBUG);
}
// Set the quota for the user
if($username != '' && $app->system->is_user($username)) {
if($data['new']['hd_quota'] > 0) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment