Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f685956930 |
@@ -28,6 +28,7 @@ return array(
|
||||
'varname' => 'documentroot_prefix',
|
||||
'type' => 'string',
|
||||
'default' => '/var/customers/webs/',
|
||||
'plausibility_check_method' => 'checkPathConflicts',
|
||||
'save_method' => 'storeSettingField',
|
||||
),
|
||||
'system_ipaddress' => array(
|
||||
@@ -58,6 +59,22 @@ return array(
|
||||
'default' => '',
|
||||
'save_method' => 'storeSettingHostname',
|
||||
),
|
||||
'system_froxlordirectlyviahostname' => array(
|
||||
'label' => $lng['serversettings']['froxlordirectlyviahostname'],
|
||||
'settinggroup' => 'system',
|
||||
'varname' => 'froxlordirectlyviahostname',
|
||||
'type' => 'bool',
|
||||
'default' => false,
|
||||
'save_method' => 'storeSettingField',
|
||||
),
|
||||
'system_stdsubdomain' => array(
|
||||
'label' => $lng['serversettings']['stdsubdomainhost'],
|
||||
'settinggroup' => 'system',
|
||||
'varname' => 'stdsubdomain',
|
||||
'type' => 'string',
|
||||
'default' => '',
|
||||
'save_method' => 'storeSettingHostname',
|
||||
),
|
||||
'system_mysql_access_host' => array(
|
||||
'label' => $lng['serversettings']['mysql_access_host'],
|
||||
'settinggroup' => 'system',
|
||||
@@ -84,18 +101,6 @@ return array(
|
||||
'default' => true,
|
||||
'save_method' => 'storeSettingField',
|
||||
),
|
||||
'system_httpuser' => array(
|
||||
'settinggroup' => 'system',
|
||||
'varname' => 'httpuser',
|
||||
'type' => 'hidden',
|
||||
'default' => 'www-data',
|
||||
),
|
||||
'system_httpgroup' => array(
|
||||
'settinggroup' => 'system',
|
||||
'varname' => 'httpgroup',
|
||||
'type' => 'hidden',
|
||||
'default' => 'www-data',
|
||||
),
|
||||
'system_debug_cron' => array(
|
||||
'label' => $lng['serversettings']['cron']['debug'],
|
||||
'settinggroup' => 'system',
|
||||
|
||||
36
actions/admin/settings/125.multiserver.php
Normal file
36
actions/admin/settings/125.multiserver.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Froxlor project.
|
||||
* Copyright (c) 2010 the Froxlor Team (see authors).
|
||||
*
|
||||
* For the full copyright and license information, please view the COPYING
|
||||
* file that was distributed with this source code. You can also view the
|
||||
* COPYING file online at http://files.froxlor.org/misc/COPYING.txt
|
||||
*
|
||||
* @copyright (c) the authors
|
||||
* @author Froxlor team <team@froxlor.org> (2010-)
|
||||
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
|
||||
* @package Settings
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
return array(
|
||||
'groups' => array(
|
||||
'multiserver' => array(
|
||||
'title' => $lng['admin']['multiserver'],
|
||||
'fields' => array(
|
||||
'multiserver_enabled' => array(
|
||||
'label' => $lng['multiserver']['enabled'],
|
||||
'settinggroup' => 'multiserver',
|
||||
'varname' => 'enabled',
|
||||
'type' => 'bool',
|
||||
'default' => false,
|
||||
'save_method' => 'storeSettingField',
|
||||
'overview_option' => true,
|
||||
'disabled' => true
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
@@ -27,9 +27,9 @@ return array(
|
||||
'settinggroup' => 'system',
|
||||
'varname' => 'webserver',
|
||||
'type' => 'option',
|
||||
'default' => 'apache2',
|
||||
'default' => 'Apache2',
|
||||
'option_mode' => 'one',
|
||||
'option_options' => array('apache2' => 'Apache 2', 'lighttpd' => 'ligHTTPd', 'nginx' => 'Nginx'),
|
||||
'option_options' => array('apache2' => 'Apache 2', 'lighttpd' => 'ligHTTPd'),
|
||||
'save_method' => 'storeSettingField',
|
||||
'overview_option' => true
|
||||
),
|
||||
@@ -84,22 +84,6 @@ return array(
|
||||
'default' => '/etc/init.d/apache2 reload',
|
||||
'save_method' => 'storeSettingField',
|
||||
),
|
||||
'system_phpreload_command' => array(
|
||||
'label' => $lng['serversettings']['phpreload_command'],
|
||||
'settinggroup' => 'system',
|
||||
'varname' => 'phpreload_command',
|
||||
'type' => 'string',
|
||||
'default' => '',
|
||||
'save_method' => 'storeSettingField',
|
||||
),
|
||||
'system_nginx_php_backend' => array(
|
||||
'label' => $lng['serversettings']['nginx_php_backend'],
|
||||
'settinggroup' => 'system',
|
||||
'varname' => 'nginx_php_backend',
|
||||
'type' => 'string',
|
||||
'default' => '127.0.0.1:8888',
|
||||
'save_method' => 'storeSettingField',
|
||||
),
|
||||
'system_mod_log_sql' => array(
|
||||
'label' => $lng['serversettings']['mod_log_sql'],
|
||||
'settinggroup' => 'system',
|
||||
@@ -269,4 +253,4 @@ return array(
|
||||
),
|
||||
);
|
||||
|
||||
?>
|
||||
?>
|
||||
@@ -44,14 +44,6 @@ return array(
|
||||
'default' => '/var/www/cgi-bin/',
|
||||
'save_method' => 'storeSettingField',
|
||||
),
|
||||
'perl_server' => array(
|
||||
'label' => $lng['serversettings']['perl_server'],
|
||||
'settinggroup' => 'serversettings',
|
||||
'varname' => 'perl_server',
|
||||
'type' => 'string',
|
||||
'default' => 'unix:/var/run/nginx/cgiwrap-dispatch.sock',
|
||||
'save_method' => 'storeSettingField',
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
@@ -96,8 +96,8 @@ if($userinfo['change_serversettings'] == '1')
|
||||
'<VIRTUAL_UID_MAPS>' => $settings['system']['vmail_uid'],
|
||||
'<VIRTUAL_GID_MAPS>' => $settings['system']['vmail_gid'],
|
||||
'<SSLPROTOCOLS>' => ($settings['system']['use_ssl'] == '1') ? 'imaps pop3s' : '',
|
||||
'<CUSTOMER_TMP>' => ($settings['system']['mod_fcgid_tmpdir'] != '') ? makeCorrectDir($settings['system']['mod_fcgid_tmpdir']) : '/tmp/',
|
||||
'<BASE_PATH>' => makeCorrectDir(dirname(__FILE__))
|
||||
'<REALTIME_PORT>' => $settings['system']['realtime_port'],
|
||||
'<CUSTOMER_TMP>' => ($settings['system']['mod_fcgid_tmpdir'] != '') ? makeCorrectDir($settings['system']['mod_fcgid_tmpdir']) : '/tmp/'
|
||||
);
|
||||
$files = '';
|
||||
$configpage = '';
|
||||
|
||||
@@ -107,12 +107,10 @@ if($page == 'customers'
|
||||
$last_login = ((int)$row['lastlogin_succ'] == 0) ? $lng['panel']['neverloggedin'] : date('d.m.Y', $row['lastlogin_succ']);
|
||||
|
||||
$column_style = '';
|
||||
$unlock_link = '';
|
||||
if($row['loginfail_count'] >= $settings['login']['maxloginattempts']
|
||||
&& $row['lastlogin_fail'] > (time() - $settings['login']['deactivatetime'])
|
||||
) {
|
||||
$column_style = ' style="background-color: #f99122;"';
|
||||
$unlock_link = '<a href="'.$filename.'?s='.$s.'&page='.$page.'&action=unlock&id='.$row['customerid'].'">'.$lng['panel']['unlock'].'</a><br />';
|
||||
}
|
||||
|
||||
$row = str_replace_array('-1', 'UL', $row, 'diskspace traffic mysqls emails email_accounts email_forwarders ftps tickets subdomains email_autoresponder');
|
||||
@@ -146,31 +144,6 @@ if($page == 'customers'
|
||||
redirectTo('index.php', Array('action' => 'login'));
|
||||
}
|
||||
}
|
||||
elseif($action == 'unlock'
|
||||
&& $id != 0)
|
||||
{
|
||||
$result = $db->query_first("SELECT * FROM `" . TABLE_PANEL_CUSTOMERS . "` WHERE `customerid`='" . (int)$id . "' " . ($userinfo['customers_see_all'] ? '' : " AND `adminid` = '" . $db->escape($userinfo['adminid']) . "' "));
|
||||
|
||||
if($result['loginname'] != '')
|
||||
{
|
||||
if(isset($_POST['send'])
|
||||
&& $_POST['send'] == 'send')
|
||||
{
|
||||
$result = $db->query("UPDATE
|
||||
`" . TABLE_PANEL_CUSTOMERS . "`
|
||||
SET
|
||||
`loginfail_count` = '0'
|
||||
WHERE
|
||||
`customerid`= '" . (int)$id . "'"
|
||||
);
|
||||
redirectTo($filename, Array('page' => $page, 's' => $s));
|
||||
}
|
||||
else
|
||||
{
|
||||
ask_yesno('customer_reallyunlock', $filename, array('id' => $id, 'page' => $page, 'action' => $action), $result['loginname']);
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif($action == 'delete'
|
||||
&& $id != 0)
|
||||
{
|
||||
|
||||
@@ -141,22 +141,13 @@ if($page == 'ipsandports'
|
||||
$vhostcontainer = intval($_POST['vhostcontainer']);
|
||||
$specialsettings = validate(str_replace("\r\n", "\n", $_POST['specialsettings']), 'specialsettings', '/^[^\0]*$/');
|
||||
$vhostcontainer_servername_statement = intval($_POST['vhostcontainer_servername_statement']);
|
||||
$ssl = intval($_POST['ssl']);
|
||||
$ssl_cert_file = validate($_POST['ssl_cert_file'], 'ssl_cert_file');
|
||||
$ssl_key_file = validate($_POST['ssl_key_file'], 'ssl_key_file');
|
||||
$ssl_ca_file = validate($_POST['ssl_ca_file'], 'ssl_ca_file');
|
||||
$ssl_cert_chainfile = validate($_POST['ssl_cert_chainfile'], 'ssl_cert_chainfile');
|
||||
$default_vhostconf_domain = validate(str_replace("\r\n", "\n", $_POST['default_vhostconf_domain']), 'default_vhostconf_domain', '/^[^\0]*$/');
|
||||
$docroot = validate($_POST['docroot'], 'docroot');
|
||||
if((int)$settings['system']['use_ssl'] == 1)
|
||||
{
|
||||
$ssl = intval($_POST['ssl']);
|
||||
$ssl_cert_file = validate($_POST['ssl_cert_file'], 'ssl_cert_file');
|
||||
$ssl_key_file = validate($_POST['ssl_key_file'], 'ssl_key_file');
|
||||
$ssl_ca_file = validate($_POST['ssl_ca_file'], 'ssl_ca_file');
|
||||
$ssl_cert_chainfile = validate($_POST['ssl_cert_chainfile'], 'ssl_cert_chainfile');
|
||||
} else {
|
||||
$ssl = 0;
|
||||
$ssl_cert_file = '';
|
||||
$ssl_key_file = '';
|
||||
$ssl_ca_file = '';
|
||||
$ssl_cert_chainfile = '';
|
||||
}
|
||||
|
||||
if($listen_statement != '1')
|
||||
{
|
||||
@@ -278,22 +269,13 @@ if($page == 'ipsandports'
|
||||
$vhostcontainer = intval($_POST['vhostcontainer']);
|
||||
$specialsettings = validate(str_replace("\r\n", "\n", $_POST['specialsettings']), 'specialsettings', '/^[^\0]*$/');
|
||||
$vhostcontainer_servername_statement = intval($_POST['vhostcontainer_servername_statement']);
|
||||
$ssl = intval($_POST['ssl']);
|
||||
$ssl_cert_file = validate($_POST['ssl_cert_file'], 'ssl_cert_file');
|
||||
$ssl_key_file = validate($_POST['ssl_key_file'], 'ssl_key_file');
|
||||
$ssl_ca_file = validate($_POST['ssl_ca_file'], 'ssl_ca_file');
|
||||
$ssl_cert_chainfile = validate($_POST['ssl_cert_chainfile'], 'ssl_cert_chainfile');
|
||||
$default_vhostconf_domain = validate(str_replace("\r\n", "\n", $_POST['default_vhostconf_domain']), 'default_vhostconf_domain', '/^[^\0]*$/');
|
||||
$docroot = validate($_POST['docroot'], 'docroot');
|
||||
if((int)$settings['system']['use_ssl'] == 1)
|
||||
{
|
||||
$ssl = intval($_POST['ssl']);
|
||||
$ssl_cert_file = validate($_POST['ssl_cert_file'], 'ssl_cert_file');
|
||||
$ssl_key_file = validate($_POST['ssl_key_file'], 'ssl_key_file');
|
||||
$ssl_ca_file = validate($_POST['ssl_ca_file'], 'ssl_ca_file');
|
||||
$ssl_cert_chainfile = validate($_POST['ssl_cert_chainfile'], 'ssl_cert_chainfile');
|
||||
} else {
|
||||
$ssl = 0;
|
||||
$ssl_cert_file = '';
|
||||
$ssl_key_file = '';
|
||||
$ssl_ca_file = '';
|
||||
$ssl_cert_chainfile = '';
|
||||
}
|
||||
|
||||
if($listen_statement != '1')
|
||||
{
|
||||
|
||||
@@ -56,7 +56,7 @@ if($page == 'tickets'
|
||||
$paging = new paging($userinfo, $db, TABLE_PANEL_TICKETS, $fields, $settings['panel']['paging'], $settings['panel']['natsorting']);
|
||||
$paging->sortfield = 'lastchange';
|
||||
$paging->sortorder = 'desc';
|
||||
$result = $db->query('SELECT `main`.`id`, `main`.`customerid`, (SELECT COUNT(`sub`.`id`) FROM `' . TABLE_PANEL_TICKETS . '` `sub` WHERE `sub`.`answerto` = `main`.`id`) as `ticket_answers`, `main`.`lastchange`, `main`.`subject`, `main`.`status`, `main`.`lastreplier`, `main`.`priority` FROM `' . TABLE_PANEL_TICKETS . '` as `main` WHERE `main`.`answerto` = "0" AND `archived` = "0" ' . ($userinfo['customers_see_all'] ? '' : ' AND `adminid` = "' . (int)$userinfo['adminid'] . '"') . $paging->getSqlWhere(true) . " " . $paging->getSqlOrderBy() . " " . $paging->getSqlLimit());
|
||||
$result = $db->query('SELECT `main`.`id`, `main`.`customerid`, (SELECT COUNT(`sub`.`id`) FROM `' . TABLE_PANEL_TICKETS . '` `sub` WHERE `sub`.`answerto` = `main`.`id`) as `ticket_answers`, `main`.`lastchange`, `main`.`subject`, `main`.`status`, `main`.`lastreplier`, `main`.`priority` FROM `' . TABLE_PANEL_TICKETS . '` as `main` WHERE `main`.`answerto` = "0" AND `archived` = "0" AND `adminid` = "' . (int)$userinfo['adminid'] . '" ' . $paging->getSqlWhere(true) . " " . $paging->getSqlOrderBy() . " " . $paging->getSqlLimit());
|
||||
$paging->setEntries($db->num_rows($result));
|
||||
$sortcode = $paging->getHtmlSortCode($lng);
|
||||
$arrowcode = $paging->getHtmlArrowCode($filename . '?page=' . $page . '&s=' . $s);
|
||||
@@ -473,8 +473,7 @@ elseif($page == 'categories'
|
||||
|
||||
if($order < 1 || $order >= 1000)
|
||||
{
|
||||
// use the latest available
|
||||
$order = ticket::getHighestOrderNumber($db) + 1;
|
||||
$order = 1;
|
||||
}
|
||||
|
||||
if($category == '')
|
||||
@@ -490,7 +489,6 @@ elseif($page == 'categories'
|
||||
}
|
||||
else
|
||||
{
|
||||
$order = ticket::getHighestOrderNumber($db) + 1;
|
||||
eval("echo \"" . getTemplate("ticket/tickets_newcategory") . "\";");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -126,11 +126,7 @@ elseif($page == 'mysqls')
|
||||
}
|
||||
else
|
||||
{
|
||||
$dbnamedesc = $result['databasename'];
|
||||
if($result['description'] != '') {
|
||||
$dbnamedesc.= ' ('.$result['description'].')';
|
||||
}
|
||||
ask_yesno('mysql_reallydelete', $filename, array('id' => $id, 'page' => $page, 'action' => $action), $dbnamedesc);
|
||||
ask_yesno('mysql_reallydelete', $filename, array('id' => $id, 'page' => $page, 'action' => $action), $result['databasename']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -462,7 +462,7 @@ INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) V
|
||||
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (18, 'system', 'vmail_homedir', '/var/customers/mail/');
|
||||
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (19, 'system', 'bindconf_directory', '/etc/bind/');
|
||||
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (20, 'system', 'bindreload_command', '/etc/init.d/bind9 reload');
|
||||
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (22, 'panel', 'version', '0.9.15');
|
||||
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (22, 'panel', 'version', '0.9.14');
|
||||
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (23, 'system', 'hostname', 'SERVERNAME');
|
||||
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (24, 'login', 'maxloginattempts', '3');
|
||||
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (25, 'login', 'deactivatetime', '900');
|
||||
@@ -594,9 +594,6 @@ INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) V
|
||||
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (153, 'system', 'awstats_icons', '/usr/share/awstats/icon/');
|
||||
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (154, 'system', 'ssl_cert_chainfile', '');
|
||||
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (155, 'login', 'domain_login', '0');
|
||||
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (156, 'system', 'nginx_php_backend', '127.0.0.1:8888');
|
||||
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (157, 'system', 'perl_server', 'unix:/var/run/nginx/cgiwrap-dispatch.sock');
|
||||
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (158, 'system', 'phpreload_command', '');
|
||||
|
||||
# --------------------------------------------------------
|
||||
|
||||
|
||||
@@ -22,12 +22,6 @@
|
||||
* installer, (c) 1999 - 2004 phpBB Group.
|
||||
*/
|
||||
|
||||
// ensure that default timezone is set
|
||||
if(function_exists("date_default_timezone_set") && function_exists("date_default_timezone_get"))
|
||||
{
|
||||
@date_default_timezone_set(@date_default_timezone_get());
|
||||
}
|
||||
|
||||
if(file_exists('../lib/userdata.inc.php'))
|
||||
{
|
||||
/**
|
||||
@@ -449,11 +443,6 @@ else
|
||||
{
|
||||
$webserver = 'lighttpd';
|
||||
}
|
||||
elseif(substr(strtoupper(@php_sapi_name()), 0, 8) == "NGINX"
|
||||
|| stristr($_SERVER['SERVER_SOFTWARE'], "nginx"))
|
||||
{
|
||||
$webserver = 'nginx';
|
||||
}
|
||||
else
|
||||
{
|
||||
// we don't need to bail out, since unknown does not affect any critical installation routines
|
||||
@@ -676,14 +665,6 @@ if(isset($_POST['installstep'])
|
||||
$db->query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `value` = '/etc/lighttpd/lighttpd.pem' WHERE `settinggroup` = 'system' AND `varname` = 'ssl_cert_file'");
|
||||
$ssettings = '';
|
||||
}
|
||||
elseif($webserver == "nginx")
|
||||
{
|
||||
$db->query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `value` = '/etc/nginx/sites-enabled/' WHERE `settinggroup` = 'system' AND `varname` = 'apacheconf_vhost'");
|
||||
$db->query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `value` = '/etc/nginx/sites-enabled/' WHERE `settinggroup` = 'system' AND `varname` = 'apacheconf_diroptions'");
|
||||
$db->query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `value` = '/etc/nginx/froxlor-htpasswd/' WHERE `settinggroup` = 'system' AND `varname` = 'apacheconf_htpasswddir'");
|
||||
$db->query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `value` = '/etc/init.d/nginx reload' WHERE `settinggroup` = 'system' AND `varname` = 'apachereload_command'");
|
||||
$ssettings = '';
|
||||
}
|
||||
|
||||
// insert the lastcronrun to be the installation date
|
||||
|
||||
@@ -914,7 +895,7 @@ else
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="main_field_name"<?php echo ((!empty($_POST['installstep']) && $webserver == '') ? ' style="color:red;"' : ''); ?>><?php echo $lng['install']['webserver']; ?>:</td>
|
||||
<td class="main_field_display"><input type="radio" name="webserver" value="apache2" <?php echo $webserver == "apache2" ? 'checked="checked"' : "" ?>/>Apache2 <br /><input type="radio" name="webserver" value="lighttpd" <?php echo $webserver == "lighttpd" ? 'checked="checked"' : "" ?>/>Lighttpd2 <br /><input type="radio" name="webserver" value="nginx" <?php echo $webserver == "nginx" ? 'checked="checked"' : "" ?>/>Nginx</td>
|
||||
<td class="main_field_display"><input type="radio" name="webserver" value="apache2" <?php echo $webserver == "apache2" ? 'checked="checked"' : "" ?>/>Apache2 <br /><input type="radio" name="webserver" value="lighttpd" <?php echo $webserver == "lighttpd" ? 'checked="checked"' : "" ?>/>Lighttpd</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="main_field_name"<?php echo ((!empty($_POST['installstep']) && $serverip == '') ? ' style="color:red;"' : ''); ?>><?php echo $lng['install']['httpuser']; ?>:</td>
|
||||
|
||||
@@ -1169,37 +1169,6 @@ if(isFroxlorVersion('0.9.14-svn5'))
|
||||
updateToVersion('0.9.14-svn6');
|
||||
}
|
||||
|
||||
if(isFroxlorVersion('0.9.14-svn6'))
|
||||
{
|
||||
showUpdateStep("Updating from 0.9.14-svn6 to 0.9.14-svn10", false);
|
||||
|
||||
// remove deprecated realtime-feature
|
||||
showUpdateStep("Removing realtime-feature (deprecated)");
|
||||
$db->query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'system' AND `varname` = 'realtime_port';");
|
||||
lastStepStatus(0);
|
||||
|
||||
// remove deprecated panel_navigation
|
||||
showUpdateStep("Removing table `panel_navigation` (deprecated)");
|
||||
$db->query("DROP TABLE IF EXISTS `panel_navigation`;");
|
||||
lastStepStatus(0);
|
||||
|
||||
// remove deprecated panel_cronscript
|
||||
showUpdateStep("Removing table `panel_cronscript` (deprecated)");
|
||||
$db->query("DROP TABLE IF EXISTS `panel_cronscript`;");
|
||||
lastStepStatus(0);
|
||||
|
||||
// make ticket-system ipv6 compatible
|
||||
showUpdateStep("Altering IP field in panel_tickets (IPv6 compatibility)");
|
||||
$db->query("ALTER TABLE `" . TABLE_PANEL_TICKETS . "` MODIFY `ip` varchar(39) NOT NULL default '';");
|
||||
lastStepStatus(0);
|
||||
|
||||
showUpdateStep("Removing deprecated legacy-cronjob from database");
|
||||
$db->query("DELETE FROM `".TABLE_PANEL_CRONRUNS."` WHERE `cronfile` ='cron_legacy.php';");
|
||||
lastStepStatus(0);
|
||||
|
||||
updateToVersion('0.9.14-svn10');
|
||||
}
|
||||
|
||||
/*
|
||||
* revert database changes we did for multiserver-support
|
||||
* before branching - sorry guys :/
|
||||
@@ -1242,6 +1211,37 @@ if(isFroxlorVersion('0.9.14-svn9'))
|
||||
updateToVersion('0.9.14-svn10');
|
||||
}
|
||||
|
||||
if(isFroxlorVersion('0.9.14-svn6'))
|
||||
{
|
||||
showUpdateStep("Updating from 0.9.14-svn6 to 0.9.14-svn10", false);
|
||||
|
||||
// remove deprecated realtime-feature
|
||||
showUpdateStep("Removing realtime-feature (deprecated)");
|
||||
$db->query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'system' AND `varname` = 'realtime_port';");
|
||||
lastStepStatus(0);
|
||||
|
||||
// remove deprecated panel_navigation
|
||||
showUpdateStep("Removing table `panel_navigation` (deprecated)");
|
||||
$db->query("DROP TABLE IF EXISTS `panel_navigation`;");
|
||||
lastStepStatus(0);
|
||||
|
||||
// remove deprecated panel_cronscript
|
||||
showUpdateStep("Removing table `panel_cronscript` (deprecated)");
|
||||
$db->query("DROP TABLE IF EXISTS `panel_cronscript`;");
|
||||
lastStepStatus(0);
|
||||
|
||||
// make ticket-system ipv6 compatible
|
||||
showUpdateStep("Altering IP field in panel_tickets (IPv6 compatibility)");
|
||||
$db->query("ALTER TABLE `" . TABLE_PANEL_TICKETS . "` MODIFY `ip` varchar(39) NOT NULL default '';");
|
||||
lastStepStatus(0);
|
||||
|
||||
showUpdateStep("Removing deprecated legacy-cronjob from database");
|
||||
$db->query("DELETE FROM `".TABLE_PANEL_CRONRUNS."` WHERE `cronfile` ='cron_legacy.php';");
|
||||
lastStepStatus(0);
|
||||
|
||||
updateToVersion('0.9.14-svn10');
|
||||
}
|
||||
|
||||
if(isFroxlorVersion('0.9.14-svn10'))
|
||||
{
|
||||
showUpdateStep("Updating from 0.9.14-svn10 to 0.9.14 final");
|
||||
@@ -1249,23 +1249,3 @@ if(isFroxlorVersion('0.9.14-svn10'))
|
||||
|
||||
updateToVersion('0.9.14');
|
||||
}
|
||||
|
||||
if(isFroxlorVersion('0.9.14'))
|
||||
{
|
||||
showUpdateStep("Updating from 0.9.14 to 0.9.15-svn1", false);
|
||||
|
||||
showUpdateStep("Adding new settings for Nginx support");
|
||||
$db->query("INSERT INTO `".TABLE_PANEL_SETTINGS."` (`settinggroup`, `varname`, `value`) VALUES ('system', 'nginx_php_backend', '127.0.0.1:8888')");
|
||||
$db->query("INSERT INTO `".TABLE_PANEL_SETTINGS."` (`settinggroup`, `varname`, `value`) VALUES ('system', 'perl_server', 'unix:/var/run/nginx/cgiwrap-dispatch.sock')");
|
||||
$db->query("INSERT INTO `".TABLE_PANEL_SETTINGS."` (`settinggroup`, `varname`, `value`) VALUES ('system', 'phpreload_command', '')");
|
||||
|
||||
updateToVersion('0.9.15-svn1');
|
||||
}
|
||||
|
||||
if(isFroxlorVersion('0.9.15-svn1'))
|
||||
{
|
||||
showUpdateStep("Updating from 0.9.15-svn1 to 0.9.15 final");
|
||||
lastStepStatus(0);
|
||||
|
||||
updateToVersion('0.9.15');
|
||||
}
|
||||
|
||||
@@ -320,7 +320,7 @@ class ticket
|
||||
if ($_mailerror) {
|
||||
$rstlog = FroxlorLogger::getInstanceOf(array('loginname' => 'ticket_class'), $this->db, $this->settings);
|
||||
$rstlog->logAction(ADM_ACTION, LOG_ERR, "Error sending mail: " . $mailerr_msg);
|
||||
standard_error('errorsendingmail', $usr['email']);
|
||||
standard_error(array('errorsendingmail', $usr['email']));
|
||||
}
|
||||
|
||||
$mail->ClearAddresses();
|
||||
@@ -348,7 +348,7 @@ class ticket
|
||||
if ($_mailerror) {
|
||||
$rstlog = FroxlorLogger::getInstanceOf(array('loginname' => 'ticket_class'), $this->db, $this->settings);
|
||||
$rstlog->logAction(ADM_ACTION, LOG_ERR, "Error sending mail: " . $mailerr_msg);
|
||||
standard_error('errorsendingmail', $admin['email']);
|
||||
standard_error(array('errorsendingmail', $admin['email']));
|
||||
}
|
||||
|
||||
$mail->ClearAddresses();
|
||||
@@ -442,20 +442,6 @@ class ticket
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* get the highest order number
|
||||
*
|
||||
* @param object $_db database-object
|
||||
*
|
||||
* @return int highest order number
|
||||
*/
|
||||
static public function getHighestOrderNumber($_db = null)
|
||||
{
|
||||
$sql = "SELECT MAX(`logicalorder`) as `highestorder` FROM `" . TABLE_PANEL_TICKET_CATS . "`;";
|
||||
$result = $_db->query_first($sql);
|
||||
return (isset($result['highestorder']) ? (int)$result['highestorder'] : 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* returns the last x archived tickets
|
||||
*/
|
||||
|
||||
313
lib/configfiles/etch.inc.php
Normal file
313
lib/configfiles/etch.inc.php
Normal file
@@ -0,0 +1,313 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Froxlor project.
|
||||
* Copyright (c) 2003-2009 the SysCP Team (see authors).
|
||||
* Copyright (c) 2010 the Froxlor Team (see authors).
|
||||
*
|
||||
* For the full copyright and license information, please view the COPYING
|
||||
* file that was distributed with this source code. You can also view the
|
||||
* COPYING file online at http://files.froxlor.org/misc/COPYING.txt
|
||||
*
|
||||
* @copyright (c) the authors
|
||||
* @author Florian Lippert <flo@syscp.org> (2003-2009)
|
||||
* @author Froxlor team <team@froxlor.org> (2010-)
|
||||
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
|
||||
* @package Configfiles
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
return Array(
|
||||
'debian_etch' => Array(
|
||||
'label' => 'Debian 4.0 (Etch) [deprecated]',
|
||||
'services' => Array(
|
||||
'http' => Array(
|
||||
'label' => $lng['admin']['configfiles']['http'],
|
||||
'daemons' => Array(
|
||||
'apache2' => Array(
|
||||
'label' => 'Apache 2',
|
||||
'commands' => Array(
|
||||
'mkdir -p ' . $settings['system']['documentroot_prefix'],
|
||||
'mkdir -p ' . $settings['system']['logfiles_directory'],
|
||||
($settings['system']['deactivateddocroot'] != '') ? 'mkdir -p ' . $settings['system']['deactivateddocroot'] : '',
|
||||
'mkdir -p ' . $settings['system']['mod_fcgid_tmpdir'],
|
||||
'chmod 1777 ' . $settings['system']['mod_fcgid_tmpdir'],
|
||||
'a2dismod userdir',
|
||||
),
|
||||
'restart' => Array(
|
||||
'/etc/init.d/apache2 restart'
|
||||
),
|
||||
),
|
||||
'lighttpd' => Array(
|
||||
'label' => 'Lighttpd Webserver',
|
||||
'commands_1' => Array(
|
||||
'apt-get install lighttpd',
|
||||
),
|
||||
'files' => Array(
|
||||
'etc_lighttpd.conf' => '/etc/lighttpd/lighttpd.conf',
|
||||
),
|
||||
'commands_2' => Array(
|
||||
$configcommand['vhost'],
|
||||
$configcommand['diroptions'],
|
||||
$configcommand['v_inclighty'],
|
||||
$configcommand['d_inclighty'],
|
||||
'lighty-disable-mod cgi',
|
||||
'lighty-disable-mod fastcgi',
|
||||
'mkdir -p ' . $settings['system']['documentroot_prefix'],
|
||||
'mkdir -p ' . $settings['system']['logfiles_directory'],
|
||||
'mkdir -p ' . $settings['system']['deactivateddocroot'],
|
||||
'mkdir -p ' . $settings['system']['mod_fcgid_tmpdir'],
|
||||
'chmod 1777 ' . $settings['system']['mod_fcgid_tmpdir'],
|
||||
),
|
||||
'restart' => Array(
|
||||
'/etc/init.d/lighttpd restart'
|
||||
)
|
||||
)
|
||||
)
|
||||
),
|
||||
'dns' => Array(
|
||||
'label' => $lng['admin']['configfiles']['dns'],
|
||||
'daemons' => Array(
|
||||
'bind' => Array(
|
||||
'label' => 'Bind9',
|
||||
'commands' => Array(
|
||||
'apt-get install bind9',
|
||||
'echo "include \"' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf\";" >> /etc/bind/named.conf',
|
||||
'touch ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf',
|
||||
'chown root:bind ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf',
|
||||
'chmod 0644 ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf'
|
||||
),
|
||||
'restart' => Array(
|
||||
'/etc/init.d/bind9 restart'
|
||||
)
|
||||
),
|
||||
'powerdns' => Array(
|
||||
'label' => 'PowerDNS',
|
||||
'files' => Array(
|
||||
'etc_powerdns_pdns.conf' => '/etc/powerdns/pdns.conf',
|
||||
'etc_powerdns_pdns-froxlor.conf' => '/etc/powerdns/pdns_froxlor.conf',
|
||||
),
|
||||
'restart' => Array(
|
||||
'/etc/init.d/pdns restart'
|
||||
)
|
||||
),
|
||||
)
|
||||
),
|
||||
'smtp' => Array(
|
||||
'label' => $lng['admin']['configfiles']['smtp'],
|
||||
'daemons' => Array(
|
||||
'postfix' => Array(
|
||||
'label' => 'Postfix',
|
||||
'commands' => Array(
|
||||
'apt-get install postfix postfix-mysql libsasl2-2 libsasl2-modules libsasl2-modules-sql',
|
||||
'mkdir -p /etc/postfix/sasl',
|
||||
'mkdir -p /var/spool/postfix/etc/pam.d',
|
||||
'mkdir -p /var/spool/postfix/var/run/mysqld',
|
||||
'groupadd -g ' . $settings['system']['vmail_gid'] . ' vmail',
|
||||
'useradd -u ' . $settings['system']['vmail_uid'] . ' -g vmail vmail',
|
||||
'mkdir -p ' . $settings['system']['vmail_homedir'],
|
||||
'chown -R vmail:vmail ' . $settings['system']['vmail_homedir'],
|
||||
'touch /etc/postfix/mysql-virtual_alias_maps.cf',
|
||||
'touch /etc/postfix/mysql-virtual_mailbox_domains.cf',
|
||||
'touch /etc/postfix/mysql-virtual_mailbox_maps.cf',
|
||||
'touch /etc/postfix/mysql-virtual_sender_permissions.cf',
|
||||
'touch /etc/postfix/sasl/smtpd.conf',
|
||||
'chown root:root /etc/postfix/main.cf',
|
||||
'chown root:root /etc/postfix/master.cf',
|
||||
'chown root:postfix /etc/postfix/mysql-virtual_alias_maps.cf',
|
||||
'chown root:postfix /etc/postfix/mysql-virtual_mailbox_domains.cf',
|
||||
'chown root:postfix /etc/postfix/mysql-virtual_mailbox_maps.cf',
|
||||
'chown root:postfix /etc/postfix/mysql-virtual_sender_permissions.cf',
|
||||
'chown root:root /etc/postfix/sasl/smtpd.conf',
|
||||
'chmod 0644 /etc/postfix/main.cf',
|
||||
'chmod 0644 /etc/postfix/master.cf',
|
||||
'chmod 0640 /etc/postfix/mysql-virtual_alias_maps.cf',
|
||||
'chmod 0640 /etc/postfix/mysql-virtual_mailbox_domains.cf',
|
||||
'chmod 0640 /etc/postfix/mysql-virtual_mailbox_maps.cf',
|
||||
'chmod 0640 /etc/postfix/mysql-virtual_sender_permissions.cf',
|
||||
'chmod 0600 /etc/postfix/sasl/smtpd.conf',
|
||||
),
|
||||
'files' => Array(
|
||||
'etc_postfix_main.cf' => '/etc/postfix/main.cf',
|
||||
'etc_postfix_master.cf' => '/etc/postfix/master.cf',
|
||||
'etc_postfix_mysql-virtual_alias_maps.cf' => '/etc/postfix/mysql-virtual_alias_maps.cf',
|
||||
'etc_postfix_mysql-virtual_mailbox_domains.cf' => '/etc/postfix/mysql-virtual_mailbox_domains.cf',
|
||||
'etc_postfix_mysql-virtual_mailbox_maps.cf' => '/etc/postfix/mysql-virtual_mailbox_maps.cf',
|
||||
'etc_postfix_mysql-virtual_sender_permissions.cf' => '/etc/postfix/mysql-virtual_sender_permissions.cf',
|
||||
'etc_postfix_sasl_smtpd.conf' => '/etc/postfix/sasl/smtpd.conf'
|
||||
),
|
||||
'restart' => Array(
|
||||
'newaliases',
|
||||
'/etc/init.d/postfix restart'
|
||||
)
|
||||
),
|
||||
'dkim' => Array(
|
||||
'label' => 'DomainKey filter',
|
||||
'commands_1' => Array(
|
||||
'apt-get install dkim-filter',
|
||||
'mkdir -p /etc/postfix/dkim'
|
||||
),
|
||||
'files' => Array(
|
||||
'dkim-filter.conf' => '/etc/dkim-filter.conf'
|
||||
),
|
||||
'commands_2' => Array(
|
||||
'echo "milter_default_action = accept" >> /etc/postfix/main.cf',
|
||||
'echo "milter_protocol = 2" >> /etc/postfix/main.cf',
|
||||
'echo "smtpd_milters = inet:localhost:8891" >> /etc/postfix/main.cf',
|
||||
'echo "non_smtpd_milters = inet:localhost:8891" >> /etc/postfix/main.cf'
|
||||
),
|
||||
'restart' => Array(
|
||||
'/etc/init.d/dkim-filter restart',
|
||||
'/etc/init.d/postfix restart'
|
||||
)
|
||||
),
|
||||
'postfix_mxaccess' => Array(
|
||||
'label' => 'Postfix MX-Access (anti spam)',
|
||||
'files' => Array(
|
||||
'etc_postfix_mx_access' => '/etc/postfix/mx_access',
|
||||
'etc_postfix_main.cf' => '/etc/postfix/main.cf'
|
||||
),
|
||||
'commands_1' => Array(
|
||||
'postmap /etc/postfix/mx_access'
|
||||
),
|
||||
'restart' => Array(
|
||||
'/etc/init.d/postfix restart'
|
||||
)
|
||||
),
|
||||
'exim4' => Array(
|
||||
'label' => 'Exim4',
|
||||
'commands_1' => Array(
|
||||
'dpkg-reconfigure exim4-config',
|
||||
'# choose "no configuration at this time" and "splitted configuration files" in the dialog'
|
||||
),
|
||||
'files' => Array(
|
||||
'etc_exim4_conf.d_acl_30_exim4-config_check_rcpt.rul' => '/etc/exim4/conf.d/acl/30_exim4-config_check_rcpt.rul',
|
||||
'etc_exim4_conf.d_auth_30_froxlor-config' => '/etc/exim4/conf.d/auth/30_froxlor-config',
|
||||
'etc_exim4_conf.d_main_10_froxlor-config_options' => '/etc/exim4/conf.d/main/10_froxlor-config_options',
|
||||
'etc_exim4_conf.d_router_180_froxlor-config' => '/etc/exim4/conf.d/router/180_froxlor-config',
|
||||
'etc_exim4_conf.d_transport_30_froxlor-config' => '/etc/exim4/conf.d/transport/30_froxlor-config'
|
||||
),
|
||||
'commands_2' => Array(
|
||||
'chmod o-rx /var/lib/exim4',
|
||||
'chmod o-rx /etc/exim4/conf.d/main/10_froxlor-config_options'
|
||||
),
|
||||
'restart' => Array(
|
||||
'/etc/init.d/exim4 restart'
|
||||
)
|
||||
)
|
||||
)
|
||||
),
|
||||
'mail' => Array(
|
||||
'label' => $lng['admin']['configfiles']['mail'],
|
||||
'daemons' => Array(
|
||||
'courier' => Array(
|
||||
'label' => 'Courier',
|
||||
'commands' => Array(
|
||||
'apt-get install courier-pop courier-imap courier-authlib-mysql'
|
||||
),
|
||||
'files' => Array(
|
||||
'etc_courier_authdaemonrc' => '/etc/courier/authdaemonrc',
|
||||
'etc_courier_authmysqlrc' => '/etc/courier/authmysqlrc'
|
||||
),
|
||||
'restart' => Array(
|
||||
'/etc/init.d/courier-authdaemon restart',
|
||||
'/etc/init.d/courier-pop restart'
|
||||
)
|
||||
),
|
||||
'dovecot' => Array(
|
||||
'label' => 'Dovecot',
|
||||
'commands' => Array(
|
||||
'apt-get install dovecot-imapd dovecot-pop3d'
|
||||
),
|
||||
'files' => Array(
|
||||
'etc_dovecot_dovecot.conf' => '/etc/dovecot/dovecot.conf',
|
||||
'etc_dovecot_dovecot-sql.conf' => '/etc/dovecot/dovecot-sql.conf'
|
||||
),
|
||||
'restart' => Array(
|
||||
'/etc/init.d/dovecot restart'
|
||||
)
|
||||
)
|
||||
)
|
||||
),
|
||||
'ftp' => Array(
|
||||
'label' => $lng['admin']['configfiles']['ftp'],
|
||||
'daemons' => Array(
|
||||
'proftpd' => Array(
|
||||
'label' => 'ProFTPd',
|
||||
'commands' => Array(
|
||||
'apt-get install proftpd-basic proftpd-mod-mysql'
|
||||
),
|
||||
'files' => Array(
|
||||
'etc_proftpd_modules.conf' => '/etc/proftpd/modules.conf',
|
||||
'etc_proftpd_proftpd.conf' => '/etc/proftpd/proftpd.conf'
|
||||
),
|
||||
'restart' => Array(
|
||||
'/etc/init.d/proftpd restart'
|
||||
)
|
||||
),
|
||||
'pure-ftpd' => Array(
|
||||
'label' => 'Pure FTPd',
|
||||
'commands' => Array(
|
||||
'apt-get install pure-ftpd-common pure-ftpd-mysql'
|
||||
),
|
||||
'files' => Array(
|
||||
'etc_pure-ftpd_conf_MinUID' => '/etc/pure-ftpd/conf/MinUID',
|
||||
'etc_pure-ftpd_conf_MySQLConfigFile' => '/etc/pure-ftpd/conf/MySQLConfigFile',
|
||||
'etc_pure-ftpd_conf_NoAnonymous' => '/etc/pure-ftpd/conf/NoAnonymous',
|
||||
'etc_pure-ftpd_conf_MaxIdleTime' => '/etc/pure-ftpd/conf/MaxIdleTime',
|
||||
'etc_pure-ftpd_conf_ChrootEveryone' => '/etc/pure-ftpd/conf/ChrootEveryone',
|
||||
'etc_pure-ftpd_conf_PAMAuthentication' => '/etc/pure-ftpd/conf/PAMAuthentication',
|
||||
'etc_pure-ftpd_db_mysql.conf' => '/etc/pure-ftpd/db/mysql.conf',
|
||||
'etc_pure-ftpd_conf_CustomerProof' => '/etc/pure-ftpd/conf/CustomerProof',
|
||||
'etc_pure-ftpd_conf_Bind' => '/etc/pure-ftpd/conf/Bind',
|
||||
'etc_default_pure-ftpd-common' => '/etc/default/pure-ftpd-common'
|
||||
),
|
||||
'restart' => Array(
|
||||
'/etc/init.d/pure-ftpd-mysql restart'
|
||||
)
|
||||
),
|
||||
)
|
||||
),
|
||||
'etc' => Array(
|
||||
'label' => $lng['admin']['configfiles']['etc'],
|
||||
'daemons' => Array(
|
||||
'cron' => Array(
|
||||
'label' => 'Crond (cronscript)',
|
||||
'files' => Array(
|
||||
'etc_cron.d_froxlor' => '/etc/cron.d/froxlor'
|
||||
),
|
||||
'restart' => Array(
|
||||
'/etc/init.d/cron restart'
|
||||
)
|
||||
),
|
||||
'awstats' => Array(
|
||||
'label' => 'Awstats',
|
||||
'commands' => Array(
|
||||
'apt-get install awstats',
|
||||
'cp /usr/share/doc/awstats/examples/awstats_buildstaticpages.pl '.makeCorrectDir($settings['system']['awstats_path']),
|
||||
'mv '.makeCorrectFile($settings['system']['awstats_conf'].'/awstats.conf').' '.makeCorrectFile($settings['system']['awstats_conf'].'/awstats.model.conf'),
|
||||
'sed -i.bak \'s/^DirData/# DirData/\' '.makeCorrectFile($settings['system']['awstats_conf'].'/awstats.model.conf')
|
||||
),
|
||||
),
|
||||
'libnss' => Array(
|
||||
'label' => 'libnss (system login with mysql)',
|
||||
'commands' => Array(
|
||||
'apt-get install libnss-mysql nscd',
|
||||
'chmod 600 /etc/nss-mysql.conf /etc/nss-mysql-root.conf'
|
||||
),
|
||||
'files' => Array(
|
||||
'etc_nss-mysql.conf' => '/etc/nss-mysql.conf',
|
||||
'etc_nss-mysql-root.conf' => '/etc/nss-mysql-root.conf',
|
||||
'etc_nsswitch.conf' => '/etc/nsswitch.conf',
|
||||
),
|
||||
'restart' => Array(
|
||||
'/etc/init.d/nscd restart'
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
?>
|
||||
@@ -88,8 +88,8 @@ return Array(
|
||||
'make install'
|
||||
),
|
||||
'commands_2' => Array(
|
||||
'pw groupadd vmail -g '.$settings['system']['vmail_gid'],
|
||||
'pw useradd vmail -u '.$settings['system']['vmail_uid'].' -g '.$settings['system']['vmail_gid'].' -s/sbin/nologin -d/dev/null',
|
||||
'pw groupadd vmail -g 5001 ',
|
||||
'pw useradd vmail -u 5001 -g 5001 -s/sbin/nologin -d/dev/null',
|
||||
'mkdir -p ' . $settings['system']['vmail_homedir'],
|
||||
'chown -R vmail:vmail ' . $settings['system']['vmail_homedir'],
|
||||
'chmod 0750 ' . $settings['system']['vmail_homedir']
|
||||
|
||||
@@ -62,49 +62,7 @@ return Array(
|
||||
'rc-update add lighttpd default',
|
||||
'/etc/init.d/lighttpd restart'
|
||||
)
|
||||
),
|
||||
'nginx' => Array(
|
||||
'label' => 'Nginx Webserver',
|
||||
'commands_1' => Array(
|
||||
'emerge nginx',
|
||||
),
|
||||
'files' => Array(
|
||||
'etc_nginx_nginx.conf' => '/etc/nginx/nginx.conf',
|
||||
'etc_init.d_php-fcgi' => '/etc/init.d/php-fcgi'
|
||||
),
|
||||
'commands_2' => Array(
|
||||
'mkdir -p ' . $settings['system']['documentroot_prefix'],
|
||||
'mkdir -p ' . $settings['system']['logfiles_directory'],
|
||||
'mkdir -p ' . $settings['system']['deactivateddocroot'],
|
||||
'mkdir -p ' . $settings['system']['mod_fcgid_tmpdir'],
|
||||
'chmod 1777 ' . $settings['system']['mod_fcgid_tmpdir'],
|
||||
'chmod u+x /etc/init.d/php-fcgi'
|
||||
),
|
||||
'restart' => Array(
|
||||
'/etc/init.d/nginx restart'
|
||||
)
|
||||
),
|
||||
'nginx' => Array(
|
||||
'label' => 'Nginx Webserver',
|
||||
'commands_1' => Array(
|
||||
'emerge nginx',
|
||||
),
|
||||
'files' => Array(
|
||||
'etc_nginx_nginx.conf' => '/etc/nginx/nginx.conf',
|
||||
'etc_init.d_php-fcgi' => '/etc/init.d/php-fcgi'
|
||||
),
|
||||
'commands_2' => Array(
|
||||
'mkdir -p ' . $settings['system']['documentroot_prefix'],
|
||||
'mkdir -p ' . $settings['system']['logfiles_directory'],
|
||||
'mkdir -p ' . $settings['system']['deactivateddocroot'],
|
||||
'mkdir -p ' . $settings['system']['mod_fcgid_tmpdir'],
|
||||
'chmod 1777 ' . $settings['system']['mod_fcgid_tmpdir'],
|
||||
'chmod u+x /etc/init.d/php-fcgi'
|
||||
),
|
||||
'restart' => Array(
|
||||
'/etc/init.d/nginx restart'
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
),
|
||||
'dns' => Array(
|
||||
|
||||
@@ -62,29 +62,6 @@ return Array(
|
||||
'restart' => Array(
|
||||
'/etc/init.d/lighttpd restart'
|
||||
)
|
||||
),
|
||||
'nginx' => Array(
|
||||
'label' => 'Nginx Webserver',
|
||||
'commands_1' => Array(
|
||||
'apt-get install nginx php5-cgi',
|
||||
),
|
||||
'files' => Array(
|
||||
'etc_nginx_nginx.conf' => '/etc/nginx/nginx.conf',
|
||||
'etc_init.d_php-fcgi' => '/etc/init.d/php-fcgi'
|
||||
),
|
||||
'commands_2' => Array(
|
||||
'rm /etc/nginx/sites-enabled/default',
|
||||
'mkdir -p ' . $settings['system']['documentroot_prefix'],
|
||||
'mkdir -p ' . $settings['system']['logfiles_directory'],
|
||||
//'mkdir -p ' . $settings['system']['deactivateddocroot'],
|
||||
'mkdir -p ' . $settings['system']['mod_fcgid_tmpdir'],
|
||||
'chmod 1777 ' . $settings['system']['mod_fcgid_tmpdir'],
|
||||
'chmod u+x /etc/init.d/php-fcgi'
|
||||
),
|
||||
'restart' => Array(
|
||||
'/etc/init.d/php-fcgi start',
|
||||
'/etc/init.d/nginx restart'
|
||||
)
|
||||
)
|
||||
)
|
||||
),
|
||||
|
||||
@@ -62,29 +62,6 @@ return Array(
|
||||
'restart' => Array(
|
||||
'/etc/init.d/lighttpd restart'
|
||||
)
|
||||
),
|
||||
'nginx' => Array(
|
||||
'label' => 'Nginx Webserver',
|
||||
'commands_1' => Array(
|
||||
'apt-get install nginx php5-cgi',
|
||||
),
|
||||
'files' => Array(
|
||||
'etc_nginx_nginx.conf' => '/etc/nginx/nginx.conf',
|
||||
'etc_init.d_php-fcgi' => '/etc/init.d/php-fcgi'
|
||||
),
|
||||
'commands_2' => Array(
|
||||
'rm /etc/nginx/sites-enabled/default',
|
||||
'mkdir -p ' . $settings['system']['documentroot_prefix'],
|
||||
'mkdir -p ' . $settings['system']['logfiles_directory'],
|
||||
//'mkdir -p ' . $settings['system']['deactivateddocroot'],
|
||||
'mkdir -p ' . $settings['system']['mod_fcgid_tmpdir'],
|
||||
'chmod 1777 ' . $settings['system']['mod_fcgid_tmpdir'],
|
||||
'chmod u+x /etc/init.d/php-fcgi'
|
||||
),
|
||||
'restart' => Array(
|
||||
'/etc/init.d/php-fcgi start',
|
||||
'/etc/init.d/nginx restart'
|
||||
)
|
||||
)
|
||||
)
|
||||
),
|
||||
|
||||
@@ -61,32 +61,9 @@ return Array(
|
||||
),
|
||||
'restart' => Array(
|
||||
'/etc/init.d/lighttpd restart'
|
||||
),
|
||||
),
|
||||
'nginx' => Array(
|
||||
'label' => 'Nginx Webserver',
|
||||
'commands_1' => Array(
|
||||
'apt-get install nginx php5-cgi',
|
||||
),
|
||||
'files' => Array(
|
||||
'etc_nginx_nginx.conf' => '/etc/nginx/nginx.conf',
|
||||
'etc_init.d_php-fcgi' => '/etc/init.d/php-fcgi'
|
||||
),
|
||||
'commands_2' => Array(
|
||||
'rm /etc/nginx/sites-enabled/default',
|
||||
'mkdir -p ' . $settings['system']['documentroot_prefix'],
|
||||
'mkdir -p ' . $settings['system']['logfiles_directory'],
|
||||
'mkdir -p ' . $settings['system']['deactivateddocroot'],
|
||||
'mkdir -p ' . $settings['system']['mod_fcgid_tmpdir'],
|
||||
'chmod 1777 ' . $settings['system']['mod_fcgid_tmpdir'],
|
||||
'chmod u+x /etc/init.d/php-fcgi'
|
||||
),
|
||||
'restart' => Array(
|
||||
'/etc/init.d/php-fcgi start',
|
||||
'/etc/init.d/nginx restart'
|
||||
)
|
||||
),
|
||||
),
|
||||
)
|
||||
)
|
||||
),
|
||||
'dns' => Array(
|
||||
'label' => $lng['admin']['configfiles']['dns'],
|
||||
|
||||
@@ -45,6 +45,6 @@ else
|
||||
|
||||
$cfgPath = 'lib/configfiles/';
|
||||
$configfiles = Array();
|
||||
$configfiles = array_merge(include $cfgPath . 'lenny.inc.php', include $cfgPath . 'hardy.inc.php', include $cfgPath . 'lucid.inc.php', include $cfgPath . 'gentoo.inc.php', include $cfgPath . 'suse10.inc.php', include $cfgPath . 'freebsd.inc.php');
|
||||
$configfiles = array_merge(include $cfgPath . 'lenny.inc.php', include $cfgPath . 'etch.inc.php', include $cfgPath . 'hardy.inc.php', include $cfgPath . 'lucid.inc.php', include $cfgPath . 'gentoo.inc.php', include $cfgPath . 'suse10.inc.php', include $cfgPath . 'freebsd.inc.php');
|
||||
|
||||
?>
|
||||
@@ -43,8 +43,8 @@ function inserttask($type, $param1 = '', $param2 = '', $param3 = '', $param4 = '
|
||||
&& $param1 != ''
|
||||
&& $param2 != ''
|
||||
&& $param3 != ''
|
||||
&& ($param4 == 0 || $param4 == 1)
|
||||
) {
|
||||
&& $param4 != '')
|
||||
{
|
||||
$data = Array();
|
||||
$data['loginname'] = $param1;
|
||||
$data['uid'] = $param2;
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Froxlor project.
|
||||
* Copyright (c) 2010 the Froxlor Team (see authors).
|
||||
*
|
||||
* For the full copyright and license information, please view the COPYING
|
||||
* file that was distributed with this source code. You can also view the
|
||||
* COPYING file online at http://files.froxlor.org/misc/COPYING.txt
|
||||
*
|
||||
* @copyright (c) the authors
|
||||
* @author Froxlor team <team@froxlor.org> (2010-)
|
||||
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
|
||||
* @package Functions
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
/*
|
||||
* returns true or false whether a
|
||||
* given domain id is the std-subdomain
|
||||
* of a customer
|
||||
*
|
||||
* @param int domain-id
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
function isCustomerStdSubdomain($did = 0)
|
||||
{
|
||||
global $db;
|
||||
|
||||
if($did > 0)
|
||||
{
|
||||
$result = $db->query_first("SELECT `customerid` FROM `".TABLE_PANEL_CUSTOMERS."` WHERE `standardsubdomain` = '".(int)$did."'");
|
||||
if(is_array($result)
|
||||
&& isset($result['customerid'])
|
||||
&& $result['customerid'] > 0
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -315,11 +315,6 @@ function updateCounters($returndebuginfo = false)
|
||||
$admin_resources[$admin['adminid']]['email_autoresponder_used'] = 0;
|
||||
}
|
||||
|
||||
if(!isset($admin_resources[$admin['adminid']]['email_autoresponder_used']))
|
||||
{
|
||||
$admin_resources[$admin['adminid']]['email_autoresponder_used'] = 0;
|
||||
}
|
||||
|
||||
$admin['email_autoresponder_used_new'] = $admin_resources[$admin['adminid']]['email_autoresponder_used'];
|
||||
|
||||
if(!isset($admin_resources[$admin['adminid']]['subdomains_used']))
|
||||
@@ -327,11 +322,6 @@ function updateCounters($returndebuginfo = false)
|
||||
$admin_resources[$admin['adminid']]['subdomains_used'] = 0;
|
||||
}
|
||||
|
||||
if(!isset($admin_resources[$admin['adminid']]['aps_packages_used']))
|
||||
{
|
||||
$admin_resources[$admin['adminid']]['aps_packages_used'] = 0;
|
||||
}
|
||||
|
||||
$admin['aps_packages_used_new'] = $admin_resources[$admin['adminid']]['aps_packages_used'];
|
||||
|
||||
if(!isset($admin_resources[$admin['adminid']]['aps_packages_used']))
|
||||
|
||||
@@ -183,12 +183,7 @@ if(!isset($settings['admin']['froxlor_graphic'])
|
||||
*/
|
||||
|
||||
$remote_addr = $_SERVER['REMOTE_ADDR'];
|
||||
|
||||
if (empty($_SERVER['HTTP_USER_AGENT'])) {
|
||||
$http_user_agent = 'unknown';
|
||||
} else {
|
||||
$http_user_agent = $_SERVER['HTTP_USER_AGENT'];
|
||||
}
|
||||
$http_user_agent = $_SERVER['HTTP_USER_AGENT'];
|
||||
unset($userinfo);
|
||||
unset($userid);
|
||||
unset($customerid);
|
||||
|
||||
32
lib/navigation/30.multiserver.php
Normal file
32
lib/navigation/30.multiserver.php
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Froxlor project.
|
||||
* Copyright (c) 2010 the Froxlor Team (see authors).
|
||||
*
|
||||
* For the full copyright and license information, please view the COPYING
|
||||
* file that was distributed with this source code. You can also view the
|
||||
* COPYING file online at http://files.froxlor.org/misc/COPYING.txt
|
||||
*
|
||||
* @copyright (c) the authors
|
||||
* @author Froxlor team <team@froxlor.org> (2010-)
|
||||
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
|
||||
* @package Navigation
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
return array (
|
||||
'admin' => array (
|
||||
'multiserver' => array (
|
||||
'label' => $lng['admin']['multiserver'],
|
||||
'required_resources' => 'change_serversettings',
|
||||
'show_element' => ( getSetting('multiserver', 'enabled') == true ),
|
||||
'elements' => array (
|
||||
array (
|
||||
'url' => 'admin_clients.php?page=clients',
|
||||
'label' => $lng['menue']['multiserver']['clients'],
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
@@ -71,7 +71,7 @@ define('PACKAGE_ENABLED', 2);
|
||||
|
||||
// VERSION INFO
|
||||
|
||||
$version = '0.9.15';
|
||||
$version = '0.9.14';
|
||||
$dbversion = '2';
|
||||
$branding = '';
|
||||
|
||||
|
||||
@@ -1511,14 +1511,4 @@ $lng['admin']['ipsandports']['docroot']['description'] = 'You can define a custo
|
||||
// ADDED IN FROXLOR 0.9.14-svn6
|
||||
$lng['serversettings']['login_domain_login'] = 'Allow login with domains';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.14
|
||||
$lng['panel']['unlock'] = 'unlock';
|
||||
$lng['question']['customer_reallyunlock'] = 'Do you really want to unlock customer %s?';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.15-svn1
|
||||
$lng['serversettings']['perl_server']['title'] = 'Perl server location';
|
||||
$lng['serversettings']['perl_server']['description'] = 'This is only used for Nginx<br />default is set for using the guide found at: http://wiki.nginx.org/SimpleCGI';
|
||||
$lng['serversettings']['nginx_php_backend']['title'] = 'Nginx php backend';
|
||||
$lng['serversettings']['nginx_php_backend']['description'] = 'this is where the PHP process is listening for requests from nginx, can be a unix socket of ip:port combination';
|
||||
$lng['serversettings']['phpreload_command']['title'] = 'PHP reload command';
|
||||
$lng['serversettings']['phpreload_command']['description'] = 'this is used to reload the Php backend if any is used (this is required to be set for Nginx) Default: Blank';
|
||||
?>
|
||||
|
||||
@@ -1489,19 +1489,9 @@ $lng['admin']['ipsandports']['ssl_cert_chainfile'] = 'Pfad zu dem SSL Certificat
|
||||
|
||||
// ADDED IN FROXLOR 0.9.14-svn5
|
||||
$lng['admin']['ipsandports']['docroot']['title'] = 'Benutzerdefinierter Docroot (leer = zeige auf Froxlor)';
|
||||
$lng['admin']['ipsandports']['docroot']['description'] = 'Hier kann ein benutzerdefinierter Document-Root (der Zielordner für einen Zugriff) für diese IP/Port Kombination gesetzt werden.<br /><strong>ACHTUNG:</strong> Bitte überlege vorher, welchen Pfad du hier angibst!';
|
||||
$lng['admin']['ipsandports']['docroot']['description'] = 'Hier kann ein benutzerdefinierter Document-Root (der Zeilordner für einen Zugriff) für diese IP/Port Kombination gesetzt werden.<br /><strong>ACHTUNG:</strong> Bitte überlege vorher, welchen Pfad du hier angibst!';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.14-svn6
|
||||
$lng['serversettings']['login_domain_login'] = 'Erlaube Anmeldung mit Domains';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.14
|
||||
$lng['panel']['unlock'] = 'entsperren';
|
||||
$lng['question']['customer_reallyunlock'] = 'Wollen Sie den Kunden %s wirklich entsperren?';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.15-svn1
|
||||
$lng['serversettings']['perl_server']['title'] = 'Perl Server Ort';
|
||||
$lng['serversettings']['perl_server']['description'] = 'Nur für nginx<br />Der Standardwert ist diesem Guide entnommen: http://wiki.nginx.org/SimpleCGI';
|
||||
$lng['serversettings']['nginx_php_backend']['title'] = 'Nginx PHP Backend';
|
||||
$lng['serversettings']['nginx_php_backend']['description'] = 'Dies ist das Backend, auf dem PHP auf Anfragen von Nginx hört. Kann ein UNIX Socket oder eine IP:Port Kombination sein';
|
||||
$lng['serversettings']['phpreload_command']['title'] = 'PHP Reload Befehl';
|
||||
$lng['serversettings']['phpreload_command']['description'] = 'Dieser wird benötigt, um das PHP Backend für Nginx bei Bedarf durch den Cronjob neu zu laden. (Nur für Nginx, Standard: leer)';
|
||||
?>
|
||||
|
||||
@@ -75,7 +75,7 @@ $lng['customer']['unlimited'] = 'bez limitu';
|
||||
* Customermenue
|
||||
*/
|
||||
|
||||
$lng['menue']['main']['main'] = 'Panel g<EFBFBD><EFBFBD>wny';
|
||||
$lng['menue']['main']['main'] = 'Panel gł<EFBFBD>wny';
|
||||
$lng['menue']['main']['changepassword'] = 'Zmień hasło';
|
||||
$lng['menue']['main']['changelanguage'] = 'Zmień język';
|
||||
$lng['menue']['email']['email'] = 'E-mail';
|
||||
@@ -218,16 +218,16 @@ $lng['error']['errordocpathdupe'] = 'Option for path %s already exists';
|
||||
$lng['error']['adduserfirst'] = 'Proszę w pierwszej kolejności utworzyć klienta';
|
||||
$lng['error']['domainalreadyexists'] = 'The domain %s is already assigned to a customer';
|
||||
$lng['error']['nolanguageselect'] = 'Nie wybrano języka.';
|
||||
$lng['error']['nosubjectcreate'] = 'Musisz zdefiniowa<EFBFBD> temat dla szablonu e-maila.';
|
||||
$lng['error']['nomailbodycreate'] = 'Musisz zdefiniowa<EFBFBD> tre<72><65> dla szablonu e-maila.';
|
||||
$lng['error']['templatenotfound'] = 'Szablon nie zosta<EFBFBD> znaleziony.';
|
||||
$lng['error']['nosubjectcreate'] = 'Musisz zdefiniować temat dla szablonu e-maila.';
|
||||
$lng['error']['nomailbodycreate'] = 'Musisz zdefiniować treść dla szablonu e-maila.';
|
||||
$lng['error']['templatenotfound'] = 'Szablon nie został znaleziony.';
|
||||
$lng['error']['alltemplatesdefined'] = 'You cant define more templates, all languages are supported already.';
|
||||
$lng['error']['wwwnotallowed'] = 'www is not allowed for subdomains.';
|
||||
$lng['error']['subdomainiswrong'] = 'The subdomain %s contains invalid characters.';
|
||||
$lng['error']['domaincantbeempty'] = 'Nazwa domeny nie mo<EFBFBD>e by<62> pusta.';
|
||||
$lng['error']['domainexistalready'] = 'Domena %s ju<EFBFBD> istnieje.';
|
||||
$lng['error']['domaincantbeempty'] = 'Nazwa domeny nie może być pusta.';
|
||||
$lng['error']['domainexistalready'] = 'Domena %s już istnieje.';
|
||||
$lng['error']['domainisaliasorothercustomer'] = 'The selected alias domain is either itself an alias domain or belongs to another customer.';
|
||||
$lng['error']['emailexistalready'] = 'Adres e-mail %s ju<EFBFBD> istnieje.';
|
||||
$lng['error']['emailexistalready'] = 'Adres e-mail %s już istnieje.';
|
||||
$lng['error']['maindomainnonexist'] = 'The main-domain %s does not exist.';
|
||||
$lng['error']['destinationnonexist'] = 'Please create your forwarder in the field \'Destination\'.';
|
||||
$lng['error']['destinationalreadyexistasmail'] = 'The forwarder to %s already exists as active EMail-Address.';
|
||||
@@ -242,7 +242,7 @@ $lng['error']['domainname'] = $lng['domains']['domainname'];
|
||||
$lng['question']['question'] = 'Pytanie bezpieczeństwa';
|
||||
$lng['question']['admin_customer_reallydelete'] = 'Czy na pewno chcesz skasować klienta %s? Ta czynność jest niedwracalna!';
|
||||
$lng['question']['admin_domain_reallydelete'] = 'Czy na pewno chcesz skasować domenę %s?';
|
||||
$lng['question']['admin_domain_reallydisablesecuritysetting'] = 'Czy na pewno chcesz deaktywowa<EFBFBD> ustawienia bezpiecze<EFBFBD>stwa (OpenBasedir i/lub SafeMode)?';
|
||||
$lng['question']['admin_domain_reallydisablesecuritysetting'] = 'Czy na pewno chcesz deaktywować ustawienia bezpieczeństwa (OpenBasedir i/lub SafeMode)?';
|
||||
$lng['question']['admin_admin_reallydelete'] = 'Czy na pewno chcesz skasować administratora %s? Wszystcy klienci i domeny zostaną przypisani do Twojego konta.';
|
||||
$lng['question']['admin_template_reallydelete'] = 'Czy na pewno chcesz skasować szablon \'%s\'?';
|
||||
$lng['question']['domains_reallydelete'] = 'Czy na pewno chcesz skasować domenę %s?';
|
||||
@@ -254,6 +254,7 @@ $lng['question']['extras_reallydelete_pathoptions'] = 'Do you really want to del
|
||||
$lng['question']['ftp_reallydelete'] = 'Czy na pewno chcesz skasować konto FTP %s?';
|
||||
$lng['question']['mysql_reallydelete'] = 'Czy na pewno chcesz skasować bazę danych %s? Ta czynność jest niedwracalna!';
|
||||
$lng['question']['admin_configs_reallyrebuild'] = 'Czy napewno chcesz przebudować pliki konfiguracyjne Apacha i Binda?';
|
||||
$lng['question']['admin_customer_alsoremovefiles'] = 'Remove user files too?';
|
||||
|
||||
/**
|
||||
* Mails
|
||||
@@ -328,27 +329,27 @@ $lng['admin']['webserver'] = 'Webserwer';
|
||||
*/
|
||||
|
||||
$lng['serversettings']['session_timeout']['title'] = 'Timeout Sesji';
|
||||
$lng['serversettings']['session_timeout']['description'] = 'jak d<EFBFBD>ugo u<>ytkownik mo<6D>e by<62> nieaktywny przed automatycznym wylogowaniem (sekund)?';
|
||||
$lng['serversettings']['session_timeout']['description'] = 'jak długo użytkownik może być nieaktywny przed automatycznym wylogowaniem (sekund)?';
|
||||
$lng['serversettings']['accountprefix']['title'] = 'Customer prefix';
|
||||
$lng['serversettings']['accountprefix']['description'] = 'Which prefix should customer accounts have?';
|
||||
$lng['serversettings']['mysqlprefix']['title'] = 'SQL Prefix';
|
||||
$lng['serversettings']['mysqlprefix']['description'] = 'Which prefix should mysql accounts have?';
|
||||
$lng['serversettings']['ftpprefix']['title'] = 'FTP Prefix';
|
||||
$lng['serversettings']['ftpprefix']['description'] = 'Which prefix should ftp accounts have?';
|
||||
$lng['serversettings']['documentroot_prefix']['title'] = 'Home directory';
|
||||
$lng['serversettings']['documentroot_prefix']['description'] = 'Where should all home directories be stored?';
|
||||
$lng['serversettings']['logfiles_directory']['title'] = 'Logfiles directory';
|
||||
$lng['serversettings']['logfiles_directory']['description'] = 'Where should all log files be stored?';
|
||||
$lng['serversettings']['documentroot_prefix']['title'] = 'Katalog domowy';
|
||||
$lng['serversettings']['documentroot_prefix']['description'] = 'Gdzie powinny być przechowywane wszystkie katalogi domowe?';
|
||||
$lng['serversettings']['logfiles_directory']['title'] = 'Katalog z logami';
|
||||
$lng['serversettings']['logfiles_directory']['description'] = 'Gdzie powinny być przechowywane wszystkie logi?';
|
||||
$lng['serversettings']['ipaddress']['title'] = 'Adres IP';
|
||||
$lng['serversettings']['ipaddress']['description'] = 'Jaki jest adres IP tego serwera?';
|
||||
$lng['serversettings']['hostname']['title'] = 'Hostname';
|
||||
$lng['serversettings']['hostname']['description'] = 'Jaki jest Hostname serwera?';
|
||||
$lng['serversettings']['apachereload_command']['title'] = 'Apache reload command';
|
||||
$lng['serversettings']['apachereload_command']['description'] = 'What\'s the apache command to reload apache configfiles?';
|
||||
$lng['serversettings']['bindconf_directory']['title'] = 'Bind config directory';
|
||||
$lng['serversettings']['bindconf_directory']['description'] = 'Where should bind configfiles be saved?';
|
||||
$lng['serversettings']['bindreload_command']['title'] = 'Bind reload command';
|
||||
$lng['serversettings']['bindreload_command']['description'] = 'What\'s the bind command to reload bind configfiles?';
|
||||
$lng['serversettings']['apachereload_command']['title'] = 'Komenda prze<7A>adowania Apache';
|
||||
$lng['serversettings']['apachereload_command']['description'] = 'Jaka jest komenda, do prze<7A>adowania plik<69>w konfiguracyjnych Apacha?';
|
||||
$lng['serversettings']['bindconf_directory']['title'] = 'Katalog z konfiguracj<63> Bunda';
|
||||
$lng['serversettings']['bindconf_directory']['description'] = 'Gdzie maja by<62> zapisywane pliki konfiguracyjne dla Binda?';
|
||||
$lng['serversettings']['bindreload_command']['title'] = 'Komenda prze<7A>adowania Binda';
|
||||
$lng['serversettings']['bindreload_command']['description'] = 'Jaka jest komenda, do prze<7A>adowania plik<69>w konfiguracyjnych Binda?';
|
||||
$lng['serversettings']['binddefaultzone']['title'] = 'Bind default zone';
|
||||
$lng['serversettings']['binddefaultzone']['description'] = 'What\'s the name of the default zone?';
|
||||
$lng['serversettings']['vmail_uid']['title'] = 'Mails-UID';
|
||||
@@ -356,20 +357,20 @@ $lng['serversettings']['vmail_uid']['description'] = 'Which UserID should mails
|
||||
$lng['serversettings']['vmail_gid']['title'] = 'Mails-GID';
|
||||
$lng['serversettings']['vmail_gid']['description'] = 'Which GroupID should mails have?';
|
||||
$lng['serversettings']['vmail_homedir']['title'] = 'Katalog domowy e-maili';
|
||||
$lng['serversettings']['vmail_homedir']['description'] = 'Gdzie maj<EFBFBD> by<62> sk<73>adowane wiadomo<EFBFBD>ci e-mail?';
|
||||
$lng['serversettings']['vmail_homedir']['description'] = 'Gdzie mają być składowane wiadomości e-mail?';
|
||||
$lng['serversettings']['adminmail']['title'] = 'Nadawca';
|
||||
$lng['serversettings']['adminmail']['description'] = 'Jaki jest adres nadawcy dla wiadomo<EFBFBD>ci wysy<EFBFBD>anych z panelu?';
|
||||
$lng['serversettings']['adminmail']['description'] = 'Jaki jest adres nadawcy dla wiadomości wysyłanych z panelu?';
|
||||
$lng['serversettings']['phpmyadmin_url']['title'] = 'URL do phpMyAdmina';
|
||||
$lng['serversettings']['phpmyadmin_url']['description'] = 'What\'s the URL to phpMyAdmin? (has to start with http(s)://)';
|
||||
$lng['serversettings']['webmail_url']['title'] = 'WebMail URL';
|
||||
$lng['serversettings']['webmail_url']['description'] = 'What\'s the URL to WebMail? (has to start with http(s)://)';
|
||||
$lng['serversettings']['webftp_url']['title'] = 'WebFTP URL';
|
||||
$lng['serversettings']['webftp_url']['description'] = 'What\'s the URL to WebFTP? (has to start with http(s)://)';
|
||||
$lng['serversettings']['language']['description'] = 'What\'s your standard server language?';
|
||||
$lng['serversettings']['maxloginattempts']['title'] = 'Max Login Attempts';
|
||||
$lng['serversettings']['phpmyadmin_url']['description'] = 'Jaki jest adres URL do phpMyAdmina? (Musi się rozpoczynać do http(s)://)';
|
||||
$lng['serversettings']['webmail_url']['title'] = 'URL do WebMaila';
|
||||
$lng['serversettings']['webmail_url']['description'] = 'Jaki jest adres URL do WebMaila? (Musi się rozpoczynać do http(s)://)';
|
||||
$lng['serversettings']['webftp_url']['title'] = 'URL do WebFTPa';
|
||||
$lng['serversettings']['webftp_url']['description'] = 'Jaki jest adres URL do WebFTPa? (Musi się rozpoczynać do http(s)://)';
|
||||
$lng['serversettings']['language']['description'] = 'Jaki jest standardowy język serwera?';
|
||||
$lng['serversettings']['maxloginattempts']['title'] = 'Maksymalna ilo<6C><6F> pr<70>b logowania';
|
||||
$lng['serversettings']['maxloginattempts']['description'] = 'Maximum login attempts after which the account gets deactivated.';
|
||||
$lng['serversettings']['deactivatetime']['title'] = 'Czas zablokowania';
|
||||
$lng['serversettings']['deactivatetime']['description'] = 'Czas (sek.) zablokowania dost<EFBFBD>pu do konta po nieudanym logowaniu.';
|
||||
$lng['serversettings']['deactivatetime']['description'] = 'Czas (sek.) zablokowania dostępu do konta po nieudanym logowaniu.';
|
||||
$lng['serversettings']['pathedit']['title'] = 'Type of path input';
|
||||
$lng['serversettings']['pathedit']['description'] = 'Should a path be selected by a dropdown menu or by an input field?';
|
||||
$lng['serversettings']['nameservers']['title'] = 'Serwery Nazw (Nameserwery)';
|
||||
@@ -381,7 +382,7 @@ $lng['serversettings']['mxservers']['description'] = 'A comma seperated list con
|
||||
* CHANGED BETWEEN 1.2.12 and 1.2.13
|
||||
*/
|
||||
|
||||
$lng['mysql']['description'] = 'W tym miejscu mo<EFBFBD>esz tworzy<EFBFBD> i zmienia<EFBFBD> Twoje bazy MySQL.<br />The changes are made instantly and the database can be used immediately.<br />At the menu on the left side you find the tool phpMyAdmin with which you can easily administer your database.<br /><br />To use your databases in your own php-scripts use the following settings: (The data in <i>italics</i> have to be changed into the equivalents you typed in!)<br />Hostname: <b><SQL_HOST></b><br />Username: <b><i>Databasename</i></b><br />Password: <b><i>the password you\'ve chosen</i></b><br />Database: <b><i>Databasename</i></b>';
|
||||
$lng['mysql']['description'] = 'W tym miejscu możesz tworzyć i zmieniać Twoje bazy MySQL.<br />The changes are made instantly and the database can be used immediately.<br />At the menu on the left side you find the tool phpMyAdmin with which you can easily administer your database.<br /><br />To use your databases in your own php-scripts use the following settings: (The data in <i>italics</i> have to be changed into the equivalents you typed in!)<br />Hostname: <b><SQL_HOST></b><br />Username: <b><i>Databasename</i></b><br />Password: <b><i>the password you\'ve chosen</i></b><br />Database: <b><i>Databasename</i></b>';
|
||||
|
||||
/**
|
||||
* ADDED BETWEEN 1.2.12 and 1.2.13
|
||||
@@ -395,9 +396,9 @@ $lng['error']['cantdeletesystemip'] = 'You cannot delete the last system IP, eit
|
||||
$lng['error']['myipaddress'] = '\'IP\'';
|
||||
$lng['error']['myport'] = '\'Port\'';
|
||||
$lng['error']['myipdefault'] = 'You need to select an IP/Port combination that should become default.';
|
||||
$lng['error']['myipnotdouble'] = 'Kombinacja IP/Port ju<EFBFBD> istnieje.';
|
||||
$lng['error']['myipnotdouble'] = 'Kombinacja IP/Port już istnieje.';
|
||||
$lng['error']['admin_domain_emailsystemhostname'] = 'Sorry. You can not use the Server Hostname as email domain';
|
||||
$lng['question']['admin_ip_reallydelete'] = 'Czy na pewno chcesz skasowa<EFBFBD> adres IP %s?';
|
||||
$lng['question']['admin_ip_reallydelete'] = 'Czy na pewno chcesz skasować adres IP %s?';
|
||||
$lng['admin']['ipsandports']['ipsandports'] = 'IP i Porty';
|
||||
$lng['admin']['ipsandports']['add'] = 'Dodaj IP/Port';
|
||||
$lng['admin']['ipsandports']['edit'] = 'Edytuj IP/Port';
|
||||
@@ -533,7 +534,7 @@ $lng['admin']['configfiles']['choosedaemon'] = '-- Wybierz daemona --';
|
||||
// ADDED IN 1.2.16-svn10
|
||||
|
||||
$lng['serversettings']['ftpdomain']['title'] = 'konta FTP @domena';
|
||||
$lng['serversettings']['ftpdomain']['description'] = 'Klienci mog<EFBFBD> tworzy<EFBFBD> konta FTP uzytkownik@domenaklienta?';
|
||||
$lng['serversettings']['ftpdomain']['description'] = 'Klienci mogą tworzyć konta FTP uzytkownik@domenaklienta?';
|
||||
$lng['panel']['back'] = 'Back';
|
||||
|
||||
// ADDED IN 1.2.16-svn12
|
||||
@@ -581,9 +582,9 @@ $lng['admin']['ipsandports']['create_vhostcontainer_servername_statement'] = 'Cr
|
||||
$lng['admin']['webalizersettings'] = 'Usttawienia Webalizera';
|
||||
$lng['admin']['webalizer']['normal'] = 'Normalny';
|
||||
$lng['admin']['webalizer']['quiet'] = 'Cichy';
|
||||
$lng['admin']['webalizer']['veryquiet'] = 'Bez danych wyj<EFBFBD>cia';
|
||||
$lng['serversettings']['webalizer_quiet']['title'] = 'Dane wyj<EFBFBD>cia Webalizera';
|
||||
$lng['serversettings']['webalizer_quiet']['description'] = 'Gadatliwo<EFBFBD><EFBFBD> programu Webalizer';
|
||||
$lng['admin']['webalizer']['veryquiet'] = 'Bez danych wyjścia';
|
||||
$lng['serversettings']['webalizer_quiet']['title'] = 'Dane wyjścia Webalizera';
|
||||
$lng['serversettings']['webalizer_quiet']['description'] = 'Gadatliwość programu Webalizer';
|
||||
|
||||
// ADDED IN 1.2.18-svn3
|
||||
|
||||
@@ -596,7 +597,7 @@ $lng['menue']['ticket']['archive'] = 'Archiwum zgłoszeń';
|
||||
$lng['ticket']['description'] = 'Here you can send help-requests to your responsible administrator.<br />Notifications will be sent via e-mail.';
|
||||
$lng['ticket']['ticket_new'] = 'Utw<74>rz nowe zgłoszenie';
|
||||
$lng['ticket']['ticket_reply'] = 'Odpowiedź na zgłoszenie';
|
||||
$lng['ticket']['ticket_reopen'] = 'Ponownie otw<74>rz zg<EFBFBD>oszenie';
|
||||
$lng['ticket']['ticket_reopen'] = 'Ponownie otw<74>rz zgłoszenie';
|
||||
$lng['ticket']['ticket_newcateory'] = 'Utw<74>rz nową kategorię';
|
||||
$lng['ticket']['ticket_editcateory'] = 'Edytuj kategorię';
|
||||
$lng['ticket']['ticket_view'] = 'View ticketcourse';
|
||||
@@ -626,7 +627,7 @@ $lng['ticket']['reopen'] = 'Ponownie otw
|
||||
$lng['ticket']['archive'] = 'Zarchiwizuj';
|
||||
$lng['ticket']['ticket_delete'] = 'Kasuj zgłoszenie';
|
||||
$lng['ticket']['lastarchived'] = 'Recently archived tickets';
|
||||
$lng['ticket']['archivedtime'] = 'Archived';
|
||||
$lng['ticket']['archivedtime'] = 'Zarchiwizowano';
|
||||
$lng['ticket']['open'] = 'Otwarte';
|
||||
$lng['ticket']['wait_reply'] = 'czeka na odpowiedz';
|
||||
$lng['ticket']['replied'] = 'Replied';
|
||||
@@ -634,9 +635,9 @@ $lng['ticket']['closed'] = 'Zamknięte';
|
||||
$lng['ticket']['staff'] = 'Dział pomocy technicznej';
|
||||
$lng['ticket']['customer'] = 'Klient';
|
||||
$lng['ticket']['old_tickets'] = 'Ticket messages';
|
||||
$lng['ticket']['search'] = 'Search archive';
|
||||
$lng['ticket']['search'] = 'Przeszukaj archiwum';
|
||||
$lng['ticket']['nocustomer'] = 'Nie wybrano';
|
||||
$lng['ticket']['archivesearch'] = 'Archive searchresults';
|
||||
$lng['ticket']['archivesearch'] = 'Wynik przeszukiwania archiwum';
|
||||
$lng['ticket']['noresults'] = 'Nie znaleziono zgłoszeń';
|
||||
$lng['ticket']['notmorethanxopentickets'] = 'Due to spam-protection you cannot have more than %s open tickets';
|
||||
$lng['ticket']['supportstatus'] = 'Status wsparcia technicznego';
|
||||
@@ -689,7 +690,7 @@ $lng['customer']['tickets'] = 'Zgłoszenia wsparcia technicznego';
|
||||
|
||||
$lng['admin']['domain_nocustomeraddingavailable'] = 'Nie jest możliwe, by dodać teraz domenę. W pierwszej kolejności trzeba dodać klienta.';
|
||||
$lng['serversettings']['ticket']['enable'] = 'Wspracie techniczne włączone';
|
||||
$lng['serversettings']['ticket']['concurrentlyopen'] = 'Ile zg<EFBFBD>osze<EFBFBD> mo<6D>e by<62> otwartych w jednym czasie?';
|
||||
$lng['serversettings']['ticket']['concurrentlyopen'] = 'Ile zgłoszeń może być otwartych w jednym czasie?';
|
||||
$lng['error']['norepymailiswrong'] = 'The "Noreply-address" is wrong. Only a valid email-address is allowed.';
|
||||
$lng['error']['tadminmailiswrong'] = 'The "Ticketadmin-address" is wrong. Only a valid email-address is allowed.';
|
||||
$lng['ticket']['awaitingticketreply'] = 'Masz %s zgłoszeń do pomocy technicznej';
|
||||
@@ -709,7 +710,7 @@ $lng['serversettings']['mod_fcgid']['tmpdir'] = 'Katalog plik
|
||||
$lng['serversettings']['ticket']['reset_cycle'] = 'Okresowe reset licznika użycia zgłoszeń pomocy technicznej';
|
||||
$lng['serversettings']['ticket']['reset_cycle_desc'] = 'Resetowanie zgłoszeń pomocy technicznej powoduje ustawienie licznika na wartość 0 przy każdym cyklu';
|
||||
$lng['admin']['tickets']['daily'] = 'Dziennie';
|
||||
$lng['admin']['tickets']['weekly'] = 'Wygodniowo';
|
||||
$lng['admin']['tickets']['weekly'] = 'Tygodniowo';
|
||||
$lng['admin']['tickets']['monthly'] = 'Miesięcznie';
|
||||
$lng['admin']['tickets']['yearly'] = 'Rocznie';
|
||||
$lng['error']['ticketresetcycleiswrong'] = 'The cycle for ticket-resets has to be "daily", "weekly", "monthly" or "yearly".';
|
||||
@@ -765,7 +766,7 @@ $lng['logger']['truncate'] = 'Wyszyść logi';
|
||||
|
||||
// ADDED IN 1.2.19-svn7
|
||||
|
||||
$lng['serversettings']['ssl']['use_ssl'] = 'U<EFBFBD>yj SSL';
|
||||
$lng['serversettings']['ssl']['use_ssl'] = 'Użyj SSL';
|
||||
$lng['serversettings']['ssl']['ssl_cert_file'] = 'Gdzie jest zlokalizowany Certyfikat';
|
||||
$lng['serversettings']['ssl']['openssl_cnf'] = 'Standardowe dane do tworzenia pliku certyfikatu';
|
||||
$lng['panel']['reseller'] = 'reseller';
|
||||
@@ -775,7 +776,7 @@ $lng['error']['nomessagetosend'] = 'Nie wprowadzono wiadomości.';
|
||||
$lng['error']['noreceipientsgiven'] = 'Nie wprowadzono żadnego odbiorcy';
|
||||
$lng['admin']['emaildomain'] = 'Emaildomain';
|
||||
$lng['admin']['email_only'] = 'Only email?';
|
||||
$lng['admin']['wwwserveralias'] = 'Doda<EFBFBD> "www." ServerAlias';
|
||||
$lng['admin']['wwwserveralias'] = 'Dodać "www." ServerAlias';
|
||||
$lng['admin']['ipsandports']['enable_ssl'] = 'Is this an SSL Port?';
|
||||
$lng['admin']['ipsandports']['ssl_cert_file'] = 'Path to the SSL Certificate';
|
||||
$lng['panel']['send'] = 'send';
|
||||
@@ -824,8 +825,6 @@ $lng['error']['cannotuseawstatsandwebalizeratonetime'] = 'You cannot enable Weba
|
||||
$lng['serversettings']['webalizer_enabled'] = 'Enable webalizer statistics';
|
||||
$lng['serversettings']['awstats_enabled'] = 'Enable awstats statistics';
|
||||
$lng['admin']['awstatssettings'] = 'Ustawienia Awstats';
|
||||
$lng['serversettings']['awstats_domain_file']['title'] = 'Awstats domainfiles directory';
|
||||
$lng['serversettings']['awstats_model_file']['title'] = 'Awstats model file';
|
||||
|
||||
// ADDED IN 1.2.19-svn16
|
||||
|
||||
@@ -869,15 +868,8 @@ $lng['pwdreminder']['success'] = 'Password reset successfully.<br />You now shou
|
||||
|
||||
// ADDED IN 1.2.19-svn18
|
||||
|
||||
$lng['serversettings']['allow_preset'] = 'Allow password reset by customers';
|
||||
$lng['pwdreminder']['notallowed'] = 'Password reset is deactivated';
|
||||
|
||||
// ADDED IN 1.2.19-svn20
|
||||
|
||||
$lng['serversettings']['awstats_path']['title'] = 'Path to awstats cgi-bin folder';
|
||||
$lng['serversettings']['awstats_path']['description'] = 'e.g. /usr/share/webapps/awstats/6.1/webroot/cgi-bin/';
|
||||
$lng['serversettings']['awstats_updateall_command']['title'] = 'Path to "awstats_updateall.pl"';
|
||||
$lng['serversettings']['awstats_updateall_command']['description'] = 'e.g. /usr/bin/awstats_updateall.pl';
|
||||
$lng['serversettings']['allow_preset'] = 'Zezwalaj na resetowanie hasła przez klient<6E>w';
|
||||
$lng['pwdreminder']['notallowed'] = 'Resetowanie hasła jest nieaktywne';
|
||||
|
||||
// ADDED IN 1.2.19-svn21
|
||||
|
||||
@@ -903,18 +895,18 @@ $lng['domains']['topleveldomain'] = 'Top-Level-Domain';
|
||||
|
||||
// ADDED IN 1.2.19-svn22
|
||||
|
||||
$lng['serversettings']['allow_password_reset']['description'] = 'Customers can reset their password and a new password will be sent to their e-mail address';
|
||||
$lng['serversettings']['allow_password_reset_admin']['title'] = 'Allow password reset by admins';
|
||||
$lng['serversettings']['allow_password_reset_admin']['description'] = 'Admins/reseller can reset their password and a new password will be sent to their e-mail address';
|
||||
$lng['serversettings']['allow_password_reset']['description'] = 'Klienci mogą zresetować hasło, a nowe hasło zostanie wysłane na ich adres e-mail';
|
||||
$lng['serversettings']['allow_password_reset_admin']['title'] = 'Zezwalaj na resetowanie hasła przez administrator<6F>w';
|
||||
$lng['serversettings']['allow_password_reset_admin']['description'] = 'Administratorzy/Resellerzy mogą resetować hasło, a nowe hasło zostanie wysłane na ich adres e-mail';
|
||||
|
||||
// ADDED IN 1.2.19-svn25
|
||||
|
||||
$lng['emails']['quota'] = 'Quota';
|
||||
$lng['emails']['noquota'] = 'No quota';
|
||||
$lng['emails']['updatequota'] = 'Update Quota';
|
||||
$lng['serversettings']['mail_quota']['title'] = 'Mailbox-quota';
|
||||
$lng['serversettings']['mail_quota']['description'] = 'The default quota for a new created mailboxes (MegaByte).';
|
||||
$lng['serversettings']['mail_quota_enabled']['title'] = 'Use mailbox-quota for customers';
|
||||
$lng['emails']['noquota'] = 'Brak quoty';
|
||||
$lng['emails']['updatequota'] = 'Aktualizuj Quotę';
|
||||
$lng['serversettings']['mail_quota']['title'] = 'Quota skrzynki pocztowej';
|
||||
$lng['serversettings']['mail_quota']['description'] = 'Standardowa quota dla nowoutworzonych skrzynek pocztowych (MegaBajty).';
|
||||
$lng['serversettings']['mail_quota_enabled']['title'] = 'Użyj Quoty skrzynek pocztowych dla klient<6E>w';
|
||||
$lng['serversettings']['mail_quota_enabled']['description'] = 'Activate to use quotas on mailboxes. Default is <b>No</b> since this requires a special setup.';
|
||||
$lng['serversettings']['mail_quota_enabled']['removelink'] = 'Click here to wipe all quotas for mail accounts.';
|
||||
$lng['serversettings']['mail_quota_enabled']['enforcelink'] = 'Click here to enforce default quota to all User mail accounts.';
|
||||
@@ -949,7 +941,7 @@ $lng['error']['autoresponderalreadyexists'] = 'There is already an autoresponder
|
||||
$lng['error']['invalidautoresponder'] = 'The given account is invalid.';
|
||||
$lng['serversettings']['autoresponder_active']['title'] = 'Użyj modułu autorespondera';
|
||||
$lng['serversettings']['autoresponder_active']['description'] = 'Do you want to use the autoresponder module?';
|
||||
$lng['admin']['security_settings'] = 'Security Options';
|
||||
$lng['admin']['security_settings'] = 'Opcje bezpieczeństwa';
|
||||
$lng['admin']['know_what_youre_doing'] = 'Zmień TYLKO jeśli wiesz co robisz!';
|
||||
$lng['admin']['show_version_login']['title'] = 'Pokazuj wersję Froxlora przy logowaniu';
|
||||
$lng['admin']['show_version_login']['description'] = 'Pokazuj wersję Froxlora w stopce struno logowania';
|
||||
@@ -1144,29 +1136,29 @@ $lng['aps']['allpackages'] = 'All Packages';
|
||||
$lng['question']['reallyremovepackages'] = '<strong>Do you really want to delete these packages?</strong><br/><br/>Packages with dependencies can only be remove if the corresponding Instances have been removed!<br/><br/>';
|
||||
$lng['aps']['nopackagesinsystem'] = 'There were no packages installed in the system which could be managed.';
|
||||
$lng['aps']['packagenameandstatus'] = 'Packagename & Status';
|
||||
$lng['aps']['activate_aps']['title'] = 'Enable APS Installer';
|
||||
$lng['aps']['activate_aps']['title'] = 'Instalator aplikacji włączony';
|
||||
$lng['aps']['activate_aps']['description'] = 'Here the APS Installer can be enabled and disabled globaly.';
|
||||
$lng['aps']['packages_per_page']['title'] = 'Packages per page';
|
||||
$lng['aps']['packages_per_page']['title'] = 'Paczek na stronie';
|
||||
$lng['aps']['packages_per_page']['description'] = 'How many packages should be displayed per page for customers?';
|
||||
$lng['aps']['upload_fields']['title'] = 'Upload fields per page';
|
||||
$lng['aps']['upload_fields']['title'] = 'Ilość p<>l Uploadu na stronie';
|
||||
$lng['aps']['upload_fields']['description'] = 'How many upload fields should be displayed on the page to install new packages in the system?';
|
||||
$lng['aps']['exceptions']['title'] = 'Exceptions for Package validation';
|
||||
$lng['aps']['exceptions']['description'] = 'Some packages need special configuration parameters or modules. The Installer cannot always determine if this options/extensions are available. For this reason you can now define exceptions that packages can be installed in the system. Do only select options which match your real configuration setup. For further information about this problem look into the handbook for this module.';
|
||||
$lng['aps']['settings_php_extensions'] = 'PHP-Extensions';
|
||||
$lng['aps']['settings_php_configuration'] = 'PHP-Configuration';
|
||||
$lng['aps']['settings_webserver_modules'] = 'Webserver modules';
|
||||
$lng['aps']['settings_php_extensions'] = 'Rozszerzenia PHP';
|
||||
$lng['aps']['settings_php_configuration'] = 'Konfiguracja PHP';
|
||||
$lng['aps']['settings_webserver_modules'] = 'Moduły Webserwera';
|
||||
$lng['aps']['settings_webserver_misc'] = 'Webserver miscellaneous';
|
||||
$lng['aps']['specialoptions'] = 'Special options';
|
||||
$lng['aps']['removeunused'] = 'Remove unused packages';
|
||||
$lng['aps']['removeunused'] = 'Usuń nieuzywane paczki';
|
||||
$lng['aps']['enablenewest'] = 'Enabled newest version of package, lock others';
|
||||
$lng['aps']['installations'] = 'Installations';
|
||||
$lng['aps']['statistics'] = 'Statistics';
|
||||
$lng['aps']['installations'] = 'Instalacje';
|
||||
$lng['aps']['statistics'] = 'Statystyki';
|
||||
$lng['aps']['numerofpackagesinstalled'] = '%s Packages installed<br/>';
|
||||
$lng['aps']['numerofpackagesenabled'] = '%s Packages enabled<br/>';
|
||||
$lng['aps']['numerofpackageslocked'] = '%s Packages locked<br/>';
|
||||
$lng['aps']['numerofinstances'] = '%s Instances installed<br/>';
|
||||
$lng['question']['reallydoaction'] = '<strong>Do you really want to execute the selected actions?</strong><br/><br/>Data which can be lost by continuing, cannot be restored later.<br/><br/>';
|
||||
$lng['aps']['linktolicense'] = 'Link to license';
|
||||
$lng['aps']['linktolicense'] = 'Link do licencji';
|
||||
$lng['aps']['initerror_customer'] = 'There is currently a problem with this Froxlor extension. Contact your administrator for further information.';
|
||||
$lng['aps']['numerofinstances'] = '%s Installations at all<br/>';
|
||||
$lng['aps']['numerofinstancessuccess'] = '%s successful Installations<br/>';
|
||||
@@ -1191,11 +1183,11 @@ $lng['error']['admindoesntexist'] = 'The admin you have chosen doesn\'t exist.';
|
||||
|
||||
$lng['serversettings']['system_realtime_port']['title'] = 'Port for realtime Froxlor';
|
||||
$lng['serversettings']['system_realtime_port']['description'] = 'Froxlor connects to this port at localhost everytime a new cron task is scheduled. If value is 0 (zero), this feature is disabled.<br />See also: <a href="https://wiki.froxlor.org/contrib/realtime">Make Froxlor work in realtime (Froxlor Wiki)</a>';
|
||||
$lng['serversettings']['session_allow_multiple_login']['title'] = 'Allow multiple login';
|
||||
$lng['serversettings']['session_allow_multiple_login']['description'] = 'If activated a user could login multiple times.';
|
||||
$lng['serversettings']['panel_allow_domain_change_admin']['title'] = 'Allow moving domains between admins';
|
||||
$lng['serversettings']['session_allow_multiple_login']['title'] = 'Zezwalaj na jednoczesne logowanie';
|
||||
$lng['serversettings']['session_allow_multiple_login']['description'] = 'Jeśli jest zaznaczone użytkownik może zalogować się jednoczeście, wiele razy.';
|
||||
$lng['serversettings']['panel_allow_domain_change_admin']['title'] = 'Zezwalaj na przenoszenie domen pomiędzy administratorami';
|
||||
$lng['serversettings']['panel_allow_domain_change_admin']['description'] = 'If activated you can change the admin of a domain at domainsettings.<br /><b>Attention:</b> If a customer isn\'t assigned to the same admin as the domain, the admin can see every other domain of that customer!';
|
||||
$lng['serversettings']['panel_allow_domain_change_customer']['title'] = 'Allow moving domains between customers';
|
||||
$lng['serversettings']['panel_allow_domain_change_customer']['title'] = 'Zezwalaj na przenoszenie domen pomiędzy klientami';
|
||||
$lng['serversettings']['panel_allow_domain_change_customer']['description'] = 'If activated you can change the customer of a domain at domainsettings.<br /><b>Attention:</b> Froxlor won\'t change any paths. This could render a domain unusable!';
|
||||
$lng['domains']['associated_with_domain'] = 'Associated';
|
||||
$lng['domains']['aliasdomains'] = 'Alias domains';
|
||||
@@ -1212,17 +1204,17 @@ $lng['serversettings']['mod_fcgid']['maxrequests']['title'] = 'Maximum Requests
|
||||
$lng['serversettings']['mod_fcgid']['maxrequests']['description'] = 'How many requests should be allowed per domain?';
|
||||
|
||||
// fix bug #1124
|
||||
$lng['admin']['webserver'] = 'Webserver';
|
||||
$lng['admin']['webserver'] = 'Webserwer';
|
||||
$lng['error']['admin_domain_emailsystemhostname'] = 'The server-hostname cannot be used as email-domain.';
|
||||
$lng['aps']['license_link'] = 'Link to the license';
|
||||
$lng['aps']['license_link'] = 'Link do licencji';
|
||||
|
||||
// ADDED IN 1.4.2.1-1
|
||||
|
||||
$lng['mysql']['mysql_server'] = 'MySQL-Server';
|
||||
$lng['mysql']['mysql_server'] = 'Serwer MySQL';
|
||||
|
||||
// ADDED IN 1.4.2.1-2
|
||||
|
||||
$lng['admin']['ipsandports']['webserverdefaultconfig'] = 'Webserver Default Config';
|
||||
$lng['admin']['ipsandports']['webserverdefaultconfig'] = 'Domyślna Konfiguracja Webserwera';
|
||||
$lng['admin']['ipsandports']['webserverdomainconfig'] = 'Webserver Domain Config';
|
||||
$lng['admin']['ipsandports']['webserverssldomainconfig'] = 'Webserver SSL Config';
|
||||
$lng['admin']['ipsandports']['ssl_key_file'] = 'Path to the SSL Keyfile';
|
||||
@@ -1258,49 +1250,137 @@ $lng['panel']['off'] = 'off';
|
||||
$lng['update']['updateinprogress_onlyadmincanlogin'] = 'A newer version of Froxlor has been installed but not yet set up.<br />Only the administrator can log in and finish the update.';
|
||||
$lng['update']['update'] = 'Aktualizacja Froxlora';
|
||||
$lng['update']['proceed'] = 'Proceed';
|
||||
$lng['update']['update_information'] = 'The Froxlor files have been updated to version <strong>%newversion</strong>. The installed version is <strong>%curversion</strong>.<br /><br />Customers will not be able to log in until the update has been finished.<br /><strong>Proceed?</strong>';
|
||||
$lng['update']['update_information']['part_a'] = 'The Froxlor files have been updated to version <strong>%newversion</strong>. The installed version is <strong>%curversion</strong>.';
|
||||
$lng['update']['update_information']['part_b'] = '<br /><br />Customers will not be able to log in until the update has been finished.<br /><strong>Proceed?</strong>';
|
||||
$lng['update']['noupdatesavail'] = '<strong>You already have the latest Froxlor version.</strong>';
|
||||
$lng['admin']['cron']['cronsettings'] = 'ustawienia Cronjob';
|
||||
$lng['cron']['cronname'] = 'cronjob-name';
|
||||
$lng['cron']['lastrun'] = 'last run';
|
||||
$lng['cron']['interval'] = 'interval';
|
||||
$lng['cron']['isactive'] = 'enabled';
|
||||
$lng['admin']['cron']['add'] = 'Add a new cronjob';
|
||||
$lng['cron']['description'] = 'description';
|
||||
$lng['crondesc']['cron_unknown_desc'] = 'no description given';
|
||||
$lng['crondesc']['cron_tasks'] = 'przebudowanie plik<69>w konfiguracyjnych';
|
||||
$lng['crondesc']['cron_legacy'] = 'legacy (old) cronjob';
|
||||
$lng['crondesc']['cron_apsinstaller'] = 'Instalator aplikacji';
|
||||
$lng['crondesc']['cron_autoresponder'] = 'e-mail autoresponder';
|
||||
$lng['crondesc']['cron_apsupdater'] = 'Aktualizacja pakiet<65>w instalatora aplikacji';
|
||||
$lng['crondesc']['cron_traffic'] = 'obliczanie ruchu';
|
||||
$lng['crondesc']['cron_ticketsreset'] = 'resetowanie licznika zgłoszeń';
|
||||
$lng['crondesc']['cron_ticketarchive'] = 'archiwizowanie starych zgłoszeń';
|
||||
$lng['admin']['specialsettingsforsubdomains'] = 'Apply specialsettings to all subdomains (*.example.com)';
|
||||
$lng['serversettings']['specialsettingsforsubdomains']['description'] = 'If yes these custom vhost-settings will be added to all subdomains; if no subdomain-specialsettings are being removed.';
|
||||
$lng['tasks']['outstanding_tasks'] = 'Outstanding cron-tasks';
|
||||
$lng['tasks']['rebuild_webserverconfig'] = 'Rebuilding webserver-configuration';
|
||||
$lng['tasks']['adding_customer'] = 'Adding new customer %loginname%';
|
||||
$lng['tasks']['rebuild_bindconfig'] = 'Rebuilding bind-configuration';
|
||||
$lng['tasks']['creating_ftpdir'] = 'Creating directory for new ftp-user';
|
||||
$lng['tasks']['deleting_customerfiles'] = 'Deleting customer-files %loginname%';
|
||||
$lng['tasks']['noneoutstanding'] = 'There are currently no outstanding tasks for Froxlor';
|
||||
$lng['ticket']['nonexistingcustomer'] = '(deleted customer)';
|
||||
$lng['tasks']['rebuild_webserverconfig'] = 'Przebudowanie konfiguracji webserwera';
|
||||
$lng['tasks']['adding_customer'] = 'Dodanie nowego klienta %loginname%';
|
||||
$lng['tasks']['rebuild_bindconfig'] = 'Przebudowanie konfiguracji binda';
|
||||
$lng['tasks']['creating_ftpdir'] = 'Tworzenie katalogu dla nowych użytkownik<69>w FTP';
|
||||
$lng['tasks']['deleting_customerfiles'] = 'Kasowanie plik<69>w klienta %loginname%';
|
||||
$lng['tasks']['noneoutstanding'] = 'Obecnie nie ma zaplanowanych zadań dla Froxlora';
|
||||
$lng['ticket']['nonexistingcustomer'] = '(usunięty klient)';
|
||||
$lng['admin']['ticket_nocustomeraddingavailable'] = 'It\'s not possible to open a new support-ticket currently. You first need to add at least one customer.';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.1
|
||||
|
||||
$lng['admin']['accountdata'] = 'Account Data';
|
||||
$lng['admin']['contactdata'] = 'Contact Data';
|
||||
$lng['admin']['servicedata'] = 'Service Data';
|
||||
$lng['admin']['accountdata'] = 'Dane konta';
|
||||
$lng['admin']['contactdata'] = 'Dane kontaktowe';
|
||||
$lng['admin']['servicedata'] = 'Dane usługi';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.2
|
||||
|
||||
$lng['admin']['newerversionavailable'] = 'There is a newer version of Froxlor available';
|
||||
$lng['admin']['newerversionavailable'] = 'Jest dostępna nowa wersja Froxlora';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.3
|
||||
|
||||
$lng['emails']['noemaildomainaddedyet'] = 'You do not have a (email-)domain in your account yet.';
|
||||
$lng['error']['hiddenfieldvaluechanged'] = 'The value for the hidden field "%s" changed while editing the settings.<br /><br />This is usually not a big problem but the settings could not be saved because of this.';
|
||||
|
||||
?>
|
||||
// ADDED IN FROXLOR 0.9.3-svn1
|
||||
|
||||
$lng['serversettings']['panel_password_min_length']['title'] = 'Minimalna długość hasła';
|
||||
$lng['serversettings']['panel_password_min_length']['description'] = 'Here you can set a minimum length for passwords. \'0\' means: no minimum length required.';
|
||||
$lng['error']['notrequiredpasswordlength'] = 'The given password is too short. Please enter at least %s characters.';
|
||||
$lng['serversettings']['system_store_index_file_subs']['title'] = 'Store default index file also to new subfolders';
|
||||
$lng['serversettings']['system_store_index_file_subs']['description'] = 'If enabled, the default index-file is being stored to every subdomain-path newly created (not if the folder already exists!)';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.3-svn2
|
||||
|
||||
$lng['serversettings']['adminmail_return']['title'] = 'Reply-To address';
|
||||
$lng['serversettings']['adminmail_return']['description'] = 'Define an e-mail address as reply-to-address for mails sent by the panel.';
|
||||
$lng['serversettings']['adminmail_defname'] = 'Panel e-mail sender name';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.3-svn3
|
||||
$lng['dkim']['dkim_algorithm']['title'] = 'Allowed Hash Algorithms';
|
||||
$lng['dkim']['dkim_algorithm']['description'] = 'Define allowed hash algorithms, chose "All" for all algorithms or one or more from the other available algorithms';
|
||||
$lng['dkim']['dkim_servicetype'] = 'Service Types';
|
||||
$lng['dkim']['dkim_keylength']['title'] = 'Key-length';
|
||||
$lng['dkim']['dkim_keylength']['description'] = 'Attention: If you change this values, you need to delete all the private/public keys in "'.$settings['dkim']['dkim_prefix'].'"';
|
||||
$lng['dkim']['dkim_notes']['title'] = 'DKIM Notes';
|
||||
$lng['dkim']['dkim_notes']['description'] = 'Notes that might be of interest to a human, e.g. a URL like http://www.dnswatch.info. No interpretation is made by any program. This tag should be used sparingly due to space limitations in DNS. This is intended for use by administrators, not end users.';
|
||||
$lng['dkim']['dkim_add_adsp']['title'] = 'Add DKIM ADSP entry';
|
||||
$lng['dkim']['dkim_add_adsp']['description'] = 'If you don\'t know what this is, leave it "enabled"';
|
||||
$lng['dkim']['dkim_add_adsppolicy']['title'] = 'ADSP policy';
|
||||
$lng['dkim']['dkim_add_adsppolicy']['description'] = 'For more information about this setting see <a href="http://wiki.froxlor.org/contrib/dkim-adsp-policies">http://wiki.froxlor.org/contrib/dkim-adsp-policies</a>';
|
||||
|
||||
$lng['admin']['cron']['cronsettings'] = 'ustawienia zadań cyklicznych';
|
||||
$lng['cron']['cronname'] = 'cronjob-name';
|
||||
$lng['cron']['lastrun'] = 'ostatnio uruchomiony';
|
||||
$lng['cron']['interval'] = 'interwał';
|
||||
$lng['cron']['isactive'] = 'włączony';
|
||||
$lng['cron']['description'] = 'opis';
|
||||
$lng['crondesc']['cron_unknown_desc'] = 'no description given';
|
||||
$lng['admin']['cron']['add'] = 'Add cronjob';
|
||||
$lng['crondesc']['cron_tasks'] = 'przebudowanie plik<69>w konfiguracyjnych';
|
||||
$lng['crondesc']['cron_legacy'] = 'legacy (old) cronjob';
|
||||
$lng['crondesc']['cron_apsinstaller'] = 'Instalator aplikacji';
|
||||
$lng['crondesc']['cron_autoresponder'] = 'e-mail autoresponder';
|
||||
$lng['crondesc']['cron_apsupdater'] = 'Aktualizacja pakiet<65>w instalatora aplikacji';
|
||||
$lng['crondesc']['cron_traffic'] = 'obliczanie ruchu';
|
||||
$lng['crondesc']['cron_ticketsreset'] = 'resetowanie licznik<69>w zgłoszeń';
|
||||
$lng['crondesc']['cron_ticketarchive'] = 'archiwizowanie starych zgłoszeń';
|
||||
$lng['cronmgmt']['seconds'] = 'sekund';
|
||||
$lng['cronmgmt']['minutes'] = 'minut';
|
||||
$lng['cronmgmt']['hours'] = 'godzin';
|
||||
$lng['cronmgmt']['days'] = 'dni';
|
||||
$lng['cronmgmt']['weeks'] = 'tygodni';
|
||||
$lng['cronmgmt']['months'] = 'miesięcy';
|
||||
$lng['admin']['cronjob_edit'] = 'Edytuj zadania cykliczne';
|
||||
$lng['cronjob']['cronjobsettings'] = 'Ustawienia zadania cykliczne';
|
||||
$lng['cronjob']['cronjobinterval'] = 'Interwał uruchomienia';
|
||||
$lng['panel']['options'] = 'opcje';
|
||||
$lng['admin']['warning'] = 'WAŻNE - Przeczytaj to!';
|
||||
$lng['cron']['changewarning'] = 'Changing these values can have a negative cause to the behavior of Froxlor and its automated tasks.<br /><br />Please, only change values here if you are *damn sure* you know what you are doing.';
|
||||
|
||||
$lng['serversettings']['stdsubdomainhost']['title'] = 'Customer standard subdomain';
|
||||
$lng['serversettings']['stdsubdomainhost']['description'] = 'What hostname should be used to create standard subdomains for customer. If empty, the system-hostname is used.';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.4-svn1
|
||||
$lng['ftp']['account_edit'] = 'Edytuj konto ftp';
|
||||
$lng['ftp']['editpassdescription'] = 'Ustal nowe hasło lub zostaw puste by nie zmieniać.';
|
||||
$lng['customer']['sendinfomail'] = 'Send data via email to me';
|
||||
$lng['customer']['mysql_add']['infomail_subject'] = '[Froxlor] Nowa baza danych utworzona';
|
||||
$lng['customer']['mysql_add']['infomail_body']['pma'] = "\nMasz dostęp do Twojej bazy danych uzywając phpMyAdmina pod adresem {URI}\n";
|
||||
$lng['customer']['mysql_add']['infomail_body']['main'] = "Witaj {CUST_NAME},\n\nwłaśnie dodałeś nową bazę danych. Przesyłamy dane uruchomieniowe:\n\nBaza danych: {DB_NAME}\nHasło: {DB_PASS}\nOpis: {DB_DESC}\n{PMA_URI}\nZ poważaniem, Froxlor";
|
||||
$lng['error']['domains_cantdeletedomainwithapsinstances'] = 'Nie możesz usunąć domeny, ponieważ jest na niej zainstalowana aplikacja z instalatora aplikacji. W pierwszej kolejności odinstaluj tą aplikację.';
|
||||
$lng['serversettings']['awstats_path'] = '<27>cieżka do AWStats \'awstats_buildstaticpages.pl\'';
|
||||
$lng['serversettings']['awstats_conf'] = 'AWStats configuration path';
|
||||
$lng['error']['overviewsettingoptionisnotavalidfield'] = 'Woops, a field that should be displayed as an option in the settings-overview is not an excepted type. You can blame the developers for this. This should not happen!';
|
||||
$lng['admin']['configfiles']['compactoverview'] = 'Compact-overview';
|
||||
$lng['admin']['lastlogin_succ'] = 'Ostatnie logowanie';
|
||||
$lng['panel']['neverloggedin'] = 'Brak logowania do tej pory';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.6-svn1
|
||||
$lng['serversettings']['defaultttl'] = 'TTL domeny dla binda w sekundach (domyślnie \'604800\' = 1 tydzień)';
|
||||
$lng['ticket']['logicalorder'] = 'Logical order';
|
||||
$lng['ticket']['orderdesc'] = 'Here you can define your own logical order for the ticket-category. Use 1 - 999, lower numbers are displayed first.';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.6-svn3
|
||||
$lng['serversettings']['defaultwebsrverrhandler_enabled'] = 'Włączone standardowe strony błęd<31>w dla wszystkich klient<6E>w';
|
||||
$lng['serversettings']['defaultwebsrverrhandler_err401']['title'] = 'Plik/URL dla błędu 401';
|
||||
$lng['serversettings']['defaultwebsrverrhandler_err401']['description'] = '<div style="color:red">'.$lng['panel']['not_supported'].'lighttpd</div>';
|
||||
$lng['serversettings']['defaultwebsrverrhandler_err403']['title'] = 'Plik/URL dla błędu 403';
|
||||
$lng['serversettings']['defaultwebsrverrhandler_err403']['description'] = '<div style="color:red">'.$lng['panel']['not_supported'].'lighttpd</div>';
|
||||
$lng['serversettings']['defaultwebsrverrhandler_err404'] = 'Plik/URL dla błędu 404';
|
||||
$lng['serversettings']['defaultwebsrverrhandler_err500']['title'] = 'Plik/URL dla błędu 500';
|
||||
$lng['serversettings']['defaultwebsrverrhandler_err500']['description'] = '<div style="color:red">'.$lng['panel']['not_supported'].'lighttpd</div>';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.6-svn4
|
||||
$lng['serversettings']['ticket']['default_priority'] = 'Standardowy priorytet dla zg<7A>osze<7A> pomocy technicznej';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.6-svn5
|
||||
$lng['serversettings']['mod_fcgid']['defaultini'] = 'Default PHP configuration for new domains';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.6-svn6
|
||||
$lng['admin']['ftpserver'] = 'Serwer FTP';
|
||||
$lng['admin']['ftpserversettings'] = 'Ustawienia Serwera FTP';
|
||||
$lng['serversettings']['ftpserver']['desc'] = 'Je<4A>li pureftpd jest zaznaczone, plik .ftpquota z quotami u<>ytkownika b<>dzie tworzony i aktualizowany codziennie';
|
||||
|
||||
// CHANGED IN FROXLOR 0.9.6-svn6
|
||||
$lng['serversettings']['ftpprefix']['description'] = 'Which prefix should ftp accounts have?<br/><b>If you change this you also have to change the Quota SQL Query in your FTP Server config file in case you use it!</b> ';
|
||||
|
||||
?>
|
||||
@@ -19,19 +19,6 @@ include_once(dirname(__FILE__) . '/../lib/cron_init.php');
|
||||
|
||||
$jobs_to_run = includeCronjobs($debugHandler, $pathtophpfiles);
|
||||
|
||||
/**
|
||||
* check for --force to include cron_tasks
|
||||
* even if it's not its turn
|
||||
*/
|
||||
if(isset($argv[1]) && strtolower($argv[1]) == '--force')
|
||||
{
|
||||
$crontasks = makeCorrectFile($pathtophpfiles.'/scripts/jobs/cron_tasks.php');
|
||||
if(!in_array($crontasks, $jobs_to_run))
|
||||
{
|
||||
array_unshift($jobs_to_run, $crontasks);
|
||||
}
|
||||
}
|
||||
|
||||
foreach($jobs_to_run as $cron)
|
||||
{
|
||||
require_once($cron);
|
||||
|
||||
@@ -132,40 +132,24 @@ if($db->num_rows($result) > 0)
|
||||
}
|
||||
|
||||
//fetching to field
|
||||
if((!strlen($to) || $to != $row['email'])
|
||||
&& preg_match("/^To:(.+)<(.*)>$/", $line, $match)
|
||||
if(!strlen($to)
|
||||
&& preg_match("/^To:(.+)<(.*)>$/", $line, $match)
|
||||
) {
|
||||
$to = $match[2];
|
||||
}
|
||||
elseif((!strlen($to) || $to != $row['email'])
|
||||
&& preg_match("/^To:\s+(.*@.*)$/", $line, $match)
|
||||
) {
|
||||
$to = $match[1];
|
||||
}
|
||||
/*
|
||||
* if we still don't have a To:-address
|
||||
* OR even worse, the $to is NOT the mail-address
|
||||
* of the customer which autoresponder this is
|
||||
* we have to check for CC too, #476
|
||||
*/
|
||||
elseif((!strlen($to) || $to != $row['email'])
|
||||
&& preg_match("/^Cc:(.+)<(.*)>$/", $line, $match)
|
||||
) {
|
||||
$to = $match[2];
|
||||
}
|
||||
elseif((!strlen($to) || $to != $row['email'])
|
||||
&& preg_match("/^Cc:\s+(.*@.*)$/", $line, $match)
|
||||
elseif(!strlen($to)
|
||||
&& preg_match("/^To:\s+(.*@.*)$/", $line, $match)
|
||||
) {
|
||||
$to = $match[1];
|
||||
}
|
||||
|
||||
//fetching sender field
|
||||
if(!strlen($sender)
|
||||
if(!strlen($to)
|
||||
&& preg_match("/^Sender:(.+)<(.*)>$/", $line, $match)
|
||||
) {
|
||||
$sender = $match[2];
|
||||
}
|
||||
elseif(!strlen($sender)
|
||||
elseif(!strlen($to)
|
||||
&& preg_match("/Sender:\s+(.*@.*)$/", $line, $match)
|
||||
) {
|
||||
$sender = $match[1];
|
||||
@@ -185,13 +169,6 @@ if($db->num_rows($result) > 0)
|
||||
}
|
||||
}
|
||||
|
||||
// check if the receiver is really the one
|
||||
// with the autoresponder
|
||||
if(!strlen($to) || $to != $row['email'])
|
||||
{
|
||||
$to = '';
|
||||
}
|
||||
|
||||
//skip mail when marked as spam
|
||||
if($spam == true)
|
||||
{
|
||||
|
||||
@@ -504,15 +504,6 @@ class apache
|
||||
$stats_text.= ' Alias /webalizer "' . makeCorrectFile($domain['customerroot'] . '/webalizer') . '"' . "\n";
|
||||
}
|
||||
}
|
||||
// if the docroots are equal, we still have to set an alias for awstats
|
||||
// because the stats are in /awstats/[domain], not just /awstats/
|
||||
// also, the awstats-icons are someplace else too!
|
||||
// -> webalizer does not need this!
|
||||
elseif($this->settings['system']['awstats_enabled'] == '1')
|
||||
{
|
||||
$stats_text.= ' Alias /awstats "' . makeCorrectFile($domain['documentroot'] . '/awstats/' . $domain['domain']) . '"' . "\n";
|
||||
$stats_text.= ' Alias /awstats-icon "' . makeCorrectDir($this->settings['system']['awstats_icons']) . '"' . "\n";
|
||||
}
|
||||
}
|
||||
|
||||
return $stats_text;
|
||||
@@ -621,7 +612,7 @@ class apache
|
||||
// After inserting the AWStats information,
|
||||
// be sure to build the awstats conf file as well
|
||||
// and chown it using $awstats_params, #258
|
||||
$awstats_params = array(
|
||||
$awstats_param = array(
|
||||
'loginname' => $domain['loginname'],
|
||||
'guid' => $domain['guid'],
|
||||
'documentroot' => $domain['documentroot']
|
||||
@@ -640,14 +631,12 @@ class apache
|
||||
protected function getVhostFilename($domain, $ssl_vhost = false)
|
||||
{
|
||||
if((int)$domain['parentdomainid'] == 0
|
||||
&& isCustomerStdSubdomain((int)$domain['id']) == false
|
||||
&& ((int)$domain['ismainbutsubto'] == 0
|
||||
|| domainMainToSubExists($domain['ismainbutsubto']) == false)
|
||||
) {
|
||||
$vhost_no = '22';
|
||||
}
|
||||
elseif((int)$domain['parentdomainid'] == 0
|
||||
&& isCustomerStdSubdomain((int)$domain['id']) == false
|
||||
&& (int)$domain['ismainbutsubto'] > 0
|
||||
) {
|
||||
$vhost_no = '21';
|
||||
|
||||
@@ -77,13 +77,11 @@ class lighttpd
|
||||
{
|
||||
$ip = '[' . $row_ipsandports['ip'] . ']';
|
||||
$port = $row_ipsandports['port'];
|
||||
$ipv6 = 'server.use-ipv6 = "enable"'."\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
$ip = $row_ipsandports['ip'];
|
||||
$port = $row_ipsandports['port'];
|
||||
$ipv6 = '';
|
||||
}
|
||||
|
||||
fwrite($this->debugHandler, ' lighttpd::createIpPort: creating ip/port settings for ' . $ip . ":" . $port . "\n");
|
||||
@@ -101,7 +99,6 @@ class lighttpd
|
||||
{
|
||||
$this->lighttpd_data[$vhost_filename].= 'server.port = ' . $port . "\n";
|
||||
$this->lighttpd_data[$vhost_filename].= 'server.bind = "' . $ip . '"' . "\n";
|
||||
$this->lighttpd_data[$vhost_filename].= $ipv6;
|
||||
}
|
||||
|
||||
if($row_ipsandports['vhostcontainer'] == '1')
|
||||
@@ -309,7 +306,6 @@ class lighttpd
|
||||
$_inc_path = substr($_tmp_path, $_pos+1);
|
||||
|
||||
if((int)$domain['parentdomainid'] == 0
|
||||
&& isCustomerStdSubdomain((int)$domain['id']) == false
|
||||
&& ((int)$domain['ismainbutsubto'] == 0
|
||||
|| domainMainToSubExists($domain['ismainbutsubto']) == false)
|
||||
) {
|
||||
@@ -320,7 +316,6 @@ class lighttpd
|
||||
}
|
||||
}
|
||||
elseif((int)$domain['parentdomainid'] == 0
|
||||
&& isCustomerStdSubdomain((int)$domain['id']) == false
|
||||
&& (int)$domain['ismainbutsubto'] > 0
|
||||
) {
|
||||
$vhost_no = '51';
|
||||
@@ -563,12 +558,12 @@ class lighttpd
|
||||
// After inserting the AWStats information,
|
||||
// be sure to build the awstats conf file as well
|
||||
// and chown it using $awstats_params, #258
|
||||
$awstats_params = array(
|
||||
$awstats_param = array(
|
||||
'loginname' => $domain['loginname'],
|
||||
'guid' => $domain['guid'],
|
||||
'documentroot' => $domain['documentroot']
|
||||
);
|
||||
createAWStatsConf($this->settings['system']['logfiles_directory'] . $domain['loginname'] . $speciallogfile . '-access.log', $domain['domain'], $alias . $server_alias, $domain['customerroot'], $awstats_params);
|
||||
createAWStatsConf($this->settings['system']['logfiles_directory'] . $domain['loginname'] . $speciallogfile . '-access.log', $domain['domain'], $alias . $server_alias, $domain['customerroot'], $awstats_param);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -860,15 +855,6 @@ class lighttpd
|
||||
$stats_text.= ' alias.url = ( "/webalizer/" => "'.makeCorrectFile($domain['customerroot'] . '/webalizer').'" )' . "\n";
|
||||
}
|
||||
}
|
||||
// if the docroots are equal, we still have to set an alias for awstats
|
||||
// because the stats are in /awstats/[domain], not just /awstats/
|
||||
// also, the awstats-icons are someplace else too!
|
||||
// -> webalizer does not need this!
|
||||
elseif($this->settings['system']['awstats_enabled'] == '1')
|
||||
{
|
||||
$stats_text.= ' alias.url = ( "/awstats/" => "'.makeCorrectFile($domain['documentroot'] . '/awstats/' . $domain['domain']).'" )' . "\n";
|
||||
$stats_text.= ' alias.url = ( "/awstats-icon" => "' . makeCorrectDir($this->settings['system']['awstats_icons']) . '" )' . "\n";
|
||||
}
|
||||
}
|
||||
|
||||
return $stats_text;
|
||||
|
||||
@@ -1,961 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Froxlor project.
|
||||
* Copyright (c) 2010 the Froxlor Team (see authors).
|
||||
*
|
||||
* For the full copyright and license information, please view the COPYING
|
||||
* file that was distributed with this source code. You can also view the
|
||||
* COPYING file online at http://files.froxlor.org/misc/COPYING.txt
|
||||
*
|
||||
* @copyright (c) the authors
|
||||
* @author Froxlor team <team@froxlor.org> (2010-)
|
||||
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
|
||||
* @package Configfiles
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
if(@php_sapi_name() != 'cli'
|
||||
&& @php_sapi_name() != 'cgi'
|
||||
&& @php_sapi_name() != 'cgi-fcgi')
|
||||
{
|
||||
die('This script only works in the shell.');
|
||||
}
|
||||
|
||||
class nginx
|
||||
{
|
||||
private $db = false;
|
||||
private $logger = false;
|
||||
private $debugHandler = false;
|
||||
private $idnaConvert = false;
|
||||
|
||||
// protected
|
||||
|
||||
protected $settings = array();
|
||||
protected $nginx_data = array();
|
||||
protected $needed_htpasswds = array();
|
||||
protected $auth_backend_loaded = false;
|
||||
protected $htpasswds_data = array();
|
||||
protected $known_htpasswdsfilenames = array();
|
||||
protected $mod_accesslog_loaded = "0";
|
||||
protected $vhost_root_autoindex = false;
|
||||
protected $known_vhostfilenames = array();
|
||||
|
||||
public function __construct($db, $logger, $debugHandler, $idnaConvert, $settings)
|
||||
{
|
||||
$this->db = $db;
|
||||
$this->logger = $logger;
|
||||
$this->debugHandler = $debugHandler;
|
||||
$this->idnaConvert = $idnaConvert;
|
||||
$this->settings = $settings;
|
||||
}
|
||||
|
||||
protected function getDB()
|
||||
{
|
||||
return $this->db;
|
||||
}
|
||||
|
||||
public function reload()
|
||||
{
|
||||
fwrite($this->debugHandler, ' nginx::reload: reloading nginx' . "\n");
|
||||
$this->logger->logAction(CRON_ACTION, LOG_INFO, 'reloading nginx');
|
||||
safe_exec($this->settings['system']['apachereload_command']);
|
||||
|
||||
/**
|
||||
* nginx does not auto-spawn fcgi-processes
|
||||
*/
|
||||
if ($this->settings['system']['phpreload_command'] != '')
|
||||
{
|
||||
fwrite($this->debugHandler, ' nginx::reload: restarting php processes' . "\n");
|
||||
$this->logger->logAction(CRON_ACTION, LOG_INFO, 'restarting php processes');
|
||||
safe_exec($this->settings['system']['phpreload_command']);
|
||||
}
|
||||
}
|
||||
|
||||
public function createVirtualHosts()
|
||||
{
|
||||
}
|
||||
|
||||
public function createFileDirOptions()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* define a default ErrorDocument-statement, bug #unknown-yet
|
||||
*/
|
||||
private function _createStandardErrorHandler()
|
||||
{
|
||||
if($this->settings['defaultwebsrverrhandler']['enabled'] == '1'
|
||||
&& ($this->settings['defaultwebsrverrhandler']['err401'] != ''
|
||||
|| $this->settings['defaultwebsrverrhandler']['err403'] != ''
|
||||
|| $this->settings['defaultwebsrverrhandler']['err404'] != ''
|
||||
|| $this->settings['defaultwebsrverrhandler']['err500'] != '')
|
||||
) {
|
||||
$vhosts_folder = '';
|
||||
if(is_dir($this->settings['system']['apacheconf_vhost']))
|
||||
{
|
||||
$vhosts_folder = makeCorrectDir($this->settings['system']['apacheconf_vhost']);
|
||||
} else {
|
||||
$vhosts_folder = makeCorrectDir(dirname($this->settings['system']['apacheconf_vhost']));
|
||||
}
|
||||
|
||||
$vhosts_filename = makeCorrectFile($vhosts_folder . '/05_froxlor_default_errorhandler.conf');
|
||||
|
||||
if(!isset($this->nginx_data[$vhosts_filename]))
|
||||
{
|
||||
$this->vnginx_data[$vhosts_filename] = '';
|
||||
}
|
||||
|
||||
if($this->settings['defaultwebsrverrhandler']['err401'] != '')
|
||||
{
|
||||
$this->nginx_data[$vhosts_filename].= 'error_page 401 ' . $this->settings['defaultwebsrverrhandler']['err401'] . ';' . "\n";
|
||||
}
|
||||
|
||||
if($this->settings['defaultwebsrverrhandler']['err403'] != '')
|
||||
{
|
||||
$this->nginx_data[$vhosts_filename].= 'error_page 403 ' . $this->settings['defaultwebsrverrhandler']['err403'] . ';' . "\n";
|
||||
}
|
||||
|
||||
if($this->settings['defaultwebsrverrhandler']['err404'] != '')
|
||||
{
|
||||
$this->nginx_data[$vhosts_filename].= 'error_page 404 ' . $this->settings['defaultwebsrverrhandler']['err404'] . ';' . "\n";
|
||||
}
|
||||
|
||||
if($this->settings['defaultwebsrverrhandler']['err500'] != '')
|
||||
{
|
||||
$this->nginx_data[$vhosts_filename].= 'error_page 500 ' . $this->settings['defaultwebsrverrhandler']['err500'] . ';' . "\n";
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public function createIpPort()
|
||||
{
|
||||
$query = "SELECT * FROM `" . TABLE_PANEL_IPSANDPORTS . "` ORDER BY `ip` ASC, `port` ASC";
|
||||
$result_ipsandports = $this->db->query($query);
|
||||
|
||||
while($row_ipsandports = $this->db->fetch_array($result_ipsandports))
|
||||
{
|
||||
if(filter_var($row_ipsandports['ip'], FILTER_VALIDATE_IP, FILTER_FLAG_IPV6))
|
||||
{
|
||||
$ip = '[' . $row_ipsandports['ip'] . ']';
|
||||
$port = $row_ipsandports['port'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$ip = $row_ipsandports['ip'];
|
||||
$port = $row_ipsandports['port'];
|
||||
}
|
||||
|
||||
fwrite($this->debugHandler, ' nginx::createIpPort: creating ip/port settings for ' . $ip . ":" . $port . "\n");
|
||||
$this->logger->logAction(CRON_ACTION, LOG_INFO, 'creating ip/port settings for ' . $ip . ":" . $port);
|
||||
$vhost_filename = makeCorrectFile($this->settings['system']['apacheconf_vhost'] . '/10_froxlor_ipandport_' . trim(str_replace(':', '.', $row_ipsandports['ip']), '.') . '.' . $row_ipsandports['port'] . '.conf');
|
||||
|
||||
if(!isset($this->nginx_data[$vhost_filename]))
|
||||
{
|
||||
$this->nginx_data[$vhost_filename] = '';
|
||||
}
|
||||
|
||||
$this->nginx_data[$vhost_filename].= 'server { ' . "\n";
|
||||
|
||||
/**
|
||||
* this HAS to be set for the default host in nginx or else no vhost will work
|
||||
*/
|
||||
$this->nginx_data[$vhost_filename].= "\t". 'listen ' . $ip . ':' . $port . ' default;' . "\n";
|
||||
|
||||
if($row_ipsandports['vhostcontainer'] == '1')
|
||||
{
|
||||
$this->nginx_data[$vhost_filename].= "\t".'# Froxlor default vhost' . "\n";
|
||||
$this->nginx_data[$vhost_filename].= "\t".'server_name ' . $this->settings['system']['hostname'] . ';' . "\n";
|
||||
}
|
||||
|
||||
$this->nginx_data[$vhost_filename].= "\t".'access_log /var/log/nginx/access.log;' . "\n";
|
||||
|
||||
if($row_ipsandports['vhostcontainer'] == '1')
|
||||
{
|
||||
$mypath = makeCorrectDir(dirname(dirname(dirname(__FILE__))));
|
||||
$this->nginx_data[$vhost_filename].= "\t".'root '.$mypath.';'."\n";
|
||||
$this->nginx_data[$vhost_filename].= "\t".'location / {'."\n";
|
||||
$this->nginx_data[$vhost_filename].= "\t\t".'index index.php index.html index.htm;'."\n";
|
||||
$this->nginx_data[$vhost_filename].= "\t".'}'."\n";
|
||||
|
||||
if($row_ipsandports['specialsettings'] != '')
|
||||
{
|
||||
$this->nginx_data[$vhost_filename].= $row_ipsandports['specialsettings'] . "\n";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* SSL config options
|
||||
*/
|
||||
if($row_ipsandports['ssl'] == '1')
|
||||
{
|
||||
if($row_ipsandports['ssl_cert_file'] == '')
|
||||
{
|
||||
$row_ipsandports['ssl_cert_file'] = $this->settings['system']['ssl_cert_file'];
|
||||
}
|
||||
|
||||
if($row_ipsandports['ssl_key_file'] == '')
|
||||
{
|
||||
$row_ipsandports['ssl_key_file'] = $this->settings['system']['ssl_key_file'];
|
||||
}
|
||||
|
||||
if($row_ipsandports['ssl_ca_file'] == '')
|
||||
{
|
||||
$row_ipsandports['ssl_ca_file'] = $this->settings['system']['ssl_ca_file'];
|
||||
}
|
||||
|
||||
if($row_ipsandports['ssl_cert_file'] != '')
|
||||
{
|
||||
$this->nginx_data[$vhost_filename].= "\t" . 'ssl on;' . "\n";
|
||||
$this->nginx_data[$vhost_filename].= "\t" . 'ssl_certificate ' . makeCorrectFile($row_ipsandports['ssl_cert_file']) . ';' . "\n";
|
||||
$this->nginx_data[$vhost_filename].= "\t" . 'ssl_certificate_key ' .makeCorrectFile($row_ipsandports['ssl_key_file']) . ';' . "\n";
|
||||
|
||||
if($row_ipsandports['ssl_ca_file'] != '')
|
||||
{
|
||||
$this->lighttpd_data[$vhost_filename].= 'ssl_client_certificate ' . makeCorrectFile($row_ipsandports['ssl_ca_file']) . ';' . "\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->nginx_data[$vhost_filename].= "\t".'location ~ \.php$ {'."\n";
|
||||
$this->nginx_data[$vhost_filename].= "\t\t".'fastcgi_index index.php;'."\n";
|
||||
$this->nginx_data[$vhost_filename].= "\t\t".'include /etc/nginx/fastcgi_params;'."\n";
|
||||
$this->nginx_data[$vhost_filename].= "\t\t".'fastcgi_param SCRIPT_FILENAME $document_root' . '$fastcgi_script_name;'."\n";
|
||||
$this->nginx_data[$vhost_filename].= "\t\t".'fastcgi_pass ' . $this->settings['system']['nginx_php_backend'] . ';' . "\n";
|
||||
$this->nginx_data[$vhost_filename].= "\t".'}'."\n";
|
||||
|
||||
$this->nginx_data[$vhost_filename].= '}' . "\n\n";
|
||||
// End of Froxlor server{}-part
|
||||
|
||||
$this->createNginxHosts($row_ipsandports['ip'], $row_ipsandports['port'], $row_ipsandports['ssl'], $vhost_filename);
|
||||
}
|
||||
|
||||
/**
|
||||
* standard error pages
|
||||
*/
|
||||
$this->_createStandardErrorHandler();
|
||||
}
|
||||
|
||||
protected function createNginxHosts($ip, $port, $ssl, $vhost_filename)
|
||||
{
|
||||
$query = "SELECT * FROM " . TABLE_PANEL_IPSANDPORTS . " WHERE `ip`='" . $ip . "' AND `port`='" . $port . "'";
|
||||
$ipandport = $this->db->query_first($query);
|
||||
|
||||
if($ssl == '0')
|
||||
{
|
||||
$query2 = "SELECT `d`.*, `pd`.`domain` AS `parentdomain`, `c`.`loginname`, `c`.`guid`, `c`.`email`, `c`.`documentroot` AS `customerroot`, `c`.`deactivated`, `c`.`phpenabled` AS `phpenabled` FROM `" . TABLE_PANEL_DOMAINS . "` `d` LEFT JOIN `" . TABLE_PANEL_CUSTOMERS . "` `c` USING(`customerid`) LEFT JOIN `" . TABLE_PANEL_DOMAINS . "` `pd` ON (`pd`.`id` = `d`.`parentdomainid`) WHERE `d`.`ipandport`='" . $ipandport['id'] . "' AND `d`.`aliasdomain` IS NULL ORDER BY `d`.`iswildcarddomain`, `d`.`domain` ASC";
|
||||
}
|
||||
else
|
||||
{
|
||||
$query2 = "SELECT `d`.*, `pd`.`domain` AS `parentdomain`, `c`.`loginname`, `c`.`guid`, `c`.`email`, `c`.`documentroot` AS `customerroot`, `c`.`deactivated`, `c`.`phpenabled` AS `phpenabled` FROM `" . TABLE_PANEL_DOMAINS . "` `d` LEFT JOIN `" . TABLE_PANEL_CUSTOMERS . "` `c` USING(`customerid`) LEFT JOIN `" . TABLE_PANEL_DOMAINS . "` `pd` ON (`pd`.`id` = `d`.`parentdomainid`) WHERE `d`.`ssl_ipandport`='" . $ipandport['id'] . "' AND `d`.`aliasdomain` IS NULL ORDER BY `d`.`iswildcarddomain`, `d`.`domain` ASC";
|
||||
}
|
||||
|
||||
$included_vhosts = array();
|
||||
$result_domains = $this->db->query($query2);
|
||||
while($domain = $this->db->fetch_array($result_domains))
|
||||
{
|
||||
if (is_dir($this->settings['system']['apacheconf_vhost']))
|
||||
{
|
||||
safe_exec('mkdir -p '.escapeshellarg(makeCorrectDir($this->settings['system']['apacheconf_vhost'])));
|
||||
$vhost_filename = $this->getVhostFilename($domain);
|
||||
}
|
||||
|
||||
if(!isset($this->nginx_data[$vhost_filename]))
|
||||
{
|
||||
$this->nginx_data[$vhost_filename] = '';
|
||||
}
|
||||
|
||||
$query = "SELECT * FROM " . TABLE_PANEL_IPSANDPORTS . " WHERE `id`='" . $domain['ipandport'] . "'";
|
||||
$ipandport = $this->db->query_first($query);
|
||||
$domain['ip'] = $ipandport['ip'];
|
||||
$domain['port'] = $ipandport['port'];
|
||||
$domain['ssl_cert_file'] = $ipandport['ssl_cert_file'];
|
||||
|
||||
if( (!empty($this->nginx_data[$vhost_filename]) && !is_dir($this->settings['system']['apacheconf_vhost']))
|
||||
|| is_dir($this->settings['system']['apacheconf_vhost']))
|
||||
{
|
||||
if($ssl == '1')
|
||||
{
|
||||
$ssl_vhost = true;
|
||||
$ips_and_ports_index = 'ssl_ipandport';
|
||||
}
|
||||
else
|
||||
{
|
||||
$ssl_vhost = false;
|
||||
$ips_and_ports_index = 'ipandport';
|
||||
}
|
||||
|
||||
$this->nginx_data[$vhost_filename].= $this->getVhostContent($domain, $ssl_vhost);
|
||||
$this->nginx_data[$vhost_filename].= isset($this->needed_htpasswds[$domain[$ips_and_ports_index]]) ? $this->needed_htpasswds[$domain[$ips_and_ports_index]] . "\n" : '';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected function getVhostFilename($domain, $ssl_vhost = false)
|
||||
{
|
||||
if((int)$domain['parentdomainid'] == 0
|
||||
&& isCustomerStdSubdomain((int)$domain['id']) == false
|
||||
&& ((int)$domain['ismainbutsubto'] == 0
|
||||
|| domainMainToSubExists($domain['ismainbutsubto']) == false)
|
||||
) {
|
||||
$vhost_no = '22';
|
||||
}
|
||||
elseif((int)$domain['parentdomainid'] == 0
|
||||
&& isCustomerStdSubdomain((int)$domain['id']) == false
|
||||
&& (int)$domain['ismainbutsubto'] > 0
|
||||
) {
|
||||
$vhost_no = '21';
|
||||
}
|
||||
else
|
||||
{
|
||||
$vhost_no = '20';
|
||||
}
|
||||
|
||||
if($ssl_vhost === true)
|
||||
{
|
||||
$vhost_filename = makeCorrectFile($this->settings['system']['apacheconf_vhost'] . '/'.$vhost_no.'_froxlor_ssl_vhost_' . $domain['domain'] . '.conf');
|
||||
}
|
||||
else
|
||||
{
|
||||
$vhost_filename = makeCorrectFile($this->settings['system']['apacheconf_vhost'] . '/'.$vhost_no.'_froxlor_normal_vhost_' . $domain['domain'] . '.conf');
|
||||
}
|
||||
|
||||
return $vhost_filename;
|
||||
}
|
||||
|
||||
protected function getVhostContent($domain, $ssl_vhost = false)
|
||||
{
|
||||
if($ssl_vhost === true
|
||||
&& $domain['ssl'] != '1')
|
||||
{
|
||||
return '';
|
||||
}
|
||||
|
||||
if($ssl_vhost === true
|
||||
&& $domain['ssl'] == '1')
|
||||
{
|
||||
$query = "SELECT * FROM " . TABLE_PANEL_IPSANDPORTS . " WHERE `id`='" . $domain['ssl_ipandport'] . "'";
|
||||
}
|
||||
else
|
||||
{
|
||||
$query = "SELECT * FROM " . TABLE_PANEL_IPSANDPORTS . " WHERE `id`='" . $domain['ipandport'] . "'";
|
||||
}
|
||||
|
||||
$ipandport = $this->db->query_first($query);
|
||||
$domain['ip'] = $ipandport['ip'];
|
||||
$domain['port'] = $ipandport['port'];
|
||||
$domain['ssl_cert_file'] = $ipandport['ssl_cert_file'];
|
||||
|
||||
if(filter_var($domain['ip'], FILTER_VALIDATE_IP, FILTER_FLAG_IPV6))
|
||||
{
|
||||
$ipport = '[' . $domain['ip'] . ']:' . $domain['port'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$ipport = $domain['ip'] . ':' . $domain['port'];
|
||||
}
|
||||
|
||||
$vhost_content = '';
|
||||
$vhost_content.= 'server { ' . "\n";
|
||||
$vhost_content.= "\t" . 'listen ' . $ipport . ';' . "\n";
|
||||
|
||||
$vhost_content.= $this->getServerNames($domain);
|
||||
|
||||
if(preg_match('/^https?\:\/\//', $domain['documentroot']))
|
||||
{
|
||||
$vhost_content.= "\t".'rewrite ^(.*) '.$this->idnaConvert->encode($domain['documentroot']).'$1 permanent;'."\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
mkDirWithCorrectOwnership($domain['customerroot'], $domain['documentroot'], $domain['guid'], $domain['guid'], true);
|
||||
|
||||
$vhost_content.= $this->getLogFiles($domain);
|
||||
$vhost_content.= $this->getWebroot($domain, $ssl_vhost);
|
||||
$vhost_content.= $this->create_pathOptions($domain);
|
||||
//$vhost_content.= $this->create_htaccess($domain);
|
||||
$vhost_content.= $this->composePhpOptions($domain);
|
||||
$vhost_content.= $this->getStats($domain);
|
||||
|
||||
if ($domain['specialsettings'] != "") {
|
||||
$vhost_content.= $domain['specialsettings'] . "\n";
|
||||
}
|
||||
}
|
||||
$vhost_content.= '}' . "\n\n";
|
||||
|
||||
return $vhost_content;
|
||||
}
|
||||
|
||||
protected function create_pathOptions($domain)
|
||||
{
|
||||
$has_location = false;
|
||||
|
||||
$query = "SELECT * FROM " . TABLE_PANEL_HTACCESS . " WHERE `path` LIKE '" . $domain['documentroot'] . "%'";
|
||||
$result = $this->db->query($query);
|
||||
|
||||
$path_options = '';
|
||||
|
||||
$htpasswds = $this->getHtpasswds($domain);
|
||||
|
||||
while($row = $this->db->fetch_array($result))
|
||||
{
|
||||
if(!empty($row['error404path']))
|
||||
{
|
||||
$path_options.= "\t".'error_page 404 ' . $row['error404path'] . ';' . "\n";
|
||||
}
|
||||
|
||||
if(!empty($row['error403path']))
|
||||
{
|
||||
$path_options.= "\t".'error_page 403 ' . $row['error403path'] . ';' . "\n";
|
||||
}
|
||||
|
||||
if(!empty($row['error500path']))
|
||||
{
|
||||
$path_options.= "\t".'error_page 502 503 504 ' . $row['error500path'] . ';' . "\n";
|
||||
}
|
||||
|
||||
if($row['options_indexes'] != '0')
|
||||
{
|
||||
$path = makeCorrectDir(substr($row['path'], strlen($domain['documentroot']) - 1));
|
||||
|
||||
mkDirWithCorrectOwnership($domain['documentroot'], $row['path'], $domain['guid'], $domain['guid']);
|
||||
|
||||
if (trim($path) == '/') {
|
||||
$this->vhost_root_autoindex = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$path_options.= "\t".'location ' . $path . ' {' . "\n";
|
||||
$path_options.= "\t\t" . 'autoindex on;' . "\n";
|
||||
// check if we have a htpasswd for this path
|
||||
// (damn nginx does not like more than one
|
||||
// 'location'-part with the same path)
|
||||
if(count($htpasswds) > 0)
|
||||
{
|
||||
foreach($htpasswds as $idx => $single)
|
||||
{
|
||||
if($path == $single['path'])
|
||||
{
|
||||
$path_options.= "\t\t" . 'auth_basic "Restricted Area";' . "\n";
|
||||
$path_options.= "\t\t" . 'auth_basic_user_file ' . $single['usrf'] . ';'."\n";
|
||||
// remove already used entries so we do not have doubles
|
||||
unset($htpasswds[$idx]);
|
||||
}
|
||||
}
|
||||
}
|
||||
$path_options.= "\t".'}' . "\n";
|
||||
|
||||
$this->vhost_root_autoindex = false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Perl suport
|
||||
* required the fastCGI wrapper to be running to receive the CGI requests.
|
||||
*/
|
||||
if(customerHasPerlEnabled($domain['customerid'])
|
||||
&& $row['options_cgi'] != '0')
|
||||
{
|
||||
$path = makeCorrectDir(substr($row['path'], strlen($domain['documentroot']) - 1));
|
||||
mkDirWithCorrectOwnership($domain['documentroot'], $row['path'], $domain['guid'], $domain['guid']);
|
||||
|
||||
// We need to remove the last slash, otherwise the regex wouldn't work
|
||||
if($row['path'] != $domain['documentroot']) {
|
||||
$path = substr($path, 0, -1);
|
||||
}
|
||||
$path_options.= "\t" . 'location ~ \(.pl|.cgi)$ {' . "\n";
|
||||
$path_options.= "\t\t" . 'gzip off; #gzip makes scripts feel slower since they have to complete before getting gzipped' . "\n";
|
||||
$path_options.= "\t\t" . 'fastcgi_pass '. $this->settings['system']['perl_server'] . ';' . "\n";
|
||||
$path_options.= "\t\t" . 'fastcgi_index index.cgi;' . "\n";
|
||||
$path_options.= "\t\t" . 'include /etc/nginx/fastcgi_params;'."\n";
|
||||
$path_options.= "\t" . '}' . "\n";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* now the rest of the htpasswds
|
||||
*/
|
||||
if(count($htpasswds) > 0)
|
||||
{
|
||||
foreach($htpasswds as $idx => $single)
|
||||
{
|
||||
$path_options.= "\t" . 'location ' . $single['path'] . ' {' . "\n";
|
||||
$path_options.= "\t\t" . 'auth_basic "Restricted Area";' . "\n";
|
||||
$path_options.= "\t\t" . 'auth_basic_user_file ' . $single['usrf'] . ';'."\n";
|
||||
$path_options.= "\t".'}' . "\n";
|
||||
}
|
||||
}
|
||||
|
||||
return $path_options;
|
||||
}
|
||||
|
||||
protected function getHtpasswds($domain)
|
||||
{
|
||||
$query = "SELECT * FROM " . TABLE_PANEL_HTPASSWDS . " WHERE `customerid`='" . $domain['customerid'] . "'";
|
||||
$result = $this->db->query($query);
|
||||
|
||||
$result = array();
|
||||
$x = 0;
|
||||
while($row_htpasswds = $this->db->fetch_array($result))
|
||||
{
|
||||
if(count($row_htpasswds['htpasswds']) > 0)
|
||||
{
|
||||
$htpasswd_filename = makeCorrectFile($this->settings['system']['apacheconf_htpasswddir'] . '/' . $row_htpasswds['customerid'] . '-' . md5($row_htpasswds['path']) . '.htpasswd');
|
||||
|
||||
if(!isset($this->htpasswds_data[$htpasswd_filename]))
|
||||
{
|
||||
$this->htpasswds_data[$htpasswd_filename] = '';
|
||||
}
|
||||
|
||||
foreach($row['htpasswds'] as $row_htpasswd)
|
||||
{
|
||||
$this->htpasswds_data[$htpasswd_filename].= $row_htpasswd['username'] . ':' . $row_htpasswd['password'] . "\n";
|
||||
}
|
||||
|
||||
$path = makeCorrectDir(substr($row['path'], strlen($domain['documentroot']) - 1));
|
||||
|
||||
$result[$x]['path'] = $path;
|
||||
$result[$x]['root'] = makeCorrectDir($domain['documentroot']);
|
||||
$result[$x]['usrf'] = $htpasswd_filename;
|
||||
$x++;
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
protected function composePhpOptions($domain)
|
||||
{
|
||||
$phpopts = '';
|
||||
if($domain['phpenabled'] == '1')
|
||||
{
|
||||
$phpopts = "\t".'location ~ \.php$ {'."\n";
|
||||
$phpopts.= "\t\t".'fastcgi_index index.php;'."\n";
|
||||
$phpopts.= "\t\t".'include /etc/nginx/fastcgi_params;'."\n";
|
||||
$phpopts.= "\t\t".'fastcgi_param SCRIPT_FILENAME $document_root' . '$fastcgi_script_name;'."\n";
|
||||
$phpopts.= "\t\t".'fastcgi_pass ' . $this->settings['system']['nginx_php_backend'] . ';' . "\n";
|
||||
$phpopts.= "\t".'}'."\n";
|
||||
}
|
||||
return $phpopts;
|
||||
}
|
||||
|
||||
protected function getWebroot($domain, $ssl)
|
||||
{
|
||||
$webroot_text = '';
|
||||
|
||||
if($domain['deactivated'] == '1'
|
||||
&& $this->settings['system']['deactivateddocroot'] != '')
|
||||
{
|
||||
$webroot_text.= "\t".'# Using docroot for deactivated users...' . "\n";
|
||||
$webroot_text.= "\t".'root '.$this->settings['system']['deactivateddocroot'].';'."\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
$webroot_text.= "\t".'root '.makeCorrectDir($domain['documentroot']).';'."\n";
|
||||
}
|
||||
|
||||
$webroot_text.= "\t".'location / {'."\n";
|
||||
$webroot_text.= "\t\t".'index index.php index.html index.htm;'."\n";
|
||||
|
||||
if($this->vhost_root_autoindex) {
|
||||
$webroot_text.= "\t\t".'autoindex on;'."\n";
|
||||
$this->vhost_root_autoindex = false;
|
||||
}
|
||||
|
||||
$webroot_text.= "\t".'}'."\n";
|
||||
|
||||
return $webroot_text;
|
||||
}
|
||||
|
||||
protected function getStats($domain)
|
||||
{
|
||||
$stats_text = '';
|
||||
|
||||
if($domain['speciallogfile'] == '1'
|
||||
&& $this->settings['system']['mod_log_sql'] != '1')
|
||||
{
|
||||
if($domain['parentdomainid'] == '0')
|
||||
{
|
||||
if($this->settings['system']['awstats_enabled'] == '1')
|
||||
{
|
||||
$stats_text.= "\t" . 'location /awstats {' . "\n";
|
||||
$stats_text.= "\t\t" . 'alias ' . makeCorrectFile($domain['customerroot'] . '/awstats/' . $domain['domain']) . ';' . "\n";
|
||||
$stats_text.= "\t" . '}' . "\n";
|
||||
$stats_text.= "\t" . 'location /awstats-icon {' . "\n";
|
||||
$stats_text.= "\t\t" . 'alias ' . makeCorrectDir($this->settings['system']['awstats_icons']) . ';' . "\n";
|
||||
$stats_text.= "\t\t" . '}' . "\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
$stats_text.= "\t" . 'location /webalizer {' . "\n";
|
||||
$stats_text.= "\t\t" . 'alias ' . makeCorrectFile($domain['customerroot'] . '/webalizer/' . $domain['domain']) . ';' . "\n";
|
||||
$stats_text.= "\t" . '}' . "\n";
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if($this->settings['system']['awstats_enabled'] == '1')
|
||||
{
|
||||
$stats_text.= "\t" . 'location /awstats {' . "\n";
|
||||
$stats_text.= "\t\t" . 'alias ' . makeCorrectFile($domain['customerroot'] . '/awstats/' . $domain['parentdomain']) . ';' . "\n";
|
||||
$stats_text.= "\t" . '}' . "\n";
|
||||
$stats_text.= "\t" . 'location /awstats-icon {' . "\n";
|
||||
$stats_text.= "\t\t" . 'alias ' . makeCorrectDir($this->settings['system']['awstats_icons']) . ';' . "\n";
|
||||
$stats_text.= "\t\t" . '}' . "\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
$stats_text.= "\t" . 'location /webalizer {' . "\n";
|
||||
$stats_text.= "\t\t" . 'alias ' . makeCorrectFile($domain['customerroot'] . '/webalizer/' . $domain['parentdomain']) . ';' . "\n";
|
||||
$stats_text.= "\t" . '}' . "\n";
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if($domain['customerroot'] != $domain['documentroot'])
|
||||
{
|
||||
if($this->settings['system']['awstats_enabled'] == '1')
|
||||
{
|
||||
$stats_text.= "\t" . 'location /awstats {' . "\n";
|
||||
$stats_text.= "\t\t" . 'alias ' . makeCorrectFile($domain['customerroot'] . '/awstats/' . $domain['domain']) . ';' . "\n";
|
||||
$stats_text.= "\t" . '}' . "\n";
|
||||
$stats_text.= "\t" . 'location /awstats-icon {' . "\n";
|
||||
$stats_text.= "\t\t" . 'alias ' . makeCorrectDir($this->settings['system']['awstats_icons']) . ';' . "\n";
|
||||
$stats_text.= "\t\t" . '}' . "\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
$stats_text.= "\t" . 'location /webalizer {' . "\n";
|
||||
$stats_text.= "\t\t" . 'root ' . makeCorrectFile($domain['customerroot'] . '/webalizer/' . $domain['domain']) . ';' . "\n";
|
||||
$stats_text.= "\t" . '}' . "\n";
|
||||
|
||||
}
|
||||
}
|
||||
// if the docroots are equal, we still have to set an alias for awstats
|
||||
// because the stats are in /awstats/[domain], not just /awstats/
|
||||
// also, the awstats-icons are someplace else too!
|
||||
// -> webalizer does not need this!
|
||||
elseif($this->settings['system']['awstats_enabled'] == '1')
|
||||
{
|
||||
$stats_text.= "\t" . 'location /awstats {' . "\n";
|
||||
$stats_text.= "\t\t" . 'alias ' . makeCorrectFile($domain['documentroot'] . '/awstats/' . $domain['domain']) . ';' . "\n";
|
||||
$stats_text.= "\t" . '}' . "\n";
|
||||
$stats_text.= "\t" . 'location /awstats-icon {' . "\n";
|
||||
$stats_text.= "\t\t" . 'alias ' . makeCorrectDir($this->settings['system']['awstats_icons']) . ';' . "\n";
|
||||
$stats_text.= "\t\t" . '}' . "\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return $stats_text;
|
||||
}
|
||||
|
||||
/**
|
||||
* @TODO mod_log_sql
|
||||
*/
|
||||
protected function getLogFiles($domain)
|
||||
{
|
||||
$logfiles_text = '';
|
||||
|
||||
if($domain['speciallogfile'] == '1'
|
||||
&& $this->settings['system']['mod_log_sql'] != '1')
|
||||
{
|
||||
if($domain['parentdomainid'] == '0')
|
||||
{
|
||||
$speciallogfile = '-' . $domain['domain'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$speciallogfile = '-' . $domain['parentdomain'];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$speciallogfile = '';
|
||||
}
|
||||
|
||||
// The normal access/error - logging is enabled
|
||||
$error_log = makeCorrectFile($this->settings['system']['logfiles_directory'] . $domain['loginname'] . $speciallogfile . '-error.log');
|
||||
// Create the logfile if it does not exist (fixes #46)
|
||||
touch($error_log);
|
||||
chown($error_log, $this->settings['system']['httpuser']);
|
||||
chgrp($error_log, $this->settings['system']['httpgroup']);
|
||||
|
||||
$access_log = makeCorrectFile($this->settings['system']['logfiles_directory'] . $domain['loginname'] . $speciallogfile . '-access.log');
|
||||
// Create the logfile if it does not exist (fixes #46)
|
||||
touch($access_log);
|
||||
chown($access_log, $this->settings['system']['httpuser']);
|
||||
chgrp($access_log, $this->settings['system']['httpgroup']);
|
||||
|
||||
$logfiles_text.= "\t".'access_log ' . $access_log . ' combined;' . "\n";
|
||||
$logfiles_text.= "\t".'error_log ' . $error_log . ' error;' . "\n";
|
||||
|
||||
if($this->settings['system']['awstats_enabled'] == '1')
|
||||
{
|
||||
if((int)$domain['parentdomainid'] == 0)
|
||||
{
|
||||
// prepare the aliases and subdomains for stats config files
|
||||
|
||||
$server_alias = '';
|
||||
$alias_domains = $this->db->query('SELECT `domain`, `iswildcarddomain`, `wwwserveralias` FROM `' . TABLE_PANEL_DOMAINS . '`
|
||||
WHERE `aliasdomain`=\'' . $domain['id'] . '\'
|
||||
OR `parentdomainid` =\''. $domain['id']. '\'');
|
||||
|
||||
while(($alias_domain = $this->db->fetch_array($alias_domains)) !== false)
|
||||
{
|
||||
$server_alias.= ' ' . $alias_domain['domain'] . ' ';
|
||||
|
||||
if($alias_domain['iswildcarddomain'] == '1')
|
||||
{
|
||||
$server_alias.= '*.' . $domain['domain'];
|
||||
}
|
||||
else
|
||||
{
|
||||
if($alias_domain['wwwserveralias'] == '1')
|
||||
{
|
||||
$server_alias.= 'www.' . $alias_domain['domain'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$server_alias.= '';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($domain['iswildcarddomain'] == '1')
|
||||
{
|
||||
$alias = '*.' . $domain['domain'];
|
||||
}
|
||||
else
|
||||
{
|
||||
if($domain['wwwserveralias'] == '1')
|
||||
{
|
||||
$alias = 'www.' . $domain['domain'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$alias = '';
|
||||
}
|
||||
}
|
||||
|
||||
// After inserting the AWStats information,
|
||||
// be sure to build the awstats conf file as well
|
||||
// and chown it using $awstats_params, #258
|
||||
$awstats_params = array(
|
||||
'loginname' => $domain['loginname'],
|
||||
'guid' => $domain['guid'],
|
||||
'documentroot' => $domain['documentroot']
|
||||
);
|
||||
createAWStatsConf($this->settings['system']['logfiles_directory'] . $domain['loginname'] . $speciallogfile . '-access.log', $domain['domain'], $alias . $server_alias, $domain['customerroot'], $awstats_params);
|
||||
}
|
||||
}
|
||||
|
||||
return $logfiles_text;
|
||||
}
|
||||
|
||||
public function createOwnVhostStarter()
|
||||
{
|
||||
}
|
||||
|
||||
protected function getServerNames($domain)
|
||||
{
|
||||
$server_alias = '';
|
||||
|
||||
if($domain['iswildcarddomain'] == '1')
|
||||
{
|
||||
$server_alias = '*.' . $domain['domain'];
|
||||
}
|
||||
else
|
||||
{
|
||||
if($domain['wwwserveralias'] == '1')
|
||||
{
|
||||
$server_alias = 'www.' . $domain['domain'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$server_alias = '';
|
||||
}
|
||||
}
|
||||
|
||||
$alias_domains = $this->db->query('SELECT `domain`, `iswildcarddomain`, `wwwserveralias` FROM `' . TABLE_PANEL_DOMAINS . '` WHERE `aliasdomain`=\'' . $domain['id'] . '\'');
|
||||
|
||||
while(($alias_domain = $this->db->fetch_array($alias_domains)) !== false)
|
||||
{
|
||||
$server_alias.= ' ' . $alias_domain['domain'];
|
||||
|
||||
if($alias_domain['iswildcarddomain'] == '1')
|
||||
{
|
||||
$server_alias.= ' *.' . $alias_domain['domain'];
|
||||
}
|
||||
else
|
||||
{
|
||||
if($alias_domain['wwwserveralias'] == '1')
|
||||
{
|
||||
$server_alias.= ' www.' . $alias_domain['domain'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$servernames_text = "\t".'server_name '.$domain['domain'];
|
||||
if(trim($server_alias) != '')
|
||||
{
|
||||
$servernames_text.= ' '.$server_alias;
|
||||
}
|
||||
$servernames_text.= ';' . "\n";
|
||||
|
||||
return $servernames_text;
|
||||
}
|
||||
|
||||
public function writeConfigs()
|
||||
{
|
||||
fwrite($this->debugHandler, ' nginx::writeConfigs: rebuilding ' . $this->settings['system']['apacheconf_vhost'] . "\n");
|
||||
$this->logger->logAction(CRON_ACTION, LOG_INFO, "rebuilding " . $this->settings['system']['apacheconf_vhost']);
|
||||
|
||||
if(!isConfigDir($this->settings['system']['apacheconf_vhost']))
|
||||
{
|
||||
// Save one big file
|
||||
$vhosts_file = '';
|
||||
|
||||
// sort by filename so the order is:
|
||||
// 1. subdomains
|
||||
// 2. subdomains as main-domains
|
||||
// 3. main-domains
|
||||
ksort($this->nginx_data);
|
||||
|
||||
foreach($this->nginx_data as $vhosts_filename => $vhost_content)
|
||||
{
|
||||
$vhosts_file.= $vhost_content . "\n\n";
|
||||
}
|
||||
|
||||
$vhosts_filename = $this->settings['system']['apacheconf_vhost'];
|
||||
|
||||
// Apply header
|
||||
|
||||
$vhosts_file = '# ' . basename($vhosts_filename) . "\n" . '# Created ' . date('d.m.Y H:i') . "\n" . '# Do NOT manually edit this file, all changes will be deleted after the next domain change at the panel.' . "\n" . "\n" . $vhosts_file;
|
||||
$vhosts_file_handler = fopen($vhosts_filename, 'w');
|
||||
fwrite($vhosts_file_handler, $vhosts_file);
|
||||
fclose($vhosts_file_handler);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!file_exists($this->settings['system']['apacheconf_vhost']))
|
||||
{
|
||||
fwrite($this->debugHandler, ' nginx::writeConfigs: mkdir ' . escapeshellarg(makeCorrectDir($this->settings['system']['apacheconf_vhost'])) . "\n");
|
||||
$this->logger->logAction(CRON_ACTION, LOG_NOTICE, 'mkdir ' . escapeshellarg(makeCorrectDir($this->settings['system']['apacheconf_vhost'])));
|
||||
safe_exec('mkdir -p ' . escapeshellarg(makeCorrectDir($this->settings['system']['apacheconf_vhost'])));
|
||||
}
|
||||
|
||||
// Write a single file for every vhost
|
||||
|
||||
foreach($this->nginx_data as $vhosts_filename => $vhosts_file)
|
||||
{
|
||||
$this->known_filenames[] = basename($vhosts_filename);
|
||||
|
||||
// Apply header
|
||||
|
||||
$vhosts_file = '# ' . basename($vhosts_filename) . "\n" . '# Created ' . date('d.m.Y H:i') . "\n" . '# Do NOT manually edit this file, all changes will be deleted after the next domain change at the panel.' . "\n" . "\n" . $vhosts_file;
|
||||
|
||||
if(!empty($vhosts_filename))
|
||||
{
|
||||
$vhosts_file_handler = fopen($vhosts_filename, 'w');
|
||||
fwrite($vhosts_file_handler, $vhosts_file);
|
||||
fclose($vhosts_file_handler);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$this->wipeOutOldVhostConfigs();
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* htaccess stuff
|
||||
*/
|
||||
if(count($this->htpasswds_data) > 0)
|
||||
{
|
||||
if(!file_exists($this->settings['system']['apacheconf_htpasswddir']))
|
||||
{
|
||||
$umask = umask();
|
||||
umask(0000);
|
||||
mkdir($this->settings['system']['apacheconf_htpasswddir'], 0751);
|
||||
umask($umask);
|
||||
}
|
||||
elseif(!is_dir($this->settings['system']['apacheconf_htpasswddir']))
|
||||
{
|
||||
fwrite($this->debugHandler, ' cron_tasks: WARNING!!! ' . $this->settings['system']['apacheconf_htpasswddir'] . ' is not a directory. htpasswd directory protection is disabled!!!' . "\n");
|
||||
echo 'WARNING!!! ' . $this->settings['system']['apacheconf_htpasswddir'] . ' is not a directory. htpasswd directory protection is disabled!!!';
|
||||
$this->logger->logAction(CRON_ACTION, LOG_WARNING, 'WARNING!!! ' . $this->settings['system']['apacheconf_htpasswddir'] . ' is not a directory. htpasswd directory protection is disabled!!!');
|
||||
}
|
||||
|
||||
if(is_dir($this->settings['system']['apacheconf_htpasswddir']))
|
||||
{
|
||||
foreach($this->htpasswds_data as $htpasswd_filename => $htpasswd_file)
|
||||
{
|
||||
$this->known_htpasswdsfilenames[] = basename($htpasswd_filename);
|
||||
$htpasswd_file_handler = fopen($htpasswd_filename, 'w');
|
||||
fwrite($htpasswd_file_handler, $htpasswd_file);
|
||||
fclose($htpasswd_file_handler);
|
||||
}
|
||||
|
||||
$this->wipeOutOldHtpasswdConfigs();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected function wipeOutOldVhostConfigs()
|
||||
{
|
||||
fwrite($this->debugHandler, ' nginx::wipeOutOldVhostConfigs: cleaning ' . $this->settings['system']['apacheconf_vhost'] . "\n");
|
||||
$this->logger->logAction(CRON_ACTION, LOG_INFO, "cleaning " . $this->settings['system']['apacheconf_vhost']);
|
||||
|
||||
if(isConfigDir($this->settings['system']['apacheconf_vhost'], true))
|
||||
{
|
||||
$vhost_file_dirhandle = opendir($this->settings['system']['apacheconf_vhost']);
|
||||
|
||||
while(false !== ($vhost_filename = readdir($vhost_file_dirhandle)))
|
||||
{
|
||||
if($vhost_filename != '.'
|
||||
&& $vhost_filename != '..'
|
||||
&& !in_array($vhost_filename, $this->known_filenames)
|
||||
&& preg_match('/^(05|10|20|21|22|30|50|51)_(froxlor|syscp)_(dirfix|ipandport|normal_vhost|wildcard_vhost|ssl_vhost)_(.+)\.conf$/', $vhost_filename)
|
||||
&& file_exists(makeCorrectFile($this->settings['system']['apacheconf_vhost'] . '/' . $vhost_filename)))
|
||||
{
|
||||
fwrite($this->debugHandler, ' nginx::wipeOutOldVhostConfigs: unlinking ' . $vhost_filename . "\n");
|
||||
$this->logger->logAction(CRON_ACTION, LOG_NOTICE, 'unlinking ' . $vhost_filename);
|
||||
unlink(makeCorrectFile($this->settings['system']['apacheconf_vhost'] . '/' . $vhost_filename));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* We remove old htpasswd config files
|
||||
*/
|
||||
protected function wipeOutOldHtpasswdConfigs()
|
||||
{
|
||||
fwrite($this->debugHandler, ' nginx::wipeOutOldHtpasswdConfigs: cleaning ' . $this->settings['system']['apacheconf_htpasswddir'] . "\n");
|
||||
$this->logger->logAction(CRON_ACTION, LOG_INFO, "cleaning " . $this->settings['system']['apacheconf_htpasswddir']);
|
||||
|
||||
if(isConfigDir($this->settings['system']['apacheconf_htpasswddir'])
|
||||
&& file_exists($this->settings['system']['apacheconf_htpasswddir'])
|
||||
&& is_dir($this->settings['system']['apacheconf_htpasswddir']))
|
||||
{
|
||||
$htpasswds_file_dirhandle = opendir($this->settings['system']['apacheconf_htpasswddir']);
|
||||
|
||||
while(false !== ($htpasswd_filename = readdir($htpasswds_file_dirhandle)))
|
||||
{
|
||||
if($htpasswd_filename != '.'
|
||||
&& $htpasswd_filename != '..'
|
||||
&& !in_array($htpasswd_filename, $this->known_htpasswdsfilenames)
|
||||
&& file_exists(makeCorrectFile($this->settings['system']['apacheconf_htpasswddir'] . '/' . $htpasswd_filename)))
|
||||
{
|
||||
fwrite($this->debugHandler, ' nginx::wipeOutOldHtpasswdConfigs: unlinking ' . $htpasswd_filename . "\n");
|
||||
$this->logger->logAction(CRON_ACTION, LOG_NOTICE, 'unlinking ' . $htpasswd_filename);
|
||||
unlink(makeCorrectFile($this->settings['system']['apacheconf_htpasswddir'] . '/' . $htpasswd_filename));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -25,7 +25,6 @@ require_once(makeCorrectFile(dirname(__FILE__) . '/cron_tasks.inc.http.10.apache
|
||||
require_once(makeCorrectFile(dirname(__FILE__) . '/cron_tasks.inc.http.15.apache_fcgid.php'));
|
||||
require_once(makeCorrectFile(dirname(__FILE__) . '/cron_tasks.inc.http.20.lighttpd.php'));
|
||||
require_once(makeCorrectFile(dirname(__FILE__) . '/cron_tasks.inc.http.25.lighttpd_fcgid.php'));
|
||||
require_once(makeCorrectFile(dirname(__FILE__) . '/cron_tasks.inc.http.30.nginx.php'));
|
||||
|
||||
/**
|
||||
* LOOK INTO TASKS TABLE TO SEE IF THERE ARE ANY UNDONE JOBS
|
||||
@@ -56,7 +55,7 @@ while($row = $db->fetch_array($result_tasks))
|
||||
{
|
||||
$awstatsclean['header'] = "## GENERATED BY FROXLOR\n";
|
||||
$awstatsclean['headerold'] = "## GENERATED BY SYSCP\n";
|
||||
$awstatsclean['path'] = $settings['system']['awstats_conf'];
|
||||
$awstatsclean['path'] = '/etc/awstats';
|
||||
|
||||
/**
|
||||
* dont do anyting if the directory not exists
|
||||
@@ -144,10 +143,6 @@ while($row = $db->fetch_array($result_tasks))
|
||||
$webserver = new lighttpd($db, $cronlog, $debugHandler, $idna_convert, $settings);
|
||||
}
|
||||
}
|
||||
elseif($settings['system']['webserver'] == "nginx")
|
||||
{
|
||||
$webserver = new nginx($db, $cronlog, $debugHandler, $idna_convert, $settings);
|
||||
}
|
||||
}
|
||||
|
||||
if(isset($webserver))
|
||||
|
||||
@@ -27,5 +27,5 @@
|
||||
<td class="field_name"><b><font color="green">{$row['emails_used']}</font></b>/<b><font color="#FD6204">{$row['emails']}</font></b><br /><b><font color="green">{$row['subdomains_used']}</font></b>/<b><font color="#FD6204">{$row['subdomains']}</font></b></td>
|
||||
<td class="field_name"><b><font color="green">{$row['email_accounts_used']}</font></b>/<b><font color="#FD6204">{$row['email_accounts']}</font></b><br /><b><font color="green">{$row['email_forwarders_used']}</font></b>/<b><font color="#FD6204">{$row['email_forwarders']}</font></b></td>
|
||||
<td class="field_name" style=" text-align: center; "><if $row['deactivated'] == '1'>{$lng['panel']['yes']}<else>{$lng['panel']['no']}</if><br />{$last_login}</td>
|
||||
<td class="field_name">{$unlock_link}<a href="$filename?s=$s&page=$page&action=edit&id={$row['customerid']}">{$lng['panel']['edit']}</a><br /><a href="$filename?s=$s&page=$page&action=delete&id={$row['customerid']}">{$lng['panel']['delete']}</a></td>
|
||||
<td class="field_name"><a href="$filename?s=$s&page=$page&action=edit&id={$row['customerid']}">{$lng['panel']['edit']}</a><br /><a href="$filename?s=$s&page=$page&action=delete&id={$row['customerid']}">{$lng['panel']['delete']}</a></td>
|
||||
</tr>
|
||||
|
||||
@@ -10,7 +10,7 @@ $header
|
||||
</tr>
|
||||
<if 15 < $categories_count >
|
||||
<tr>
|
||||
<td class="field_display_border_left" colspan="4"><a href="$filename?page=categories&action=addcategory&s=$s">{$lng['ticket']['ticket_newcateory']}</a></td>
|
||||
<td class="field_display_border_left" colspan="4"><a href="$filename?page=categories&action=new&s=$s">{$lng['ticket']['ticket_newcateory']}</a></td>
|
||||
</tr>
|
||||
</if>
|
||||
<tr>
|
||||
|
||||
@@ -13,7 +13,7 @@ $header
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="main_field_name"><b>{$lng['ticket']['logicalorder']}:</b><br />{$lng['ticket']['orderdesc']}</td>
|
||||
<td class="main_field_display" nowrap="nowrap"><input type="text" class="text" name="logicalorder" maxlength="3" value="{$order}" /></td>
|
||||
<td class="main_field_display" nowrap="nowrap"><input type="text" class="text" name="logicalorder" maxlength="3" value="1" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="main_field_confirm" colspan="2"><input type="hidden" name="send" value="send" /><input type="submit" class="bottom" value="{$lng['ticket']['ticket_newcateory']}" /></td>
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
##VERSION: $Id: authdaemonrc.in,v 1.8 2001/10/07 02:16:22 mrsam Exp $
|
||||
#
|
||||
# Copyright 2000-2001 Double Precision, Inc. See COPYING for
|
||||
# distribution information.
|
||||
#
|
||||
# authdaemonrc created from authdaemonrc.dist by sysconftool
|
||||
#
|
||||
# Do not alter lines that begin with ##, they are used when upgrading
|
||||
# this configuration.
|
||||
#
|
||||
# This file configures authdaemond, the resident authentication daemon.
|
||||
#
|
||||
# Comments in this file are ignored. Although this file is intended to
|
||||
# be sourced as a shell script, authdaemond parses it manually, so
|
||||
# the acceptable syntax is a bit limited. Multiline variable contents,
|
||||
# with the \ continuation character, are not allowed. Everything must
|
||||
# fit on one line. Do not use any additional whitespace for indentation,
|
||||
# or anything else.
|
||||
|
||||
##NAME: authmodulelist:0
|
||||
#
|
||||
# The authentication modules that are linked into authdaemond. The
|
||||
# default list is installed. You may selectively disable modules simply
|
||||
# by removing them from the following list. The available modules you
|
||||
# can use are: authcustom authcram authuserdb authldap authmysql authpam
|
||||
|
||||
authmodulelist="authmysql"
|
||||
|
||||
##NAME: authmodulelistorig:1
|
||||
#
|
||||
# This setting is used by Courier's webadmin module, and should be left
|
||||
# alone
|
||||
|
||||
authmodulelistorig="authcustom authcram authuserdb authldap authmysql authpam"
|
||||
|
||||
##NAME: daemons:0
|
||||
#
|
||||
# The number of daemon processes that are started. authdaemon is typically
|
||||
# installed where authentication modules are relatively expensive: such
|
||||
# as authldap, or authmysql, so it's better to have a number of them running.
|
||||
# PLEASE NOTE: Some platforms may experience a problem if there's more than
|
||||
# one daemon. Specifically, SystemV derived platforms that use TLI with
|
||||
# socket emulation. I'm suspicious of TLI's ability to handle multiple
|
||||
# processes accepting connections on the same filesystem domain socket.
|
||||
#
|
||||
# You may need to increase daemons if as your system load increases. Symptoms
|
||||
# include sporadic authentication failures. If you start getting
|
||||
# authentication failures, increase daemons. However, the default of 5
|
||||
# SHOULD be sufficient. Bumping up daemon count is only a short-term
|
||||
# solution. The permanent solution is to add more resources: RAM, faster
|
||||
# disks, faster CPUs...
|
||||
|
||||
daemons=5
|
||||
|
||||
##NAME: version:0
|
||||
#
|
||||
# When you have multiple versions of authdaemond.* installed, authdaemond
|
||||
# just picks the first one it finds. Set "version" to override that.
|
||||
# For example: version=authdaemond.plain
|
||||
|
||||
version=""
|
||||
|
||||
##NAME: authdaemonvar:0
|
||||
#
|
||||
# authdaemonvar is here, but is not used directly by authdaemond. It's
|
||||
# used by various configuration and build scripts, so don't touch it!
|
||||
|
||||
authdaemonvar=/var/run/courier/authdaemon
|
||||
@@ -0,0 +1,13 @@
|
||||
MYSQL_SERVER <SQL_HOST>
|
||||
MYSQL_USERNAME <SQL_UNPRIVILEGED_USER>
|
||||
MYSQL_PASSWORD <SQL_UNPRIVILEGED_PASSWORD>
|
||||
MYSQL_PORT 3306
|
||||
MYSQL_DATABASE <SQL_DB>
|
||||
MYSQL_USER_TABLE mail_users
|
||||
MYSQL_CRYPT_PWFIELD password_enc
|
||||
MYSQL_UID_FIELD uid
|
||||
MYSQL_GID_FIELD gid
|
||||
MYSQL_LOGIN_FIELD username
|
||||
MYSQL_HOME_FIELD homedir
|
||||
MYSQL_MAILDIR_FIELD maildir
|
||||
MYSQL_QUOTA_FIELD (quota*1024*1024)
|
||||
@@ -0,0 +1,8 @@
|
||||
#
|
||||
# Set PATH, otherwise restart-scripts won't find start-stop-daemon
|
||||
#
|
||||
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
||||
#
|
||||
# Regular cron jobs for the froxlor package
|
||||
#
|
||||
*/5 * * * * root /usr/bin/php5 -q /var/www/froxlor/scripts/froxlor_master_cronjob.php
|
||||
11
templates/misc/configfiles/debian_etch/dkim/dkim-filter.conf
Normal file
11
templates/misc/configfiles/debian_etch/dkim/dkim-filter.conf
Normal file
@@ -0,0 +1,11 @@
|
||||
#
|
||||
# !!! DO NOT REPLACE THE ORIGINAL CONFIG WITH THIS FILE !!!
|
||||
#
|
||||
# Instead, just set the shown values in the file to the
|
||||
# given values ;-)
|
||||
#
|
||||
|
||||
Syslog yes
|
||||
Domain /etc/postfix/dkim/domains
|
||||
KeyList /etc/postfix/dkim/dkim-keys.conf
|
||||
Socket inet:8891@localhost
|
||||
@@ -0,0 +1,5 @@
|
||||
driver = mysql
|
||||
connect = host=<SQL_HOST> dbname=<SQL_DB> user=<SQL_UNPRIVILEGED_USER> password=<SQL_UNPRIVILEGED_PASSWORD>
|
||||
default_pass_scheme = CRYPT
|
||||
password_query = SELECT username AS user, password_enc AS password, CONCAT(homedir, maildir) AS userdb_home, uid AS userdb_uid, gid AS userdb_gid, CONCAT('maildir:', homedir, maildir) AS userdb_mail, CONCAT('maildir:storage=', (quota*1024)) as userdb_quota FROM mail_users WHERE username = '%u' OR email = '%u'
|
||||
user_query = SELECT CONCAT(homedir, maildir) AS home, CONCAT('maildir:', homedir, maildir) AS mail, uid, gid, CONCAT('maildir:storage=', (quota*1024)) as quota FROM mail_users WHERE username = '%u' OR email = '%u'
|
||||
@@ -0,0 +1,71 @@
|
||||
protocols = imap pop3 <SSLPROTOCOLS>
|
||||
listen = *
|
||||
mail_access_groups = vmail
|
||||
mail_debug = no
|
||||
## allow Plaintext Logins from foreign IP if the Connection doesn't use TLS
|
||||
disable_plaintext_auth = no
|
||||
|
||||
### SSL Settings
|
||||
### After setting this options, set disable_plaintext_auth to yes (see above)
|
||||
### and add imaps pop3s to the protocols
|
||||
#ssl_cert_file = /etc/ssl/server/<SERVERNAME>.pem
|
||||
#ssl_key_file = /etc/ssl/server/<SERVERNAME>.key
|
||||
## This is an example with CACerts class3 cert!
|
||||
#ssl_ca_file = /path/to/cacert.class3.crt
|
||||
#ssl_cipher_list = ALL:!LOW:!SSLv2
|
||||
|
||||
protocol imap {
|
||||
mail_plugins = quota imap_quota
|
||||
}
|
||||
|
||||
protocol pop3 {
|
||||
# leave this uncommented if you are migrating from Courier also see Migration from Courier
|
||||
pop3_uidl_format = UID%u-%v
|
||||
mail_plugins = quota
|
||||
|
||||
}
|
||||
protocol lda {
|
||||
# postmaster is the one in charge of the mail system. MUST be set to a valid address!
|
||||
postmaster_address = <postmaster-address>
|
||||
auth_socket_path = /var/run/dovecot/auth-master
|
||||
mail_plugins = quota
|
||||
sendmail_path = /usr/sbin/sendmail
|
||||
}
|
||||
|
||||
auth default {
|
||||
mechanisms = plain login
|
||||
passdb sql {
|
||||
args = /etc/dovecot/dovecot-sql.conf
|
||||
}
|
||||
|
||||
userdb prefetch {
|
||||
}
|
||||
|
||||
userdb sql {
|
||||
args = /etc/dovecot/dovecot-sql.conf
|
||||
}
|
||||
|
||||
user = vmail
|
||||
socket listen {
|
||||
# Postfix uses the client socket for SMTP Auth
|
||||
client {
|
||||
# Assuming the default Postfix $queue_directory setting
|
||||
path = /var/spool/postfix/private/auth
|
||||
mode = 0660
|
||||
# Assuming the default Postfix user and group
|
||||
user = postfix
|
||||
group = postfix
|
||||
}
|
||||
# Note that we're setting a master socket. SMTP AUTH for Postfix and Exim uses client sockets.
|
||||
master {
|
||||
path = /var/run/dovecot/auth-master
|
||||
mode = 0660
|
||||
user = vmail
|
||||
group = vmail
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
plugin {
|
||||
quota = maildir
|
||||
}
|
||||
@@ -0,0 +1,125 @@
|
||||
### acl/30_exim4-config_check_rcpt
|
||||
#################################
|
||||
|
||||
acl_check_rcpt:
|
||||
accept
|
||||
hosts = :
|
||||
|
||||
warn
|
||||
hosts = +relay_from_hosts
|
||||
control = submission/sender_retain
|
||||
|
||||
.ifdef CHECK_RCPT_LOCAL_LOCALPARTS
|
||||
deny
|
||||
domains = +local_domains:+froxlor_domain
|
||||
local_parts = CHECK_RCPT_LOCAL_LOCALPARTS
|
||||
message = restricted characters in address
|
||||
.endif
|
||||
|
||||
.ifdef CHECK_RCPT_REMOTE_LOCALPARTS
|
||||
deny
|
||||
domains = !+local_domains
|
||||
local_parts = CHECK_RCPT_REMOTE_LOCALPARTS
|
||||
message = restricted characters in address
|
||||
.endif
|
||||
|
||||
accept
|
||||
.ifndef CHECK_RCPT_POSTMASTER
|
||||
local_parts = postmaster
|
||||
.else
|
||||
local_parts = CHECK_RCPT_POSTMASTER
|
||||
.endif
|
||||
domains = +local_domains:+froxlor_domain
|
||||
|
||||
deny
|
||||
message = sender envelope address $sender_address is locally blacklisted here. If you think this is wrong, get in touch with postmaster
|
||||
!acl = acl_local_deny_exceptions
|
||||
senders = ${if exists{CONFDIR/local_sender_blacklist}\
|
||||
{CONFDIR/local_sender_blacklist}\
|
||||
{}}
|
||||
|
||||
deny
|
||||
message = sender IP address $sender_host_address is locally blacklisted here. If you think this is wrong, get in touch with postmaster
|
||||
!acl = acl_local_deny_exceptions
|
||||
hosts = ${if exists{CONFDIR/local_host_blacklist}\
|
||||
{CONFDIR/local_host_blacklist}\
|
||||
{}}
|
||||
|
||||
.ifdef CHECK_RCPT_VERIFY_SENDER
|
||||
deny
|
||||
message = Sender verification failed
|
||||
!acl = acl_local_deny_exceptions
|
||||
!verify = sender
|
||||
.endif
|
||||
|
||||
deny
|
||||
!acl = acl_local_deny_exceptions
|
||||
senders = ${if exists{CONFDIR/local_sender_callout}\
|
||||
{CONFDIR/local_sender_callout}\
|
||||
{}}
|
||||
!verify = sender/callout
|
||||
|
||||
deny
|
||||
!acl = acl_local_deny_exceptions
|
||||
recipients = ${if exists{CONFDIR/local_rcpt_callout}\
|
||||
{CONFDIR/local_rcpt_callout}\
|
||||
{}}
|
||||
!verify = recipient/callout
|
||||
|
||||
.ifdef CHECK_RCPT_REVERSE_DNS
|
||||
warn
|
||||
message = X-Host-Lookup-Failed: Reverse DNS lookup failed for $sender_host_address (${if eq{$host_lookup_failed}{1}{failed}{deferred}})
|
||||
condition = ${if and{{def:sender_host_address}{!def:sender_host_name}}\
|
||||
{yes}{no}}
|
||||
.endif
|
||||
|
||||
.ifdef CHECK_RCPT_IP_DNSBLS
|
||||
warn
|
||||
message = X-Warning: $sender_host_address is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
|
||||
log_message = $sender_host_address is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
|
||||
dnslists = CHECK_RCPT_IP_DNSBLS
|
||||
.endif
|
||||
|
||||
.ifdef CHECK_RCPT_DOMAIN_DNSBLS
|
||||
warn
|
||||
message = X-Warning: $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
|
||||
log_message = $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
|
||||
!senders = ${if exists{CONFDIR/local_domain_dnsbl_whitelist}\
|
||||
{CONFDIR/local_domain_dnsbl_whitelist}\
|
||||
{}}
|
||||
dnslists = CHECK_RCPT_DOMAIN_DNSBLS/$sender_address_domain
|
||||
.endif
|
||||
|
||||
.ifdef CHECK_RCPT_LOCAL_ACL_FILE
|
||||
.include CHECK_RCPT_LOCAL_ACL_FILE
|
||||
.endif
|
||||
|
||||
accept
|
||||
domains = +local_domains:+froxlor_domain
|
||||
endpass
|
||||
message = unknown user
|
||||
verify = recipient
|
||||
|
||||
accept
|
||||
domains = +relay_to_domains
|
||||
endpass
|
||||
.ifdef CHECK_RCPT_GIVE_UNKNOWN_USER
|
||||
message = ${if eq{$acl_verify_message}{Unrouteable address}{unknown user}{$acl_verify_message}}
|
||||
.else
|
||||
message = unrouteable address
|
||||
.endif
|
||||
verify = recipient
|
||||
|
||||
############
|
||||
# If control reaches this point, the domain is neither in +local_domains
|
||||
# nor in +relay_to_domains.
|
||||
############
|
||||
|
||||
accept
|
||||
hosts = +relay_from_hosts
|
||||
|
||||
accept
|
||||
authenticated = *
|
||||
|
||||
deny
|
||||
message = relay not permitted
|
||||
@@ -0,0 +1,30 @@
|
||||
### auth/30_froxlor-config
|
||||
#################################
|
||||
|
||||
plain_server:
|
||||
driver = plaintext
|
||||
public_name = PLAIN
|
||||
server_condition = "${if and { \
|
||||
{!eq{$2}{}} \
|
||||
{!eq{$3}{}} \
|
||||
{crypteq{$3}{${lookup mysql{FROXLOR_AUTH_PLAIN}{$value}fail}}} \
|
||||
} {yes}{no}}"
|
||||
server_set_id = $2
|
||||
server_prompts = :
|
||||
# .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
|
||||
# server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}
|
||||
# .endif
|
||||
|
||||
login_server:
|
||||
driver = plaintext
|
||||
public_name = LOGIN
|
||||
server_prompts = "Username:: : Password::"
|
||||
server_condition = "${if and { \
|
||||
{!eq{$1}{}} \
|
||||
{!eq{$2}{}} \
|
||||
{crypteq{$2}{${lookup mysql{FROXLOR_AUTH_LOGIN}{$value}fail}}} \
|
||||
} {yes}{no}}"
|
||||
server_set_id = $1
|
||||
# .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
|
||||
# server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}
|
||||
# .endif
|
||||
@@ -0,0 +1,20 @@
|
||||
hide mysql_servers = <SQL_HOST>/<SQL_DB>/<SQL_UNPRIVILEGED_USER>/<SQL_UNPRIVILEGED_PASSWORD>
|
||||
|
||||
FROXLOR_LOCAL_DOMAIN = SELECT domain FROM panel_domains WHERE domain = '${quote_mysql:$domain}' AND isemaildomain = '1'
|
||||
|
||||
FROXLOR_MAILALIAS = SELECT REPLACE(destination,' ',',') FROM mail_virtual WHERE \
|
||||
(( email = '${quote_mysql:$local_part}@${quote_mysql:$domain}' ) \
|
||||
OR ( email = '@${quote_mysql:$domain}' AND iscatchall > 0 )) \
|
||||
AND destination <> '' AND destination <> ' ' ORDER BY iscatchall ASC LIMIT 1
|
||||
|
||||
FROXLOR_MAILUSER = SELECT CONCAT(homedir,maildir) FROM mail_users WHERE \
|
||||
email = '${quote_mysql:$local_part}@${quote_mysql:$domain}' AND postfix = 'y'
|
||||
|
||||
FROXLOR_PARENT_DOMAIN = SELECT parent.domain FROM `panel_domains` AS parent INNER JOIN panel_domains AS alias \
|
||||
ON alias.domain = '${quote_mysql:$domain}' AND parent.id = alias.aliasdomain
|
||||
|
||||
FROXLOR_AUTH_PLAIN = SELECT password_enc FROM mail_users WHERE username = '${quote_mysql:$2}'
|
||||
|
||||
FROXLOR_AUTH_LOGIN = SELECT password_enc FROM mail_users WHERE username = '${quote_mysql:$1}'
|
||||
|
||||
domainlist froxlor_domain = mysql;FROXLOR_LOCAL_DOMAIN
|
||||
@@ -0,0 +1,12 @@
|
||||
froxlor_mailalias:
|
||||
debug_print = "R: froxlor_mailalias for $local_part@$domain"
|
||||
driver = redirect
|
||||
domains = +froxlor_domain
|
||||
data = ${lookup mysql {FROXLOR_MAILALIAS}{$value}fail}
|
||||
|
||||
froxlor_mailuser:
|
||||
debug_print = "R: froxlor_mailuser for $local_part@$domain"
|
||||
driver = redirect
|
||||
domains = +froxlor_domain
|
||||
data = ${lookup mysql {FROXLOR_MAILUSER}{$value}fail}
|
||||
directory_transport = maildir_froxlor
|
||||
@@ -0,0 +1,13 @@
|
||||
maildir_froxlor:
|
||||
debug_print = "T: maildir_froxlor for $local_part@$domain"
|
||||
driver = appendfile
|
||||
create_directory
|
||||
delivery_date_add
|
||||
envelope_to_add
|
||||
return_path_add
|
||||
maildir_format
|
||||
directory_mode = 0770
|
||||
mode = 0660
|
||||
mode_fail_narrower = false
|
||||
user = 2000
|
||||
group = 2000
|
||||
@@ -0,0 +1,16 @@
|
||||
conf.version = 2;
|
||||
shadow.host = inet:<SQL_HOST>:3306;
|
||||
shadow.database = <SQL_DB>;
|
||||
shadow.db_user = <SQL_UNPRIVILEGED_USER>;
|
||||
shadow.db_password = <SQL_UNPRIVILEGED_PASSWORD>;
|
||||
shadow.table = ftp_users u;
|
||||
shadow.where_clause = ;
|
||||
shadow.userid_column = u.id;
|
||||
shadow.user_column = u.username;
|
||||
shadow.password_column = u.password;
|
||||
shadow.lastchange_column = FLOOR(UNIX_TIMESTAMP()/86400-1);
|
||||
shadow.min_column = 0;
|
||||
shadow.max_column = 99999;
|
||||
shadow.warn_column = 7;
|
||||
shadow.inact_column = -1;
|
||||
shadow.expire_column = -1;
|
||||
@@ -0,0 +1,24 @@
|
||||
conf.version = 2;
|
||||
users.host = inet:<SQL_HOST>:3306;
|
||||
users.database = <SQL_DB>;
|
||||
users.db_user = <SQL_UNPRIVILEGED_USER>;
|
||||
users.db_password = <SQL_UNPRIVILEGED_PASSWORD>;
|
||||
users.table = ftp_users u;
|
||||
users.where_clause = u.login_enabled = 'Y';
|
||||
users.user_column = u.username;
|
||||
users.password_column = u.password;
|
||||
users.userid_column = u.id;
|
||||
users.uid_column = u.uid;
|
||||
users.gid_column = u.gid;
|
||||
users.realname_column = u.username;
|
||||
users.homedir_column = u.homedir;
|
||||
users.shell_column = u.shell;
|
||||
groups.group_info_table = ftp_groups g;
|
||||
groups.where_clause = ;
|
||||
groups.group_name_column = g.groupname;
|
||||
groups.groupid_column = g.id;
|
||||
groups.gid_column = g.gid;
|
||||
groups.password_column = "x";
|
||||
groups.members_table = ftp_groups ug;
|
||||
groups.member_userid_column = ug.customerid;
|
||||
groups.member_groupid_column = ug.id;
|
||||
@@ -0,0 +1,20 @@
|
||||
# Make sure that `passwd`, `group` and `shadow` have mysql in their lines
|
||||
# You should place mysql at the end, so that it is queried after the other mechanisams
|
||||
#
|
||||
passwd: compat mysql
|
||||
group: compat mysql
|
||||
shadow: compat mysql
|
||||
|
||||
hosts: files dns
|
||||
networks: files dns
|
||||
|
||||
services: db files
|
||||
protocols: db files
|
||||
rpc: db files
|
||||
ethers: db files
|
||||
netmasks: files
|
||||
netgroup: files
|
||||
bootparams: files
|
||||
|
||||
automount: files
|
||||
aliases: files
|
||||
@@ -0,0 +1,57 @@
|
||||
###############################################################################
|
||||
# Default lighttpd.conf for Froxlor.
|
||||
###############################################################################
|
||||
var.basedir = "/var/www"
|
||||
var.logdir = "/var/log/lighttpd"
|
||||
var.statedir = "/var/lib/lighttpd"
|
||||
|
||||
server.modules = (
|
||||
"mod_rewrite",
|
||||
"mod_redirect",
|
||||
"mod_alias",
|
||||
"mod_access",
|
||||
"mod_auth",
|
||||
"mod_fastcgi",
|
||||
"mod_cgi",
|
||||
"mod_accesslog"
|
||||
)
|
||||
|
||||
server.username = "www-data"
|
||||
server.groupname = "www-data"
|
||||
server.document-root = var.basedir
|
||||
server.pid-file = "/var/run/lighttpd.pid"
|
||||
accesslog.filename = var.logdir + "/access.log"
|
||||
server.errorlog = var.logdir + "/error.log"
|
||||
|
||||
server.indexfiles = ("index.php", "index.html",
|
||||
"index.htm", "default.htm")
|
||||
|
||||
server.name = "<SERVERNAME>"
|
||||
server.port = 80
|
||||
server.bind = "<SERVERIP>"
|
||||
url.access-deny = ("~", ".inc")
|
||||
|
||||
fastcgi.server = (
|
||||
".php" => (
|
||||
"localhost" => (
|
||||
"socket" => "/tmp/lighttpd-fcgi-sock-lighttpd",
|
||||
"broken-scriptfilename" => "enable",
|
||||
"bin-path" => "/usr/bin/php5-cgi",
|
||||
"min-procs" => 1,
|
||||
"max-procs" => 1,
|
||||
"max-load-per-proc" => 4,
|
||||
"idle-timeout" => 60,
|
||||
"bin-environment" => (
|
||||
"UID" => "www-data",
|
||||
"GID" => "www-data",
|
||||
"PHP_FCGI_CHILDREN" => "0",
|
||||
"PHP_FCGI_MAX_REQUESTS" => "10000"
|
||||
),
|
||||
"bin-copy-environment" => ( "" )
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
#### external configuration files
|
||||
## mimetype mapping
|
||||
include_shell "/usr/share/lighttpd/create-mime.assign.pl"
|
||||
@@ -0,0 +1,96 @@
|
||||
# Postfix programs paths settings
|
||||
command_directory = /usr/sbin
|
||||
daemon_directory = /usr/lib/postfix
|
||||
program_directory = /usr/lib/postfix
|
||||
sendmail_path = /usr/sbin/sendmail
|
||||
|
||||
## General Postfix configuration
|
||||
# should be the default domain from your provider eg. "server100.provider.tld"
|
||||
mydomain = <SERVERNAME>
|
||||
|
||||
# should be different from $mydomain eg. "mail.$mydomain"
|
||||
myhostname = <SERVERNAME>
|
||||
|
||||
mydestination = $myhostname,
|
||||
$mydomain,
|
||||
localhost.$myhostname,
|
||||
localhost.$mydomain,
|
||||
localhost
|
||||
mynetworks = 127.0.0.0/8
|
||||
inet_interfaces = all
|
||||
append_dot_mydomain = no
|
||||
biff = no
|
||||
|
||||
# Postfix performance settings
|
||||
default_destination_concurrency_limit = 20
|
||||
local_destination_concurrency_limit = 2
|
||||
|
||||
# SMTPD Settings
|
||||
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
|
||||
smtpd_helo_required = yes
|
||||
smtpd_recipient_restrictions = permit_mynetworks,
|
||||
permit_sasl_authenticated,
|
||||
reject_unauth_destination,
|
||||
reject_unauth_pipelining,
|
||||
reject_non_fqdn_recipient
|
||||
smtpd_sender_restrictions = permit_mynetworks,
|
||||
reject_sender_login_mismatch,
|
||||
permit_sasl_authenticated,
|
||||
reject_unknown_hostname,
|
||||
reject_unknown_recipient_domain,
|
||||
reject_unknown_sender_domain
|
||||
smtpd_client_restrictions = permit_mynetworks,
|
||||
permit_sasl_authenticated,
|
||||
reject_unknown_client
|
||||
# Maximum size of Message in bytes (50MB)
|
||||
message_size_limit = 52428800
|
||||
|
||||
## SASL Auth Settings
|
||||
smtpd_sasl_auth_enable = yes
|
||||
smtpd_sasl_local_domain = $myhostname
|
||||
smtpd_sasl_security_options = noanonymous
|
||||
broken_sasl_auth_clients = yes
|
||||
## Dovecot Settings for deliver, SASL Auth and virtual transport
|
||||
## uncomment those line to use Dovecot
|
||||
#mailbox_command = /usr/lib/dovecot/deliver
|
||||
#virtual_transport = dovecot
|
||||
#dovecot_destination_recipient_limit = 1
|
||||
#smtpd_sasl_path = private/auth
|
||||
|
||||
# Virtual delivery settings
|
||||
virtual_mailbox_base = <VIRTUAL_MAILBOX_BASE>
|
||||
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf
|
||||
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf
|
||||
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_alias_maps.cf
|
||||
smtpd_sender_login_maps = mysql:/etc/postfix/mysql-virtual_sender_permissions.cf
|
||||
virtual_uid_maps = static:<VIRTUAL_UID_MAPS>
|
||||
virtual_gid_maps = static:<VIRTUAL_GID_MAPS>
|
||||
|
||||
# Local delivery settings
|
||||
local_transport = local
|
||||
alias_database = hash:/etc/aliases
|
||||
alias_maps = $alias_database
|
||||
|
||||
# Default Mailbox size, is set to 0 which means unlimited!
|
||||
mailbox_size_limit = 0
|
||||
virtual_mailbox_limit = 0
|
||||
|
||||
### TLS settings
|
||||
###
|
||||
## TLS for outgoing mails from the server to another server
|
||||
#smtp_use_tls = yes
|
||||
#smtp_tls_note_starttls_offer = yes
|
||||
## TLS for email client
|
||||
#smtpd_tls_cert_file = /etc/ssl/server/<SERVERNAME>.pem
|
||||
#smtpd_tls_key_file = /etc/ssl/server/<SERVERNAME>.pem
|
||||
#smtpd_tls_CAfile = /etc/ssl/cacert.class3.crt # Just an example for CACert.org
|
||||
#smtpd_tls_auth_only = no
|
||||
#smtpd_tls_loglevel = 1
|
||||
#smtpd_tls_received_header = yes
|
||||
#smtpd_tls_session_cache_timeout = 3600s
|
||||
#tls_random_source = dev:/dev/urandom
|
||||
|
||||
debugger_command =
|
||||
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
|
||||
ddd $daemon_directory/$process_name $process_id & sleep 5
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
# Add this lines to be able to use dovecot as delivery agent
|
||||
# Dovecot LDA
|
||||
dovecot unix - n n - - pipe
|
||||
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}
|
||||
@@ -0,0 +1,8 @@
|
||||
user = <SQL_UNPRIVILEGED_USER>
|
||||
password = <SQL_UNPRIVILEGED_PASSWORD>
|
||||
dbname = <SQL_DB>
|
||||
table = mail_virtual
|
||||
select_field = destination
|
||||
where_field = email
|
||||
additional_conditions = and TRIM(destination) <> ''
|
||||
hosts = <SQL_HOST>
|
||||
@@ -0,0 +1,8 @@
|
||||
user = <SQL_UNPRIVILEGED_USER>
|
||||
password = <SQL_UNPRIVILEGED_PASSWORD>
|
||||
dbname = <SQL_DB>
|
||||
table = panel_domains
|
||||
select_field = domain
|
||||
where_field = domain
|
||||
additional_conditions = and isemaildomain = '1'
|
||||
hosts = <SQL_HOST>
|
||||
@@ -0,0 +1,7 @@
|
||||
user = <SQL_UNPRIVILEGED_USER>
|
||||
password = <SQL_UNPRIVILEGED_PASSWORD>
|
||||
dbname = <SQL_DB>
|
||||
table = mail_users
|
||||
select_field = maildir
|
||||
where_field = email
|
||||
hosts = <SQL_HOST>
|
||||
@@ -0,0 +1,5 @@
|
||||
user = <SQL_UNPRIVILEGED_USER>
|
||||
password = <SQL_UNPRIVILEGED_PASSWORD>
|
||||
dbname = <SQL_DB>
|
||||
query = select distinct username from mail_users where email in ((select mail_virtual.email_full from mail_virtual where mail_virtual.email = '%s' union select mail_virtual.destination from mail_virtual where mail_virtual.email = '%s'));
|
||||
hosts = <SQL_HOST>
|
||||
@@ -0,0 +1,11 @@
|
||||
pwcheck_method: auxprop
|
||||
auxprop_plugin: sql
|
||||
allowanonymouslogin: no
|
||||
allowplaintext: yes
|
||||
mech_list: plain login cram-md5 digest-md5
|
||||
sql_engine: mysql
|
||||
sql_hostnames: <SQL_HOST>
|
||||
sql_user: <SQL_UNPRIVILEGED_USER>
|
||||
sql_passwd: <SQL_UNPRIVILEGED_PASSWORD>
|
||||
sql_database: <SQL_DB>
|
||||
sql_select: SELECT password FROM mail_users WHERE username='%u@%r' OR email='%u@%r'
|
||||
@@ -0,0 +1,25 @@
|
||||
#
|
||||
# ATTENTION - this is not the full postfix-main.cf file
|
||||
#
|
||||
# it only provides additional configuration-entries!
|
||||
#
|
||||
|
||||
#
|
||||
# look for the follow statement
|
||||
#
|
||||
smtpd_recipient_restrictions = permit_mynetworks,
|
||||
permit_sasl_authenticated,
|
||||
reject_unauth_destination,
|
||||
reject_unauth_pipelining,
|
||||
reject_non_fqdn_recipient
|
||||
|
||||
#
|
||||
# and extend it with the following line
|
||||
# so it looks like this
|
||||
#
|
||||
smtpd_recipient_restrictions = permit_mynetworks,
|
||||
permit_sasl_authenticated,
|
||||
reject_unauth_destination,
|
||||
reject_unauth_pipelining,
|
||||
reject_non_fqdn_recipient,
|
||||
check_recipient_mx_access cidr:/etc/postfix/mx_access
|
||||
@@ -0,0 +1,9 @@
|
||||
0.0.0.0/8 REJECT Domain MX in broadcast network
|
||||
10.0.0.0/8 REJECT Domain MX in RFC 1918 private network
|
||||
169.254.0.0/16 REJECT Domain MX in link local network
|
||||
172.16.0.0/12 REJECT Domain MX in RFC 1918 private network
|
||||
192.0.2.0/24 REJECT Domain MX in TEST-NET network
|
||||
192.168.0.0/16 REJECT Domain MX in RFC 1918 private network
|
||||
224.0.0.0/4 REJECT Domain MX in class D multicast network
|
||||
240.0.0.0/5 REJECT Domain MX in class E reserved network
|
||||
248.0.0.0/5 REJECT Domain MX in reserved network
|
||||
@@ -0,0 +1,7 @@
|
||||
allow-axfr-ips=<NAMESERVERS>
|
||||
#local-ipv6=YOUR_IPv6_(if_any)
|
||||
bind-config=/etc/bind/named.conf
|
||||
bind-check-interval=180
|
||||
log-dns-details=yes
|
||||
local-address=<SERVERIP>,127.0.0.1
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
allow-recursion=127.0.0.1
|
||||
config-dir=/etc/powerdns
|
||||
daemon=yes
|
||||
guardian=yes
|
||||
launch=bind
|
||||
lazy-recursion=yes
|
||||
local-port=53
|
||||
master=yes
|
||||
module-dir=/usr/lib/powerdns
|
||||
setgid=pdns
|
||||
setuid=pdns
|
||||
socket-dir=/var/run
|
||||
version-string=powerdns
|
||||
bind-config=/etc/bind/named.conf
|
||||
bind-check-interval=300
|
||||
include=/etc/powerdns/pdns_froxlor.conf
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
#
|
||||
# This file is used to manage DSO modules and features.
|
||||
#
|
||||
|
||||
# This is the directory where DSO modules resides
|
||||
|
||||
ModulePath /usr/lib/proftpd
|
||||
|
||||
# Allow only user root to load and unload modules, but allow everyone
|
||||
# to see which modules have been loaded
|
||||
|
||||
ModuleControlsACLs insmod,rmmod allow user root
|
||||
ModuleControlsACLs lsmod allow user *
|
||||
|
||||
#LoadModule mod_ctrls_admin.c
|
||||
LoadModule mod_tls.c
|
||||
LoadModule mod_sql.c
|
||||
#LoadModule mod_ldap.c
|
||||
LoadModule mod_sql_mysql.c
|
||||
#LoadModule mod_sql_postgres.c
|
||||
LoadModule mod_quotatab.c
|
||||
#LoadModule mod_quotatab_file.c
|
||||
#LoadModule mod_quotatab_ldap.c
|
||||
LoadModule mod_quotatab_sql.c
|
||||
#LoadModule mod_radius.c
|
||||
LoadModule mod_wrap.c
|
||||
LoadModule mod_rewrite.c
|
||||
|
||||
# keep this module the last one
|
||||
LoadModule mod_ifsession.c
|
||||
|
||||
<IfModule mod_delay.c>
|
||||
DelayEngine off
|
||||
</IfModule>
|
||||
@@ -0,0 +1,75 @@
|
||||
Include /etc/proftpd/modules.conf
|
||||
|
||||
ServerName "<SERVERNAME> FTP Server"
|
||||
ServerType standalone
|
||||
DeferWelcome off
|
||||
|
||||
MultilineRFC2228 on
|
||||
DefaultServer on
|
||||
ShowSymlinks on
|
||||
AllowOverwrite on
|
||||
|
||||
TimeoutNoTransfer 600
|
||||
TimeoutStalled 600
|
||||
TimeoutIdle 1200
|
||||
|
||||
DisplayLogin welcome.msg
|
||||
DisplayFirstChdir .message
|
||||
ListOptions "-l"
|
||||
|
||||
DenyFilter \*.*/
|
||||
|
||||
Port 21
|
||||
MaxInstances 30
|
||||
UseIPv6 off
|
||||
|
||||
TransferLog /var/log/proftpd/xferlog
|
||||
SystemLog /var/log/proftpd/proftpd.log
|
||||
|
||||
# make proftpd faster / do not perform ident and reverse dns lookup
|
||||
UseReverseDNS off
|
||||
|
||||
# Set the user and group that the server normally runs at.
|
||||
User nobody
|
||||
Group nogroup
|
||||
|
||||
<Directory /*>
|
||||
# Umask 022 is a good standard umask to prevent new files and dirs
|
||||
# (second parm) from being group and world writable.
|
||||
Umask 022 022
|
||||
# Normally, we want files to be overwriteable.
|
||||
AllowOverwrite on
|
||||
</Directory>
|
||||
|
||||
DefaultRoot ~
|
||||
RequireValidShell off
|
||||
|
||||
AuthOrder mod_sql.c
|
||||
|
||||
SQLAuthTypes Crypt
|
||||
SQLAuthenticate users* groups*
|
||||
SQLConnectInfo <SQL_DB>@<SQL_HOST> <SQL_UNPRIVILEGED_USER> <SQL_UNPRIVILEGED_PASSWORD>
|
||||
SQLUserInfo ftp_users username password uid gid homedir shell
|
||||
SQLGroupInfo ftp_groups groupname gid members
|
||||
SQLUserWhereClause "login_enabled = 'y'"
|
||||
|
||||
SQLLog PASS login
|
||||
SQLNamedQuery login UPDATE "last_login=now(), login_count=login_count+1 WHERE username='%u'" ftp_users
|
||||
|
||||
SQLLog RETR download
|
||||
SQLNamedQuery download UPDATE "down_count=down_count+1, down_bytes=down_bytes+%b WHERE username='%u'" ftp_users
|
||||
|
||||
SQLLog STOR upload
|
||||
SQLNamedQuery upload UPDATE "up_count=up_count+1, up_bytes=up_bytes+%b WHERE username='%u'" ftp_users
|
||||
|
||||
|
||||
QuotaEngine on
|
||||
QuotaShowQuotas on
|
||||
QuotaDisplayUnits Mb
|
||||
QuotaLock /var/lock/ftpd.quotatab.lock
|
||||
QuotaLimitTable sql:/get-quota-limit
|
||||
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally
|
||||
SQLNamedQuery get-quota-limit SELECT "ftp_users.username AS name, ftp_quotalimits.quota_type, ftp_quotalimits.per_session, ftp_quotalimits.limit_type, panel_customers.diskspace*1024 AS bytes_in_avail, ftp_quotalimits.bytes_out_avail, ftp_quotalimits.bytes_xfer_avail, ftp_quotalimits.files_in_avail, ftp_quotalimits.files_out_avail, ftp_quotalimits.files_xfer_avail FROM ftp_users, ftp_quotalimits, panel_customers WHERE ftp_users.username = '%{0}' AND panel_customers.loginname = SUBSTRING_INDEX('%{0}', 'ftp', 1) AND quota_type ='%{1}'"
|
||||
SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used,bytes_out_used, bytes_xfer_used, files_in_used, files_out_used,files_xfer_used FROM ftp_quotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"
|
||||
SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used= files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name= '%{6}' AND quota_type = '%{7}'" ftp_quotatallies
|
||||
SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4},%{5}, %{6}, %{7}" ftp_quotatallies
|
||||
@@ -0,0 +1,5 @@
|
||||
STANDALONE_OR_INETD=standalone
|
||||
VIRTUALCHROOT=false
|
||||
UPLOADSCRIPT=
|
||||
UPLOADUID=
|
||||
UPLOADGID=
|
||||
@@ -0,0 +1 @@
|
||||
21
|
||||
@@ -0,0 +1 @@
|
||||
yes
|
||||
@@ -0,0 +1 @@
|
||||
1
|
||||
@@ -0,0 +1 @@
|
||||
15
|
||||
@@ -0,0 +1 @@
|
||||
1000
|
||||
@@ -0,0 +1 @@
|
||||
/etc/pure-ftpd/db/mysql.conf
|
||||
@@ -0,0 +1 @@
|
||||
yes
|
||||
@@ -0,0 +1 @@
|
||||
no
|
||||
@@ -0,0 +1,11 @@
|
||||
MYSQLServer <SQL_HOST>
|
||||
MYSQLUser <SQL_UNPRIVILEGED_USER>
|
||||
MYSQLPassword <SQL_UNPRIVILEGED_PASSWORD>
|
||||
MYSQLDatabase <SQL_DB>
|
||||
MYSQLCrypt any
|
||||
|
||||
MYSQLGetPW SELECT password FROM ftp_users WHERE username="\L" AND login_enabled="y"
|
||||
MYSQLGetUID SELECT uid FROM ftp_users WHERE username="\L" AND login_enabled="y"
|
||||
MYSQLGetGID SELECT gid FROM ftp_users WHERE username="\L" AND login_enabled="y"
|
||||
MYSQLGetDir SELECT homedir FROM ftp_users WHERE username="\L" AND login_enabled="y"
|
||||
MySQLGetQTASZ SELECT panel_customers.diskspace/1024 AS QuotaSize FROM panel_customers, ftp_users WHERE username = "\L" AND panel_customers.loginname = SUBSTRING_INDEX('\L', 'ftp', 1)
|
||||
@@ -10,5 +10,4 @@ MYSQL_GID_FIELD gid
|
||||
MYSQL_LOGIN_FIELD username
|
||||
MYSQL_HOME_FIELD homedir
|
||||
MYSQL_MAILDIR_FIELD maildir
|
||||
MYSQL_QUOTA_FIELD (quota*1024*1024)
|
||||
MYSQL_AUXOPTIONS_FIELD CONCAT("allowimap=",imap,",allowpop3=",pop3)
|
||||
MYSQL_QUOTA_FIELD (quota*1024*1024)
|
||||
@@ -5,4 +5,4 @@ PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
||||
#
|
||||
# Regular cron jobs for the froxlor package
|
||||
#
|
||||
*/5 * * * * root /usr/bin/php5 -q <BASE_PATH>scripts/froxlor_master_cronjob.php
|
||||
*/5 * * * * root /usr/bin/php5 -q /var/www/froxlor/scripts/froxlor_master_cronjob.php
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
driver = mysql
|
||||
connect = host=<SQL_HOST> dbname=<SQL_DB> user=<SQL_UNPRIVILEGED_USER> password=<SQL_UNPRIVILEGED_PASSWORD>
|
||||
default_pass_scheme = CRYPT
|
||||
password_query = SELECT username AS user, password_enc AS password, CONCAT(homedir, maildir) AS userdb_home, uid AS userdb_uid, gid AS userdb_gid, CONCAT('maildir:', homedir, maildir) AS userdb_mail, CONCAT('maildir:storage=', (quota*1024)) as userdb_quota FROM mail_users WHERE (username = '%u' OR email = '%u') AND ((imap = 1 AND '%Ls' = 'imap') OR (pop3 = 1 AND '%Ls' = 'pop3') OR '%Ls' = 'smtp')
|
||||
user_query = SELECT CONCAT(homedir, maildir) AS home, CONCAT('maildir:', homedir, maildir) AS mail, uid, gid, CONCAT('maildir:storage=', (quota*1024)) as quota FROM mail_users WHERE (username = '%u' OR email = '%u')
|
||||
password_query = SELECT username AS user, password_enc AS password, CONCAT(homedir, maildir) AS userdb_home, uid AS userdb_uid, gid AS userdb_gid, CONCAT('maildir:', homedir, maildir) AS userdb_mail, CONCAT('maildir:storage=', (quota*1024)) as userdb_quota FROM mail_users WHERE username = '%u' OR email = '%u'
|
||||
user_query = SELECT CONCAT(homedir, maildir) AS home, CONCAT('maildir:', homedir, maildir) AS mail, uid, gid, CONCAT('maildir:storage=', (quota*1024)) as quota FROM mail_users WHERE username = '%u' OR email = '%u'
|
||||
|
||||
@@ -5,7 +5,7 @@ shadow.db_user = <SQL_UNPRIVILEGED_USER>;
|
||||
shadow.db_password = <SQL_UNPRIVILEGED_PASSWORD>;
|
||||
shadow.table = ftp_users u;
|
||||
shadow.where_clause = ;
|
||||
shadow.userid_column = u.customerid;
|
||||
shadow.userid_column = u.id;
|
||||
shadow.user_column = u.username;
|
||||
shadow.password_column = u.password;
|
||||
shadow.lastchange_column = FLOOR(UNIX_TIMESTAMP()/86400-1);
|
||||
|
||||
@@ -7,7 +7,7 @@ users.table = ftp_users u;
|
||||
users.where_clause = u.login_enabled = 'Y';
|
||||
users.user_column = u.username;
|
||||
users.password_column = u.password;
|
||||
users.userid_column = u.customerid;
|
||||
users.userid_column = u.id;
|
||||
users.uid_column = u.uid;
|
||||
users.gid_column = u.gid;
|
||||
users.realname_column = u.username;
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
#!/bin/bash
|
||||
BIND=127.0.0.1:8888
|
||||
USER=www-data
|
||||
PHP_FCGI_CHILDREN=15
|
||||
PHP_FCGI_MAX_REQUESTS=1000
|
||||
|
||||
PHP_CGI=/usr/bin/php-cgi
|
||||
PHP_CGI_NAME=`basename $PHP_CGI`
|
||||
PHP_CGI_ARGS="- USER=$USER PATH=/usr/bin PHP_FCGI_CHILDREN=$PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS=$PHP_FCGI_MAX_REQUESTS $PHP_CGI -b $BIND"
|
||||
RETVAL=0
|
||||
|
||||
start() {
|
||||
echo -n "Starting PHP FastCGI: "
|
||||
start-stop-daemon --quiet --start --background --chuid "$USER" --exec /usr/bin/env -- $PHP_CGI_ARGS
|
||||
RETVAL=$?
|
||||
echo "$PHP_CGI_NAME."
|
||||
}
|
||||
stop() {
|
||||
echo -n "Stopping PHP FastCGI: "
|
||||
killall -q -w -u $USER $PHP_CGI
|
||||
RETVAL=$?
|
||||
echo "$PHP_CGI_NAME."
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
start
|
||||
;;
|
||||
stop)
|
||||
stop
|
||||
;;
|
||||
restart)
|
||||
stop
|
||||
start
|
||||
;;
|
||||
*)
|
||||
echo "Usage: php-fastcgi {start|stop|restart}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
exit $RETVAL
|
||||
@@ -1,15 +0,0 @@
|
||||
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
|
||||
fastcgi_param SERVER_SOFTWARE nginx;
|
||||
fastcgi_param QUERY_STRING $query_string;
|
||||
fastcgi_param REQUEST_METHOD $request_method;
|
||||
fastcgi_param CONTENT_TYPE $content_type;
|
||||
fastcgi_param CONTENT_LENGTH $content_length;
|
||||
fastcgi_param REQUEST_URI $request_uri;
|
||||
fastcgi_param DOCUMENT_URI $document_uri;
|
||||
fastcgi_param DOCUMENT_ROOT $document_root;
|
||||
fastcgi_param SERVER_PROTOCOL $server_protocol;
|
||||
fastcgi_param REMOTE_ADDR $remote_addr;
|
||||
fastcgi_param REMOTE_PORT $remote_port;
|
||||
fastcgi_param SERVER_ADDR $server_addr;
|
||||
fastcgi_param SERVER_PORT $server_port;
|
||||
fastcgi_param SERVER_NAME $server_name;
|
||||
@@ -1,25 +0,0 @@
|
||||
user www-data;
|
||||
worker_processes 4;
|
||||
|
||||
pid /var/run/nginx.pid;
|
||||
|
||||
events {
|
||||
worker_connections 1024;
|
||||
}
|
||||
|
||||
http {
|
||||
include /etc/nginx/mime.types;
|
||||
default_type application/octet-stream;
|
||||
|
||||
access_log /var/log/nginx/access.log;
|
||||
|
||||
sendfile on;
|
||||
tcp_nodelay on;
|
||||
|
||||
keepalive_timeout 65;
|
||||
|
||||
gzip on;
|
||||
|
||||
include /etc/nginx/conf.d/*.conf;
|
||||
include /etc/nginx/sites-enabled/*;
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
driver = mysql
|
||||
connect = host=<SQL_HOST> dbname=<SQL_DB> user=<SQL_UNPRIVILEGED_USER> password=<SQL_UNPRIVILEGED_PASSWORD>
|
||||
default_pass_scheme = CRYPT
|
||||
password_query = SELECT username AS user, password_enc AS password FROM mail_users WHERE (username = '%u' OR email = '%u') AND ((imap = 1 AND '%Ls' = 'imap') OR (pop3 = 1 AND '%Ls' = 'pop3') OR '%Ls' = 'smtp')
|
||||
user_query = SELECT CONCAT(homedir,maildir) AS home, concat('maildir:',homedir,maildir) AS mail, uid, gid FROM mail_users where (username = '%u' OR email = '%u')
|
||||
password_query = SELECT username AS user, password_enc AS password FROM mail_users WHERE username = '%u'
|
||||
user_query = SELECT CONCAT(homedir,maildir) AS home, concat('maildir:',homedir,maildir) AS mail, uid, gid FROM mail_users where username = '%u'
|
||||
|
||||
@@ -10,5 +10,4 @@ MYSQL_GID_FIELD <VIRTUAL_GID_MAPS>
|
||||
MYSQL_LOGIN_FIELD username
|
||||
MYSQL_HOME_FIELD "<VIRTUAL_MAILBOX_BASE>"
|
||||
MYSQL_MAILDIR_FIELD maildir
|
||||
MYSQL_QUOTA_FIELD (quota*1024*1024)
|
||||
MYSQL_AUXOPTIONS_FIELD CONCAT("allowimap=",imap,",allowpop3=",pop3)
|
||||
MYSQL_QUOTA_FIELD (quota*1024*1024)
|
||||
@@ -7,4 +7,4 @@ PATH=/sbin:/bin:/usr/sbin:/usr/bin
|
||||
#
|
||||
# Please check that all following paths are correct
|
||||
#
|
||||
*/5 * * * * root /usr/lib/php5/bin/php -q <BASE_PATH>scripts/froxlor_master_cronjob.php
|
||||
*/5 * * * * root /usr/lib/php5/bin/php -q /var/www/froxlor/scripts/froxlor_master_cronjob.php
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
driver = mysql
|
||||
connect = host=<SQL_HOST> dbname=<SQL_DB> user=<SQL_UNPRIVILEGED_USER> password=<SQL_UNPRIVILEGED_PASSWORD>
|
||||
default_pass_scheme = CRYPT
|
||||
password_query = "SELECT username AS user, password_enc AS password, CONCAT(homedir, maildir) AS userdb_home, uid AS userdb_uid, gid AS userdb_gid, CONCAT('*:storage=', quota,'M') AS userdb_quota_rule FROM mail_users WHERE (username = '%u' OR email = '%u') AND ((imap = 1 AND '%Ls' = 'imap') OR (pop3 = 1 AND '%Ls' = 'pop3') OR '%Ls' = 'smtp')"
|
||||
user_query = "SELECT CONCAT(homedir, maildir) AS home, uid, gid, CONCAT('*:storage=', quota,'M') AS quota_rule FROM mail_users WHERE (username = '%u' OR email = '%u')"
|
||||
password_query = "SELECT username AS user, password_enc AS password, CONCAT(homedir, maildir) AS userdb_home, uid AS userdb_uid, gid AS userdb_gid, CONCAT('*:storage=', quota,'M') AS userdb_quota_rule FROM mail_users WHERE username = '%u' OR email = '%u'"
|
||||
user_query = "SELECT CONCAT(homedir, maildir) AS home, uid, gid, CONCAT('*:storage=', quota,'M') AS quota_rule FROM mail_users WHERE username = '%u' OR email = '%u'"
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
#!/bin/bash
|
||||
BIND=127.0.0.1:8888
|
||||
USER=nginx
|
||||
PHP_FCGI_CHILDREN=15
|
||||
PHP_FCGI_MAX_REQUESTS=1000
|
||||
|
||||
PHP_CGI=/usr/bin/php-cgi
|
||||
PHP_CGI_NAME=`basename $PHP_CGI`
|
||||
PHP_CGI_ARGS="- USER=$USER PATH=/usr/bin PHP_FCGI_CHILDREN=$PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS=$PHP_FCGI_MAX_REQUESTS $PHP_CGI -b $BIND"
|
||||
RETVAL=0
|
||||
|
||||
start() {
|
||||
echo -n "Starting PHP FastCGI: "
|
||||
start-stop-daemon --quiet --start --background --chuid "$USER" --exec /usr/bin/env -- $PHP_CGI_ARGS
|
||||
RETVAL=$?
|
||||
echo "$PHP_CGI_NAME."
|
||||
}
|
||||
stop() {
|
||||
echo -n "Stopping PHP FastCGI: "
|
||||
killall -q -w -u $USER $PHP_CGI
|
||||
RETVAL=$?
|
||||
echo "$PHP_CGI_NAME."
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
start
|
||||
;;
|
||||
stop)
|
||||
stop
|
||||
;;
|
||||
restart)
|
||||
stop
|
||||
start
|
||||
;;
|
||||
*)
|
||||
echo "Usage: php-fastcgi {start|stop|restart}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
exit $RETVAL
|
||||
@@ -1,15 +0,0 @@
|
||||
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
|
||||
fastcgi_param SERVER_SOFTWARE nginx;
|
||||
fastcgi_param QUERY_STRING $query_string;
|
||||
fastcgi_param REQUEST_METHOD $request_method;
|
||||
fastcgi_param CONTENT_TYPE $content_type;
|
||||
fastcgi_param CONTENT_LENGTH $content_length;
|
||||
fastcgi_param REQUEST_URI $request_uri;
|
||||
fastcgi_param DOCUMENT_URI $document_uri;
|
||||
fastcgi_param DOCUMENT_ROOT $document_root;
|
||||
fastcgi_param SERVER_PROTOCOL $server_protocol;
|
||||
fastcgi_param REMOTE_ADDR $remote_addr;
|
||||
fastcgi_param REMOTE_PORT $remote_port;
|
||||
fastcgi_param SERVER_ADDR $server_addr;
|
||||
fastcgi_param SERVER_PORT $server_port;
|
||||
fastcgi_param SERVER_NAME $server_name;
|
||||
@@ -1,26 +0,0 @@
|
||||
user nginx;
|
||||
worker_processes 4;
|
||||
|
||||
pid /var/run/nginx.pid;
|
||||
|
||||
events {
|
||||
worker_connections 1024;
|
||||
}
|
||||
|
||||
http {
|
||||
include /etc/nginx/mime.types;
|
||||
default_type application/octet-stream;
|
||||
|
||||
access_log /var/log/nginx/access.log;
|
||||
|
||||
sendfile on;
|
||||
tcp_nodelay on;
|
||||
|
||||
keepalive_timeout 65;
|
||||
|
||||
gzip on;
|
||||
|
||||
include /etc/nginx/conf.d/*.conf;
|
||||
include /etc/nginx/sites-enabled/*;
|
||||
}
|
||||
|
||||
@@ -10,5 +10,3 @@ MYSQL_GID_FIELD gid
|
||||
MYSQL_LOGIN_FIELD username
|
||||
MYSQL_HOME_FIELD homedir
|
||||
MYSQL_MAILDIR_FIELD maildir
|
||||
MYSQL_QUOTA_FIELD (quota*1024*1024)
|
||||
MYSQL_AUXOPTIONS_FIELD CONCAT("allowimap=",imap,",allowpop3=",pop3)
|
||||
|
||||
@@ -5,4 +5,4 @@ PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
||||
#
|
||||
# Regular cron jobs for the froxlor package
|
||||
#
|
||||
*/5 * * * * root /usr/bin/php5 -q <BASE_PATH>scripts/froxlor_master_cronjob.php
|
||||
*/5 * * * * root /usr/bin/php5 -q /srv/www/htdocs/froxlor/scripts/froxlor_master_cronjob.php
|
||||
|
||||
@@ -10,5 +10,4 @@ MYSQL_GID_FIELD gid
|
||||
MYSQL_LOGIN_FIELD username
|
||||
MYSQL_HOME_FIELD homedir
|
||||
MYSQL_MAILDIR_FIELD maildir
|
||||
MYSQL_QUOTA_FIELD (quota*1024*1024)
|
||||
MYSQL_AUXOPTIONS_FIELD CONCAT("allowimap=",imap,",allowpop3=",pop3)
|
||||
MYSQL_QUOTA_FIELD (quota*1024*1024)
|
||||
@@ -5,4 +5,4 @@ PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
||||
#
|
||||
# Regular cron jobs for the froxlor package
|
||||
#
|
||||
*/5 * * * * root /usr/bin/php5 -q <BASE_PATH>scripts/froxlor_master_cronjob.php
|
||||
*/5 * * * * root /usr/bin/php5 -q /var/www/froxlor/scripts/froxlor_master_cronjob.php
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
driver = mysql
|
||||
connect = host=<SQL_HOST> dbname=<SQL_DB> user=<SQL_UNPRIVILEGED_USER> password=<SQL_UNPRIVILEGED_PASSWORD>
|
||||
default_pass_scheme = CRYPT
|
||||
password_query = SELECT username AS user, password_enc AS password, CONCAT(homedir, maildir) AS userdb_home, uid AS userdb_uid, gid AS userdb_gid, CONCAT('maildir:', homedir, maildir) AS userdb_mail, CONCAT('maildir:storage=', (quota*1024)) as userdb_quota FROM mail_users WHERE (username = '%u' OR email = '%u') AND ((imap = 1 AND '%Ls' = 'imap') OR (pop3 = 1 AND '%Ls' = 'pop3') OR '%Ls' = 'smtp')
|
||||
user_query = SELECT CONCAT(homedir, maildir) AS home, CONCAT('maildir:', homedir, maildir) AS mail, uid, gid, CONCAT('maildir:storage=', (quota*1024)) as quota FROM mail_users WHERE (username = '%u' OR email = '%u')
|
||||
password_query = SELECT username AS user, password_enc AS password, CONCAT(homedir, maildir) AS userdb_home, uid AS userdb_uid, gid AS userdb_gid, CONCAT('maildir:', homedir, maildir) AS userdb_mail, CONCAT('maildir:storage=', (quota*1024)) as userdb_quota FROM mail_users WHERE username = '%u' OR email = '%u'
|
||||
user_query = SELECT CONCAT(homedir, maildir) AS home, CONCAT('maildir:', homedir, maildir) AS mail, uid, gid, CONCAT('maildir:storage=', (quota*1024)) as quota FROM mail_users WHERE username = '%u' OR email = '%u'
|
||||
|
||||
@@ -5,7 +5,7 @@ shadow.db_user = <SQL_UNPRIVILEGED_USER>;
|
||||
shadow.db_password = <SQL_UNPRIVILEGED_PASSWORD>;
|
||||
shadow.table = ftp_users u;
|
||||
shadow.where_clause = ;
|
||||
shadow.userid_column = u.customerid;
|
||||
shadow.userid_column = u.id;
|
||||
shadow.user_column = u.username;
|
||||
shadow.password_column = u.password;
|
||||
shadow.lastchange_column = FLOOR(UNIX_TIMESTAMP()/86400-1);
|
||||
|
||||
@@ -7,7 +7,7 @@ users.table = ftp_users u;
|
||||
users.where_clause = u.login_enabled = 'Y';
|
||||
users.user_column = u.username;
|
||||
users.password_column = u.password;
|
||||
users.userid_column = u.customerid;
|
||||
users.userid_column = u.id;
|
||||
users.uid_column = u.uid;
|
||||
users.gid_column = u.gid;
|
||||
users.realname_column = u.username;
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
#!/bin/bash
|
||||
BIND=127.0.0.1:8888
|
||||
USER=www-data
|
||||
PHP_FCGI_CHILDREN=15
|
||||
PHP_FCGI_MAX_REQUESTS=1000
|
||||
|
||||
PHP_CGI=/usr/bin/php-cgi
|
||||
PHP_CGI_NAME=`basename $PHP_CGI`
|
||||
PHP_CGI_ARGS="- USER=$USER PATH=/usr/bin PHP_FCGI_CHILDREN=$PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS=$PHP_FCGI_MAX_REQUESTS $PHP_CGI -b $BIND"
|
||||
RETVAL=0
|
||||
|
||||
start() {
|
||||
echo -n "Starting PHP FastCGI: "
|
||||
start-stop-daemon --quiet --start --background --chuid "$USER" --exec /usr/bin/env -- $PHP_CGI_ARGS
|
||||
RETVAL=$?
|
||||
echo "$PHP_CGI_NAME."
|
||||
}
|
||||
stop() {
|
||||
echo -n "Stopping PHP FastCGI: "
|
||||
killall -q -w -u $USER $PHP_CGI
|
||||
RETVAL=$?
|
||||
echo "$PHP_CGI_NAME."
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
start
|
||||
;;
|
||||
stop)
|
||||
stop
|
||||
;;
|
||||
restart)
|
||||
stop
|
||||
start
|
||||
;;
|
||||
*)
|
||||
echo "Usage: php-fastcgi {start|stop|restart}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
exit $RETVAL
|
||||
@@ -1,15 +0,0 @@
|
||||
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
|
||||
fastcgi_param SERVER_SOFTWARE nginx;
|
||||
fastcgi_param QUERY_STRING $query_string;
|
||||
fastcgi_param REQUEST_METHOD $request_method;
|
||||
fastcgi_param CONTENT_TYPE $content_type;
|
||||
fastcgi_param CONTENT_LENGTH $content_length;
|
||||
fastcgi_param REQUEST_URI $request_uri;
|
||||
fastcgi_param DOCUMENT_URI $document_uri;
|
||||
fastcgi_param DOCUMENT_ROOT $document_root;
|
||||
fastcgi_param SERVER_PROTOCOL $server_protocol;
|
||||
fastcgi_param REMOTE_ADDR $remote_addr;
|
||||
fastcgi_param REMOTE_PORT $remote_port;
|
||||
fastcgi_param SERVER_ADDR $server_addr;
|
||||
fastcgi_param SERVER_PORT $server_port;
|
||||
fastcgi_param SERVER_NAME $server_name;
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user