Compare commits

..

49 Commits
0.9.1 ... 0.9.3

Author SHA1 Message Date
Florian Aders (EleRas)
973d45ca06 Tagging release 0.9.3 2010-03-15 07:59:17 +00:00
Robert Foerster (Dessa)
e79fe3e510 fix link here too 2010-03-15 07:53:03 +00:00
Michael Kaufmann (d00p)
eddb2a2623 set correct wiki entry for realtime-documentation 2010-03-15 07:42:59 +00:00
Michael Kaufmann (d00p)
ae595b0f2f show [OK] when only updating version 2010-03-15 06:26:04 +00:00
Michael Kaufmann (d00p)
423fd7b7df set version to 0.9.3 2010-03-15 06:16:37 +00:00
Robert Foerster (Dessa)
7f6a21ceec - remove phpmailer.lang-en.php as its not used it this release
- its PHPMailer not phpMailer
2010-03-15 01:40:58 +00:00
Robert Foerster (Dessa)
f11c180ea8 - add apt-get for proftpd command for debian + derivates 2010-03-14 12:10:43 +00:00
Michael Kaufmann (d00p)
a7f22a3426 - added $branding for package-specific-patch-indication, fixes #60 2010-03-12 16:23:21 +00:00
Michael Kaufmann (d00p)
2c12c51977 - don't set $_die to false on warnings on installation because this would make it possible to continue even without the requirements 2010-03-11 13:11:22 +00:00
Michael Kaufmann (d00p)
ee7f83aede - correcting safe_exec check in function.safe_exec.php, fixes #56 2010-03-10 12:19:20 +00:00
Michael Kaufmann (d00p)
6f37aa2209 - corrected dbversion-setting when upgrading from syscp-stable (1.4.2.1), fixes #54 2010-03-10 07:30:53 +00:00
Michael Kaufmann (d00p)
1d03f04e1e - show reasonable errormessage in function validateFormFieldHidden() when hidden fields changed
- don't show error if cronjob-timestamps changed while editing settings, fixes #52
2010-03-09 06:45:36 +00:00
Michael Kaufmann (d00p)
8ec1b723a2 - only select customerid from panel_customers on edit-domains (admin), documentroot comes from panel_domains, fixes #51 2010-03-08 15:47:33 +00:00
Michael Kaufmann (d00p)
fb75e43511 set user-defined tmp-directory for php-socket in lighttpd.conf 2010-03-08 15:04:05 +00:00
Michael Kaufmann (d00p)
3e4dc2f1d8 forgot to save freebsd-file, refs #50 2010-03-07 15:38:08 +00:00
Michael Kaufmann (d00p)
6c233818f2 only display command if folder is set in configs, refs #50 2010-03-07 15:37:26 +00:00
Michael Kaufmann (d00p)
9a18dbcc36 add command to create the "deactivated users"-folder, fixes #50 2010-03-07 15:23:28 +00:00
Michael Kaufmann (d00p)
cbfb89f86a - set correct html-linebreaks when sending e-mails in ticket-class
- prevent usage of <script>-tag in tickets
- design-correction in archive-search
2010-03-05 07:55:04 +00:00
Michael Kaufmann (d00p)
491e5363a7 - set correct html-linebreaks when sending e-mails
- disallow email-add form when no (email-)domain is added yet
2010-03-05 07:13:00 +00:00
Robert Foerster (Dessa)
b5465f602f unbreak SQL-Query for Ticketcreation, fixes bug #47 2010-03-04 01:59:07 +00:00
Florian Aders (EleRas)
49ff638e20 Create logfiles if they do not exist, fixes #46 2010-03-03 18:36:50 +00:00
Michael Kaufmann (d00p)
cb2ad2261b added Postfix and Dovecot configuration-templates for FreeBSD 2010-03-03 09:57:54 +00:00
Michael Kaufmann (d00p)
a6909a8cec updated phpMailer-Class to version 5.1 (PHP5/PHP6), fixes #35 2010-03-03 08:51:13 +00:00
Michael Kaufmann (d00p)
a0c557c405 - check for existing awstats-configuration-directory and model-file, fixes #45 2010-03-02 22:03:55 +00:00
Michael Kaufmann (d00p)
0cd452de28 fixing function checkLastGuid() 2010-03-01 17:43:47 +00:00
Michael Kaufmann (d00p)
91d461b122 fix logging in checklastguid() when not called from cronjob 2010-03-01 16:30:16 +00:00
Michael Kaufmann (d00p)
098afe7cf8 - started to add FreeBSD configuration to Froxlor, refs #37 2010-03-01 10:39:08 +00:00
Michael Kaufmann (d00p)
25b1478261 - added dependecies to settings (now only used in password-reset functions), fixes #40 2010-03-01 07:42:07 +00:00
Robert Foerster (Dessa)
adf79b3b1d - fixed SQL query for password resets for admins, fixes #38
- tell the user that passwordreset is disabled also when trying to reset an admin password
2010-02-25 19:06:02 +00:00
Michael Kaufmann (d00p)
0461e4cbd9 fix header-graphic on upgrade (SysCP => Froxlor) 2010-02-25 13:35:53 +00:00
Michael Kaufmann (d00p)
b289a6746a - improved last-guid sanity check on update to 0.9.1, fixes #34
- replacing deprecated functions in PHP-5.3 (no external libraries for now like phpmailer), refs #35
2010-02-25 07:05:23 +00:00
Michael Kaufmann (d00p)
1d2193d0e2 define a standard <Directory>-statement if no FCGID is used with Apache, fixes #32 2010-02-24 11:42:03 +00:00
Michael Kaufmann (d00p)
8fb23fcf62 better display when newer version is available 2010-02-24 07:59:17 +00:00
Michael Kaufmann (d00p)
525499b987 added apt-get command to awstats-configuration, fixes #28 2010-02-24 06:29:42 +00:00
Michael Kaufmann (d00p)
f8b3da48fc - show correct path in APS-error message, fixes #30 2010-02-24 06:12:34 +00:00
Michael Kaufmann (d00p)
dd0aa8e10c syscp-trunk is f*cked 2010-02-23 13:33:51 +00:00
Michael Kaufmann (d00p)
fea80269ed - fix update from syscp-trunk (current rev 2739), fixes #27 2010-02-23 13:24:56 +00:00
Michael Kaufmann (d00p)
dd9b72e45e - versionchecking via url_fopen now works again and looks better 2010-02-23 09:19:41 +00:00
Michael Kaufmann (d00p)
7aba67af11 forgot to add $path to the $file_url 2010-02-23 07:54:02 +00:00
Michael Kaufmann (d00p)
a1561618e9 fix sql-query in ticket::customerHasTickets(), fixes #26 2010-02-22 20:11:35 +00:00
Michael Kaufmann (d00p)
c549e17795 correct urlencoding in ApsUpdater 2010-02-22 13:43:45 +00:00
Robert Foerster (Dessa)
3c59d37dd2 assorted spelling fixes 2010-02-22 12:33:57 +00:00
Michael Kaufmann (d00p)
d236a5ceda - setting version to 0.9.2
- checking for sane last-system-guid on update
- added a bit of cronlogging to ApsUpdater (only in paranoid mode)
2010-02-22 12:24:45 +00:00
Michael Kaufmann (d00p)
66d5ea8f9e - fix checklastguid, ignore nogroup/nobody with very high guids (>65500) 2010-02-22 09:51:16 +00:00
Michael Kaufmann (d00p)
e8de3d45e5 - removed some undefined variables
- fixed function openRootDB
- fixed realtime-function (it's now a tcp connection), fixes #24
- fixed missing $-sign befor variable in makePathfield
2010-02-21 21:09:48 +00:00
Michael Kaufmann (d00p)
c192d19d7e - corrected file-names for bind-configuration, fixes #20 2010-02-17 11:36:32 +00:00
Michael Kaufmann (d00p)
ada8ecf04a - adding statement "virtual_mailbox_limit = 0" to the postfix configuration-template (main.cf), fixes #19 2010-02-17 08:02:15 +00:00
Michael Kaufmann (d00p)
2d3701c5a3 - fixing the "Could not open input file: [...]/install_scripts/configure install" issue in ApsInstaller 2010-02-15 12:49:38 +00:00
Michael Kaufmann (d00p)
0488a3c2a4 - fixing RootDir in ApsInstaller and ApsUpdater, fixes #14 and #15
- fixed root_db connection in openRootDB()
2010-02-15 12:05:15 +00:00
74 changed files with 4669 additions and 4121 deletions

View File

@@ -95,6 +95,14 @@ return array(
'type' => 'bool', 'type' => 'bool',
'default' => false, 'default' => false,
'save_method' => 'storeSettingField', 'save_method' => 'storeSettingField',
'dependency' => array(
'fieldname' => 'panel_allow_preset_admin',
'fielddata' => array(
'settinggroup' => 'panel',
'varname' => 'allow_preset_admin',
),
'onlyif' => 0
)
), ),
'panel_allow_preset_admin' => array( 'panel_allow_preset_admin' => array(
'label' => $lng['serversettings']['allow_password_reset_admin'], 'label' => $lng['serversettings']['allow_password_reset_admin'],
@@ -103,6 +111,14 @@ return array(
'type' => 'bool', 'type' => 'bool',
'default' => false, 'default' => false,
'save_method' => 'storeSettingField', 'save_method' => 'storeSettingField',
'dependency' => array(
'fieldname' => 'panel_allow_preset',
'fielddata' => array(
'settinggroup' => 'panel',
'varname' => 'allow_preset',
),
'onlyif' => 1
)
), ),
), ),
), ),

View File

@@ -71,7 +71,7 @@ return array(
'label' => $lng['serversettings']['system_realtime_port'], 'label' => $lng['serversettings']['system_realtime_port'],
'settinggroup' => 'system', 'settinggroup' => 'system',
'varname' => 'realtime_port', 'varname' => 'realtime_port',
'type' => 'int', 'type' => (function_exists('socket_create') ? 'int' : 'hidden'),
'int_max' => 65535, 'int_max' => 65535,
'default' => 0, 'default' => 0,
'save_method' => 'storeSettingField', 'save_method' => 'storeSettingField',

View File

@@ -97,7 +97,8 @@ if($userinfo['change_serversettings'] == '1')
'<VIRTUAL_GID_MAPS>' => $settings['system']['vmail_gid'], '<VIRTUAL_GID_MAPS>' => $settings['system']['vmail_gid'],
'<AWSTATS_PATH>' => $settings['system']['awstats_path'], '<AWSTATS_PATH>' => $settings['system']['awstats_path'],
'<SSLPROTOCOLS>' => ($settings['system']['use_ssl'] == '1') ? 'imaps pop3s' : '', '<SSLPROTOCOLS>' => ($settings['system']['use_ssl'] == '1') ? 'imaps pop3s' : '',
'<REALTIME_PORT>' => $settings['system']['realtime_port'] '<REALTIME_PORT>' => $settings['system']['realtime_port'],
'<CUSTOMER_TMP>' => ($settings['system']['mod_fcgid_tmpdir'] != '') ? $settings['system']['mod_fcgid_tmpdir'] : '/tmp/'
); );
$files = ''; $files = '';
$configpage = ''; $configpage = '';

View File

@@ -622,23 +622,22 @@ if($page == 'customers'
$result = $db->query_first('SELECT `value` FROM `' . TABLE_PANEL_TEMPLATES . '` WHERE `adminid`=\'' . (int)$userinfo['adminid'] . '\' AND `language`=\'' . $db->escape($def_language) . '\' AND `templategroup`=\'mails\' AND `varname`=\'createcustomer_mailbody\''); $result = $db->query_first('SELECT `value` FROM `' . TABLE_PANEL_TEMPLATES . '` WHERE `adminid`=\'' . (int)$userinfo['adminid'] . '\' AND `language`=\'' . $db->escape($def_language) . '\' AND `templategroup`=\'mails\' AND `varname`=\'createcustomer_mailbody\'');
$mail_body = html_entity_decode(replace_variables((($result['value'] != '') ? $result['value'] : $lng['mails']['createcustomer']['mailbody']), $replace_arr)); $mail_body = html_entity_decode(replace_variables((($result['value'] != '') ? $result['value'] : $lng['mails']['createcustomer']['mailbody']), $replace_arr));
$mail->From = $userinfo['email']; $_mailerror = false;
$mail->FromName = $userinfo['name']; try {
$mail->Subject = $mail_subject; $mail->Subject = $mail_subject;
$mail->Body = $mail_body; $mail->AltBody = $mail_body;
$mail->AddAddress($email, getCorrectUserSalutation(array('firstname' => $firstname, 'name' => $name, 'company' => $company))); $mail->MsgHTML(str_replace("\n", "<br />", $mail_body));
$mail->AddAddress($email, getCorrectUserSalutation(array('firstname' => $firstname, 'name' => $name, 'company' => $company)));
if(!$mail->Send()) $mail->Send();
{ } catch(phpmailerException $e) {
if($mail->ErrorInfo != '') $mailerr_msg = $e->errorMessage();
{ $_mailerror = true;
$mailerr_msg = $mail->ErrorInfo; } catch (Exception $e) {
} $mailerr_msg = $e->getMessage();
else $_mailerror = true;
{ }
$mailerr_msg = $email;
}
if ($_mailerror) {
$log->logAction(ADM_ACTION, LOG_ERR, "Error sending mail: " . $mailerr_msg); $log->logAction(ADM_ACTION, LOG_ERR, "Error sending mail: " . $mailerr_msg);
standard_error('errorsendingmail', $email); standard_error('errorsendingmail', $email);
} }
@@ -781,11 +780,18 @@ if($page == 'customers'
$mysqls = - 1; $mysqls = - 1;
} }
$number_of_aps_packages = intval_ressource($_POST['number_of_aps_packages']); if($settings['aps']['aps_active'] == '1')
{
$number_of_aps_packages = intval_ressource($_POST['number_of_aps_packages']);
if(isset($_POST['number_of_aps_packages_ul'])) if(isset($_POST['number_of_aps_packages_ul']))
{
$number_of_aps_packages = - 1;
}
}
else
{ {
$number_of_aps_packages = - 1; $number_of_aps_packages = 0;
} }
$createstdsubdomain = intval($_POST['createstdsubdomain']); $createstdsubdomain = intval($_POST['createstdsubdomain']);

View File

@@ -624,7 +624,11 @@ if($page == 'domains'
elseif($action == 'edit' elseif($action == 'edit'
&& $id != 0) && $id != 0)
{ {
$result = $db->query_first("SELECT `d`.`id`, `d`.`domain`, `d`.`customerid`, `d`.`adminid`, `d`.`email_only`, `d`.`documentroot`, `d`.`ssl`, `d`.`ssl_redirect`, `d`.`ssl_ipandport`,`d`.`ipandport`, `d`.`aliasdomain`, `d`.`isbinddomain`, `d`.`isemaildomain`, `d`.`subcanemaildomain`, `d`.`dkim`, `d`.`caneditdomain`, `d`.`zonefile`, `d`.`wwwserveralias`, `d`.`openbasedir`, `d`.`safemode`, `d`.`speciallogfile`, `d`.`specialsettings`, `d`.`add_date`, `d`.`registration_date`, `c`.`loginname`, `c`.`name`, `c`.`firstname`, `c`.`company`, `d`.`phpsettingid`, `d`.`mod_fcgid_starter`, `d`.`mod_fcgid_maxrequests` " . "FROM `" . TABLE_PANEL_DOMAINS . "` `d` " . "LEFT JOIN `" . TABLE_PANEL_CUSTOMERS . "` `c` USING(`customerid`) " . "WHERE `d`.`parentdomainid`='0' AND `d`.`id`='" . (int)$id . "'" . ($userinfo['customers_see_all'] ? '' : " AND `d`.`adminid` = '" . (int)$userinfo['adminid'] . "' ")); $result = $db->query_first("SELECT `d`.*, `c`.`customerid` FROM `" . TABLE_PANEL_DOMAINS . "` `d`
LEFT JOIN `" . TABLE_PANEL_CUSTOMERS . "` `c` USING(`customerid`)
WHERE `d`.`parentdomainid`='0'
AND `d`.`id`='" . (int)$id . "'"
. ($userinfo['customers_see_all'] ? '' : " AND `d`.`adminid` = '" . (int)$userinfo['adminid'] . "' "));
if($result['domain'] != '') if($result['domain'] != '')
{ {

View File

@@ -84,26 +84,38 @@ if($page == 'overview')
$webserverinterface = strtoupper(@php_sapi_name()); $webserverinterface = strtoupper(@php_sapi_name());
if((isset($_GET['lookfornewversion']) && $_GET['lookfornewversion'] == 'yes') if((isset($_GET['lookfornewversion']) && $_GET['lookfornewversion'] == 'yes')
|| (isset($lookfornewversion) && $lookfornewversion == 'yes')) || (isset($lookfornewversion) && $lookfornewversion == 'yes'))
{ {
$update_check_uri = 'http://version.froxlor.org/Froxlor/legacy/' . $version; $update_check_uri = 'http://version.froxlor.org/Froxlor/legacy/' . $version;
if(strtolower(ini_get('allow_url_fopen')) == 'on') if(ini_get('allow_url_fopen'))
{ {
$latestversion = @file($update_check_uri); $latestversion = @file($update_check_uri);
$latestversion = explode(':', $latestversion); if (isset($latestversion[0]))
if(is_array($latestversion)
&& count($latestversion) >= 2)
{ {
$lookfornewversion_lable = $latestversion[0]; $latestversion = explode('|', $latestversion[0]);
$lookfornewversion_link = $latestversion[1];
$lookfornewversion_addinfo = ''; if(is_array($latestversion)
&& count($latestversion) >= 1)
if(count($latestversion) >= 3)
{ {
$lookfornewversion_addinfo = $latestversion[2]; $_version = $latestversion[0];
$_message = $latestversion[1];
$_link = isset($latestversion[2]) ? $latestversion[2] : htmlspecialchars($filename . '?s=' . urlencode($s) . '&page=' . urlencode($page) . '&lookfornewversion=yes');
$lookfornewversion_lable = $_version;
$lookfornewversion_link = $_link;
$lookfornewversion_addinfo = $_message;
if (version_compare($version, $_version) == -1) {
$isnewerversion = 1;
} else {
$isnewerversion = 0;
}
}
else
{
redirectTo($update_check_uri.'/pretty', NULL);
} }
} }
else else
@@ -121,6 +133,7 @@ if($page == 'overview')
$lookfornewversion_lable = $lng['admin']['lookfornewversion']['clickhere']; $lookfornewversion_lable = $lng['admin']['lookfornewversion']['clickhere'];
$lookfornewversion_link = htmlspecialchars($filename . '?s=' . urlencode($s) . '&page=' . urlencode($page) . '&lookfornewversion=yes'); $lookfornewversion_link = htmlspecialchars($filename . '?s=' . urlencode($s) . '&page=' . urlencode($page) . '&lookfornewversion=yes');
$lookfornewversion_addinfo = ''; $lookfornewversion_addinfo = '';
$isnewerversion = 0;
} }
$userinfo['diskspace'] = round($userinfo['diskspace'] / 1024, $settings['panel']['decimal_places']); $userinfo['diskspace'] = round($userinfo['diskspace'] / 1024, $settings['panel']['decimal_places']);
@@ -177,8 +190,8 @@ if($page == 'overview')
$uptime_array = explode(" ", @file_get_contents("/proc/uptime")); $uptime_array = explode(" ", @file_get_contents("/proc/uptime"));
if(is_array($uptime_array) if(is_array($uptime_array)
&& isset($uptime_array[0]) && isset($uptime_array[0])
&& is_numeric($uptime_array[0])) && is_numeric($uptime_array[0]))
{ {
// Some calculatioon to get a nicly formatted display // Some calculatioon to get a nicly formatted display
@@ -207,7 +220,7 @@ if($page == 'overview')
elseif($page == 'change_password') elseif($page == 'change_password')
{ {
if(isset($_POST['send']) if(isset($_POST['send'])
&& $_POST['send'] == 'send') && $_POST['send'] == 'send')
{ {
$old_password = validate($_POST['old_password'], 'old password'); $old_password = validate($_POST['old_password'], 'old password');
@@ -251,7 +264,7 @@ elseif($page == 'change_password')
elseif($page == 'change_language') elseif($page == 'change_language')
{ {
if(isset($_POST['send']) if(isset($_POST['send'])
&& $_POST['send'] == 'send') && $_POST['send'] == 'send')
{ {
$def_language = validate($_POST['def_language'], 'default language'); $def_language = validate($_POST['def_language'], 'default language');

View File

@@ -21,20 +21,53 @@ require ("./lib/init.php");
if($page == 'overview') if($page == 'overview')
{ {
$log->logAction(ADM_ACTION, LOG_NOTICE, "viewed admin_updates"); $log->logAction(ADM_ACTION, LOG_NOTICE, "viewed admin_updates");
/**
* this is a dirty hack but syscp 1.4.2.1 does not
* has any version/dbversion in the database (don't know why)
* so we have to set them both to run a correct upgrade
*/
if (!isFroxlor()) {
if (!isset($settings['panel']['version'])
|| $settings['panel']['version'] == ''
) {
$settings['panel']['version'] = '1.4.2.1';
$db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('panel','version','".$settings['panel']['version']."')");
}
if (!isset($settings['system']['dbversion'])
|| $settings['system']['dbversion'] == ''
) {
/**
* for syscp-stable (1.4.2.1) this value has to be 0
* so the required table-fields are added correctly
* and the svn-version has its value in the database
* -> bug #54
*/
$result = $db->query_first("SELECT `value` FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `varname` = 'dbversion'");
if(isset($result['value']))
{
$settings['system']['dbversion'] = (int)$result['value'];
} else {
$settings['system']['dbversion'] = 0;
}
}
}
if(hasUpdates($version)) if(hasUpdates($version))
{ {
if(isset($_POST['send']) if(isset($_POST['send'])
&& $_POST['send'] == 'send') && $_POST['send'] == 'send')
{ {
eval("echo \"" . getTemplate("update/update_start") . "\";"); eval("echo \"" . getTemplate("update/update_start") . "\";");
include_once('./install/updatesql.php'); include_once('./install/updatesql.php');
$redirect_url = 'admin_index.php'; $redirect_url = 'admin_index.php';
eval("echo \"" . getTemplate("update/update_end") . "\";"); eval("echo \"" . getTemplate("update/update_end") . "\";");
updateCounters(); updateCounters();
inserttask('1'); inserttask('1');
@chmod('./lib/userdata.inc.php', 0440); @chmod('./lib/userdata.inc.php', 0440);
@@ -43,19 +76,19 @@ if($page == 'overview')
{ {
$current_version = $settings['panel']['version']; $current_version = $settings['panel']['version'];
$new_version = $version; $new_version = $version;
$ui_text = $lng['update']['update_information']; $ui_text = $lng['update']['update_information'];
$ui_text = str_replace('%curversion', $current_version, $ui_text); $ui_text = str_replace('%curversion', $current_version, $ui_text);
$ui_text = str_replace('%newversion', $new_version, $ui_text); $ui_text = str_replace('%newversion', $new_version, $ui_text);
$update_information = $ui_text; $update_information = $ui_text;
eval("echo \"" . getTemplate("update/index") . "\";"); eval("echo \"" . getTemplate("update/index") . "\";");
} }
} }
else else
{ {
/* /*
* @TODO version-webcheck check here * @TODO version-webcheck check here
*/ */
$success_message = $lng['update']['noupdatesavail']; $success_message = $lng['update']['noupdatesavail'];
@@ -63,5 +96,5 @@ if($page == 'overview')
eval("echo \"" . getTemplate("update/noupdatesavail") . "\";"); eval("echo \"" . getTemplate("update/noupdatesavail") . "\";");
} }
} }
?> ?>

View File

@@ -439,9 +439,9 @@ elseif($page == 'domains')
|| $ssl_redirect != $result['ssl_redirect']) || $ssl_redirect != $result['ssl_redirect'])
{ {
$log->logAction(USR_ACTION, LOG_INFO, "edited domain '" . $idna_convert->decode($result['domain']) . "'"); $log->logAction(USR_ACTION, LOG_INFO, "edited domain '" . $idna_convert->decode($result['domain']) . "'");
$result = $db->query("UPDATE `" . TABLE_PANEL_DOMAINS . "` SET `documentroot`='" . $db->escape($path) . "', `isemaildomain`='" . (int)$isemaildomain . "', `iswildcarddomain`='" . (int)$iswildcarddomain . "', `aliasdomain`=" . (($aliasdomain != 0 && $alias_check == 0) ? '\'' . $db->escape($aliasdomain) . '\'' : 'NULL') . ",`openbasedir_path`='" . $db->escape($openbasedir_path) . "', `ssl_redirect`='" . $ssl_redirect . "' WHERE `customerid`='" . (int)$userinfo['customerid'] . "' AND `id`='" . (int)$id . "'");
inserttask('1'); inserttask('1');
inserttask('4'); inserttask('4');
$result = $db->query("UPDATE `" . TABLE_PANEL_DOMAINS . "` SET `documentroot`='" . $db->escape($path) . "', `isemaildomain`='" . (int)$isemaildomain . "', `iswildcarddomain`='" . (int)$iswildcarddomain . "', `aliasdomain`=" . (($aliasdomain != 0 && $alias_check == 0) ? '\'' . $db->escape($aliasdomain) . '\'' : 'NULL') . ",`openbasedir_path`='" . $db->escape($openbasedir_path) . "', `ssl_redirect`='" . $ssl_redirect . "' WHERE `customerid`='" . (int)$userinfo['customerid'] . "' AND `id`='" . (int)$id . "'");
} }
redirectTo($filename, Array('page' => $page, 's' => $s)); redirectTo($filename, Array('page' => $page, 's' => $s));

View File

@@ -427,23 +427,24 @@ elseif($page == 'accounts')
$mail_subject = html_entity_decode(replace_variables((($result['value'] != '') ? $result['value'] : $lng['mails']['pop_success']['subject']), $replace_arr)); $mail_subject = html_entity_decode(replace_variables((($result['value'] != '') ? $result['value'] : $lng['mails']['pop_success']['subject']), $replace_arr));
$result = $db->query_first('SELECT `value` FROM `' . TABLE_PANEL_TEMPLATES . '` WHERE `adminid`=\'' . (int)$userinfo['adminid'] . '\' AND `language`=\'' . $db->escape($userinfo['def_language']) . '\' AND `templategroup`=\'mails\' AND `varname`=\'pop_success_mailbody\''); $result = $db->query_first('SELECT `value` FROM `' . TABLE_PANEL_TEMPLATES . '` WHERE `adminid`=\'' . (int)$userinfo['adminid'] . '\' AND `language`=\'' . $db->escape($userinfo['def_language']) . '\' AND `templategroup`=\'mails\' AND `varname`=\'pop_success_mailbody\'');
$mail_body = html_entity_decode(replace_variables((($result['value'] != '') ? $result['value'] : $lng['mails']['pop_success']['mailbody']), $replace_arr)); $mail_body = html_entity_decode(replace_variables((($result['value'] != '') ? $result['value'] : $lng['mails']['pop_success']['mailbody']), $replace_arr));
$mail->From = $admin['email'];
$mail->FromName = getCorrectUserSalutation($admin); $_mailerror = false;
$mail->Subject = $mail_subject; try {
$mail->Body = $mail_body; $mail->SetFrom($admin['email'], getCorrectUserSalutation($admin));
$mail->AddAddress($email_full, getCorrectUserSalutation($userinfo)); $mail->Subject = $mail_subject;
$mail->AltBody = $mail_body;
if(!$mail->Send()) $mail->MsgHTML(str_replace("\n", "<br />", $mail_body));
{ $mail->AddAddress($email_full, getCorrectUserSalutation($userinfo));
if($mail->ErrorInfo != '') $mail->Send();
{ } catch(phpmailerException $e) {
$mailerr_msg = $mail->ErrorInfo; $mailerr_msg = $e->errorMessage();
} $_mailerror = true;
else } catch (Exception $e) {
{ $mailerr_msg = $e->getMessage();
$mailerr_msg = $email; $_mailerror = true;
} }
if ($_mailerror) {
$log->logAction(USR_ACTION, LOG_ERR, "Error sending mail: " . $mailerr_msg); $log->logAction(USR_ACTION, LOG_ERR, "Error sending mail: " . $mailerr_msg);
standard_error('errorsendingmail', $email); standard_error('errorsendingmail', $email);
} }
@@ -457,23 +458,24 @@ elseif($page == 'accounts')
$mail_subject = replace_variables((($result['value'] != '') ? $result['value'] : $lng['mails']['pop_success_alternative']['subject']), $replace_arr); $mail_subject = replace_variables((($result['value'] != '') ? $result['value'] : $lng['mails']['pop_success_alternative']['subject']), $replace_arr);
$result = $db->query_first('SELECT `value` FROM `' . TABLE_PANEL_TEMPLATES . '` WHERE `adminid`=\'' . (int)$userinfo['adminid'] . '\' AND `language`=\'' . $db->escape($userinfo['def_language']) . '\' AND `templategroup`=\'mails\' AND `varname`=\'pop_success_alternative_mailbody\''); $result = $db->query_first('SELECT `value` FROM `' . TABLE_PANEL_TEMPLATES . '` WHERE `adminid`=\'' . (int)$userinfo['adminid'] . '\' AND `language`=\'' . $db->escape($userinfo['def_language']) . '\' AND `templategroup`=\'mails\' AND `varname`=\'pop_success_alternative_mailbody\'');
$mail_body = replace_variables((($result['value'] != '') ? $result['value'] : $lng['mails']['pop_success_alternative']['mailbody']), $replace_arr); $mail_body = replace_variables((($result['value'] != '') ? $result['value'] : $lng['mails']['pop_success_alternative']['mailbody']), $replace_arr);
$mail->From = $admin['email'];
$mail->FromName = getCorrectUserSalutation($admin); $_mailerror = false;
$mail->Subject = $mail_subject; try {
$mail->Body = $mail_body; $mail->SetFrom($admin['email'], getCorrectUserSalutation($admin));
$mail->AddAddress($idna_convert->encode($alternative_email), getCorrectUserSalutation($userinfo)); $mail->Subject = $mail_subject;
$mail->AltBody = $mail_body;
if(!$mail->Send()) $mail->MsgHTML(str_replace("\n", "<br />", $mail_body));
{ $mail->AddAddress($idna_convert->encode($alternative_email), getCorrectUserSalutation($userinfo));
if($mail->ErrorInfo != '') $mail->Send();
{ } catch(phpmailerException $e) {
$mailerr_msg = $mail->ErrorInfo; $mailerr_msg = $e->errorMessage();
} $_mailerror = true;
else } catch (Exception $e) {
{ $mailerr_msg = $e->getMessage();
$mailerr_msg = $alternative_email; $_mailerror = true;
} }
if ($_mailerror) {
$log->logAction(USR_ACTION, LOG_ERR, "Error sending mail: " . $mailerr_msg); $log->logAction(USR_ACTION, LOG_ERR, "Error sending mail: " . $mailerr_msg);
standard_error(array('errorsendingmail', $alternative_email)); standard_error(array('errorsendingmail', $alternative_email));
} }

View File

@@ -174,17 +174,13 @@ if(!is_null($month)
} }
else else
{ {
$result = $db->query("(SELECT SUM(`http`) as sum FROM `" . TABLE_PANEL_TRAFFIC . "` $result = $db->query("SELECT MAX(`http`), MAX(`ftp_up`+`ftp_down`), MAX(`mail`)
WHERE `customerid` = '" . $userinfo['customerid'] . "' FROM `" . TABLE_PANEL_TRAFFIC . "`
GROUP BY CONCAT(`year`,`month`) ORDER BY CONCAT(`year`,`month`) DESC LIMIT 12) UNION WHERE `customerid`='" . $userinfo['customerid'] . "'
(SELECT SUM(`ftp_up`+`ftp_down`) FROM `" . TABLE_PANEL_TRAFFIC . "` GROUP BY CONCAT(`year`,`month`) ORDER BY CONCAT(`year`,`month`) DESC LIMIT 12");
WHERE `customerid` = '" . $userinfo['customerid'] . "' $row = mysql_fetch_row($result);
GROUP BY CONCAT(`year`,`month`) ORDER BY CONCAT(`year`,`month`) DESC LIMIT 12) UNION rsort($row);
(SELECT SUM(`mail`) FROM `" . TABLE_PANEL_TRAFFIC . "` $traf['max'] = ($row[0] > $row[1] ? ($row[0] > $row[2] ? $row[0] : $row[2]) : ($row[1] > $row[2] ? $row[1] : $row[2]));
WHERE `customerid` = '" . $userinfo['customerid'] . "'
GROUP BY CONCAT(`year`,`month`) ORDER BY CONCAT(`year`,`month`) DESC LIMIT 12) ORDER BY sum DESC LIMIT 1");
$row = $db->fetch_array($result);
$traf['max'] = ($row[0] > $row[1] ? ($row[0] > $row[2] ? $row[0] : $row[2]) : ($row[1] > $row[2] ? $row[1] : $row[2]));;
$result = $db->query("SELECT `month`, `year`, SUM(`http`) AS http, SUM(`ftp_up`) AS ftp_up, SUM(`ftp_down`) AS ftp_down, SUM(`mail`) AS mail $result = $db->query("SELECT `month`, `year`, SUM(`http`) AS http, SUM(`ftp_up`) AS ftp_up, SUM(`ftp_down`) AS ftp_down, SUM(`mail`) AS mail
FROM `" . TABLE_PANEL_TRAFFIC . "` WHERE `customerid` = '" . $userinfo['customerid'] . "' FROM `" . TABLE_PANEL_TRAFFIC . "` WHERE `customerid` = '" . $userinfo['customerid'] . "'
GROUP BY CONCAT(`year`,`month`) ORDER BY CONCAT(`year`,`month`) DESC LIMIT 12"); GROUP BY CONCAT(`year`,`month`) ORDER BY CONCAT(`year`,`month`) DESC LIMIT 12");

View File

@@ -226,7 +226,7 @@ if($action == 'forgotpwd')
if($db->num_rows() == 0) if($db->num_rows() == 0)
{ {
$sql = "SELECT `adminid`, `firstname`, `name`, `email`, `loginname` FROM `" . TABLE_PANEL_ADMINS . "` $sql = "SELECT `adminid`, `name`, `email`, `loginname` FROM `" . TABLE_PANEL_ADMINS . "`
WHERE `loginname`='" . $db->escape($loginname) . "' WHERE `loginname`='" . $db->escape($loginname) . "'
AND `email`='" . $db->escape($email) . "'"; AND `email`='" . $db->escape($email) . "'";
$result = $db->query($sql); $result = $db->query($sql);
@@ -258,23 +258,23 @@ if($action == 'forgotpwd')
$rstlog = FroxlorLogger::getInstanceOf(array('loginname' => 'password_reset'), $db, $settings); $rstlog = FroxlorLogger::getInstanceOf(array('loginname' => 'password_reset'), $db, $settings);
$rstlog->logAction(USR_ACTION, LOG_WARNING, "Password for user '" . $user['loginname'] . "' has been reset!"); $rstlog->logAction(USR_ACTION, LOG_WARNING, "Password for user '" . $user['loginname'] . "' has been reset!");
$body = strtr($lng['pwdreminder']['body'], array('%s' => $user['firstname'] . ' ' . $user['name'], '%p' => $password)); $body = strtr($lng['pwdreminder']['body'], array('%s' => $user['firstname'] . ' ' . $user['name'], '%p' => $password));
$mail->From = $settings['panel']['adminmail'];
$mail->FromName = 'Froxlor'; $_mailerror = false;
$mail->Subject = $lng['pwdreminder']['subject']; try {
$mail->Body = $body; $mail->Subject = $lng['pwdreminder']['subject'];
$mail->AddAddress($user['email'], $user['firstname'] . ' ' . $user['name']); $mail->AltBody = $body;
$mail->MsgHTML(str_replace("\\n", "<br />", $body));
if(!$mail->Send()) $mail->AddAddress($user['email'], $user['firstname'] . ' ' . $user['name']);
{ $mail->Send();
if($mail->ErrorInfo != '') } catch(phpmailerException $e) {
{ $mailerr_msg = $e->errorMessage();
$mailerr_msg = $mail->ErrorInfo; $_mailerror = true;
} } catch (Exception $e) {
else $mailerr_msg = $e->getMessage();
{ $_mailerror = true;
$mailerr_msg = $email; }
}
if ($_mailerror) {
$rstlog = FroxlorLogger::getInstanceOf(array('loginname' => 'password_reset'), $db, $settings); $rstlog = FroxlorLogger::getInstanceOf(array('loginname' => 'password_reset'), $db, $settings);
$rstlog->logAction(ADM_ACTION, LOG_ERR, "Error sending mail: " . $mailerr_msg); $rstlog->logAction(ADM_ACTION, LOG_ERR, "Error sending mail: " . $mailerr_msg);
redirectTo('index.php', Array('showmessage' => '4'), true); redirectTo('index.php', Array('showmessage' => '4'), true);
@@ -292,7 +292,7 @@ if($action == 'forgotpwd')
$message = $lng['login']['usernotfound']; $message = $lng['login']['usernotfound'];
} }
unset($user, $adminchecked); unset($user);
} }
else else
{ {
@@ -304,9 +304,20 @@ if($action == 'forgotpwd')
$message = ''; $message = '';
} }
if($settings['panel']['allow_preset'] != '1') if($adminchecked)
{ {
$message = $lng['pwdreminder']['notallowed']; if($settings['panel']['allow_preset_admin'] != '1')
{
$message = $lng['pwdreminder']['notallowed'];
unset ($adminchecked);
}
}
else
{
if($settings['panel']['allow_preset'] != '1')
{
$message = $lng['pwdreminder']['notallowed'];
}
} }
eval("echo \"" . getTemplate("fpwd") . "\";"); eval("echo \"" . getTemplate("fpwd") . "\";");

View File

@@ -451,7 +451,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 (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 (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 (20, 'system', 'bindreload_command', '/etc/init.d/bind9 reload');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (22, 'panel', 'version', '0.9.1'); INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (22, 'panel', 'version', '0.9.3');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (23, 'system', 'hostname', 'SERVERNAME'); 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 (24, 'login', 'maxloginattempts', '3');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (25, 'login', 'deactivatetime', '900'); INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (25, 'login', 'deactivatetime', '900');

View File

@@ -428,7 +428,6 @@ if(isset($_POST['installstep'])
if(!extension_loaded('bcmath')) if(!extension_loaded('bcmath'))
{ {
status_message('orange', $lng['install']['notinstalled'] . '<br />' . $lng['install']['bcmathdescription']); status_message('orange', $lng['install']['notinstalled'] . '<br />' . $lng['install']['bcmathdescription']);
$_die = false;
} }
else else
{ {
@@ -442,7 +441,6 @@ if(isset($_POST['installstep'])
&& $php_ob != '') && $php_ob != '')
{ {
status_message('orange', $lng['install']['openbasedirenabled']); status_message('orange', $lng['install']['openbasedirenabled']);
$_die = false;
} }
else else
{ {

View File

@@ -20,13 +20,13 @@ if(isFroxlorVersion('0.9-r0'))
showUpdateStep("Updating from 0.9-r0 to 0.9-r1", false); showUpdateStep("Updating from 0.9-r0 to 0.9-r1", false);
showUpdateStep("Performing database updates"); showUpdateStep("Performing database updates");
/* /*
* add missing database-updates if necessary (old: update/update_database.php * add missing database-updates if necessary (old: update/update_database.php)
*/ */
if(!isset($settings['system']['dbversion']) || $settings['system']['dbversion'] < '1') if(isset($settings['system']['dbversion']) && (int)$settings['system']['dbversion'] < 1)
{ {
$db->query("ALTER TABLE `panel_databases` ADD `dbserver` INT( 11 ) UNSIGNED NOT NULL default '0';"); $db->query("ALTER TABLE `panel_databases` ADD `dbserver` INT( 11 ) UNSIGNED NOT NULL default '0';");
} }
if(!isset($settings['system']['dbversion']) || $settings['system']['dbversion'] < '2') if(isset($settings['system']['dbversion']) && (int)$settings['system']['dbversion'] < 2)
{ {
$db->query("ALTER TABLE `panel_ipsandports` CHANGE `ssl_cert` `ssl_cert_file` VARCHAR( 255 ) NOT NULL, $db->query("ALTER TABLE `panel_ipsandports` CHANGE `ssl_cert` `ssl_cert_file` VARCHAR( 255 ) NOT NULL,
ADD `ssl_key_file` VARCHAR( 255 ) NOT NULL, ADD `ssl_key_file` VARCHAR( 255 ) NOT NULL,
@@ -287,4 +287,31 @@ if(isFroxlorVersion('0.9'))
updateToVersion('0.9.1'); updateToVersion('0.9.1');
} }
if(isFroxlorVersion('0.9.1'))
{
showUpdateStep("Updating from 0.9.1 to 0.9.2", false);
showUpdateStep("Checking whether last-system-guid is sane");
$result = $db->query_first("SELECT MAX(`guid`) as `latestguid` FROM `".TABLE_PANEL_CUSTOMERS."`");
if (isset($result['latestguid'])
&& (int)$result['latestguid'] > 0
&& $result['latestguid'] != $settings['system']['lastguid']
) {
checkLastGuid();
lastStepStatus(1, 'fixed');
} else {
lastStepStatus(0);
}
updateToVersion('0.9.2');
}
if(isFroxlorVersion('0.9.2'))
{
showUpdateStep("Updating from 0.9.2 to 0.9.3");
lastStepStatus(0);
updateToVersion('0.9.3');
}
?> ?>

View File

@@ -45,7 +45,7 @@ class ApsInstaller extends ApsParser
{ {
$this->db = $db; $this->db = $db;
$this->db_root = $db_root; $this->db_root = $db_root;
$this->RootDir = dirname(dirname(__FILE__)) . '/'; $this->RootDir = dirname(dirname(dirname(dirname(__FILE__)))) . '/';
$this->Hosts = $settings['system']['mysql_access_host']; $this->Hosts = $settings['system']['mysql_access_host'];
} }
@@ -135,10 +135,20 @@ class ApsInstaller extends ApsParser
{ {
//setup right path and run installation script //setup right path and run installation script
if(!is_dir($this->RealPath . $this->DomainPath . '/install_scripts/'))
{
echo 'Directory: '. $this->RealPath . $this->DomainPath . '/install_scripts/ does not exist';
return;
}
chdir($this->RealPath . $this->DomainPath . '/install_scripts/'); chdir($this->RealPath . $this->DomainPath . '/install_scripts/');
$Return = array(); $Return = array();
$ReturnStatus = 0; $ReturnStatus = 0;
$Return = safe_exec('php ' . escapeshellarg($this->RealPath . $this->DomainPath . '/install_scripts/configure install'), $ReturnStatus);
// make configure-script executable
chmod($this->RealPath . $this->DomainPath . '/install_scripts/configure', 0755);
$Return = safe_exec('php ' . escapeshellarg($this->RealPath . $this->DomainPath . '/install_scripts/configure') . ' install', $ReturnStatus);
if($ReturnStatus != 0) if($ReturnStatus != 0)
{ {

View File

@@ -37,6 +37,7 @@ class ApsParser
private $userinfo = array(); private $userinfo = array();
private $settings = array(); private $settings = array();
private $db = false; private $db = false;
private $RootDir = '';
/** /**
* Constructor of class, setup basic variables needed by the class * Constructor of class, setup basic variables needed by the class
@@ -51,6 +52,7 @@ class ApsParser
$this->settings = $settings; $this->settings = $settings;
$this->userinfo = $userinfo; $this->userinfo = $userinfo;
$this->db = $db; $this->db = $db;
$this->RootDir = dirname(dirname(dirname(dirname(__FILE__)))) . '/';
} }
/** /**
@@ -793,7 +795,8 @@ class ApsParser
} }
else else
{ {
$Errors[] = $lng['aps']['moveproblem']; $moveproblem = str_replace('{$path}', $this->RootDir, $lng['aps']['moveproblem']);
$Errors[] = $moveproblem;
} }
} }
@@ -840,7 +843,7 @@ class ApsParser
{ {
//split all keywords //split all keywords
$Elements = split('[ ,;]', trim($_GET['keyword'])); $Elements = preg_split('/[ ,;]/', trim($_GET['keyword']));
if(count($Elements) == 1 if(count($Elements) == 1
&& strlen($Elements[0]) == 0) && strlen($Elements[0]) == 0)
@@ -1688,10 +1691,11 @@ class ApsParser
$Error.= '<li>' . $lng['aps']['class_zip_missing'] . '</li>'; $Error.= '<li>' . $lng['aps']['class_zip_missing'] . '</li>';
} }
if(!is_writable('./temp/') if(!is_writable($this->RootDir.'temp/')
|| !is_writable('./packages/')) || !is_writable($this->RootDir.'packages/'))
{ {
$Error.= '<li>' . $lng['aps']['dir_permissions'] . '</li>'; $dirpermission = str_replace('{$path}', $this->RootDir, $lng['aps']['dir_permissions']);
$Error.= '<li>' . $dirpermission . '</li>';
} }
if($Error != '') if($Error != '')

View File

@@ -31,19 +31,27 @@ class ApsUpdater extends ApsParser
private $RequestDomain = ''; private $RequestDomain = '';
private $RootUrl = ''; private $RootUrl = '';
private $RootDir = ''; private $RootDir = '';
/**
* FroxlorLogger
* @var FroxlorLogger
*/
private $_cronlog = null;
/** /**
* constructor of class. setup some basic variables needed by class * constructor of class. setup some basic variables needed by class
* *
* @param db instance of the database class from syscp * @param db instance of the database class
* @param cronlog instance of the froxlor logger
*/ */
public function __construct($db) public function __construct($db, $cronlog)
{ {
$this->db = $db; $this->db = $db;
$this->RequestDomain = 'apscatalog.com'; $this->RequestDomain = 'apscatalog.com';
$this->RootUrl = '/1/'; $this->RootUrl = '/1/';
$this->RootDir = dirname(dirname(__FILE__)) . '/'; $this->RootDir = dirname(dirname(dirname(dirname(__FILE__)))) . '/';
$this->_cronlog = $cronlog;
} }
/** /**
@@ -52,13 +60,15 @@ class ApsUpdater extends ApsParser
public function UpdateHandler() public function UpdateHandler()
{ {
$this->_cronlog->logAction(CRON_ACTION, LOG_NOTICE, "Changing directory to '" . $this->RootDir . "'");
chdir($this->RootDir); chdir($this->RootDir);
//return if allow_url_fopen is disabled //return if allow_url_fopen is disabled
if(ini_get('allow_url_fopen') == '0') if(!ini_get('allow_url_fopen'))
{ {
echo ("The APS updater cronjob requires that allow_url_fopen is enabled for the PHP CLI binary!\n"); $this->_cronlog->logAction(CRON_ACTION, LOG_ERROR, "The APS updater cronjob requires that allow_url_fopen is enabled for the PHP CLI binary!");
echo "The APS updater cronjob requires that allow_url_fopen is enabled for the PHP CLI binary!\n";
return; return;
} }
@@ -68,6 +78,7 @@ class ApsUpdater extends ApsParser
if($this->db->num_rows($Result) == 0) if($this->db->num_rows($Result) == 0)
{ {
$this->_cronlog->logAction(CRON_ACTION, LOG_NOTICE, "No tasks for ApsUpdater");
return; return;
} }
@@ -77,89 +88,99 @@ class ApsUpdater extends ApsParser
$this->db->query('DELETE FROM `' . TABLE_APS_TASKS . '` WHERE `Task` = ' . $Task['Task']); $this->db->query('DELETE FROM `' . TABLE_APS_TASKS . '` WHERE `Task` = ' . $Task['Task']);
//fetch all vendors //fetch all vendors
$this->_cronlog->logAction(CRON_ACTION, LOG_NOTICE, "Fetching all Vendors from '" . $this->RootUrl . "'");
$Vendors = self::FetchSubUrls($this->RootUrl); $Vendors = self::FetchSubUrls($this->RootUrl);
foreach($Vendors as $Vendor) if($Vendors !== false)
{ {
//fetch all applications from vendors foreach($Vendors as $Vendor)
$Applications = self::FetchSubUrls($this->RootUrl . $Vendor);
foreach($Applications as $Application)
{ {
//get newest version of package which is already installed //fetch all applications from vendors
$this->_cronlog->logAction(CRON_ACTION, LOG_NOTICE, "Fetching all from Vendor '" . $Vendor. "'");
$CurrentVersion = ''; $Applications = self::FetchSubUrls($this->RootUrl . $Vendor);
$Result = $this->db->query('SELECT * FROM `' . TABLE_APS_PACKAGES . '` WHERE `Name` = "' . $this->db->escape(substr($Application, 0, -1)) . '"'); if($Applications !== false)
while($Row = $this->db->fetch_array($Result))
{ {
if(version_compare($Row['Version'] . '-' . $Row['Release'], $CurrentVersion) == 1) foreach($Applications as $Application)
{ {
$CurrentVersion = $Row['Version'] . '-' . $Row['Release']; //get newest version of package which is already installed
} $this->_cronlog->logAction(CRON_ACTION, LOG_NOTICE, "Checking application '" . substr($Application, 0, -1) . "'");
}
if($this->db->num_rows($Result) != 0) $CurrentVersion = '';
{ $Result = $this->db->query('SELECT * FROM `' . TABLE_APS_PACKAGES . '` WHERE `Name` = "' . $this->db->escape(substr($Application, 0, -1)) . '"');
//package already installed in system, search for newer version
if($Task['Task'] != TASK_SYSTEM_UPDATE)continue; while($Row = $this->db->fetch_array($Result))
//fetch different versions of application from distribution server
$NewerVersion = '';
$Versions = self::FetchSubUrls($this->RootUrl . $Vendor . $Application);
foreach($Versions as $Version)
{
$OnlineVersion = substr($Version, 0, -1);
//is package newer than current version?
if(version_compare($OnlineVersion, $CurrentVersion) == 1)
{ {
//is new package newer than another one found before? if(version_compare($Row['Version'] . '-' . $Row['Release'], $CurrentVersion) == 1)
if(version_compare($OnlineVersion, $NewerVersion) == 1)
{ {
$NewerVersion = $OnlineVersion; $CurrentVersion = $Row['Version'] . '-' . $Row['Release'];
} }
} }
}
if($NewerVersion != '') if($this->db->num_rows($Result) != 0)
{
//download package as an update
self::DownloadPackage($this->RootUrl . $Vendor . $Application . $NewerVersion, substr($Application, 0, -1), $NewerVersion);
continue;
}
}
else
{
if($Task['Task'] != TASK_SYSTEM_DOWNLOAD)continue;
//new packages
$NewVersion = '';
$Versions = self::FetchSubUrls($this->RootUrl . $Vendor . $Application);
foreach($Versions as $Version)
{
$OnlineVersion = substr($Version, 0, -1);
//is package newer than another one found before?
if(version_compare($OnlineVersion, $NewVersion) == 1)
{ {
$NewVersion = $OnlineVersion; //package already installed in system, search for newer version
if($Task['Task'] != TASK_SYSTEM_UPDATE)continue;
//fetch different versions of application from distribution server
$NewerVersion = '';
$Versions = self::FetchSubUrls($this->RootUrl . $Vendor . $Application);
if($Versions !== false)
{
foreach($Versions as $Version)
{
$OnlineVersion = substr($Version, 0, -1);
//is package newer than current version?
if(version_compare($OnlineVersion, $CurrentVersion) == 1)
{
//is new package newer than another one found before?
if(version_compare($OnlineVersion, $NewerVersion) == 1)
{
$NewerVersion = $OnlineVersion;
}
}
}
if($NewerVersion != '')
{
//download package as an update
self::DownloadPackage($this->RootUrl . $Vendor . $Application . $NewerVersion, substr($Application, 0, -1), $NewerVersion);
continue;
}
}
} }
} else
{
if($Task['Task'] != TASK_SYSTEM_DOWNLOAD)continue;
if($NewVersion != '') //new packages
{
//download package as a new one
self::DownloadPackage($this->RootUrl . $Vendor . $Application . $NewVersion, substr($Application, 0, -1), $NewVersion); $NewVersion = '';
continue; $Versions = self::FetchSubUrls($this->RootUrl . $Vendor . $Application);
foreach($Versions as $Version)
{
$OnlineVersion = substr($Version, 0, -1);
//is package newer than another one found before?
if(version_compare($OnlineVersion, $NewVersion) == 1)
{
$NewVersion = $OnlineVersion;
}
}
if($NewVersion != '')
{
//download package as a new one
self::DownloadPackage($this->RootUrl . $Vendor . $Application . $NewVersion, substr($Application, 0, -1), $NewVersion);
continue;
}
}
} }
} }
} }
@@ -181,11 +202,13 @@ class ApsUpdater extends ApsParser
//make url valid //make url valid
$Url = str_replace(' ', '%20', $Url); $path = dirname($Url);
$file = urlencode(basename($Url));
$file_url = 'http://' . $this->RequestDomain . $path . '/' . $file . '.aps' . $Downloads[0];
//get content from website url //get content from website url
$this->_cronlog->logAction(CRON_ACTION, LOG_NOTICE, "Downloading '" . $file_url . "'");
$Content = @file_get_contents('http://' . $this->RequestDomain . $Url . '.aps' . $Downloads[0]); $Content = @file_get_contents($file_url);
if($Content != false) if($Content != false)
{ {
@@ -231,21 +254,22 @@ class ApsUpdater extends ApsParser
//make url valid //make url valid
$Url = str_replace(' ', '%20', $Url); $Url = str_replace(' ', '%20', $Url);
$file_url = 'http://' . $this->RequestDomain . $Url;
//get content from website url //get content from website url
$Content = @file('http://' . $this->RequestDomain . $Url); $Content = @file($file_url);
if($Content != false) if($Content !== false)
{ {
foreach($Content as $Temp) foreach($Content as $Temp)
{ {
//skip empty lines //skip empty lines
if($Temp != "\r\n" if($Temp != "\r\n"
&& $Temp != "\r" && $Temp != "\r"
&& $Temp != "\n" && $Temp != "\n"
&& $Temp != "") && $Temp != "")
{ {
//remove unwanted characters //remove unwanted characters

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -286,14 +286,25 @@ class ticket
if($customerid != - 1) if($customerid != - 1)
{ {
$mail->From = $this->settings['ticket']['noreply_email']; $_mailerror = false;
$mail->FromName = $this->settings['ticket']['noreply_name']; try {
$mail->Subject = $mail_subject; $mail->SetFrom($this->settings['ticket']['noreply_email'], $this->settings['ticket']['noreply_name']);
$mail->Body = $mail_body; $mail->Subject = $mail_subject;
$mail->AddAddress($usr['email'], $usr['firstname'] . ' ' . $usr['name']); $mail->AltBody = $mail_body;
$mail->MsgHTML(str_replace("\n", "<br />", $mail_body));
if(!$mail->Send()) $mail->AddAddress($usr['email'], $usr['firstname'] . ' ' . $usr['name']);
{ $mail->Send();
} catch(phpmailerException $e) {
$mailerr_msg = $e->errorMessage();
$_mailerror = true;
} catch (Exception $e) {
$mailerr_msg = $e->getMessage();
$_mailerror = true;
}
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(array('errorsendingmail', $usr['email'])); standard_error(array('errorsendingmail', $usr['email']));
} }
@@ -301,15 +312,27 @@ class ticket
} }
else else
{ {
$admin = $this->db->query_first("SELECT `name`, email` FROM `" . TABLE_PANEL_ADMINS . "` WHERE `adminid`='" . (int)$this->userinfo['adminid'] . "'"); $admin = $this->db->query_first("SELECT `name`, `email` FROM `" . TABLE_PANEL_ADMINS . "` WHERE `adminid`='" . (int)$this->userinfo['adminid'] . "'");
$mail->From = $this->settings['ticket']['noreply_email'];
$mail->FromName = $this->settings['ticket']['noreply_name']; $_mailerror = false;
$mail->Subject = $mail_subject; try {
$mail->Body = $mail_body; $mail->SetFrom($this->settings['ticket']['noreply_email'], $this->settings['ticket']['noreply_name']);
$mail->AddAddress($admin['email'], $admin['name']); $mail->Subject = $mail_subject;
$mail->AltBody = $mail_body;
if(!$mail->Send()) $mail->MsgHTML(str_replace("\n", "<br />", $mail_body));
{ $mail->AddAddress($admin['email'], $admin['name']);
$mail->Send();
} catch(phpmailerException $e) {
$mailerr_msg = $e->errorMessage();
$_mailerror = true;
} catch (Exception $e) {
$mailerr_msg = $e->getMessage();
$_mailerror = true;
}
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(array('errorsendingmail', $admin['email'])); standard_error(array('errorsendingmail', $admin['email']));
} }
@@ -637,7 +660,7 @@ class ticket
{ {
if($_cid != 0) if($_cid != 0)
{ {
$result = $_db->query('SELECT `id` FROM `' . TABLE_PANEL_TICKETS . '` WHERE `customer` ="'.(int)$_cid.'"'); $result = $_db->query('SELECT `id` FROM `' . TABLE_PANEL_TICKETS . '` WHERE `customerid` ="'.(int)$_cid.'"');
$tickets = array(); $tickets = array();
while($row = $_db->fetch_array($result)) while($row = $_db->fetch_array($result))
@@ -668,7 +691,7 @@ class ticket
{ {
if(strtolower($_var) == 'message') if(strtolower($_var) == 'message')
{ {
return htmlspecialchars_decode(nl2br($this->t_data[$_var])); return str_replace('script>', 'pre>', htmlspecialchars_decode(nl2br($this->t_data[$_var])));
} }
else else
{ {

View File

@@ -29,6 +29,7 @@ return Array(
'commands' => Array( 'commands' => Array(
'mkdir -p ' . $settings['system']['documentroot_prefix'], 'mkdir -p ' . $settings['system']['documentroot_prefix'],
'mkdir -p ' . $settings['system']['logfiles_directory'], 'mkdir -p ' . $settings['system']['logfiles_directory'],
'mkdir -p ' . $settings['system']['deactivateddocroot'],
'mkdir -p ' . $settings['system']['mod_fcgid_tmpdir'], 'mkdir -p ' . $settings['system']['mod_fcgid_tmpdir'],
'chmod 1777 ' . $settings['system']['mod_fcgid_tmpdir'], 'chmod 1777 ' . $settings['system']['mod_fcgid_tmpdir'],
'a2dismod userdir', 'a2dismod userdir',
@@ -52,6 +53,7 @@ return Array(
$configcommand['d_inclighty'], $configcommand['d_inclighty'],
'mkdir -p ' . $settings['system']['documentroot_prefix'], 'mkdir -p ' . $settings['system']['documentroot_prefix'],
'mkdir -p ' . $settings['system']['logfiles_directory'], 'mkdir -p ' . $settings['system']['logfiles_directory'],
'mkdir -p ' . $settings['system']['deactivateddocroot'],
'mkdir -p ' . $settings['system']['mod_fcgid_tmpdir'], 'mkdir -p ' . $settings['system']['mod_fcgid_tmpdir'],
'chmod 1777 ' . $settings['system']['mod_fcgid_tmpdir'], 'chmod 1777 ' . $settings['system']['mod_fcgid_tmpdir'],
), ),
@@ -68,8 +70,8 @@ return Array(
'label' => 'Bind9', 'label' => 'Bind9',
'commands' => Array( 'commands' => Array(
'apt-get install bind9', 'apt-get install bind9',
'echo "include \"' . $settings['system']['bindconf_directory'] . 'syscp_bind.conf\";" >> /etc/bind/named.conf', 'echo "include \"' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf\";" >> /etc/bind/named.conf',
'touch ' . $settings['system']['bindconf_directory'] . 'syscp_bind.conf' 'touch ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf'
), ),
'restart' => Array( 'restart' => Array(
'/etc/init.d/bind9 restart' '/etc/init.d/bind9 restart'
@@ -191,6 +193,9 @@ return Array(
'daemons' => Array( 'daemons' => Array(
'proftpd' => Array( 'proftpd' => Array(
'label' => 'ProFTPd', 'label' => 'ProFTPd',
'commands' => Array(
'apt-get install proftpd-basic proftpd-mod-mysql'
),
'files' => Array( 'files' => Array(
'etc_proftpd_modules.conf' => '/etc/proftpd/modules.conf', 'etc_proftpd_modules.conf' => '/etc/proftpd/modules.conf',
'etc_proftpd_proftpd.conf' => '/etc/proftpd/proftpd.conf' 'etc_proftpd_proftpd.conf' => '/etc/proftpd/proftpd.conf'
@@ -254,6 +259,7 @@ return Array(
($settings['system']['webserver'] == 'lighttpd' ? 'etc_lighttpd_froxlor-awstats.conf' : 'etc_apache_vhosts_05_awstats.conf') => ($settings['system']['webserver'] == 'lighttpd' ? '/etc/lighttpd/froxlor-awstats.conf' : '/etc/apache2/sites-enabled/05_awstats.conf') ($settings['system']['webserver'] == 'lighttpd' ? 'etc_lighttpd_froxlor-awstats.conf' : 'etc_apache_vhosts_05_awstats.conf') => ($settings['system']['webserver'] == 'lighttpd' ? '/etc/lighttpd/froxlor-awstats.conf' : '/etc/apache2/sites-enabled/05_awstats.conf')
), ),
'commands' => Array( 'commands' => Array(
'apt-get install awstats',
($settings['system']['webserver'] == 'lighttpd' ? 'echo "include \"froxlor-awstats.conf\"" >> /etc/lighttpd/lighttpd.conf' : '') ($settings['system']['webserver'] == 'lighttpd' ? 'echo "include \"froxlor-awstats.conf\"" >> /etc/lighttpd/lighttpd.conf' : '')
), ),
'restart' => Array( 'restart' => Array(

View File

@@ -0,0 +1,169 @@
<?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$
*/
return Array(
'freebsd' => Array(
'label' => 'FreeBSD',
'services' => Array(
'http' => Array(
'label' => $lng['admin']['configfiles']['http'],
'daemons' => Array(
'apache2' => Array(
'label' => 'Apache2 Webserver',
'commands' => Array(
'cd /usr/ports/www/apache22',
'make config',
'make install',
'touch ' . $settings['system']['apacheconf_vhost'],
'chown root:0 ' . $settings['system']['apacheconf_vhost'],
'chmod 0600 ' . $settings['system']['apacheconf_vhost'],
'touch ' . $settings['system']['apacheconf_diroptions'],
'chown root:0 ' . $settings['system']['apacheconf_diroptions'],
'chmod 0600 ' . $settings['system']['apacheconf_diroptions'],
'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'],
'echo "accf_http_load=\"YES\"" >> /boot/loader.conf',
'echo "accf_data_load=\"YES\"" >> /boot/loader.conf',
'echo "apache22_enable=\"YES\"" >> /etc/rc.conf',
),
'restart' => Array(
'sh /usr/local/etc/rc.d/apache22 restart'
)
)
)
),
'dns' => Array(
'label' => $lng['admin']['configfiles']['dns'],
'daemons' => Array(
'powerdns' => Array(
'label' => 'PowerDNS',
'commands_1' => Array(
'cd /usr/ports/dns/powerdns',
'make config',
'make install',
'echo "add pdns_enable=\"YES\"" >> /etc/rc.conf',
),
'files' => Array(
'usr_local_etc_pdns_pdns.conf' => '/usr/local/etc/pdns/pdns.conf'
),
'commands' => Array(
'touch ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf',
'chown root:0 ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf',
'chmod 0600 ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf'
),
'restart' => Array(
'sh /usr/local/etc/rc.d/pdns restart'
)
),
)
),
'smtp' => Array(
'label' => $lng['admin']['configfiles']['smtp'],
'daemons' => Array(
'postfix' => Array(
'label' => 'Postfix',
'commands_1' => Array(
'cd /usr/ports/mail/postfix',
'make config',
'set Dovecot SASL authentication method',
'set Enable SSL and TLS support',
'set MySQL maps (choose version with WITH_MYSQL_VER)',
'make install'
),
'commands_2' => Array(
'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']
),
'commands_3' => Array(
'echo "sendmail_enable=\"NO\"" >> /etc/rc.conf',
'echo "sendmail_submit_enable=\"NO\"" >> /etc/rc.conf',
'echo "sendmail_outbound_enable=\"NO\"" >> /etc/rc.conf',
'echo "sendmail_msp_queue_enable=\"NO\"" >> /etc/rc.conf',
'echo "postfix_enable=\"YES\"" >> /etc/rc.conf'
),
'files' => Array(
'etc_periodic.conf' => '/etc/periodic.conf',
'usr_local_etc_postfix_main.cf' => '/usr/local/etc/postfix/main.cf',
'usr_local_etc_postfix_mysql-virtual_alias_maps.cf' => '/usr/local/etc/postfix/mysql-virtual_alias_maps.cf',
'usr_local_etc_postfix_mysql-virtual_mailbox_domains.cf' => '/usr/local/etc/postfix/mysql-virtual_mailbox_domains.cf',
'usr_local_etc_postfix_mysql-virtual_mailbox_maps.cf' => '/usr/local/etc/postfix/mysql-virtual_mailbox_maps.cf'
),
'restart' => Array(
'sh /usr/local/etc/rc.d/postfix restart'
)
)
)
),
'mail' => Array(
'label' => $lng['admin']['configfiles']['mail'],
'daemons' => Array(
'dovecot' => Array(
'label' => 'Dovecot',
'commands_1' => Array(
'cd /usr/ports/mail/dovecot',
'make config',
'set kqueue(2) support ',
'set SSL support ',
'set ManageSieve support (optional)',
'set MySQL support ',
'make install',
'echo "add dovecot_enable=\"YES\"" >> /etc/rc.conf'
),
'files' => Array(
'usr_local_etc_dovecot.conf' => '/usr/local/etc/dovecot.conf',
'usr_local_etc_dovecot-sql.conf' => '/usr/local/etc/dovecot-sql.conf'
),
'commands_2' => Array(
'echo "dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/local/libexec/dovecot/deliver -f ${sender} -d ${recipient}" >> /usr/local/etc/postfix/master.cf'
),
'restart' => Array(
'sh /usr/local/etc/rc.d/dovecot restart'
)
)
)
),
'ftp' => Array(
'label' => $lng['admin']['configfiles']['ftp'],
'daemons' => Array(
'proftpd' => Array(
'label' => 'ProFTPd',
'files' => Array(
'etc_proftpd_proftpd.conf' => '/etc/proftpd/proftpd.conf'
),
'commands' => Array(
'touch /etc/proftpd/proftpd.conf',
'chown root:0 /etc/proftpd/proftpd.conf',
'chmod 0600 /etc/proftpd/proftpd.conf'
),
'restart' => Array(
'/etc/init.d/proftpd restart'
)
)
)
)
)
)
);
?>

View File

@@ -34,9 +34,10 @@ return Array(
'chown root:0 ' . $settings['system']['apacheconf_diroptions'], 'chown root:0 ' . $settings['system']['apacheconf_diroptions'],
'chmod 0600 ' . $settings['system']['apacheconf_diroptions'], 'chmod 0600 ' . $settings['system']['apacheconf_diroptions'],
'mkdir -p ' . $settings['system']['documentroot_prefix'], 'mkdir -p ' . $settings['system']['documentroot_prefix'],
($settings['system']['deactivateddocroot'] != '') ? 'mkdir -p ' . $settings['system']['deactivateddocroot'] : '',
'mkdir -p ' . $settings['system']['logfiles_directory'], 'mkdir -p ' . $settings['system']['logfiles_directory'],
'mkdir -p ' . $settings['system']['mod_fcgid_tmpdir'], 'mkdir -p ' . $settings['system']['mod_fcgid_tmpdir'],
'chmod 1777 ' . $settings['system']['mod_fcgid_tmpdir'], 'chmod 1777 ' . $settings['system']['mod_fcgid_tmpdir']
), ),
'restart' => Array( 'restart' => Array(
'rc-update add apache2 default', 'rc-update add apache2 default',
@@ -54,7 +55,8 @@ return Array(
$configcommand['v_inclighty'], $configcommand['v_inclighty'],
$configcommand['d_inclighty'], $configcommand['d_inclighty'],
'mkdir -p ' . $settings['system']['documentroot_prefix'], 'mkdir -p ' . $settings['system']['documentroot_prefix'],
'mkdir -p ' . $settings['system']['logfiles_directory'] 'mkdir -p ' . $settings['system']['logfiles_directory'],
($settings['system']['deactivateddocroot'] != '') ? 'mkdir -p ' . $settings['system']['deactivateddocroot'] : ''
), ),
'restart' => Array( 'restart' => Array(
'rc-update add lighttpd default', 'rc-update add lighttpd default',
@@ -72,10 +74,10 @@ return Array(
'etc_bind_default.zone' => '/etc/bind/default.zone' 'etc_bind_default.zone' => '/etc/bind/default.zone'
), ),
'commands' => Array( 'commands' => Array(
'echo "include \"' . $settings['system']['bindconf_directory'] . 'syscp_bind.conf\";" >> /etc/bind/named.conf', 'echo "include \"' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf\";" >> /etc/bind/named.conf',
'touch ' . $settings['system']['bindconf_directory'] . 'syscp_bind.conf', 'touch ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf',
'chown root:0 ' . $settings['system']['bindconf_directory'] . 'syscp_bind.conf', 'chown root:0 ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf',
'chmod 0600 ' . $settings['system']['bindconf_directory'] . 'syscp_bind.conf' 'chmod 0600 ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf'
), ),
'restart' => Array( 'restart' => Array(
'rc-update add named default', 'rc-update add named default',

View File

@@ -29,9 +29,10 @@ return Array(
'commands' => Array( 'commands' => Array(
'mkdir -p ' . $settings['system']['documentroot_prefix'], 'mkdir -p ' . $settings['system']['documentroot_prefix'],
'mkdir -p ' . $settings['system']['logfiles_directory'], 'mkdir -p ' . $settings['system']['logfiles_directory'],
($settings['system']['deactivateddocroot'] != '') ? 'mkdir -p ' . $settings['system']['deactivateddocroot'] : '',
'mkdir -p ' . $settings['system']['mod_fcgid_tmpdir'], 'mkdir -p ' . $settings['system']['mod_fcgid_tmpdir'],
'chmod 1777 ' . $settings['system']['mod_fcgid_tmpdir'], 'chmod 1777 ' . $settings['system']['mod_fcgid_tmpdir'],
'a2dismod userdir', 'a2dismod userdir'
), ),
'restart' => Array( 'restart' => Array(
'/etc/init.d/apache2 restart' '/etc/init.d/apache2 restart'
@@ -52,8 +53,9 @@ return Array(
$configcommand['d_inclighty'], $configcommand['d_inclighty'],
'mkdir -p ' . $settings['system']['documentroot_prefix'], 'mkdir -p ' . $settings['system']['documentroot_prefix'],
'mkdir -p ' . $settings['system']['logfiles_directory'], 'mkdir -p ' . $settings['system']['logfiles_directory'],
($settings['system']['deactivateddocroot'] != '') ? 'mkdir -p ' . $settings['system']['deactivateddocroot'] : '',
'mkdir -p ' . $settings['system']['mod_fcgid_tmpdir'], 'mkdir -p ' . $settings['system']['mod_fcgid_tmpdir'],
'chmod 1777 ' . $settings['system']['mod_fcgid_tmpdir'], 'chmod 1777 ' . $settings['system']['mod_fcgid_tmpdir']
), ),
'restart' => Array( 'restart' => Array(
'/etc/init.d/lighttpd restart' '/etc/init.d/lighttpd restart'
@@ -67,8 +69,8 @@ return Array(
'bind' => Array( 'bind' => Array(
'label' => 'Bind9', 'label' => 'Bind9',
'commands' => Array( 'commands' => Array(
'echo "include \"' . $settings['system']['bindconf_directory'] . 'syscp_bind.conf\";" >> /etc/bind/named.conf', 'echo "include \"' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf\";" >> /etc/bind/named.conf',
'touch ' . $settings['system']['bindconf_directory'] . 'syscp_bind.conf' 'touch ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf'
), ),
'restart' => Array( 'restart' => Array(
'/etc/init.d/bind9 restart' '/etc/init.d/bind9 restart'
@@ -188,6 +190,9 @@ return Array(
'daemons' => Array( 'daemons' => Array(
'proftpd' => Array( 'proftpd' => Array(
'label' => 'ProFTPd', 'label' => 'ProFTPd',
'commands' => Array(
'apt-get install proftpd-basic proftpd-mod-mysql'
),
'files' => Array( 'files' => Array(
'etc_proftpd_modules.conf' => '/etc/proftpd/modules.conf', 'etc_proftpd_modules.conf' => '/etc/proftpd/modules.conf',
'etc_proftpd_proftpd.conf' => '/etc/proftpd/proftpd.conf' 'etc_proftpd_proftpd.conf' => '/etc/proftpd/proftpd.conf'
@@ -248,6 +253,7 @@ return Array(
($settings['system']['webserver'] == 'lighttpd' ? 'etc_lighttpd_froxlor-awstats.conf' : 'etc_apache_vhosts_05_awstats.conf') => ($settings['system']['webserver'] == 'lighttpd' ? '/etc/lighttpd/froxlor-awstats.conf' : '/etc/apache2/sites-enabled/05_awstats.conf') ($settings['system']['webserver'] == 'lighttpd' ? 'etc_lighttpd_froxlor-awstats.conf' : 'etc_apache_vhosts_05_awstats.conf') => ($settings['system']['webserver'] == 'lighttpd' ? '/etc/lighttpd/froxlor-awstats.conf' : '/etc/apache2/sites-enabled/05_awstats.conf')
), ),
'commands' => Array( 'commands' => Array(
'apt-get install awstats',
($settings['system']['webserver'] == 'lighttpd' ? 'echo "include \"froxlor-awstats.conf\"" >> /etc/lighttpd/lighttpd.conf' : '') ($settings['system']['webserver'] == 'lighttpd' ? 'echo "include \"froxlor-awstats.conf\"" >> /etc/lighttpd/lighttpd.conf' : '')
), ),
'restart' => Array( 'restart' => Array(

View File

@@ -29,9 +29,10 @@ return Array(
'commands' => Array( 'commands' => Array(
'mkdir -p ' . $settings['system']['documentroot_prefix'], 'mkdir -p ' . $settings['system']['documentroot_prefix'],
'mkdir -p ' . $settings['system']['logfiles_directory'], 'mkdir -p ' . $settings['system']['logfiles_directory'],
($settings['system']['deactivateddocroot'] != '') ? 'mkdir -p ' . $settings['system']['deactivateddocroot'] : '',
'mkdir -p ' . $settings['system']['mod_fcgid_tmpdir'], 'mkdir -p ' . $settings['system']['mod_fcgid_tmpdir'],
'chmod 1777 ' . $settings['system']['mod_fcgid_tmpdir'], 'chmod 1777 ' . $settings['system']['mod_fcgid_tmpdir'],
'a2dismod userdir', 'a2dismod userdir'
), ),
'restart' => Array( 'restart' => Array(
'/etc/init.d/apache2 restart' '/etc/init.d/apache2 restart'
@@ -52,8 +53,9 @@ return Array(
$configcommand['d_inclighty'], $configcommand['d_inclighty'],
'mkdir -p ' . $settings['system']['documentroot_prefix'], 'mkdir -p ' . $settings['system']['documentroot_prefix'],
'mkdir -p ' . $settings['system']['logfiles_directory'], 'mkdir -p ' . $settings['system']['logfiles_directory'],
($settings['system']['deactivateddocroot'] != '') ? 'mkdir -p ' . $settings['system']['deactivateddocroot'] : '',
'mkdir -p ' . $settings['system']['mod_fcgid_tmpdir'], 'mkdir -p ' . $settings['system']['mod_fcgid_tmpdir'],
'chmod 1777 ' . $settings['system']['mod_fcgid_tmpdir'], 'chmod 1777 ' . $settings['system']['mod_fcgid_tmpdir']
), ),
'restart' => Array( 'restart' => Array(
'/etc/init.d/lighttpd restart' '/etc/init.d/lighttpd restart'
@@ -68,8 +70,8 @@ return Array(
'label' => 'Bind9', 'label' => 'Bind9',
'commands' => Array( 'commands' => Array(
'apt-get install bind9', 'apt-get install bind9',
'echo "include \"' . $settings['system']['bindconf_directory'] . 'syscp_bind.conf\";" >> /etc/bind/named.conf', 'echo "include \"' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf\";" >> /etc/bind/named.conf',
'touch ' . $settings['system']['bindconf_directory'] . 'syscp_bind.conf' 'touch ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf'
), ),
'restart' => Array( 'restart' => Array(
'/etc/init.d/bind9 restart' '/etc/init.d/bind9 restart'
@@ -191,6 +193,9 @@ return Array(
'daemons' => Array( 'daemons' => Array(
'proftpd' => Array( 'proftpd' => Array(
'label' => 'ProFTPd', 'label' => 'ProFTPd',
'commands' => Array(
'apt-get install proftpd-basic proftpd-mod-mysql'
),
'files' => Array( 'files' => Array(
'etc_proftpd_sql.conf' => '/etc/proftpd/sql.conf', 'etc_proftpd_sql.conf' => '/etc/proftpd/sql.conf',
'etc_proftpd_modules.conf' => '/etc/proftpd/modules.conf', 'etc_proftpd_modules.conf' => '/etc/proftpd/modules.conf',
@@ -255,6 +260,7 @@ return Array(
($settings['system']['webserver'] == 'lighttpd' ? 'etc_lighttpd_froxlor-awstats.conf' : 'etc_apache_vhosts_05_awstats.conf') => ($settings['system']['webserver'] == 'lighttpd' ? '/etc/lighttpd/froxlor-awstats.conf' : '/etc/apache2/sites-enabled/05_awstats.conf') ($settings['system']['webserver'] == 'lighttpd' ? 'etc_lighttpd_froxlor-awstats.conf' : 'etc_apache_vhosts_05_awstats.conf') => ($settings['system']['webserver'] == 'lighttpd' ? '/etc/lighttpd/froxlor-awstats.conf' : '/etc/apache2/sites-enabled/05_awstats.conf')
), ),
'commands' => Array( 'commands' => Array(
'apt-get install awstats',
($settings['system']['webserver'] == 'lighttpd' ? 'echo "include \"froxlor-awstats.conf\"" >> /etc/lighttpd/lighttpd.conf' : '') ($settings['system']['webserver'] == 'lighttpd' ? 'echo "include \"froxlor-awstats.conf\"" >> /etc/lighttpd/lighttpd.conf' : '')
), ),
'restart' => Array( 'restart' => Array(

View File

@@ -31,7 +31,8 @@ return Array(
$configcommand['diroptions'], $configcommand['diroptions'],
$configcommand['include'], $configcommand['include'],
'mkdir -p ' . $settings['system']['documentroot_prefix'], 'mkdir -p ' . $settings['system']['documentroot_prefix'],
'mkdir -p ' . $settings['system']['logfiles_directory'] 'mkdir -p ' . $settings['system']['logfiles_directory'],
($settings['system']['deactivateddocroot'] != '') ? 'mkdir -p ' . $settings['system']['deactivateddocroot'] : ''
), ),
'restart' => Array( 'restart' => Array(
'/etc/init.d/apache2 restart' '/etc/init.d/apache2 restart'
@@ -45,8 +46,8 @@ return Array(
'bind' => Array( 'bind' => Array(
'label' => 'Bind9', 'label' => 'Bind9',
'commands' => Array( 'commands' => Array(
'echo "include \"' . $settings['system']['bindconf_directory'] . 'syscp_bind.conf\";" >> /etc/named.conf', 'echo "include \"' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf\";" >> /etc/named.conf',
'touch ' . $settings['system']['bindconf_directory'] . 'syscp_bind.conf' 'touch ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf'
), ),
'restart' => Array( 'restart' => Array(
'/etc/init.d/named restart' '/etc/init.d/named restart'

View File

@@ -48,7 +48,7 @@ function makePathfield($path, $uid, $gid, $fieldType, $value = '')
if(sizeof($dirList) > 0) if(sizeof($dirList) > 0)
{ {
if(sizeof(dirList) <= 100) if(sizeof($dirList) <= 100)
{ {
$field = '<select name="path">'; $field = '<select name="path">';
foreach($dirList as $key => $dir) foreach($dirList as $key => $dir)

View File

@@ -82,7 +82,7 @@ function safe_exec($exec_string, &$return_value = false)
$ok = false; $ok = false;
foreach($allowed_commands as $allowed_command) foreach($allowed_commands as $allowed_command)
{ {
if(strpos($exec_string, $allowed_command) == 0 if(strpos($exec_string, $allowed_command) === 0
&& (strlen($exec_string) === ($allowed_command_pos = strlen($allowed_command)) || substr($exec_string, $allowed_command_pos, 1) === ' ')) && (strlen($exec_string) === ($allowed_command_pos = strlen($allowed_command)) || substr($exec_string, $allowed_command_pos, 1) === ' '))
{ {
$ok = true; $ok = true;

View File

@@ -19,13 +19,20 @@
function validateFormFieldHidden($fieldname, $fielddata, $newfieldvalue) function validateFormFieldHidden($fieldname, $fielddata, $newfieldvalue)
{ {
if($newfieldvalue === $fielddata['value']) /**
{ * don't show error on cronjob-timestamps changing
* because it might be possible that the cronjob ran
* while settings have been edited (bug #52)
*/
if($newfieldvalue === $fielddata['value']
|| $fieldname == 'system_last_tasks_run'
|| $fieldname == 'system_last_traffic_run'
|| $fieldname == 'system_lastcronrun'
) {
return true; return true;
} }
else else
{ {
// TODO: Throw some error that actually makes sense - false would just throw unknown error return 'hiddenfieldvaluechanged';
return false;
} }
} }

View File

@@ -60,16 +60,17 @@ function getNextCronjobs()
function includeCronjobs($debugHandler, $pathtophpfiles) function includeCronjobs($debugHandler, $pathtophpfiles)
{ {
global $settings;
$cronjobs = getNextCronjobs(); $cronjobs = getNextCronjobs();
$jobs_to_run = array(); $jobs_to_run = array();
$cron_path = makeCorrectDir($pathtophpfiles.'/scripts/jobs/');
if($cronjobs !== false if($cronjobs !== false
&& is_array($cronjobs) && is_array($cronjobs)
&& isset($cronjobs[0])) && isset($cronjobs[0]))
{ {
$cron_path = makeCorrectDir($pathtophpfiles.'/scripts/jobs/');
foreach($cronjobs as $cronjob) foreach($cronjobs as $cronjob)
{ {
$cron_file = makeCorrectFile($cron_path.$cronjob); $cron_file = makeCorrectFile($cron_path.$cronjob);
@@ -77,6 +78,17 @@ function includeCronjobs($debugHandler, $pathtophpfiles)
} }
} }
/**
* if we're on realtime and cron_tasks is not one
* of the jobs to run, we add it so the changes are being applied
*/
if ($settings['system']['realtime_port'] !== 0) {
$cron_file = makeCorrectFile($cron_path.'/cron_tasks.php');
if (!in_array($cron_file, $jobs_to_run)) {
$jobs_to_run[] = $cron_file;
}
}
return $jobs_to_run; return $jobs_to_run;
} }

View File

@@ -64,21 +64,23 @@ function inserttask($type, $param1 = '', $param2 = '', $param3 = '')
} }
if($doupdate === true if($doupdate === true
&& (int)$settings['system']['realtime_port'] !== 0) && (int)$settings['system']['realtime_port'] !== 0
&& function_exists('socket_create'))
{ {
$timeout = 15; $timeout = 15;
$socket = @socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); //$socket = @socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
$socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if($socket !== false) if($socket !== false)
{ {
// create the request packet // create the request packet
$packet = chr(0) . chr(1) . 'RUN' . chr(0); $packet = chr(0) . chr(1) . 'RUN' . chr(0);
// UDP is connectionless, so we just send on it. // UDP is connectionless, so we just send on it.
@socket_sendto($socket, $packet, strlen($packet), 0x100, '127.0.0.1', (int)$settings['system']['realtime_port']); //@socket_sendto($socket, $packet, strlen($packet), 0x100, '127.0.0.1', (int)$settings['system']['realtime_port']);
/* /*
* this is for TCP-Connections * this is for TCP-Connections
* */
$time = time(); $time = time();
while(!@socket_connect($socket, '127.0.0.1', (int)$settings['system']['realtime_port'])) while(!@socket_connect($socket, '127.0.0.1', (int)$settings['system']['realtime_port']))
@@ -97,7 +99,9 @@ function inserttask($type, $param1 = '', $param2 = '', $param3 = '')
continue; continue;
} }
} }
*/ /**
* close socket
*/
@socket_close($socket); @socket_close($socket);
} }
} }

View File

@@ -30,26 +30,33 @@ function openRootDB($debugHandler, $lockfile)
{ {
global $db_root; global $db_root;
// If one cronscript needs root, it should say $needrootdb = true before the include require dirname(dirname(dirname(__FILE__))).'/userdata.inc.php';
if(isset($needrootdb)
&& $needrootdb === true) // Legacy sql-root-information
if(isset($sql['root_user']) && isset($sql['root_password']) && (!isset($sql_root) || !is_array($sql_root)))
{ {
$db_root = new db($sql_root[0]['host'], $sql_root[0]['user'], $sql_root[0]['password'], ''); $sql_root = array(0 => array('caption' => 'Default', 'host' => $sql['host'], 'user' => $sql['root_user'], 'password' => $sql['root_password']));
unset($sql['root_user']);
if($db_root->link_id == 0) unset($sql['root_password']);
{
/**
* Do not proceed further if no database connection could be established
*/
fclose($debugHandler);
unlink($lockfile);
die('root can\'t connect to mysqlserver. Please check userdata.inc.php! Exiting...');
}
unset($db_root->password);
fwrite($debugHandler, 'Database-rootconnection established' . "\n");
} }
$db_root = new db($sql_root[0]['host'], $sql_root[0]['user'], $sql_root[0]['password'], '');
if($db_root->link_id == 0)
{
/**
* Do not proceed further if no database connection could be established
*/
fclose($debugHandler);
unlink($lockfile);
die('root can\'t connect to mysqlserver. Please check userdata.inc.php! Exiting...');
}
unset($db_root->password);
fwrite($debugHandler, 'Database-rootconnection established' . "\n");
unset($sql);
} }
function closeRootDB() function closeRootDB()

View File

@@ -134,26 +134,26 @@ function showUpdateStep($task = null, $needs_status = true)
* outputs [OK] (success), [??] (warning) or [!!] (failure) * outputs [OK] (success), [??] (warning) or [!!] (failure)
* of the last update-step * of the last update-step
* *
* @param int status (0 = success, 1 = warning, -1 = failure) * @param int status (0 = success, 1 = warning, 2 = failure)
* *
* @return string formatted output and log-entry * @return string formatted output and log-entry
*/ */
function lastStepStatus($status = -1) function lastStepStatus($status = -1, $message = '')
{ {
global $updatelog; global $updatelog;
switch($status) switch($status)
{ {
case 0: case 0:
$status_sign = '[OK]'; $status_sign = ($message != '') ? '['.$message.']' : '[OK]';
$status_color = '1dcd00'; $status_color = '1dcd00';
break; break;
case 1: case 1:
$status_sign = '[??]'; $status_sign = ($message != '') ? '['.$message.']' : '[??]';
$status_color = 'db7100'; $status_color = 'db7100';
break; break;
case 2: case 2:
$status_sign = '[!!]'; $status_sign = ($message != '') ? '['.$message.']' : '[!!]';
$status_color = 'ff0000'; $status_color = 'ff0000';
break; break;
default: default:

View File

@@ -30,6 +30,17 @@ function storeSettingField($fieldname, $fielddata, $newfieldvalue)
{ {
toggleCronStatus($fielddata['cronmodule'], $newfieldvalue); toggleCronStatus($fielddata['cronmodule'], $newfieldvalue);
} }
/*
* satisfy dependencies
*/
if(isset($fielddata['dependency']) && is_array($fielddata['dependency']))
{
if((int)$fielddata['dependency']['onlyif'] == (int)$newfieldvalue)
{
storeSettingField($fielddata['dependency']['fieldname'], $fielddata['dependency']['fielddata'], $newfieldvalue);
}
}
return array($fielddata['settinggroup'] . '.' . $fielddata['varname'] => $newfieldvalue); return array($fielddata['settinggroup'] . '.' . $fielddata['varname'] => $newfieldvalue);
} }

View File

@@ -29,13 +29,24 @@
* *
* @return null * @return null
*/ */
function checkLastGuid($froxlor_guid = 0) function checkLastGuid()
{ {
global $cronlog; global $log, $cronlog, $db, $settings;
$mylog = null;
if (isset($cronlog) && $cronlog instanceof FroxlorLogger) {
$mylog = $cronlog;
} else {
$mylog = $log;
}
$group_lines = array(); $group_lines = array();
$group_guids = array(); $group_guids = array();
$update_to_guid = 0; $update_to_guid = 0;
$froxlor_guid = 0;
$result = $db->query_first("SELECT MAX(`guid`) as `fguid` FROM `".TABLE_PANEL_CUSTOMERS."`");
$froxlor_guid = $result['fguid'];
$g_file = '/etc/group'; $g_file = '/etc/group';
@@ -54,28 +65,44 @@ function checkLastGuid($froxlor_guid = 0)
foreach($group_guids as $idx => $group) foreach($group_guids as $idx => $group)
{ {
$guid = $group[2]; /**
* nogroup | nobody have very high guids
* ignore them
*/
if($group[0] == 'nogroup'
|| $group[0] == 'nobody'
) {
continue;
}
if($guid > $froxlor_guid) $guid = isset($group[2]) ? (int)$group[2] : 0;
if($guid > $update_to_guid)
{ {
$update_to_guid = $guid; $update_to_guid = $guid;
} }
} }
if($update_to_guid > $froxlor_guid) if($update_to_guid < $froxlor_guid)
{ {
$cronlog->logAction(CRON_ACTION, LOG_NOTICE, 'Updating froxlor last guid to '.$update_to_guid); $update_to_guid = $froxlor_guid;
saveSetting('system', 'lastguid', $update_to_guid);
if ($update_to_guid != $settings['system']['lastguid'])
{
$mylog->logAction(CRON_ACTION, LOG_NOTICE, 'Updating froxlor last guid to '.$update_to_guid);
saveSetting('system', 'lastguid', $update_to_guid);
$settings['system']['lastguid'] = $update_to_guid;
}
} }
} }
else else
{ {
$cronlog->logAction(CRON_ACTION, LOG_NOTICE, 'File /etc/group not readable; cannot check for latest guid'); $mylog->logAction(CRON_ACTION, LOG_NOTICE, 'File /etc/group not readable; cannot check for latest guid');
} }
} }
else else
{ {
$cronlog->logAction(CRON_ACTION, LOG_NOTICE, 'File /etc/group not readable; cannot check for latest guid'); $mylog->logAction(CRON_ACTION, LOG_NOTICE, 'File /etc/group not readable; cannot check for latest guid');
} }
} }
else else

View File

@@ -155,8 +155,10 @@ $settings = loadSettings(&$settings_data, &$db);
/* /*
* when upgrading from syscp, the header-graphic gets lost * when upgrading from syscp, the header-graphic gets lost
*/ */
if(!isset($settings['admin']['froxlor_graphic'])) { if(!isset($settings['admin']['froxlor_graphic'])
$settings['admin']['froxlor_graphic'] = $settings['admin']['syscp_graphic']; || $settings['admin']['froxlor_graphic'] == ''
) {
$settings['admin']['froxlor_graphic'] = ($settings['admin']['syscp_graphic'] != '') ? $settings['admin']['syscp_graphic'] : 'images/header.gif';
} }
/** /**
@@ -414,6 +416,6 @@ if($page == '')
*/ */
$mail = new PHPMailer(); $mail = new PHPMailer();
$mail->From = $settings['panel']['adminmail']; $mail->SetFrom($settings['panel']['adminmail'], 'Froxlor Administrator');
?> ?>

View File

@@ -68,7 +68,8 @@ define('PACKAGE_ENABLED', 2);
// VERSION INFO // VERSION INFO
$version = '0.9.1'; $version = '0.9.3';
$dbversion = '2'; $dbversion = '2';
$branding = '';
?> ?>

View File

@@ -243,7 +243,7 @@ $lng['error']['domainname'] = $lng['domains']['domainname'];
$lng['question']['question'] = 'Security question'; $lng['question']['question'] = 'Security question';
$lng['question']['admin_customer_reallydelete'] = 'Do you really want to delete the customer %s? This cannot be undone!'; $lng['question']['admin_customer_reallydelete'] = 'Do you really want to delete the customer %s? This cannot be undone!';
$lng['question']['admin_domain_reallydelete'] = 'Do you really want to delete the domain %s?'; $lng['question']['admin_domain_reallydelete'] = 'Do you really want to delete the domain %s?';
$lng['question']['admin_domain_reallydisablesecuritysetting'] = 'Do you really want to deactivate these Security settings (OpenBasedir and/or SafeMode)?'; $lng['question']['admin_domain_reallydisablesecuritysetting'] = 'Do you really want to disable these Security settings (OpenBasedir and/or SafeMode)?';
$lng['question']['admin_admin_reallydelete'] = 'Do you really want to delete the admin %s? Every customer and domain will be reassigned to your account.'; $lng['question']['admin_admin_reallydelete'] = 'Do you really want to delete the admin %s? Every customer and domain will be reassigned to your account.';
$lng['question']['admin_template_reallydelete'] = 'Do you really want to delete the template \'%s\'?'; $lng['question']['admin_template_reallydelete'] = 'Do you really want to delete the template \'%s\'?';
$lng['question']['domains_reallydelete'] = 'Do you really want to delete the domain %s?'; $lng['question']['domains_reallydelete'] = 'Do you really want to delete the domain %s?';
@@ -369,9 +369,9 @@ $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']['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']['language']['description'] = 'What\'s your standard server language?';
$lng['serversettings']['maxloginattempts']['title'] = 'Max Login Attempts'; $lng['serversettings']['maxloginattempts']['title'] = 'Max Login Attempts';
$lng['serversettings']['maxloginattempts']['description'] = 'Maximum login attempts after which the account gets deactivated.'; $lng['serversettings']['maxloginattempts']['description'] = 'Maximum login attempts after which the account gets disabled.';
$lng['serversettings']['deactivatetime']['title'] = 'Deactivate Time'; $lng['serversettings']['deactivatetime']['title'] = 'Deactivation Time';
$lng['serversettings']['deactivatetime']['description'] = 'Time (sec.) an account gets deactivated after too many login tries.'; $lng['serversettings']['deactivatetime']['description'] = 'Time (sec.) an account gets disabled after too many login tries.';
$lng['serversettings']['pathedit']['title'] = 'Type of path input'; $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']['pathedit']['description'] = 'Should a path be selected by a dropdown menu or by an input field?';
$lng['serversettings']['nameservers']['title'] = 'Nameservers'; $lng['serversettings']['nameservers']['title'] = 'Nameservers';
@@ -425,7 +425,7 @@ $lng['panel']['urloverridespath'] = 'URL (overrides path)';
$lng['panel']['pathorurl'] = 'Path or URL'; $lng['panel']['pathorurl'] = 'Path or URL';
$lng['error']['sessiontimeoutiswrong'] = 'Only numerical &quot;Session Timeout&quot; is allowed.'; $lng['error']['sessiontimeoutiswrong'] = 'Only numerical &quot;Session Timeout&quot; is allowed.';
$lng['error']['maxloginattemptsiswrong'] = 'Only numerical &quot;Max Login Attempts&quot; are allowed.'; $lng['error']['maxloginattemptsiswrong'] = 'Only numerical &quot;Max Login Attempts&quot; are allowed.';
$lng['error']['deactivatetimiswrong'] = 'Only numerical &quot;Deactivate Time&quot; is allowed.'; $lng['error']['deactivatetimiswrong'] = 'Only numerical &quot;Deactivation Time&quot; is allowed.';
$lng['error']['accountprefixiswrong'] = 'The &quot;Customerprefix&quot; is wrong.'; $lng['error']['accountprefixiswrong'] = 'The &quot;Customerprefix&quot; is wrong.';
$lng['error']['mysqlprefixiswrong'] = 'The &quot;SQL Prefix&quot; is wrong.'; $lng['error']['mysqlprefixiswrong'] = 'The &quot;SQL Prefix&quot; is wrong.';
$lng['error']['ftpprefixiswrong'] = 'The &quot;FTP Prefix&quot; is wrong.'; $lng['error']['ftpprefixiswrong'] = 'The &quot;FTP Prefix&quot; is wrong.';
@@ -872,7 +872,7 @@ $lng['pwdreminder']['success'] = 'Password reset successfully.<br />You now shou
// ADDED IN 1.2.19-svn18 // ADDED IN 1.2.19-svn18
$lng['serversettings']['allow_password_reset']['title'] = 'Allow password reset by customers'; $lng['serversettings']['allow_password_reset']['title'] = 'Allow password reset by customers';
$lng['pwdreminder']['notallowed'] = 'Password reset is deactivated'; $lng['pwdreminder']['notallowed'] = 'Password reset is disabled';
// ADDED IN 1.2.19-svn20 // ADDED IN 1.2.19-svn20
@@ -983,7 +983,7 @@ $lng['error']['info'] = 'Info';
$lng['admin']['phpconfig']['template_replace_vars'] = 'Variables that will be replaced in the configs'; $lng['admin']['phpconfig']['template_replace_vars'] = 'Variables that will be replaced in the configs';
$lng['admin']['phpconfig']['safe_mode'] = 'Will be replaced with the safe_mode setting of the domain.'; $lng['admin']['phpconfig']['safe_mode'] = 'Will be replaced with the safe_mode setting of the domain.';
$lng['admin']['phpconfig']['pear_dir'] = 'Will be replaced with the global setting for the pear directory.'; $lng['admin']['phpconfig']['pear_dir'] = 'Will be replaced with the global setting for the pear directory.';
$lng['admin']['phpconfig']['open_basedir_c'] = 'Will insert a ; (semicolon) to comment-out/deactivate open_basedir when set'; $lng['admin']['phpconfig']['open_basedir_c'] = 'Will insert a ; (semicolon) to comment-out/disable open_basedir when set';
$lng['admin']['phpconfig']['open_basedir'] = 'Will be replaced with the open_basedir setting of the domain.'; $lng['admin']['phpconfig']['open_basedir'] = 'Will be replaced with the open_basedir setting of the domain.';
$lng['admin']['phpconfig']['tmp_dir'] = 'Will be replaced with the temporary directory of the domain.'; $lng['admin']['phpconfig']['tmp_dir'] = 'Will be replaced with the temporary directory of the domain.';
$lng['admin']['phpconfig']['open_basedir_global'] = 'Will be replaced with the global value of the path which will be attached to the open_basedir.'; $lng['admin']['phpconfig']['open_basedir_global'] = 'Will be replaced with the global value of the path which will be attached to the open_basedir.';
@@ -1110,7 +1110,7 @@ $lng['aps']['invalidzipfile'] = '<strong>Errors for <em>%s</em></strong><br/><ul
$lng['aps']['successpackageupdate'] = '<strong><em>%s</em> successfully installed as a Package update</strong>'; $lng['aps']['successpackageupdate'] = '<strong><em>%s</em> successfully installed as a Package update</strong>';
$lng['aps']['successpackageinstall'] = '<strong><em>%s</em> successfully installed as a new Package</strong>'; $lng['aps']['successpackageinstall'] = '<strong><em>%s</em> successfully installed as a new Package</strong>';
$lng['aps']['class_zip_missing'] = 'SimpleXML Class, exec function or ZIP Functions missing or not enabled! For further information about this problem look into the handbook for this module.'; $lng['aps']['class_zip_missing'] = 'SimpleXML Class, exec function or ZIP Functions missing or not enabled! For further information about this problem look into the handbook for this module.';
$lng['aps']['dir_permissions'] = 'The PHP/Webserver process must be able to write in the directory /var/www/froxlor/temp/ and /var/www/froxlor/packages/'; $lng['aps']['dir_permissions'] = 'The PHP/Webserver process must be able to write in the directory {$path}temp/ and {$path}packages/';
$lng['aps']['initerror'] = '<strong>There are some problems with this module:</strong><ul>%s</ul>Fix these problems, otherwise the module cannot be used!'; $lng['aps']['initerror'] = '<strong>There are some problems with this module:</strong><ul>%s</ul>Fix these problems, otherwise the module cannot be used!';
$lng['aps']['iderror'] = 'Wrong id specified!'; $lng['aps']['iderror'] = 'Wrong id specified!';
$lng['aps']['nopacketsforinstallation'] = 'There are no packages to install.'; $lng['aps']['nopacketsforinstallation'] = 'There are no packages to install.';
@@ -1192,7 +1192,7 @@ $lng['error']['admindoesntexist'] = 'The admin you have chosen doesn\'t exist.';
// ADDED IN 1.2.19-svn37 // ADDED IN 1.2.19-svn37
$lng['serversettings']['system_realtime_port']['title'] = 'Port for realtime Froxlor'; $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 ist deactivated.<br />See also: <a href="https://wiki.froxlor.org/contrib/realtime">Make Froxlor work in realtime (Froxlor Wiki)</a>'; $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="http://wiki.froxlor.org/doc/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']['title'] = 'Allow multiple login';
$lng['serversettings']['session_allow_multiple_login']['description'] = 'If activated a user could login multiple times.'; $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']['panel_allow_domain_change_admin']['title'] = 'Allow moving domains between admins';
@@ -1296,4 +1296,13 @@ $lng['admin']['accountdata'] = 'Account Data';
$lng['admin']['contactdata'] = 'Contact Data'; $lng['admin']['contactdata'] = 'Contact Data';
$lng['admin']['servicedata'] = 'Service Data'; $lng['admin']['servicedata'] = 'Service Data';
// ADDED IN FROXLOR 0.9.2
$lng['admin']['newerversionavailable'] = 'There is a newer version of Froxlor available';
// 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 &quot;%s&quot; changed while editing the settings.<br /><br />This is usually not a big problem but the settings could not be saved because of this.';
?> ?>

View File

@@ -1065,7 +1065,7 @@ $lng['aps']['notazipfile'] = 'Die hochgeladene Datei ist keine g&uuml;ltige ZIP-
$lng['aps']['filetoobig'] = 'Die Datei ist zu gro&szlig;.'; $lng['aps']['filetoobig'] = 'Die Datei ist zu gro&szlig;.';
$lng['aps']['filenotcomplete'] = 'Die Datei wurde nicht vollst&auml;ndig hochgeladen.'; $lng['aps']['filenotcomplete'] = 'Die Datei wurde nicht vollst&auml;ndig hochgeladen.';
$lng['aps']['phperror'] = 'Es trat ein PHP interner Fehler auf. Der Upload Fehlercode lautet #'; $lng['aps']['phperror'] = 'Es trat ein PHP interner Fehler auf. Der Upload Fehlercode lautet #';
$lng['aps']['moveproblem'] = 'Die hochgeladene Datei konnte nicht aus dem tempor&auml;ren Ordner verschoben werden. Pr&uuml;fen Sie ob alle Rechte korrekt gesetzt sind. Dies gilt insbesondere f&uuml; die Ordner /var/www/froxlor/temp/ und /var/www/froxlor/packages/.'; $lng['aps']['moveproblem'] = 'Die hochgeladene Datei konnte nicht aus dem tempor&auml;ren Ordner verschoben werden. Pr&uuml;fen Sie ob alle Rechte korrekt gesetzt sind. Dies gilt insbesondere f&uuml; die Ordner {$path}temp/ und {$path}packages/.';
$lng['aps']['uploaderrors'] = '<strong>Fehler f&uuml;r die Datei <em>%s</em></strong><br/><ul>%s</ul>'; $lng['aps']['uploaderrors'] = '<strong>Fehler f&uuml;r die Datei <em>%s</em></strong><br/><ul>%s</ul>';
$lng['aps']['nospecialchars'] = 'Sonderzeichen sind im Suchausdruck nicht erlaubt!'; $lng['aps']['nospecialchars'] = 'Sonderzeichen sind im Suchausdruck nicht erlaubt!';
$lng['aps']['noitemsfound'] = 'Es wurden keine Pakete gefunden!'; $lng['aps']['noitemsfound'] = 'Es wurden keine Pakete gefunden!';
@@ -1115,7 +1115,7 @@ $lng['aps']['invalidzipfile'] = '<strong>Fehler f&uuml;r <em>%s</em></strong><br
$lng['aps']['successpackageupdate'] = '<strong><em>%s</em> erfolgreich als Paketupdate installiert</strong>'; $lng['aps']['successpackageupdate'] = '<strong><em>%s</em> erfolgreich als Paketupdate installiert</strong>';
$lng['aps']['successpackageinstall'] = '<strong><em>%s</em> erfolgreich als neues Paket installiert</strong>'; $lng['aps']['successpackageinstall'] = '<strong><em>%s</em> erfolgreich als neues Paket installiert</strong>';
$lng['aps']['class_zip_missing'] = 'SimpleXML Klasse, exec Funktion oder ZIP Funktionen nicht vorhanden bzw. aktiviert! F&uuml;r genauere Informationen zu diesem Problem schauen Sie bitte in das Handbuch zu diesem Modul.'; $lng['aps']['class_zip_missing'] = 'SimpleXML Klasse, exec Funktion oder ZIP Funktionen nicht vorhanden bzw. aktiviert! F&uuml;r genauere Informationen zu diesem Problem schauen Sie bitte in das Handbuch zu diesem Modul.';
$lng['aps']['dir_permissions'] = 'Der PHP bzw. Webserver Prozess muss Schreibrechte f&uuml;r /var/www/froxlor/temp/ und /var/www/froxlor/packages/ haben.'; $lng['aps']['dir_permissions'] = 'Der PHP bzw. Webserver Prozess muss Schreibrechte f&uuml;r {$path}temp/ und {$path}packages/ haben.';
$lng['aps']['initerror'] = '<strong>Es gibt ein paar Probleme mit diesem Modul:</strong><ul>%s</ul>Beheben Sie diese Probleme oder das Modul kann nicht genutzt werden!'; $lng['aps']['initerror'] = '<strong>Es gibt ein paar Probleme mit diesem Modul:</strong><ul>%s</ul>Beheben Sie diese Probleme oder das Modul kann nicht genutzt werden!';
$lng['aps']['iderror'] = 'Es wurde eine falsche Id &uuml;bergeben!'; $lng['aps']['iderror'] = 'Es wurde eine falsche Id &uuml;bergeben!';
$lng['aps']['nopacketsforinstallation'] = 'Es wurden keine Pakete zur Installation gefunden.'; $lng['aps']['nopacketsforinstallation'] = 'Es wurden keine Pakete zur Installation gefunden.';
@@ -1196,7 +1196,7 @@ $lng['error']['admindoesntexist'] = 'Der ausgew&auml;hlte Admin existiert nicht.
// ADDED IN 1.2.19-svn37 // ADDED IN 1.2.19-svn37
$lng['serversettings']['system_realtime_port']['title'] = 'Port f&uuml;r Realtime Froxlor'; $lng['serversettings']['system_realtime_port']['title'] = 'Port f&uuml;r Realtime Froxlor';
$lng['serversettings']['system_realtime_port']['description'] = 'Dieser Port auf localhost wird bei jedem neuen Cron-Task kontaktiert. Wenn der Wert 0 (Null) ist, dann ist dieses Feature deaktiviert.<br />Siehe dazu auch: <a href="https://wiki.froxlor.org/contrib/realtime">Make Froxlor work in realtime (Froxlor Wiki)</a>'; $lng['serversettings']['system_realtime_port']['description'] = 'Dieser Port auf localhost wird bei jedem neuen Cron-Task kontaktiert. Wenn der Wert 0 (Null) ist, dann ist dieses Feature deaktiviert.<br />Siehe dazu auch: <a href="http://wiki.froxlor.org/doc/realtime">Make Froxlor work in realtime (Froxlor Wiki)</a>';
$lng['serversettings']['session_allow_multiple_login']['title'] = 'Erlaube gleichzeitigen Login'; $lng['serversettings']['session_allow_multiple_login']['title'] = 'Erlaube gleichzeitigen Login';
$lng['serversettings']['session_allow_multiple_login']['description'] = 'Wenn diese Option aktiviert ist, k&ouml;nnen sich Nutzer mehrmals gleichzeitig anmelden.'; $lng['serversettings']['session_allow_multiple_login']['description'] = 'Wenn diese Option aktiviert ist, k&ouml;nnen sich Nutzer mehrmals gleichzeitig anmelden.';
$lng['serversettings']['panel_allow_domain_change_admin']['title'] = 'Erlaube Verschieben von Domains unter Admins'; $lng['serversettings']['panel_allow_domain_change_admin']['title'] = 'Erlaube Verschieben von Domains unter Admins';
@@ -1276,4 +1276,13 @@ $lng['admin']['accountdata'] = 'Benutzerdaten';
$lng['admin']['contactdata'] = 'Kontaktdaten'; $lng['admin']['contactdata'] = 'Kontaktdaten';
$lng['admin']['servicedata'] = 'Dienstleistungsdaten'; $lng['admin']['servicedata'] = 'Dienstleistungsdaten';
// ADDED IN FROXLOR 0.9.2
$lng['admin']['newerversionavailable'] = 'Eine neuere Version von Froxlor wurde ver&ouml;ffentlicht';
// ADDED IN FROXLOR 0.9.3
$lng['emails']['noemaildomainaddedyet'] = 'Sie haben bisher noch keine (E-Mail-)Domain in Ihrem Konto.';
$lng['error']['hiddenfieldvaluechanged'] = 'Der Wert des verborgenen Feldes &quot;%s&quot; hat sich w&auml;hrend dem &Auml;ndern der Einstellungen ge&auml;ndert.<br /><br />Dies ist im Grunde kein schwerwiegendes Problem, allerdings konnten so die Einstellungen nicht gespeichert werden.';
?> ?>

View File

@@ -1,22 +0,0 @@
<?php
/**
* PHPMailer language file.
* English Version
*/
$PHPMAILER_LANG = array();
$PHPMAILER_LANG["provide_address"] = 'You must provide at least one ' . 'recipient email address.';
$PHPMAILER_LANG["mailer_not_supported"] = ' mailer is not supported.';
$PHPMAILER_LANG["execute"] = 'Could not execute: ';
$PHPMAILER_LANG["instantiate"] = 'Could not instantiate mail function.';
$PHPMAILER_LANG["authenticate"] = 'SMTP Error: Could not authenticate.';
$PHPMAILER_LANG["from_failed"] = 'The following From address failed: ';
$PHPMAILER_LANG["recipients_failed"] = 'SMTP Error: The following ' . 'recipients failed: ';
$PHPMAILER_LANG["data_not_accepted"] = 'SMTP Error: Data not accepted.';
$PHPMAILER_LANG["connect_host"] = 'SMTP Error: Could not connect to SMTP host.';
$PHPMAILER_LANG["file_access"] = 'Could not access file: ';
$PHPMAILER_LANG["file_open"] = 'File Error: Could not open file: ';
$PHPMAILER_LANG["encoding"] = 'Unknown encoding: ';
?>

View File

@@ -1084,7 +1084,7 @@ $lng['aps']['noinstancesexisting'] = 'N&atilde;o existem est&acirc;ncias para ad
$lng['error']['customerdoesntexist'] = 'O cliente que voc&ecirc; escolheu n&atilde;o existe'; $lng['error']['customerdoesntexist'] = 'O cliente que voc&ecirc; escolheu n&atilde;o existe';
$lng['error']['admindoesntexist'] = 'O administrador que voc&ecirc; escolheu n&atilde;o existe'; $lng['error']['admindoesntexist'] = 'O administrador que voc&ecirc; escolheu n&atilde;o existe';
$lng['serversettings']['system_realtime_port']['title'] = 'Porta para Froxlor em tempo real'; $lng['serversettings']['system_realtime_port']['title'] = 'Porta para Froxlor em tempo real';
$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 ist deactivated.<br />See also: <a href="https://wiki.froxlor.org/contrib/realtime">Make Froxlor work in realtime (Froxlor Wiki)</a>'; $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="http://wiki.froxlor.org/contrib/realtime">Make Froxlor work in realtime (Froxlor Wiki)</a>';
$lng['serversettings']['session_allow_multiple_login']['title'] = 'AAtiva login m&uacute;ltiplo'; $lng['serversettings']['session_allow_multiple_login']['title'] = 'AAtiva login m&uacute;ltiplo';
$lng['serversettings']['session_allow_multiple_login']['description'] = 'Se ativado um usu&aacute;rio pode ter m&uacute;ltiplos logins'; $lng['serversettings']['session_allow_multiple_login']['description'] = 'Se ativado um usu&aacute;rio pode ter m&uacute;ltiplos logins';
$lng['serversettings']['panel_allow_domain_change_admin']['title'] = 'Ativa mover dom&iacute;nios entre admins'; $lng['serversettings']['panel_allow_domain_change_admin']['title'] = 'Ativa mover dom&iacute;nios entre admins';

View File

@@ -32,7 +32,7 @@ fwrite($debugHandler, 'Cronfiles have been included' . "\n");
* so users in the database don't conflict with system users * so users in the database don't conflict with system users
*/ */
$cronlog->logAction(CRON_ACTION, LOG_NOTICE, 'Checking system\'s last guid'); $cronlog->logAction(CRON_ACTION, LOG_NOTICE, 'Checking system\'s last guid');
checkLastGuid($settings['system']['lastguid']); checkLastGuid();
/* /*
* shutdown cron * shutdown cron

View File

@@ -17,7 +17,7 @@
* @version $Id$ * @version $Id$
*/ */
$Aps = new ApsUpdater($db); $Aps = new ApsUpdater($db, $cronlog);
$Aps->UpdateHandler(); $Aps->UpdateHandler();
?> ?>

View File

@@ -209,28 +209,25 @@ if($db->num_rows($result) > 0)
continue; continue;
} }
//send mail with mailer class $_mailerror = false;
$mail->From = $to; try {
$mail->FromName = $to; $mail->SetFrom($to, $to);
$mail->Subject = $row['subject']; $mail->AddReplyTo($to, $to);
$mail->Body = html_entity_decode($message); $mail->Subject = $row['subject'];
$mail->AddAddress($from, $from); $mail->AltBody = $message;
$mail->AddCustomHeader('Precedence: bulk'); $mail->MsgHTML(html_entity_decode($message));
$mail->AddAddress($from, $from);
// set correct return path $mail->AddCustomHeader('Precedence: bulk');
$mail->Sender = $to; $mail->Send();
} catch(phpmailerException $e) {
if(!$mail->Send()) $mailerr_msg = $e->errorMessage();
{ $_mailerror = true;
if($mail->ErrorInfo != '') } catch (Exception $e) {
{ $mailerr_msg = $e->getMessage();
$mailerr_msg = $mail->ErrorInfo; $_mailerror = true;
} }
else
{ if ($_mailerror) {
$mailerr_msg = $from;
}
$cronlog->logAction(CRON_ACTION, LOG_WARNING, "Error sending autoresponder mail: " . $mailerr_msg); $cronlog->logAction(CRON_ACTION, LOG_WARNING, "Error sending autoresponder mail: " . $mailerr_msg);
} }

View File

@@ -61,6 +61,25 @@ class apache
$this->logger->logAction(CRON_ACTION, LOG_INFO, 'reloading apache'); $this->logger->logAction(CRON_ACTION, LOG_INFO, 'reloading apache');
safe_exec($this->settings['system']['apachereload_command']); safe_exec($this->settings['system']['apachereload_command']);
} }
/**
* define a standard <Directory>-statement, bug #32
*/
private function _createStandardDirectoryEntry()
{
$vhosts_filename = makeCorrectFile($this->settings['system']['apacheconf_vhost'] . '/05_froxlor_dirfix_nofcgid.conf');
if(!isset($this->virtualhosts_data[$vhosts_filename]))
{
$this->virtualhosts_data[$vhosts_filename] = '';
}
$this->virtualhosts_data[$vhosts_filename].= '# ' . 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";
$this->virtualhosts_data[$vhosts_filename].= ' <Directory "' . $this->settings['system']['documentroot_prefix'] . '">' . "\n";
$this->virtualhosts_data[$vhosts_filename].= ' Order allow,deny' . "\n";
$this->virtualhosts_data[$vhosts_filename].= ' allow from all' . "\n";
$this->virtualhosts_data[$vhosts_filename].= ' </Directory>' . "\n";
}
public function createIpPort() public function createIpPort()
{ {
@@ -79,7 +98,7 @@ class apache
fwrite($this->debugHandler, ' apache::createIpPort: creating ip/port settings for ' . $ipport . "\n"); fwrite($this->debugHandler, ' apache::createIpPort: creating ip/port settings for ' . $ipport . "\n");
$this->logger->logAction(CRON_ACTION, LOG_INFO, 'creating ip/port settings for ' . $ipport); $this->logger->logAction(CRON_ACTION, LOG_INFO, 'creating ip/port settings for ' . $ipport);
$vhosts_filename = makeCorrectFile($this->settings['system']['apacheconf_vhost'] . '/10_syscp_ipandport_' . trim(str_replace(':', '.', $row_ipsandports['ip']), '.') . '.' . $row_ipsandports['port'] . '.conf'); $vhosts_filename = makeCorrectFile($this->settings['system']['apacheconf_vhost'] . '/10_froxlor_ipandport_' . trim(str_replace(':', '.', $row_ipsandports['ip']), '.') . '.' . $row_ipsandports['port'] . '.conf');
if(!isset($this->virtualhosts_data[$vhosts_filename])) if(!isset($this->virtualhosts_data[$vhosts_filename]))
{ {
@@ -149,9 +168,13 @@ class apache
$this->virtualhosts_data[$vhosts_filename].= '</VirtualHost>' . "\n"; $this->virtualhosts_data[$vhosts_filename].= '</VirtualHost>' . "\n";
$this->logger->logAction(CRON_ACTION, LOG_DEBUG, $ipport . ' :: inserted vhostcontainer'); $this->logger->logAction(CRON_ACTION, LOG_DEBUG, $ipport . ' :: inserted vhostcontainer');
} }
unset($vhosts_filename); unset($vhosts_filename);
} }
/**
* bug #32
*/
$this->_createStandardDirectoryEntry();
} }
/* /*
@@ -364,10 +387,14 @@ class apache
{ {
// The normal access/error - logging is enabled // The normal access/error - logging is enabled
$error_log = makeCorrectFile($this->settings['system']['logfiles_directory'] . $domain['loginname'] . $speciallogfile . '-error.log'); $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']); chown($error_log, $this->settings['system']['httpuser']);
chgrp($error_log, $this->settings['system']['httpgroup']); chgrp($error_log, $this->settings['system']['httpgroup']);
$access_log = makeCorrectFile($this->settings['system']['logfiles_directory'] . $domain['loginname'] . $speciallogfile . '-access.log'); $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']); chown($access_log, $this->settings['system']['httpuser']);
chgrp($access_log, $this->settings['system']['httpgroup']); chgrp($access_log, $this->settings['system']['httpgroup']);
@@ -436,11 +463,11 @@ class apache
{ {
if($ssl_vhost === true) if($ssl_vhost === true)
{ {
$vhost_filename = makeCorrectFile($this->settings['system']['apacheconf_vhost'] . '/20_syscp_ssl_vhost_' . $domain['domain'] . '.conf'); $vhost_filename = makeCorrectFile($this->settings['system']['apacheconf_vhost'] . '/20_froxlor_ssl_vhost_' . $domain['domain'] . '.conf');
} }
else else
{ {
$vhost_filename = makeCorrectFile($this->settings['system']['apacheconf_vhost'] . '/20_syscp_normal_vhost_' . $domain['domain'] . '.conf'); $vhost_filename = makeCorrectFile($this->settings['system']['apacheconf_vhost'] . '/20_froxlor_normal_vhost_' . $domain['domain'] . '.conf');
} }
return $vhost_filename; return $vhost_filename;
@@ -646,7 +673,7 @@ class apache
{ {
$row_diroptions['path'] = makeCorrectDir($row_diroptions['path']); $row_diroptions['path'] = makeCorrectDir($row_diroptions['path']);
mkDirWithCorrectOwnership($row_diroptions['customerroot'], $row_diroptions['path'], $row_diroptions['guid'], $row_diroptions['guid']); mkDirWithCorrectOwnership($row_diroptions['customerroot'], $row_diroptions['path'], $row_diroptions['guid'], $row_diroptions['guid']);
$diroptions_filename = makeCorrectFile($this->settings['system']['apacheconf_diroptions'] . '/40_syscp_diroption_' . md5($row_diroptions['path']) . '.conf'); $diroptions_filename = makeCorrectFile($this->settings['system']['apacheconf_diroptions'] . '/40_froxlor_diroption_' . md5($row_diroptions['path']) . '.conf');
if(!isset($this->diroptions_data[$diroptions_filename])) if(!isset($this->diroptions_data[$diroptions_filename]))
{ {
@@ -891,7 +918,7 @@ class apache
if($vhost_filename != '.' if($vhost_filename != '.'
&& $vhost_filename != '..' && $vhost_filename != '..'
&& !in_array($vhost_filename, $this->known_vhostfilenames) && !in_array($vhost_filename, $this->known_vhostfilenames)
&& preg_match('/^(10|20|30)_syscp_(ipandport|normal_vhost|wildcard_vhost|ssl_vhost)_(.+)\.conf$/', $vhost_filename) && preg_match('/^(05|10|20|30)_(froxlor|syscp)_(dirfix|ipandport|normal_vhost|wildcard_vhost|ssl_vhost)_(.+)\.conf$/', $vhost_filename)
&& file_exists(makeCorrectFile($this->settings['system']['apacheconf_vhost'] . '/' . $vhost_filename))) && file_exists(makeCorrectFile($this->settings['system']['apacheconf_vhost'] . '/' . $vhost_filename)))
{ {
fwrite($this->debugHandler, ' apache::wipeOutOldVhostConfigs: unlinking ' . $vhost_filename . "\n"); fwrite($this->debugHandler, ' apache::wipeOutOldVhostConfigs: unlinking ' . $vhost_filename . "\n");
@@ -922,7 +949,7 @@ class apache
if($diroptions_filename != '.' if($diroptions_filename != '.'
&& $diroptions_filename != '..' && $diroptions_filename != '..'
&& !in_array($diroptions_filename, $this->known_diroptionsfilenames) && !in_array($diroptions_filename, $this->known_diroptionsfilenames)
&& preg_match('/^40_syscp_diroption_(.+)\.conf$/', $diroptions_filename) && preg_match('/^40_(froxlor|syscp)_diroption_(.+)\.conf$/', $diroptions_filename)
&& file_exists(makeCorrectFile($this->settings['system']['apacheconf_diroptions'] . '/' . $diroptions_filename))) && file_exists(makeCorrectFile($this->settings['system']['apacheconf_diroptions'] . '/' . $diroptions_filename)))
{ {
fwrite($this->debugHandler, ' apache::wipeOutOldDiroptionConfigs: unlinking ' . $diroptions_filename . "\n"); fwrite($this->debugHandler, ' apache::wipeOutOldDiroptionConfigs: unlinking ' . $diroptions_filename . "\n");

View File

@@ -615,7 +615,7 @@ class lighttpd
if($vhost_filename != '.' if($vhost_filename != '.'
&& $vhost_filename != '..' && $vhost_filename != '..'
&& !in_array($vhost_filename, $this->known_filenames) && !in_array($vhost_filename, $this->known_filenames)
&& preg_match('/^(10|20|30)_froxlor_ipandport_(.+)\.conf$/', $vhost_filename) && preg_match('/^(05|10|20|30)_(froxlor|syscp)_ipandport_(.+)\.conf$/', $vhost_filename)
&& file_exists(makeCorrectFile($this->settings['system']['apacheconf_vhost'] . '/' . $vhost_filename))) && file_exists(makeCorrectFile($this->settings['system']['apacheconf_vhost'] . '/' . $vhost_filename)))
{ {
fwrite($this->debugHandler, ' lighttpd::wipeOutOldConfigs: unlinking ' . $vhost_filename . "\n"); fwrite($this->debugHandler, ' lighttpd::wipeOutOldConfigs: unlinking ' . $vhost_filename . "\n");

View File

@@ -55,14 +55,33 @@ while($row = $db->fetch_array($result_tasks))
{ {
$awstatsclean['header'] = "## GENERATED BY FROXLOR\n"; $awstatsclean['header'] = "## GENERATED BY FROXLOR\n";
$awstatsclean['path'] = '/etc/awstats'; $awstatsclean['path'] = '/etc/awstats';
$awstatsclean['dir'] = dir($awstatsclean['path']);
while($awstatsclean['entry'] = $awstatsclean['dir']->read()) { /**
$awstatsclean['fullentry'] = $awstatsclean['path'].'/'.$awstatsclean['entry']; * dont do anyting if the directory not exists
$awstatsclean['fh'] = fopen($awstatsclean['fullentry'], 'r'); * (e.g. awstats not installed yet or whatever)
$awstatsclean['headerRead'] = fgets($awstatsclean['fh'], strlen($awstatsclean['header'])+1); * fixes #45
fclose($awstatsclean['fh']); */
if($awstatsclean['headerRead'] == $awstatsclean['header']) { if (is_dir($awstatsclean['dir']))
@unlink($awstatsclean['fullentry']); {
$awstatsclean['dir'] = dir($awstatsclean['path']);
while($awstatsclean['entry'] = $awstatsclean['dir']->read()) {
$awstatsclean['fullentry'] = $awstatsclean['path'].'/'.$awstatsclean['entry'];
/**
* dont do anything if the file does not exist
*/
if (file_exists($awstatsclean['fullentry']))
{
$awstatsclean['fh'] = fopen($awstatsclean['fullentry'], 'r');
$awstatsclean['headerRead'] = fgets($awstatsclean['fh'], strlen($awstatsclean['header'])+1);
fclose($awstatsclean['fh']);
if($awstatsclean['headerRead'] == $awstatsclean['header']) {
@unlink($awstatsclean['fullentry']);
}
}
else
{
$cronlog->logAction(CRON_ACTION, LOG_WARNING, "File '".$awstatsclean['fullentry']."' could not be found, please check if you followed all the instructions on the configuration page");
}
} }
} }
unset($awstatsclean); unset($awstatsclean);

View File

@@ -26,7 +26,7 @@ $yesterday = time() - (60 * 60 * 24);
require (dirname(__FILE__) . '/../lib/class.phpmailer.php'); require (dirname(__FILE__) . '/../lib/class.phpmailer.php');
$mail = new PHPMailer(); $mail = new PHPMailer();
$mail->From = $settings['panel']['adminmail']; $mail->SetFrom($settings['panel']['adminmail'], 'Froxlor Administrator');
// Warn the customers at 90% traffic-usage // Warn the customers at 90% traffic-usage
@@ -82,15 +82,26 @@ while($row = $db->fetch_array($result))
AND `templategroup`='mails' AND `templategroup`='mails'
AND `varname`='trafficninetypercent_mailbody'"); AND `varname`='trafficninetypercent_mailbody'");
$mail_body = html_entity_decode(replace_variables((($result2['value'] != '') ? $result2['value'] : $lng['mails']['trafficninetypercent']['mailbody']), $replace_arr)); $mail_body = html_entity_decode(replace_variables((($result2['value'] != '') ? $result2['value'] : $lng['mails']['trafficninetypercent']['mailbody']), $replace_arr));
$mail->From = $row['adminmail'];
$mail->FromName = $row['adminname']; $_mailerror = false;
$mail->Subject = $mail_subject; try {
$mail->Body = $mail_body; $mail->SetFrom($row['adminmail'], $row['adminname']);
$mail->AddAddress($row['email'], $row['firstname'] . ' ' . $row['name']); $mail->Subject = $mail_subject;
$mail->AltBody = $mail_body;
$mail->MsgHTML($mail_body);
$mail->AddAddress($row['email'], $row['firstname'] . ' ' . $row['name']);
$mail->Send();
} catch(phpmailerException $e) {
$mailerr_msg = $e->errorMessage();
$_mailerror = true;
} catch (Exception $e) {
$mailerr_msg = $e->getMessage();
$_mailerror = true;
}
if(!$mail->Send()) if($_mailerror)
{ {
$cronlog->logAction(CRON_ACTION, LOG_ERR, "Error sending mail: " . $mail->ErrorInfo); $cronlog->logAction(CRON_ACTION, LOG_ERR, "Error sending mail: " . $_mailerror);
standard_error('errorsendingmail', $row["email"]); standard_error('errorsendingmail', $row["email"]);
} }
@@ -150,15 +161,25 @@ while($row = $db->fetch_array($result))
AND `templategroup`='mails' AND `templategroup`='mails'
AND `varname`='trafficninetypercent_mailbody'"); AND `varname`='trafficninetypercent_mailbody'");
$mail_body = html_entity_decode(replace_variables((($result2['value'] != '') ? $result2['value'] : $lng['mails']['trafficninetypercent']['mailbody']), $replace_arr)); $mail_body = html_entity_decode(replace_variables((($result2['value'] != '') ? $result2['value'] : $lng['mails']['trafficninetypercent']['mailbody']), $replace_arr));
$mail->From = $row['email'];
$mail->FromName = $row['firstname'] . " " . $row['name']; $_mailerror = false;
$mail->Subject = $mail_subject; try {
$mail->Body = $mail_body; $mail->SetFrom($row['email'], $row['firstname'] . " " . $row['name']);
$mail->AddAddress($row['email'], $row['name']); $mail->Subject = $mail_subject;
$mail->AltBody = $mail_body;
$mail->MsgHTML($mail_body);
$mail->AddAddress($row['email'], $row['name']);
$mail->Send();
} catch(phpmailerException $e) {
$mailerr_msg = $e->errorMessage();
$_mailerror = true;
} catch (Exception $e) {
$mailerr_msg = $e->getMessage();
$_mailerror = true;
}
if(!$mail->Send()) if ($_mailerror) {
{ $cronlog->logAction(CRON_ACTION, LOG_ERR, "Error sending mail: " . $mailerr_msg);
$cronlog->logAction(CRON_ACTION, LOG_ERR, "Error sending mail: " . $mail->ErrorInfo);
standard_error('errorsendingmail', $row["email"]); standard_error('errorsendingmail', $row["email"]);
} }
@@ -189,15 +210,25 @@ while($row = $db->fetch_array($result))
$mail_body.= '---------------------------------------------' . "\n"; $mail_body.= '---------------------------------------------' . "\n";
$mail_body.= sprintf('%-15s', $row['loginname']) . ' ' . sprintf('%-12d', $row['traffic_used_total']) . ' (' . sprintf('%00.3f%%', (($row['traffic_used_total'] * 100) / $row['traffic'])) . ') ' . $row['traffic'] . "\n"; $mail_body.= sprintf('%-15s', $row['loginname']) . ' ' . sprintf('%-12d', $row['traffic_used_total']) . ' (' . sprintf('%00.3f%%', (($row['traffic_used_total'] * 100) / $row['traffic'])) . ') ' . $row['traffic'] . "\n";
$mail->From = $row['email'];
$mail->FromName = $row['name']; $_mailerror = false;
$mail->Subject = $mail_subject; try {
$mail->Body = $mail_body; $mail->SetFrom($row['email'], $row['name']);
$mail->AddAddress($row['email'], $row['name']); $mail->Subject = $mail_subject;
$mail->AltBody = $mail_body;
$mail->MsgHTML($mail_body);
$mail->AddAddress($row['email'], $row['name']);
$mail->Send();
} catch(phpmailerException $e) {
$mailerr_msg = $e->errorMessage();
$_mailerror = true;
} catch (Exception $e) {
$mailerr_msg = $e->getMessage();
$_mailerror = true;
}
if(!$mail->Send()) if ($_mailerror) {
{ $cronlog->logAction(CRON_ACTION, LOG_ERR, "Error sending mail: " . $mailerr_msg);
$cronlog->logAction(CRON_ACTION, LOG_ERR, "Error sending mail: " . $mail->ErrorInfo);
standard_error('errorsendingmail', $row["email"]); standard_error('errorsendingmail', $row["email"]);
} }

View File

@@ -119,16 +119,25 @@ $header
{$cron_last_runs} {$cron_last_runs}
<tr> <tr>
<td class="field_name_border_left">{$lng['admin']['installedversion']}:</td> <td class="field_name_border_left">{$lng['admin']['installedversion']}:</td>
<td class="field_display">{$version}</td> <td class="field_display">{$version}{$branding}</td>
</tr> </tr>
<tr> <tr>
<td class="field_name_border_left">{$lng['admin']['latestversion']}:</td> <td class="field_name_border_left">{$lng['admin']['latestversion']}:</td>
<td class="field_display"><a href="$lookfornewversion_link">$lookfornewversion_lable</a></td> <if $isnewerversion != 0 >
<td class="field_display"><a href="$lookfornewversion_link"><strong>$lookfornewversion_lable</strong></a></td>
<else>
<td class="field_display"><a href="$lookfornewversion_link">$lookfornewversion_lable</a></td>
</if>
</tr> </tr>
<if $lookfornewversion_addinfo != ''> <if $isnewerversion != 0 >
<tr> <tr>
<td class="field_name_border_left" colspan="2">$lookfornewversion_addinfo</td> <td class="field_name_border_left" colspan="2"><strong>{$lng['admin']['newerversionavailable']}</strong></td>
</tr> </tr>
<if $lookfornewversion_addinfo != ''>
<tr>
<td class="field_name_border_left" colspan="2">$lookfornewversion_addinfo</td>
</tr>
</if>
</if> </if>
</table> </table>
<br /> <br />

View File

@@ -15,13 +15,13 @@ $header
<td class="field_display">{$lng['ticket']['subject']}</td> <td class="field_display">{$lng['ticket']['subject']}</td>
<td class="field_display">{$lng['ticket']['lastreplier']}</td> <td class="field_display">{$lng['ticket']['lastreplier']}</td>
<td class="field_display">{$lng['ticket']['priority']}</td> <td class="field_display">{$lng['ticket']['priority']}</td>
<td class="field_display_search">&nbsp;</td> <td class="field_display_search">&nbsp;</td>
</tr> </tr>
$tickets $tickets
</if> </if>
<if $tickets_count < 1 > <if $tickets_count < 1 >
<tr> <tr>
<td class="field_display_border_left" colspan="5">{$lng['ticket']['noresults']}</td> <td class="field_display_border_left" colspan="6">{$lng['ticket']['noresults']}</td>
</tr> </tr>
</if> </if>
</table> </table>

View File

@@ -7,17 +7,23 @@ $header
<tr> <tr>
<td class="maintitle" colspan="2"><b><img src="images/title.gif" alt="" />&nbsp;{$lng['emails']['emails_add']}</b></td> <td class="maintitle" colspan="2"><b><img src="images/title.gif" alt="" />&nbsp;{$lng['emails']['emails_add']}</b></td>
</tr> </tr>
<tr> <if $domains != '' >
<td class="main_field_name">{$lng['emails']['emailaddress']}:</td> <tr>
<td class="main_field_display" nowrap="nowrap"><input type="text" name="email_part" value="" size="15" /> @ <select class="dropdown_noborder" name="domain">$domains</select></td> <td class="main_field_name">{$lng['emails']['emailaddress']}:</td>
</tr> <td class="main_field_display" nowrap="nowrap"><input type="text" name="email_part" value="" size="15" /> @ <select class="dropdown_noborder" name="domain">$domains</select></td>
<tr> </tr>
<td class="main_field_name">{$lng['emails']['iscatchall']}</td> <tr>
<td class="main_field_display" nowrap="nowrap">$iscatchall</td> <td class="main_field_name">{$lng['emails']['iscatchall']}</td>
</tr> <td class="main_field_display" nowrap="nowrap">$iscatchall</td>
<tr> </tr>
<td class="main_field_confirm" colspan="2"><input type="hidden" name="send" value="send" /><input type="submit" class="bottom" value="{$lng['emails']['emails_add']}" /></td> <tr>
</tr> <td class="main_field_confirm" colspan="2"><input type="hidden" name="send" value="send" /><input type="submit" class="bottom" value="{$lng['emails']['emails_add']}" /></td>
</tr>
<else
<tr>
<td class="main_field_name" colspan="2">{$lng['emails']['noemaildomainaddedyet']}</td>
</tr>
</if>
</table> </table>
</form> </form>
<br /> <br />

View File

@@ -6,7 +6,7 @@
<td width="100%" class="footer"> <td width="100%" class="footer">
<br />Froxlor <br />Froxlor
<if ($settings['admin']['show_version_login'] == '1' && $filename == 'index.php') || ($filename != 'index.php' && $settings['admin']['show_version_footer'] == '1')> <if ($settings['admin']['show_version_login'] == '1' && $filename == 'index.php') || ($filename != 'index.php' && $settings['admin']['show_version_footer'] == '1')>
{$version} {$version}{$branding}
</if> </if>
&copy; 2009-2010 by <a href="http://www.froxlor.org/" target="_blank">the Froxlor Team</a> &copy; 2009-2010 by <a href="http://www.froxlor.org/" target="_blank">the Froxlor Team</a>
<br />Theme based on work by: Luca Piona and Luca Longinotti <br />Theme based on work by: Luca Piona and Luca Longinotti

View File

@@ -33,7 +33,7 @@ url.access-deny = ("~", ".inc")
fastcgi.server = ( fastcgi.server = (
".php" => ( ".php" => (
"localhost" => ( "localhost" => (
"socket" => "/var/kunden/tmp/lighttpd-fcgi-sock-lighttpd", "socket" => "<CUSTOMER_TMP>lighttpd-fcgi-sock-lighttpd",
"broken-scriptfilename" => "enable", "broken-scriptfilename" => "enable",
"bin-path" => "/usr/bin/php5-cgi", "bin-path" => "/usr/bin/php5-cgi",
"min-procs" => 1, "min-procs" => 1,

View File

@@ -70,6 +70,7 @@ alias_maps = $alias_database
# Default Mailbox size, is set to 0 which means unlimited! # Default Mailbox size, is set to 0 which means unlimited!
mailbox_size_limit = 0 mailbox_size_limit = 0
virtual_mailbox_limit = 0
### TLS settings ### TLS settings
### ###

View File

@@ -1,8 +1,8 @@
service froxlor service froxlor
{ {
id = froxlor id = froxlor
socket_type = dgram socket_type = stream
protocol = udp protocol = tcp
wait = no wait = no
user = root user = root

View File

@@ -33,7 +33,7 @@ url.access-deny = ("~", ".inc")
fastcgi.server = ( fastcgi.server = (
".php" => ( ".php" => (
"localhost" => ( "localhost" => (
"socket" => "/var/kunden/tmp/lighttpd-fcgi-sock-lighttpd", "socket" => "<CUSTOMER_TMP>lighttpd-fcgi-sock-lighttpd",
"broken-scriptfilename" => "enable", "broken-scriptfilename" => "enable",
"bin-path" => "/usr/bin/php5-cgi", "bin-path" => "/usr/bin/php5-cgi",
"min-procs" => 1, "min-procs" => 1,

View File

@@ -1,92 +1,93 @@
# Postfix programs paths settings # Postfix programs paths settings
command_directory = /usr/sbin command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix daemon_directory = /usr/lib/postfix
program_directory = /usr/lib/postfix program_directory = /usr/lib/postfix
sendmail_path = /usr/sbin/sendmail sendmail_path = /usr/sbin/sendmail
## General Postfix configuration ## General Postfix configuration
# should be the default domain from your provider eg. "server100.provider.tld" # should be the default domain from your provider eg. "server100.provider.tld"
mydomain = <SERVERNAME> mydomain = <SERVERNAME>
# should be different from $mydomain eg. "mail.$mydomain" # should be different from $mydomain eg. "mail.$mydomain"
myhostname = <SERVERNAME> myhostname = <SERVERNAME>
mydestination = $myhostname, mydestination = $myhostname,
$mydomain, $mydomain,
localhost.$myhostname, localhost.$myhostname,
localhost.$mydomain, localhost.$mydomain,
localhost localhost
mynetworks = 127.0.0.0/8 mynetworks = 127.0.0.0/8
inet_interfaces = all inet_interfaces = all
append_dot_mydomain = no append_dot_mydomain = no
biff = no biff = no
# Postfix performance settings # Postfix performance settings
default_destination_concurrency_limit = 20 default_destination_concurrency_limit = 20
local_destination_concurrency_limit = 2 local_destination_concurrency_limit = 2
# SMTPD Settings # SMTPD Settings
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_helo_required = yes smtpd_helo_required = yes
smtpd_recipient_restrictions = permit_mynetworks, smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated, permit_sasl_authenticated,
reject_unauth_destination, reject_unauth_destination,
reject_unauth_pipelining, reject_unauth_pipelining,
reject_non_fqdn_recipient reject_non_fqdn_recipient
smtpd_sender_restrictions = permit_mynetworks, smtpd_sender_restrictions = permit_mynetworks,
permit_sasl_authenticated, permit_sasl_authenticated,
reject_unknown_hostname, reject_unknown_hostname,
reject_unknown_recipient_domain, reject_unknown_recipient_domain,
reject_unknown_sender_domain reject_unknown_sender_domain
smtpd_client_restrictions = permit_mynetworks, smtpd_client_restrictions = permit_mynetworks,
permit_sasl_authenticated, permit_sasl_authenticated,
reject_unknown_client reject_unknown_client
# Maximum size of Message in bytes (50MB) # Maximum size of Message in bytes (50MB)
message_size_limit = 52428800 message_size_limit = 52428800
## SASL Auth Settings ## SASL Auth Settings
smtpd_sasl_auth_enable = yes smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes broken_sasl_auth_clients = yes
## Dovecot Settings for deliver, SASL Auth and virtual transport ## Dovecot Settings for deliver, SASL Auth and virtual transport
## uncomment those line to use Dovecot ## uncomment those line to use Dovecot
#mailbox_command = /usr/lib/dovecot/deliver #mailbox_command = /usr/lib/dovecot/deliver
#virtual_transport = dovecot #virtual_transport = dovecot
#dovecot_destination_recipient_limit = 1 #dovecot_destination_recipient_limit = 1
# Virtual delivery settings # Virtual delivery settings
virtual_mailbox_base = <VIRTUAL_MAILBOX_BASE> virtual_mailbox_base = <VIRTUAL_MAILBOX_BASE>
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_alias_maps.cf virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_alias_maps.cf
virtual_uid_maps = static:<VIRTUAL_UID_MAPS> virtual_uid_maps = static:<VIRTUAL_UID_MAPS>
virtual_gid_maps = static:<VIRTUAL_GID_MAPS> virtual_gid_maps = static:<VIRTUAL_GID_MAPS>
# Local delivery settings # Local delivery settings
local_transport = local local_transport = local
alias_database = hash:/etc/aliases alias_database = hash:/etc/aliases
alias_maps = $alias_database alias_maps = $alias_database
# Default Mailbox size, is set to 0 which means unlimited! # Default Mailbox size, is set to 0 which means unlimited!
mailbox_size_limit = 0 mailbox_size_limit = 0
virtual_mailbox_limit = 0
### TLS settings
### ### TLS settings
## TLS for outgoing mails from the server to another server ###
#smtp_use_tls = yes ## TLS for outgoing mails from the server to another server
#smtp_tls_note_starttls_offer = yes #smtp_use_tls = yes
## TLS for email client #smtp_tls_note_starttls_offer = yes
#smtpd_tls_cert_file = /etc/ssl/server/<SERVERNAME>.pem ## TLS for email client
#smtpd_tls_key_file = /etc/ssl/server/<SERVERNAME>.pem #smtpd_tls_cert_file = /etc/ssl/server/<SERVERNAME>.pem
#smtpd_tls_CAfile = /etc/ssl/cacert.class3.crt # Just an example for CACert.org #smtpd_tls_key_file = /etc/ssl/server/<SERVERNAME>.pem
#smtpd_tls_auth_only = no #smtpd_tls_CAfile = /etc/ssl/cacert.class3.crt # Just an example for CACert.org
#smtpd_tls_loglevel = 1 #smtpd_tls_auth_only = no
#smtpd_tls_received_header = yes #smtpd_tls_loglevel = 1
#smtpd_tls_session_cache_timeout = 3600s #smtpd_tls_received_header = yes
#tls_random_source = dev:/dev/urandom #smtpd_tls_session_cache_timeout = 3600s
#tls_random_source = dev:/dev/urandom
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin debugger_command =
ddd $daemon_directory/$process_name $process_id & sleep 5 PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep 5

View File

@@ -1,8 +1,8 @@
service froxlor service froxlor
{ {
id = froxlor id = froxlor
socket_type = dgram socket_type = stream
protocol = udp protocol = tcp
wait = no wait = no
user = root user = root

View File

@@ -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 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'

View File

@@ -0,0 +1,109 @@
## Dovecot configuration file
#
syslog_facility = local1
#log_timestamp = .%Y-%m-%d %H:%M:%S
#login_log_format_elements = user=<%u>method=%m rip=%r lip=%l %c
#login_log_format = %$: %s
#log_path = /var/log/dovecot.log
#info_log_path = /var/log/dovecot-info.log
#mail_debug = yes
#auth_debug_passwords= yes
#auth_verbose= yes
#
#ssl=yes
#ssl_ca_file = /etc/ssl/<SERVERNAME>.crt
#ssl_cert_file = /etc/ssl/<SERVERNAME>.crt
#ssl_key_file = /etc/ssl/<SERVERNAME>.key
#ssl_key_password =
#
# imap imaps pop3 pop3s (use imaps and pop3s if configured for SSL)
protocols = imap pop3 <SSLPROTOCOLS>
#
# Uncomment the ssl_listen statements and comment out listen if using SSL
#
protocol imap {
listen = *:143
# ssl_listen = *:993
}
protocol pop3 {
listen = *:110
# ssl_listen = *:995
}
#
shutdown_clients = yes
login_chroot = yes
disable_plaintext_auth = no
login_process_per_connection = yes
login_processes_count = 2
login_max_processes_count = 128
login_max_connections = 256
login_greeting = Welcome to <SERVERNAME> Mail Server.
verbose_proctitle = no
maildir_copy_with_hardlinks = yes
protocol imap {
login_executable = /usr/local/libexec/dovecot/imap-login
mail_executable = /usr/local/libexec/dovecot/imap
imap_max_line_length = 65536
imap_client_workarounds = delay-newmail outlook-idle netscape-eoh tb-extra-mailbox-sep
}
protocol pop3 {
login_executable = /usr/local/libexec/dovecot/pop3-login
mail_executable = /usr/local/libexec/dovecot/pop3
pop3_uidl_format = %08Xu%08Xv
pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}
protocol lda {
postmaster_address = postmaster@<SERVERNAME>
sendmail_path = /usr/sbin/sendmail
# mail_plugins = sieve
# log_path = /var/log/dovecot-deliver.log
# info_log_path = /var/log/dovecot-deliver.log
}
protocol managesieve {
# Specify an alternative address:port the daemon must listen on
# (default: *:2000)
# listen = localhost:2000
# managesieve_logout_format = bytes ( in=%i : out=%o )
}
plugin {
# quota = maildir
# Used by both the Sieve plugin and the ManageSieve protocol
# sieve=~/.dovecot.sieve
# sieve_dir=~/sieve
}
auth default {
mechanisms = plain login
passdb sql {
args = /usr/local/etc/dovecot-sql.conf
}
userdb sql {
args = /usr/local/etc/dovecot-sql.conf
}
user = root
count = 1
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0660
user = vmail
group = vmail
}
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
}

View File

@@ -0,0 +1,4 @@
daily_clean_hoststat_enable="NO"
daily_status_mail_rejects_enable="NO"
daily_status_include_submit_mailq="NO"
daily_submit_queuerun="NO"

View File

@@ -0,0 +1,100 @@
smtpd_sender_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
reject_unknown_hostname,
reject_unknown_recipient_domain,
reject_unknown_sender_domain,
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_sender_login_mismatch,
reject_non_fqdn_hostname,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unauth_destination,
reject_unauth_pipelining,
reject_invalid_hostname,
reject_rbl_client sbl-xbl.spamhaus.org,
# sqlgrey enable
# check_policy_service inet:127.0.0.1:2501,
smtpd_client_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unknown_client,
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
soft_bounce = yes
# Maximum size of Message in bytes (50MB)
message_size_limit = 52428800
smtp_use_tls = yes
smtpd_use_tls = yes
smtpd_tls_security_level = may
smtpd_tls_auth_only = no
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/ssl/<SERVERNAME>.key.unencrypted
smtpd_tls_cert_file = /etc/ssl/<SERVERNAME>.crt
smtpd_tls_CAfile = /etc/ssl/cacert.class3.crt # Just an example for CACert.org
smtpd_tls_loglevel = 0
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
virtual_alias_maps = proxy:mysql:/usr/local/etc/postfix/mysql-virtual_alias_maps.cf
virtual_mailbox_base = <VIRTUAL_MAILBOX_BASE>
virtual_mailbox_domains = proxy:mysql:/usr/local/etc/postfix/mysql-virtual_mailbox_domains.cf
virtual_mailbox_limit = 0
virtual_mailbox_maps = proxy:mysql:/usr/local/etc/postfix/mysql-virtual_mailbox_maps.cf
virtual_uid_maps = static:<VIRTUAL_UID_MAPS>
virtual_gid_maps = static:<VIRTUAL_GID_MAPS>
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps
$virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains
$relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps
$recipient_canonical_maps $relocated_maps $transport_maps $mynetworks
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = Sorry, this user has overdrawn their diskspace quota. Please try again later.
virtual_overquota_bounce = yes
virtual_transport = virtual
## Dovecot Settings for deliver, SASL Auth and virtual transport
# uncomment those line to use Dovecot
#mailbox_command = /usr/local/libexec/dovecot/deliver
#virtual_transport = dovecot
#dovecot_destination_recipient_limit = 1
#alias_maps = $alias_database
queue_directory = /var/spool/postfix
command_directory = /usr/local/sbin
daemon_directory = /usr/local/libexec/postfix
data_directory = /var/db/postfix
mail_owner = postfix
myhostname = <SERVERNAME>
mydomain = <SERVERNAME>
myorigin = $mydomain
inet_interfaces = all
unknown_local_recipient_reject_code = 550
mynetworks_style = host
debug_peer_level = 2
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/local/sbin/sendmail
newaliases_path = /usr/local/bin/newaliases
mailq_path = /usr/local/bin/mailq
setgid_group = maildrop
html_directory = /usr/local/share/doc/postfix
manpage_directory = /usr/local/man
sample_directory = /usr/local/etc/postfix
readme_directory = /usr/local/share/doc/postfix

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -0,0 +1,10 @@
allow-axfr-ips=<SLAVE DNS SERVER>
allow-recursion=127.0.0.1
daemon=yes
guardian=yes
launch=bind
lazy-recursion=yes
recursor=<IP DNSRECURSION>
master=yes
bind-config=/etc/namedb/froxlor_bind.conf
bind-check-interval=180

View File

@@ -0,0 +1,76 @@
# Server settings
ServerName "<SERVERNAME> FTP Server"
ServerType standalone
DefaultServer on
Port 21
UseIPv6 off
Umask 022
SyslogLevel emerg
SystemLog /var/log/xferlog
LogFormat auth "%v [%P] %h %t \"%r\" %s"
ExtendedLog /var/log/xferlog AUTH auth
# General settings
DeferWelcome off
MultilineRFC2228 on
ShowSymlinks on
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
DisplayLogin welcome.msg
DisplayChdir .message
ListOptions "-l"
DenyFilter \*.*/
MaxInstances 30
CommandBufferSize 512
User nobody
Group nogroup
AllowOverwrite on
<IfModule mod_quotatab.c>
QuotaEngine off
</IfModule>
<IfModule mod_ratio.c>
Ratios off
</IfModule>
<IfModule mod_delay.c>
DelayEngine off
</IfModule>
<IfModule mod_sql.c>
DefaultRoot ~
RequireValidShell off
AuthOrder mod_sql.c
SQLBackend mysql
SQLEngine on
SQLAuthenticate on
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
</IfModule>
#<IfModule mod_tls.c>
# TLSEngine on
# TLSLog /var/log/xferlog
# TLSProtocol SSLv23
# TLSRequired off
# TLSRSACertificateFile /etc/ssl/cert.pem
# TLSRSACertificateKeyFile /etc/ssl/key.pem
# TLSVerifyClient off
# TLSRenegotiate required off
#</IfModule>

View File

@@ -35,7 +35,7 @@ include "mime-types.conf"
fastcgi.server = ( fastcgi.server = (
".php" => ( ".php" => (
"localhost" => ( "localhost" => (
"socket" => "/tmp/lighttpd-fcgi-sock-lighttpd", "socket" => "<CUSTOMER_TMP>lighttpd-fcgi-sock-lighttpd",
"broken-scriptfilename" => "enable", "broken-scriptfilename" => "enable",
"bin-path" => "/usr/bin/php-cgi", "bin-path" => "/usr/bin/php-cgi",
"min-procs" => 1, "min-procs" => 1,

View File

@@ -1,111 +1,112 @@
# Postfix programs paths settings # Postfix programs paths settings
command_directory = /usr/sbin command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix daemon_directory = /usr/lib/postfix
program_directory = /usr/lib/postfix program_directory = /usr/lib/postfix
sendmail_path = /usr/sbin/sendmail sendmail_path = /usr/sbin/sendmail
## General Postfix configuration ## General Postfix configuration
# should be the default domain from your provider eg. "server100.provider.tld" # should be the default domain from your provider eg. "server100.provider.tld"
mydomain = <SERVERNAME> mydomain = <SERVERNAME>
# should be different from $mydomain eg. "mail.$mydomain" # should be different from $mydomain eg. "mail.$mydomain"
myhostname = <SERVERNAME> myhostname = <SERVERNAME>
mydestination = $myhostname, mydestination = $myhostname,
$mydomain, $mydomain,
localhost.$myhostname, localhost.$myhostname,
localhost.$mydomain, localhost.$mydomain,
localhost localhost
mynetworks = 127.0.0.0/8 mynetworks = 127.0.0.0/8
inet_interfaces = all inet_interfaces = all
append_dot_mydomain = no append_dot_mydomain = no
biff = no biff = no
# Postfix performance settings # Postfix performance settings
default_destination_concurrency_limit = 20 default_destination_concurrency_limit = 20
local_destination_concurrency_limit = 2 local_destination_concurrency_limit = 2
# SMTPD Settings # SMTPD Settings
smtpd_banner = $myhostname ESMTP $mail_name (Gentoo/GNU) smtpd_banner = $myhostname ESMTP $mail_name (Gentoo/GNU)
smtpd_helo_required = yes smtpd_helo_required = yes
smtpd_recipient_restrictions = permit_mynetworks, smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated, permit_sasl_authenticated,
reject_unauth_destination, reject_unauth_destination,
reject_unauth_pipelining, reject_unauth_pipelining,
reject_non_fqdn_recipient reject_non_fqdn_recipient
smtpd_sender_restrictions = permit_mynetworks, smtpd_sender_restrictions = permit_mynetworks,
permit_sasl_authenticated, permit_sasl_authenticated,
reject_unknown_hostname, reject_unknown_hostname,
reject_unknown_recipient_domain, reject_unknown_recipient_domain,
reject_unknown_sender_domain reject_unknown_sender_domain
smtpd_client_restrictions = permit_mynetworks, smtpd_client_restrictions = permit_mynetworks,
permit_sasl_authenticated, permit_sasl_authenticated,
reject_unknown_client reject_unknown_client
# Maximum size of Message in bytes (50MB) # Maximum size of Message in bytes (50MB)
message_size_limit = 52428800 message_size_limit = 52428800
## SASL Auth Settings ## SASL Auth Settings
smtpd_sasl_auth_enable = yes smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes broken_sasl_auth_clients = yes
## Dovecot Settings for deliver, SASL Auth and virtual transport ## Dovecot Settings for deliver, SASL Auth and virtual transport
## uncomment those line to use Dovecot ## uncomment those line to use Dovecot
#mailbox_command = /usr/libexec/dovecot/deliver #mailbox_command = /usr/libexec/dovecot/deliver
#smtpd_sasl_type = dovecot #smtpd_sasl_type = dovecot
#smtpd_sasl_path = private/auth #smtpd_sasl_path = private/auth
#virtual_transport = dovecot #virtual_transport = dovecot
#dovecot_destination_recipient_limit = 1 #dovecot_destination_recipient_limit = 1
# Virtual delivery settings # Virtual delivery settings
virtual_mailbox_base = <VIRTUAL_MAILBOX_BASE> virtual_mailbox_base = <VIRTUAL_MAILBOX_BASE>
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_alias_maps.cf virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_alias_maps.cf
virtual_uid_maps = static:<VIRTUAL_UID_MAPS> virtual_uid_maps = static:<VIRTUAL_UID_MAPS>
virtual_gid_maps = static:<VIRTUAL_GID_MAPS> virtual_gid_maps = static:<VIRTUAL_GID_MAPS>
# Local delivery settings # Local delivery settings
local_transport = local local_transport = local
alias_database = hash:/etc/mail/aliases alias_database = hash:/etc/mail/aliases
alias_maps = $alias_database alias_maps = $alias_database
# Default Mailbox size, is set to 0 which means unlimited! # Default Mailbox size, is set to 0 which means unlimited!
mailbox_size_limit = 0 mailbox_size_limit = 0
virtual_mailbox_limit = 0
### TLS settings
### ### TLS settings
## TLS for outgoing mails from the server to another server ###
#smtp_use_tls = yes ## TLS for outgoing mails from the server to another server
#smtp_tls_note_starttls_offer = yes #smtp_use_tls = yes
## TLS for email client #smtp_tls_note_starttls_offer = yes
#smtpd_tls_cert_file = /etc/ssl/server/<SERVERNAME>.pem ## TLS for email client
#smtpd_tls_key_file = /etc/ssl/server/<SERVERNAME>.pem #smtpd_tls_cert_file = /etc/ssl/server/<SERVERNAME>.pem
#smtpd_tls_CAfile = /etc/ssl/cacert.class3.crt # Just an example for CACert.org #smtpd_tls_key_file = /etc/ssl/server/<SERVERNAME>.pem
#smtpd_tls_auth_only = no #smtpd_tls_CAfile = /etc/ssl/cacert.class3.crt # Just an example for CACert.org
#smtpd_tls_loglevel = 1 #smtpd_tls_auth_only = no
#smtpd_tls_received_header = yes #smtpd_tls_loglevel = 1
#smtpd_tls_session_cache_timeout = 3600s #smtpd_tls_received_header = yes
#tls_random_source = dev:/dev/urandom #smtpd_tls_session_cache_timeout = 3600s
#tls_random_source = dev:/dev/urandom
### Quota Settings with vda useflag
## I use only virtual as localdelivery... This permit me to have full ### Quota Settings with vda useflag
## virtual domain hosting without using a lots of maps ## I use only virtual as localdelivery... This permit me to have full
#virtual_transport = virtual ## virtual domain hosting without using a lots of maps
## Generate maildirsize files or not #virtual_transport = virtual
#virtual_create_maildirsize = yes ## Generate maildirsize files or not
## I use Courier IMAP compatibles files. #virtual_create_maildirsize = yes
#virtual_mailbox_extended = yes ## I use Courier IMAP compatibles files.
## Limits only INBOX part (usefull when #virtual_mailbox_extended = yes
## using when you have IMAP users) ## Limits only INBOX part (usefull when
#virtual_mailbox_limit_inbox = yes ## using when you have IMAP users)
## maps of soft disk quotas #virtual_mailbox_limit_inbox = yes
#virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql-virtual_mailbox_limit_maps.cf ## maps of soft disk quotas
#virtual_mailbox_limit_override = yes #virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql-virtual_mailbox_limit_maps.cf
#virtual_maildir_limit_message = Sorry, this user has overdrawn their diskspace quota. Please try again later. #virtual_mailbox_limit_override = yes
#virtual_overquota_bounce = yes #virtual_maildir_limit_message = Sorry, this user has overdrawn their diskspace quota. Please try again later.
#virtual_overquota_bounce = yes
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin debugger_command =
ddd $daemon_directory/$process_name $process_id & sleep 5 PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep 5

View File

@@ -1,8 +1,8 @@
service froxlor service froxlor
{ {
id = froxlor id = froxlor
socket_type = dgram socket_type = stream
protocol = udp protocol = tcp
wait = no wait = no
user = root user = root

View File

@@ -1,63 +1,64 @@
queue_directory = /var/spool/postfix queue_directory = /var/spool/postfix
command_directory = /usr/sbin command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix daemon_directory = /usr/lib/postfix
mail_owner = postfix mail_owner = postfix
inet_interfaces = all inet_interfaces = all
unknown_local_recipient_reject_code = 550 unknown_local_recipient_reject_code = 550
debug_peer_level = 2 debug_peer_level = 2
debugger_command = debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
xxgdb $daemon_directory/$process_name $process_id & sleep 5 xxgdb $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail sendmail_path = /usr/sbin/sendmail
newaliases_path = /usr/bin/newaliases newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq mailq_path = /usr/bin/mailq
setgid_group = maildrop setgid_group = maildrop
html_directory = /usr/share/doc/packages/postfix/html html_directory = /usr/share/doc/packages/postfix/html
manpage_directory = /usr/share/man manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/packages/postfix/samples sample_directory = /usr/share/doc/packages/postfix/samples
readme_directory = /usr/share/doc/packages/postfix/README_FILES readme_directory = /usr/share/doc/packages/postfix/README_FILES
inet_protocols = all inet_protocols = all
biff = no biff = no
append_dot_mydomain = no append_dot_mydomain = no
mail_spool_directory = /var/mail mail_spool_directory = /var/mail
canonical_maps = hash:/etc/postfix/canonical canonical_maps = hash:/etc/postfix/canonical
virtual_mailbox_base = /var/kunden/mail/ virtual_mailbox_base = /var/kunden/mail/
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf
virtual_alias_domains = virtual_alias_domains =
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_alias_maps.cf virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_alias_maps.cf
virtual_uid_maps = static:<VIRTUAL_UID_MAPS> virtual_uid_maps = static:<VIRTUAL_UID_MAPS>
virtual_gid_maps = static:<VIRTUAL_GID_MAPS> virtual_gid_maps = static:<VIRTUAL_GID_MAPS>
virtual_maps = hash:/etc/postfix/virtual virtual_maps = hash:/etc/postfix/virtual
relocated_maps = hash:/etc/postfix/relocated relocated_maps = hash:/etc/postfix/relocated
transport_maps = hash:/etc/postfix/transport transport_maps = hash:/etc/postfix/transport
sender_canonical_maps = hash:/etc/postfix/sender_canonical sender_canonical_maps = hash:/etc/postfix/sender_canonical
masquerade_exceptions = root masquerade_exceptions = root
masquerade_classes = envelope_sender, header_sender, header_recipient masquerade_classes = envelope_sender, header_sender, header_recipient
myhostname = <SERVERNAME> myhostname = <SERVERNAME>
mydomain = <SERVERNAME> mydomain = <SERVERNAME>
program_directory = /usr/lib/postfix program_directory = /usr/lib/postfix
masquerade_domains = masquerade_domains =
mydestination = $myhostname $mydomain localhost localhost.$mydomain mydestination = $myhostname $mydomain localhost localhost.$mydomain
mynetworks = 127.0.0.0/8 mynetworks = 127.0.0.0/8
defer_transports = defer_transports =
disable_dns_lookups = no disable_dns_lookups = no
relayhost = relayhost =
mailbox_command = mailbox_command =
mailbox_transport = mailbox_transport =
strict_8bitmime = no strict_8bitmime = no
disable_mime_output_conversion = no disable_mime_output_conversion = no
smtpd_client_restrictions = smtpd_client_restrictions =
smtpd_helo_required = no smtpd_helo_required = no
smtpd_helo_restrictions = smtpd_helo_restrictions =
strict_rfc821_envelopes = no strict_rfc821_envelopes = no
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination
smtpd_sasl_auth_enable = yes smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes broken_sasl_auth_clients = yes
#smtpd_use_tls = no #smtpd_use_tls = no
#smtp_use_tls = no #smtp_use_tls = no
alias_maps = $alias_database alias_maps = $alias_database
mailbox_size_limit = 0 mailbox_size_limit = 0
virtual_mailbox_limit = 0
message_size_limit = 10240000 message_size_limit = 10240000

View File

@@ -33,7 +33,7 @@ url.access-deny = ("~", ".inc")
fastcgi.server = ( fastcgi.server = (
".php" => ( ".php" => (
"localhost" => ( "localhost" => (
"socket" => "/var/kunden/tmp/lighttpd-fcgi-sock-lighttpd", "socket" => "<CUSTOMER_TMP>lighttpd-fcgi-sock-lighttpd",
"broken-scriptfilename" => "enable", "broken-scriptfilename" => "enable",
"bin-path" => "/usr/bin/php5-cgi", "bin-path" => "/usr/bin/php5-cgi",
"min-procs" => 1, "min-procs" => 1,

View File

@@ -1,92 +1,93 @@
# Postfix programs paths settings # Postfix programs paths settings
command_directory = /usr/sbin command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix daemon_directory = /usr/lib/postfix
program_directory = /usr/lib/postfix program_directory = /usr/lib/postfix
sendmail_path = /usr/sbin/sendmail sendmail_path = /usr/sbin/sendmail
## General Postfix configuration ## General Postfix configuration
# should be the default domain from your provider eg. "server100.provider.tld" # should be the default domain from your provider eg. "server100.provider.tld"
mydomain = <SERVERNAME> mydomain = <SERVERNAME>
# should be different from $mydomain eg. "mail.$mydomain" # should be different from $mydomain eg. "mail.$mydomain"
myhostname = mail.<SERVERNAME> myhostname = mail.<SERVERNAME>
mydestination = $myhostname, mydestination = $myhostname,
$mydomain, $mydomain,
localhost.$myhostname, localhost.$myhostname,
localhost.$mydomain, localhost.$mydomain,
localhost localhost
mynetworks = 127.0.0.0/8 mynetworks = 127.0.0.0/8
inet_interfaces = all inet_interfaces = all
append_dot_mydomain = no append_dot_mydomain = no
biff = no biff = no
# Postfix performance settings # Postfix performance settings
default_destination_concurrency_limit = 20 default_destination_concurrency_limit = 20
local_destination_concurrency_limit = 2 local_destination_concurrency_limit = 2
# SMTPD Settings # SMTPD Settings
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu/GNU) smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu/GNU)
smtpd_helo_required = yes smtpd_helo_required = yes
smtpd_recipient_restrictions = permit_mynetworks, smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated, permit_sasl_authenticated,
reject_unauth_destination, reject_unauth_destination,
reject_unauth_pipelining, reject_unauth_pipelining,
reject_non_fqdn_recipient reject_non_fqdn_recipient
smtpd_sender_restrictions = permit_mynetworks, smtpd_sender_restrictions = permit_mynetworks,
permit_sasl_authenticated, permit_sasl_authenticated,
reject_unknown_hostname, reject_unknown_hostname,
reject_unknown_recipient_domain, reject_unknown_recipient_domain,
reject_unknown_sender_domain reject_unknown_sender_domain
smtpd_client_restrictions = permit_mynetworks, smtpd_client_restrictions = permit_mynetworks,
permit_sasl_authenticated, permit_sasl_authenticated,
reject_unknown_client reject_unknown_client
# Maximum size of Message in bytes (50MB) # Maximum size of Message in bytes (50MB)
message_size_limit = 52428800 message_size_limit = 52428800
## SASL Auth Settings ## SASL Auth Settings
smtpd_sasl_auth_enable = yes smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes broken_sasl_auth_clients = yes
## Dovecot Settings for deliver, SASL Auth and virtual transport ## Dovecot Settings for deliver, SASL Auth and virtual transport
## uncomment those line to use Dovecot ## uncomment those line to use Dovecot
#mailbox_command = /usr/lib/dovecot/deliver #mailbox_command = /usr/lib/dovecot/deliver
#virtual_transport = dovecot #virtual_transport = dovecot
#dovecot_destination_recipient_limit = 1 #dovecot_destination_recipient_limit = 1
# Virtual delivery settings # Virtual delivery settings
virtual_mailbox_base = <VIRTUAL_MAILBOX_BASE> virtual_mailbox_base = <VIRTUAL_MAILBOX_BASE>
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_alias_maps.cf virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_alias_maps.cf
virtual_uid_maps = static:<VIRTUAL_UID_MAPS> virtual_uid_maps = static:<VIRTUAL_UID_MAPS>
virtual_gid_maps = static:<VIRTUAL_GID_MAPS> virtual_gid_maps = static:<VIRTUAL_GID_MAPS>
# Local delivery settings # Local delivery settings
local_transport = local local_transport = local
alias_database = hash:/etc/aliases alias_database = hash:/etc/aliases
alias_maps = $alias_database alias_maps = $alias_database
# Default Mailbox size, is set to 0 which means unlimited! # Default Mailbox size, is set to 0 which means unlimited!
mailbox_size_limit = 0 mailbox_size_limit = 0
virtual_mailbox_limit = 0
### TLS settings
### ### TLS settings
## TLS for outgoing mails from the server to another server ###
#smtp_use_tls = yes ## TLS for outgoing mails from the server to another server
#smtp_tls_note_starttls_offer = yes #smtp_use_tls = yes
## TLS for email client #smtp_tls_note_starttls_offer = yes
#smtpd_tls_cert_file = /etc/ssl/server/<SERVERNAME>.crt ## TLS for email client
#smtpd_tls_key_file = /etc/ssl/server/<SERVERNAME>.key #smtpd_tls_cert_file = /etc/ssl/server/<SERVERNAME>.crt
#smtpd_tls_CAfile = /etc/ssl/cacert.class3.crt # Just an example for CACert.org #smtpd_tls_key_file = /etc/ssl/server/<SERVERNAME>.key
#smtpd_tls_auth_only = no #smtpd_tls_CAfile = /etc/ssl/cacert.class3.crt # Just an example for CACert.org
#smtpd_tls_loglevel = 1 #smtpd_tls_auth_only = no
#smtpd_tls_received_header = yes #smtpd_tls_loglevel = 1
#smtpd_tls_session_cache_timeout = 3600s #smtpd_tls_received_header = yes
#tls_random_source = dev:/dev/urandom #smtpd_tls_session_cache_timeout = 3600s
#tls_random_source = dev:/dev/urandom
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin debugger_command =
ddd $daemon_directory/$process_name $process_id & sleep 5 PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep 5

View File

@@ -1,8 +1,8 @@
service froxlor service froxlor
{ {
id = froxlor id = froxlor
socket_type = dgram socket_type = stream
protocol = udp protocol = tcp
wait = no wait = no
user = root user = root