function SAVE_FREEWEB_MYSQL() { $servername = trim(strtolower($_POST["servername"])); if (substr($servername, 0, 1) == '.') { echo $servername . " FAILED\n"; return; } $users = new usersMenus(); $sock = new sockets(); $FreewebsStorageDirectory = $sock->GET_INFO("FreewebsStorageDirectory"); if (!$users->AsWebMaster) { return "FALSE"; } $uid = $_POST["uid"]; $mysql_database = format_mysql_table($_POST["mysql_database"]); $mysql_password = $_POST["mysql_password"]; $mysql_username = $_POST["mysql_username"]; $lvm_vg = $_POST["lvm_vg"]; $vg_size = $_POST["vg_size"]; $ServerIP = $_POST["ServerIP"]; $ServerPort = 0; if (preg_match("#(.+?):([0-9]+)#", $ServerIP, $re)) { $ServerIP = $re[1]; $ServerPort = $re[2]; } if (!is_numeric($vg_size)) { $vg_size = 5000; } $ftpuser = $_POST["ftpuser"]; $ftppassword = $_POST["ftppassword"]; $useSSL = $_POST["useSSL"]; if (!$users->PUREFTP_INSTALLED) { $_POST["useFTP"] = 0; $ftpuser = null; $ftppassword = null; } if ($_POST["useFTP"] == 1) { if ($ftpuser == null) { $_POST["useFTP"] = 0; $ftpuser = null; $ftppassword = null; } } $sql = "SELECT servername FROM freeweb WHERE servername='{$_POST["servername"]}'"; $q = new mysql(); $ligne = @mysql_fetch_array($q->QUERY_SQL($sql, 'artica_backup')); if ($ligne["servername"] != null) { if ($uid != null) { $u = new user($uid); $ou = $u->ou; } if (!$users->AsSystemAdministrator) { $ou = $_SESSION["ou"]; } $sql = "UPDATE freeweb SET \n\t\t\tmysql_password='******',\n\t\t\tmysql_username='******',\n\t\t\tmysql_database='{$mysql_database}',\n\t\t\tmysql_instance_id='{$_POST["mysql_instance_id"]}',\n\t\t\tftpuser='******',\n\t\t\tftppassword='******',\n\t\t\tuseMysql='{$_POST["useMysql"]}',\n\t\t\tuseFTP='{$_POST["useFTP"]}'\n\t\t\tWHERE servername='{$servername}'\n\t\t"; } writelogs("{$sql}", __FUNCTION__, __FILE__, __LINE__); $q = new mysql(); $q->BuildTables(); $q->QUERY_SQL($sql, "artica_backup"); if (!$q->ok) { if (preg_match("#Unknown column#i", $q->mysql_error)) { $q->BuildTables(); $q->QUERY_SQL($sql, "artica_backup"); } } if (!$q->ok) { echo $q->mysql_error; return; } $sock = new sockets(); if ($_POST["useFTP"] == 1) { if ($users->PUREFTP_INSTALLED) { if (trim($ftpuser) != null) { if (trim($ftppassword) != null) { $pure = new pureftpd_user(); if (!$pure->CreateUser($ftpuser, $ftppassword, $servername)) { echo "FTP: Failed\n"; return; } $sock->getFrameWork("services.php?reload-pure-ftpd=yes"); } } } } if ($_POST["useMysql"] == 1) { if (!$q->DATABASE_EXISTS($mysql_database)) { $q->CREATE_DATABASE("{$mysql_database}"); } if (!$q->PRIVILEGES($mysql_username, $mysql_password, $mysql_database)) { echo "GRANT {$mysql_database} FAILED FOR {$mysql_username}\n{$q->mysql_error}"; } } if (isset($_POST["ADD_DNS_ENTRY"])) { $dnsDOM = explode(".", $_POST["servername"]); $netbiosname = $dnsDOM[0]; unset($dnsDOM[0]); $domainname = implode(".", $dnsDOM); include_once dirname(__FILE__) . "/ressources/class.pdns.inc"; $pdns = new pdns($domainname); $pdns->EditIPName($netbiosname, $_POST["ADD_DNS_ENTRY"], "A"); } if ($ligne["servername"] == null) { if ($_POST["force-groupware"] != null) { $sql = "INSERT INTO drupal_queue_orders(`ORDER`,`servername`) VALUES('INSTALL_GROUPWARE','{$servername}')"; $q = new mysql(); $q->QUERY_SQL($sql, "artica_backup"); $sock->getFrameWork("freeweb.php?rebuild-vhost=yes&servername={$servername}"); } } $sock->getFrameWork("services.php?freeweb-start=yes"); sleep(2); $sock->getFrameWork("cmd.php?freeweb-restart=yes"); }
function config($servername) { $GLOBALS["SERVICE_NAME"] = "Wordpress {$servername}"; $unix = new unix(); $pidfile = "/etc/artica-postfix/pids/" . basename(__FILE__) . "." . __FUNCTION__ . ".{$servername}.pid"; $pid = $unix->get_pid_from_file($pidfile); if ($unix->process_exists($pid, basename(__FILE__))) { build_progress("{$servername} Already executed", 110); die; } @file_put_contents($pidfile, getmypid()); $q = new mysql(); $cp = $unix->find_program("cp"); $sock = new sockets(); $Salts = null; $DB_HOST = $q->mysql_server; if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$servername}: MySQL host: {$DB_HOST}\n"; } if ($q->mysql_server == "127.0.0.1" or $q->mysql_server == "localhost" or $q->mysql_server == "localhost:") { if ($q->SocketPath == null) { $q->SocketPath = "/var/run/mysqld/mysqld.sock"; } $DB_HOST = "localhost:{$q->SocketPath}"; } if (!is_file("/usr/share/artica-postfix/bin/wp-cli.phar")) { build_progress("wp-cli.phar: no such binary", 110); return; } @chmod("/usr/share/artica-postfix/bin/wp-cli.phar", 0755); build_progress("{$servername}: {testing_configuration}", 40); $free = new freeweb($servername); $WORKING_DIRECTORY = $free->www_dir; if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$servername}: Directory: {$WORKING_DIRECTORY}\n"; } @unlink("{$WORKING_DIRECTORY}/wp-config.php"); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$servername}: Duplicate: {$free->groupware_duplicate}\n"; } if ($free->groupware_duplicate != null) { build_progress("{$servername}: {duplicate} {from} {$free->groupware_duplicate}", 40); if (!duplicate_wordpress($servername)) { build_progress("{$servername}: {installing} {failed}...", 110); apache_admin_mysql(0, "Failed to duplicate {$servername} from {$free->groupware_duplicate}", null, __FILE__, __LINE__); return; } apache_admin_mysql(2, "Success duplicate {$servername} from {$free->groupware_duplicate}", null, __FILE__, __LINE__); $free = new freeweb($servername); } else { if (!scan($WORKING_DIRECTORY)) { build_progress("{$servername}: {installing}...", 42); @mkdir($WORKING_DIRECTORY); shell_exec("{$cp} -rf /usr/share/wordpress-src/* {$WORKING_DIRECTORY}/"); if (!scan($WORKING_DIRECTORY)) { apache_admin_mysql(0, "Failed to install {$servername} from /usr/share/wordpress-src", null, __FILE__, __LINE__); build_progress("{$servername}: {installing} {failed}...", 110); return; } apache_admin_mysql(2, "Success to install {$servername} from /usr/share/wordpress-src", null, __FILE__, __LINE__); } } $wordpressDB = $free->mysql_database; if ($wordpressDB == null) { $wordpressDB = $free->CreateDatabaseName(); $free->mysql_database = $wordpressDB; $free->CreateSite(true); } $WordPressDBPass = $free->mysql_password; $DB_USER = $free->mysql_username; if ($DB_USER == "wordpress") { $DB_USER = null; } if ($DB_USER == null) { $DB_USER = "******" . time(); $free->mysql_username = $DB_USER; $free->CreateSite(true); } if ($WordPressDBPass == null) { $WordPressDBPass = md5(time()); $free->mysql_password = $WordPressDBPass; $free->CreateSite(true); } $DB_PASSWORD = $WordPressDBPass; if (is_file("{$WORKING_DIRECTORY}/salts.php")) { $Salts = @file_get_contents("{$WORKING_DIRECTORY}/salts.php"); } if ($Salts == null) { $TMP = $unix->FILE_TEMP(); build_progress("{$servername}: Acquiring Salts...", 44); $curl = new ccurl("https://api.wordpress.org/secret-key/1.1/salt/"); if (!$curl->GetFile("{$TMP}")) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$servername}: Unable to download salts !!\n"; } build_progress("{$servername}: Acquiring Salts {failed}...", 110); return; } $ASASLT = false; $fa = explode("\n", @file_get_contents($TMP)); @unlink($TMP); while (list($num, $ligne) = each($fa)) { if (preg_match("#define\\(#", $ligne)) { $ASASLT = true; break; } } if (!$ASASLT) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$servername}: Unable to download salts !!\n"; } build_progress("{$servername}: Acquiring Salts {failed}...", 110); return; } @file_put_contents("{$WORKING_DIRECTORY}/salts.php", @implode("\n", $fa)); } build_progress("{$servername}: checking...", 48); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$servername}: MySQL host...........: \"{$DB_HOST}\"\n"; } if (!$q->DATABASE_EXISTS($wordpressDB)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$servername}: Create MySQL database: \"{$wordpressDB}\"\n"; } $q->CREATE_DATABASE($wordpressDB); } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$servername}: MySQL database.......: \"{$wordpressDB}\"\n"; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$servername}: MySQL user...........: \"{$DB_USER}\"\n"; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$servername}: MySQL Password.......: \"{$DB_PASSWORD}\"\n"; } $q->PRIVILEGES($DB_USER, $WordPressDBPass, $wordpressDB); $f[] = "<?php"; $f[] = $Salts; $f[] = "/**"; $f[] = " * The base configurations of the WordPress."; $f[] = " *"; $f[] = " * This file has the following configurations: MySQL settings, Table Prefix,"; $f[] = " * Secret Keys, WordPress Language, and ABSPATH. You can find more information"; $f[] = " * by visiting {@link http://codex.wordpress.org/Editing_wp-config.php Editing"; $f[] = " * wp-config.php} Codex page. You can get the MySQL settings from your web host."; $f[] = " *"; $f[] = " * This file is used by the wp-config.php creation script during the"; $f[] = " * installation. You don't have to use the web site, you can just copy this file"; $f[] = " * to \"wp-config.php\" and fill in the values."; $f[] = " *"; $f[] = " * @package WordPress"; $f[] = " */"; $f[] = ""; $f[] = "// ** MySQL settings - You can get this info from your web host ** //"; $f[] = "/** The name of the database for WordPress */"; $f[] = "define('DB_NAME', '{$wordpressDB}');"; $f[] = ""; $f[] = "/** MySQL database username */"; $f[] = "define('DB_USER', '{$DB_USER}');"; $f[] = ""; $f[] = "/** MySQL database password */"; $f[] = "define('DB_PASSWORD', '{$DB_PASSWORD}');"; $f[] = ""; $f[] = "/** MySQL hostname */"; $f[] = "define('DB_HOST', '{$DB_HOST}');"; $f[] = ""; $f[] = "/** Database Charset to use in creating database tables. */"; $f[] = "define('DB_CHARSET', 'utf8');"; $f[] = ""; $f[] = "/** The Database Collate type. Don't change this if in doubt. */"; $f[] = "define('DB_COLLATE', '');"; $f[] = ""; $f[] = "/**#@+"; $f[] = " * Authentication Unique Keys and Salts."; $f[] = " *"; $f[] = " * Change these to different unique phrases!"; $f[] = " * You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}"; $f[] = " * You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again."; $f[] = " *"; $f[] = " * @since 2.6.0"; $f[] = " */"; $f[] = ""; $f[] = "/**#@-*/"; $f[] = ""; $f[] = "/**"; $f[] = " * WordPress Database Table prefix."; $f[] = " *"; $f[] = " * You can have multiple installations in one database if you give each a unique"; $f[] = " * prefix. Only numbers, letters, and underscores please!"; $f[] = " */"; $f[] = "\$table_prefix = 'wp_';"; $f[] = ""; $f[] = "/**"; $f[] = " * WordPress Localized Language, defaults to English."; $f[] = " *"; $f[] = " * Change this to localize WordPress. A corresponding MO file for the chosen"; $f[] = " * language must be installed to wp-content/languages. For example, install"; $f[] = " * de_DE.mo to wp-content/languages and set WPLANG to 'de_DE' to enable German"; $f[] = " * language support."; $f[] = " */"; $f[] = "define('WPLANG', '');"; $f[] = ""; $f[] = "/**"; $f[] = " * For developers: WordPress debugging mode."; $f[] = " *"; $f[] = " * Change this to true to enable the display of notices during development."; $f[] = " * It is strongly recommended that plugin and theme developers use WP_DEBUG"; $f[] = " * in their development environments."; $f[] = " */"; $f[] = "define('WP_DEBUG', false);"; $f[] = ""; $f[] = "/* That's all, stop editing! Happy blogging. */"; $f[] = ""; $f[] = "/** Absolute path to the WordPress directory. */"; $f[] = "if ( !defined('ABSPATH') )"; $f[] = "\tdefine('ABSPATH', dirname(__FILE__) . '/');"; $f[] = ""; $f[] = "/** Sets up WordPress vars and included files. */"; $f[] = "require_once(ABSPATH . 'wp-settings.php');"; $f[] = "?>"; @file_put_contents("{$WORKING_DIRECTORY}/wp-config.php", @implode("\n", $f)); build_progress("{$servername}: wp-config.php {done}...", 50); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$servername}: {$WORKING_DIRECTORY}/wp-config.php done...\n"; } $f = array(); $f[] = "<?php"; $f[] = "/*"; $f[] = "WP-Cache Config Sample File"; $f[] = ""; $f[] = "See wp-cache.php for author details."; $f[] = "*/"; $f[] = ""; $f[] = "if ( ! defined('WPCACHEHOME') )"; $f[] = "\tdefine( 'WPCACHEHOME', WP_PLUGIN_DIR . '/wp-super-cache/' );"; $f[] = ""; $f[] = "\$cache_compression = 0; // Super cache compression"; $f[] = "\$cache_enabled = false;"; $f[] = "\$super_cache_enabled = false;"; $f[] = "\$cache_max_time = 3600; //in seconds"; $f[] = "//\$use_flock = true; // Set it true or false if you know what to use"; $f[] = "\$cache_path = WP_CONTENT_DIR . '/cache/';"; $f[] = "\$file_prefix = 'wp-cache-';"; $f[] = "\$ossdlcdn = 0;"; $f[] = ""; $f[] = "// Array of files that have 'wp-' but should still be cached"; $f[] = "\$cache_acceptable_files = array( 'wp-comments-popup.php', 'wp-links-opml.php', 'wp-locations.php' );"; $f[] = ""; $f[] = "\$cache_rejected_uri = array('wp-.*\\.php', 'index\\.php');"; $f[] = "\$cache_rejected_user_agent = array ( 0 => 'bot', 1 => 'ia_archive', 2 => 'slurp', 3 => 'crawl', 4 => 'spider', 5 => 'Yandex' );"; $f[] = ""; $f[] = "\$cache_rebuild_files = 1;"; $f[] = ""; $f[] = "// Disable the file locking system."; $f[] = "// If you are experiencing problems with clearing or creating cache files"; $f[] = "// uncommenting this may help."; $f[] = "\$wp_cache_mutex_disabled = 1;"; $f[] = ""; $f[] = "// Just modify it if you have conflicts with semaphores"; $f[] = "\$sem_id = 5419;"; $f[] = ""; $f[] = "if ( '/' != substr(\$cache_path, -1)) {"; $f[] = "\t\$cache_path .= '/';"; $f[] = "}"; $f[] = ""; $f[] = "\$wp_cache_mobile = 0;"; $f[] = "\$wp_cache_mobile_whitelist = 'Stand Alone/QNws';"; $f[] = "\$wp_cache_mobile_browsers = 'Android, 2.0 MMP, 240x320, AvantGo, BlackBerry, Blazer, Cellphone, Danger, DoCoMo, Elaine/3.0, EudoraWeb, hiptop, IEMobile, iPhone, iPod, KYOCERA/WX310K, LG/U990, MIDP-2.0, MMEF20, MOT-V, NetFront, Newt, Nintendo Wii, Nitro, Nokia, Opera Mini, Palm, Playstation Portable, portalmmm, Proxinet, ProxiNet, SHARP-TQ-GX10, Small, SonyEricsson, Symbian OS, SymbianOS, TS21i-10, UP.Browser, UP.Link, Windows CE, WinWAP';"; $f[] = ""; $f[] = "// change to relocate the supercache plugins directory"; $f[] = "\$wp_cache_plugins_dir = WPCACHEHOME . 'plugins';"; $f[] = "// set to 1 to do garbage collection during normal process shutdown instead of wp-cron"; $f[] = "\$wp_cache_shutdown_gc = 0;"; $f[] = "\$wp_super_cache_late_init = 0;"; $f[] = ""; $f[] = "// uncomment the next line to enable advanced debugging features"; $f[] = "\$wp_super_cache_advanced_debug = 0;"; $f[] = "\$wp_super_cache_front_page_text = '';"; $f[] = "\$wp_super_cache_front_page_clear = 0;"; $f[] = "\$wp_super_cache_front_page_check = 0;"; $f[] = "\$wp_super_cache_front_page_notification = '0';"; $f[] = ""; $f[] = "\$wp_cache_object_cache = 0;"; $f[] = "\$wp_cache_anon_only = 0;"; $f[] = "\$wp_supercache_cache_list = 0;"; $f[] = "\$wp_cache_debug_to_file = 0;"; $f[] = "\$wp_super_cache_debug = 0;"; $f[] = "\$wp_cache_debug_level = 5;"; $f[] = "\$wp_cache_debug_ip = '';"; $f[] = "\$wp_cache_debug_log = '';"; $f[] = "\$wp_cache_debug_email = '';"; $f[] = "\$wp_cache_pages[ \"search\" ] = 0;"; $f[] = "\$wp_cache_pages[ \"feed\" ] = 0;"; $f[] = "\$wp_cache_pages[ \"category\" ] = 0;"; $f[] = "\$wp_cache_pages[ \"home\" ] = 0;"; $f[] = "\$wp_cache_pages[ \"frontpage\" ] = 0;"; $f[] = "\$wp_cache_pages[ \"tag\" ] = 0;"; $f[] = "\$wp_cache_pages[ \"archives\" ] = 0;"; $f[] = "\$wp_cache_pages[ \"pages\" ] = 0;"; $f[] = "\$wp_cache_pages[ \"single\" ] = 0;"; $f[] = "\$wp_cache_pages[ \"author\" ] = 0;"; $f[] = "\$wp_cache_hide_donation = 0;"; $f[] = "\$wp_cache_not_logged_in = 0;"; $f[] = "\$wp_cache_clear_on_post_edit = 0;"; $f[] = "\$wp_cache_hello_world = 0;"; $f[] = "\$wp_cache_mobile_enabled = 0;"; $f[] = "\$wp_cache_cron_check = 0;"; $f[] = "?>"; if (is_file("{$WORKING_DIRECTORY}/wp-content/plugins/wp-super-cache/wp-cache-config-sample.php")) { @file_put_contents("{$WORKING_DIRECTORY}/wp-content/plugins/wp-super-cache/wp-cache-config.php", @implode("\n", $f)); } @file_put_contents("{$WORKING_DIRECTORY}/wp-config.php", @implode("\n", $f)); build_progress("{$servername}: wp-config.php {done}...", 50); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$servername}: {$WORKING_DIRECTORY}/wp-config.php done...\n"; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$servername}: Testing configuration...\n"; } if ($free->groupware_admin == null) { $ldap = new clladp(); $free->groupware_admin = $ldap->ldap_admin; $free->groupware_password = $ldap->ldap_password; } $admin = $unix->shellEscapeChars($free->groupware_admin); $password = $unix->shellEscapeChars($free->groupware_password); $WORKING_DIRECTORY_CMDLINE = $unix->shellEscapeChars($WORKING_DIRECTORY); $cmd = array(); $cmd[] = "/usr/share/artica-postfix/bin/wp-cli.phar core install"; $cmd[] = "--url=\"{$servername}\""; $cmd[] = "--title=\"{$servername}\""; $cmd[] = "--admin_user={$admin}"; $cmd[] = "--admin_password={$password}"; $cmd[] = "--admin_email={$admin}@{$servername}"; $cmd[] = "--path={$WORKING_DIRECTORY_CMDLINE}"; $cmd[] = "--allow-root --debug --no-color 2>&1"; $cmdline = @implode(" ", $cmd); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$servername}: {$cmdline}\n"; } build_progress("{$servername}: {install_wordpress} {please_wait} !...", 51); exec($cmdline, $results1); while (list($num, $ligne) = each($results1)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$servername}: {$ligne}\n"; } } build_progress("{$servername}: {enforce_security}", 52); secure_wp($WORKING_DIRECTORY); build_progress("{$servername}: {directory_size}", 53); $size = $unix->DIRSIZE_BYTES($free->WORKING_DIRECTORY); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$servername}: {$free->WORKING_DIRECTORY} {$size}Bytes\n"; } $q->QUERY_SQL("UPDATE freeweb SET DirectorySize={$size} WHERE servername='{$servername}'", "artica_backup"); if (!$q->ok) { system_admin_events("{$q->mysql_error}", __FUNCTION__, __FILE__, __LINE__, "freewebs"); } }
function OBM2_INSTALL($servername, $root, $hash = array()) { $GLOBALS["ADDLOG"] = "{$GLOBALS["ARTICALOGDIR"]}/{$servername}.log"; if ($root == null) { events("Starting install OBM2 Unable to stat root dir"); return false; } if (!is_dir("/opt/artica/install/sources/obm")) { events("Starting install OBM2 Unable to stat /opt/artica/install/sources/obm"); return false; } $sqlfiles = array("create_obmdb_2.3.mysql.sql", "obmdb_prefs_values_2.3.sql", "obmdb_default_values_2.3.sql", "obmdb_test_values_2.3.sql", "data-fr/obmdb_nafcode_2.3.sql", "data-fr/obmdb_ref_2.3.sql", "data-en/obmdb_nafcode_2.3.sql", "data-en/obmdb_ref_2.3.sql"); $user = $hash["wwwmysqluser"][0]; $mysql_password = $hash[strtolower("WWWMysqlPassword")][0]; $appli_user = $hash["wwwappliuser"]; $appli_password = $hash["wwwapplipassword"]; if ($user == null) { events("Starting install OBM2 Unable to stat Mysql username"); return false; } if ($mysql_password == null) { events("Starting install OBM2 Unable to stat Mysql password"); return false; } @mkdir($root, 0755, true); $server_database = str_replace(".", "_", $servername); $server_database = str_replace("-", "_", $server_database); $q = new mysql(); if (!$q->DATABASE_EXISTS($server_database)) { events("Starting install OBM2 sub-system mysql database {$server_database}..."); $q->CREATE_DATABASE($server_database); if (!$q->DATABASE_EXISTS($server_database)) { events("Starting install OBM2 unable to create MYSQL Database"); return false; } } events("Starting install OBM2 installing source code in {$root}"); shell_exec("/bin/cp -rf /opt/artica/install/sources/obm/* {$root}/"); if ($q->mysql_password != null) { $password = "******"; } else { events("Starting install OBM2 installing tables datas with null password"); } $unix = new unix(); //<$sql_file $cmd = $unix->find_program("mysql") . " --port={$q->mysql_port} --skip-column-names --database={$server_database} --silent --xml "; $cmd = $cmd . " --user={$q->mysql_admin}{$password}"; if (!OBM2_CheckObmTables($server_database)) { while (list($num, $filesql) = each($sqlfiles)) { if (is_file("/opt/artica/install/sources/obm/scripts/2.3/{$filesql}")) { events("installing {$filesql} SQL commands"); shell_exec($cmd . " </opt/artica/install/sources/obm/scripts/2.3/{$filesql}"); } } } $version = OBM2_VERSION($root); if ($version == null) { events("Starting install unable to stat version"); return false; } events("Starting install OBM2 version {$version}"); if (is_file("{$root}/scripts/2.3/updates/update-2.3.1-{$version}.mysql.sql")) { events("Starting updating OBM2 version 2.3.1-{$version}"); shell_exec($cmd . " <{$root}/scripts/2.3/updates/update-2.3.1-{$version}.mysql.sql"); } else { events("Starting updating unable to stat {$root}/scripts/2.3/updates/update-2.3.1-{$version}.mysql.sql"); } //scripts/2.3/updates/update-2.3.1-2.3.2.mysql.sql $q->PRIVILEGES($user, $mysql_password, $server_database); OBM2_INSTALL_SCRIPTS($root, $servername, $server_database, $user, $mysql_password); }
function Save() { $servername = trim(strtolower($_GET["servername"])); if (substr($servername, 0, 1) == '.') { echo $servername . " FAILED\n"; return; } $users = new usersMenus(); $sock = new sockets(); $tpl = new templates(); $FreewebsStorageDirectory = $sock->GET_INFO("FreewebsStorageDirectory"); if (!$users->AsWebMaster) { return "FALSE"; } $uid = $_GET["uid"]; $mysql_database = format_mysql_table($_GET["mysql_database"]); $mysql_password = $_GET["mysql_password"]; $mysql_username = $_GET["mysql_username"]; $lvm_vg = $_GET["lvm_vg"]; $vg_size = $_GET["vg_size"]; $ServerIP = $_GET["ServerIP"]; $ServerPort = 0; if (preg_match("#(.+?):([0-9]+)#", $ServerIP, $re)) { $ServerIP = $re[1]; $ServerPort = $re[2]; } if (!is_numeric($vg_size)) { $vg_size = 5000; } $ftpuser = $_GET["ftpuser"]; $ftppassword = $_GET["ftppassword"]; $useSSL = $_GET["useSSL"]; if (!$users->PUREFTP_INSTALLED) { $_GET["useFTP"] = 0; $ftpuser = null; $ftppassword = null; } $sql = "SELECT servername FROM freeweb WHERE servername='{$_GET["servername"]}'"; $q = new mysql(); $ligne = @mysql_fetch_array($q->QUERY_SQL($sql, 'artica_backup')); if ($ligne["servername"] != null) { if ($uid != null) { $u = new user($uid); $ou = $u->ou; } if (!$users->AsSystemAdministrator) { $ou = $_SESSION["ou"]; } $sql = "UPDATE freeweb SET \n\t\t\tmysql_password='******',\n\t\t\tmysql_username='******',\n\t\t\tmysql_database='{$mysql_database}',\n\t\t\tmysql_instance_id='{$_GET["mysql_instance_id"]}',\n\t\t\tftpuser='******',\n\t\t\tftppassword='******',\n\t\t\tuid='{$uid}',\n\t\t\tgpid='{$_GET["gpid"]}',\n\t\t\tuseMysql='{$_GET["useMysql"]}',\n\t\t\tuseFTP='{$_GET["useFTP"]}',\n\t\t\tlvm_vg='{$_GET["lvm_vg"]}',\n\t\t\tlvm_size='{$_GET["vg_size"]}',\n\t\t\tUseLoopDisk='{$_GET["UseLoopDisk"]}',\n\t\t\tLoopMounts='{$_GET["LoopMounts"]}',\n\t\t\twww_dir='{$_GET["www_dir"]}',\n\t\t\tUseReverseProxy='{$_GET["UseReverseProxy"]}',\n\t\t\tProxyPass='******',\n\t\t\tuseSSL='{$useSSL}',\n\t\t\tServerPort='{$ServerPort}',\n\t\t\tou='{$ou}',\n\t\t\tForwarder='{$_GET["Forwarder"]}',\n\t\t\tForwardTo='{$_GET["ForwardTo"]}',\n\t\t\tServerIP='{$ServerIP}'\n\t\t\tWHERE servername='{$servername}'\n\t\t"; } else { $ApacheServerName = $sock->GET_INFO("ApacheServerName"); if ($ApacheServerName == null) { $ApacheServerName = $users->fqdn; } if ($uid != null) { $u = new user($uid); $ou = $u->ou; } if ($ou != null) { if ($FreewebsStorageDirectory != null) { $www_dir = "{$FreewebsStorageDirectory}/{$servername}"; } } $sock = new sockets(); $servername = str_replace('..', '.', $servername); $servername = str_replace('/', '.', $servername); $servername = str_replace('\\', '.', $servername); $servername = str_replace(' ', '.', $servername); $servername = str_replace('$', '.', $servername); $servername = str_replace('#', '.', $servername); $servername = str_replace('%', '.', $servername); $servername = str_replace('*', '.', $servername); if (substr($servername, strlen($servername) - 1, 1) == '.') { $servername = substr($servername, 0, strlen($servername) - 1); } if (substr($servername, 0, 1) == '.') { $servername = substr($servername, 1, strlen($servername)); } if ($servername == $ApacheServerName) { echo $tpl->javascript_parse_text("{virtual_hostname_cannot_same_main_hostname}", 1); return; } if ($_GET["force-groupware"] != null) { $groupware_field = ",groupware"; $groupware_value = ",'{$_GET["force-groupware"]}'"; } if ($_GET["www_dir"] != null) { $www_dir_field = ",www_dir"; $www_dir_value = ",'{$_GET["www_dir"]}'"; } $sock->getFrameWork("freeweb.php?force-resolv=yes"); $sql = "INSERT INTO freeweb (mysql_password,mysql_username,ftpuser,ftppassword,useSSL,servername,mysql_database,\n\t\tuid,gpid,useMysql,useFTP,lvm_vg,lvm_size,UseLoopDisk,LoopMounts,ou,domainname,www_dir,ServerPort,UseReverseProxy,\n\t\tProxyPass,Forwarder,ForwardTo,ForceInstanceZarafaID,mysql_instance_id,ServerIP{$groupware_field}{$www_dir_field})\n\t\tVALUES('{$mysql_password}','{$mysql_username}','{$ftpuser}','{$ftppassword}','{$useSSL}','{$servername}','{$mysql_database}',\n\t\t'{$uid}','{$_GET["gpid"]}','{$_GET["useMysql"]}',\n\t\t'{$_GET["useFTP"]}','{$_GET["lvm_vg"]}','{$_GET["vg_size"]}','{$_GET["UseLoopDisk"]}','{$_GET["LoopMounts"]}','{$ou}',\n\t\t'{$_GET["domainname"]}','{$FreewebsStorageDirectory}','{$ServerPort}','{$_GET["UseReverseProxy"]}','{$_GET["ProxyPass"]}',\n\t\t'{$_GET["Forwarder"]}','{$_GET["ForwardTo"]}','{$_GET["ForceInstanceZarafaID"]}','{$_GET["mysql_instance_id"]}','{$ServerIP}'{$groupware_value}{$www_dir_value}\n\t\t)"; } writelogs("{$sql}", __FUNCTION__, __FILE__, __LINE__); $q = new mysql(); $q->BuildTables(); $q->QUERY_SQL($sql, "artica_backup"); if (!$q->ok) { echo $q->mysql_error; return; } $sock = new sockets(); $sock->getFrameWork("system.php?dns-linker=yes"); if ($_GET["useFTP"] == 1) { if ($users->PUREFTP_INSTALLED) { if (trim($ftpuser) != null) { if (trim($ftppassword) != null) { $pure = new pureftpd_user(); if (!$pure->CreateUser($ftpuser, $ftppassword, $servername)) { echo "FTP: Failed\n"; return; } $sock->getFrameWork("services.php?reload-pure-ftpd=yes"); } } } } if ($_GET["useMysql"] == 1) { if (!$q->DATABASE_EXISTS($mysql_database)) { $q->CREATE_DATABASE("{$mysql_database}"); } if (!$q->PRIVILEGES($mysql_username, $mysql_password, $mysql_database)) { echo "GRANT {$mysql_database} FAILED FOR {$mysql_username}\n{$q->mysql_error}"; } } if (isset($_GET["ADD_DNS_ENTRY"])) { $dnsDOM = explode(".", $_GET["servername"]); $netbiosname = $dnsDOM[0]; unset($dnsDOM[0]); $domainname = implode(".", $dnsDOM); include_once dirname(__FILE__) . "/ressources/class.pdns.inc"; $pdns = new pdns($domainname); $pdns->EditIPName($netbiosname, $_GET["ADD_DNS_ENTRY"], "A"); } if ($ligne["servername"] == null) { if ($_GET["force-groupware"] != null) { $sql = "INSERT INTO drupal_queue_orders(`ORDER`,`servername`) VALUES('INSTALL_GROUPWARE','{$servername}')"; $q = new mysql(); $q->QUERY_SQL($sql, "artica_backup"); $sock->getFrameWork("freeweb.php?rebuild-vhost=yes&servername={$servername}"); } } $sock->getFrameWork("services.php?freeweb-start=yes"); sleep(2); $sock->getFrameWork("cmd.php?freeweb-restart=yes"); }
function poweradmin() { if (!is_file("/usr/share/poweradmin/index.php")) { echo "Starting......: " . date("H:i:s") . " PowerAdmin is not installed\n"; return; } $sock = new sockets(); $PowerAdminUser = $sock->GET_INFO("PowerAdminUser"); $PowerAdminPassword = $sock->GET_INFO("PowerAdminPassword"); if ($PowerAdminUser == null) { $PowerAdminUser = time(); $sock->SET_INFO("PowerAdminUser", $PowerAdminUser); } if ($PowerAdminPassword == null) { $PowerAdminPassword = microtime(false); $sock->SET_INFO("PowerAdminPassword", $PowerAdminPassword); } $q = new mysql(); $q->PRIVILEGES($PowerAdminUser, $PowerAdminPassword, "powerdns"); $unix = new unix(); $f[] = "<?php"; $f[] = "\$db_host\t\t= '{$q->mysql_server}';"; $f[] = "\$db_user\t\t= '{$PowerAdminUser}';"; $f[] = "\$db_pass\t\t= '{$PowerAdminPassword}';"; $f[] = "\$db_name\t\t= 'powerdns';"; $f[] = "\$db_port\t\t= '{$q->mysql_port}';"; $f[] = "\$db_type\t\t= 'mysql';"; $f[] = "\$iface_lang\t\t= 'en_EN';"; $f[] = "\$cryptokey\t\t= '" . $unix->hostname_g() . "';"; $f[] = "\$session_key\t\t= '" . $unix->hostname_g() . "';"; $f[] = "\$password_encryption\t= 'md5';\t// or md5salt"; $f[] = "\$iface_style\t\t= 'example';"; $f[] = "\$iface_rowamount\t= 50;"; $f[] = "\$iface_expire\t= 1800;"; $f[] = "\$iface_zonelist_serial\t= false;"; $f[] = "\$iface_title = 'PowerAdmin DNS WebConsole';"; $f[] = "\$password_encryption='md5';"; $f[] = "\$dns_ttl\t\t= 86400;"; $f[] = "\$dns_fancy\t= false;"; $f[] = "\$dns_strict_tld_check\t= true;"; $f[] = "\$dns_hostmaster\t\t= 'hostmaster.example.net';"; $f[] = "\$dns_ns1\t\t= 'ns1.example.net';"; $f[] = "\$dns_ns2\t\t= 'ns2.example.net';"; $f[] = "\$syslog_use = True;"; $f[] = "\$syslog_ident = 'poweradmin';"; $f[] = "\$syslog_facility = LOG_USER;"; $f[] = "?>"; $sql = "DELETE FROM users WHERE id=1"; $q->QUERY_SQL($sql, "powerdns"); $ldap = new clladp(); $pass = md5($ldap->ldap_password); $sql = "SELECT password,fullname,email FROM `users` WHERE id=1"; $ligne = mysql_fetch_array($q->QUERY_SQL($sql, "powerdns")); if ($ligne["password"] != null) { $sql = "UPDATE `users` SET `username`= '{$ldap->ldap_admin}',`password`='{$pass}' ,`perm_templ`=1,`active`=1 WHERE id=1"; } else { $sql = "INSERT INTO `users` (`id`, `username`, `password`, `fullname`, `email`, `description`, `perm_templ`, `active`) VALUES\n\t(1, '{$ldap->ldap_admin}', '{$pass}', 'Administrator', '*****@*****.**', 'Administrator with full rights.', 1, 1);"; } $q->QUERY_SQL($sql, "powerdns"); if (!$q->ok) { echo "Starting......: " . date("H:i:s") . " PowerAdmin {$ldap->ldap_admin} failed {$q->mysql_error}\n"; } else { echo "Starting......: " . date("H:i:s") . " PowerAdmin {$ldap->ldap_admin} ok\n"; } @file_put_contents("/usr/share/poweradmin/inc/config.inc.php", @implode("\n", $f)); echo "Starting......: " . date("H:i:s") . " PowerAdmin config.inc.php done\n"; if (is_dir("/usr/share/poweradmin/install")) { shell_exec("/bin/rm -rf /usr/share/poweradmin/install >/dev/null 2>&1"); } }
function Save() { $servername = trim(strtolower($_GET["servername"])); if (substr($servername, 0, 1) == '.') { echo $servername . " FAILED\n"; return; } $users = new usersMenus(); $sock = new sockets(); $FreewebsStorageDirectory = $sock->GET_INFO("FreewebsStorageDirectory"); if (!$users->AsWebMaster) { return "FALSE"; } $uid = $_GET["uid"]; $mysql_database = format_mysql_table($_GET["mysql_database"]); $mysql_password = $_GET["mysql_password"]; $mysql_username = $_GET["mysql_username"]; $lvm_vg = $_GET["lvm_vg"]; $vg_size = $_GET["vg_size"]; $ServerPort = $_GET["ServerPort"]; if (!is_numeric($ServerPort)) { $ServerPort = 0; } if ($_GET["UseDefaultPort"] == 1) { $ServerPort = 0; } if (!is_numeric($vg_size)) { $vg_size = 5000; } $ftpuser = $_GET["ftpuser"]; $ftppassword = $_GET["ftppassword"]; $useSSL = $_GET["useSSL"]; if (!$users->PUREFTP_INSTALLED) { $_GET["useFTP"] = 0; $ftpuser = null; $ftppassword = null; } $sql = "SELECT servername FROM freeweb WHERE servername='{$_GET["servername"]}'"; $q = new mysql(); $ligne = @mysql_fetch_array($q->QUERY_SQL($sql, 'artica_backup')); if ($ligne["servername"] != null) { if ($uid != null) { $u = new user($uid); $ou = $u->ou; } if (!$users->AsSystemAdministrator) { $ou = $_SESSION["ou"]; } $sql = "UPDATE freeweb SET \n\t\t\tmysql_password='******',\n\t\t\tmysql_username='******',\n\t\t\tmysql_database='{$mysql_database}',\n\t\t\tftpuser='******',\n\t\t\tftppassword='******',\n\t\t\tuid='{$uid}',\n\t\t\tuseMysql='{$_GET["useMysql"]}',\n\t\t\tuseFTP='{$_GET["useFTP"]}',\n\t\t\tlvm_vg='{$_GET["lvm_vg"]}',\n\t\t\tlvm_size='{$_GET["vg_size"]}',\n\t\t\tUseLoopDisk='{$_GET["UseLoopDisk"]}',\n\t\t\tLoopMounts='{$_GET["LoopMounts"]}',\n\t\t\tUseReverseProxy='{$_GET["UseReverseProxy"]}',\n\t\t\tProxyPass='******',\n\t\t\tuseSSL='{$useSSL}',\n\t\t\tServerPort='{$ServerPort}',\n\t\t\tou='{$ou}',\n\t\t\tForwarder='{$_GET["Forwarder"]}',\n\t\t\tForwardTo='{$_GET["ForwardTo"]}'\n\t\t\t\n\t\t\tWHERE servername='{$servername}'\n\t\t"; } else { if ($uid != null) { $u = new user($uid); $ou = $u->ou; } if ($ou != null) { if ($FreewebsStorageDirectory != null) { $www_dir = "{$FreewebsStorageDirectory}/{$servername}"; } } $sock = new sockets(); $servername = str_replace('..', '.', $servername); $servername = str_replace('/', '.', $servername); $servername = str_replace('\\', '.', $servername); $servername = str_replace(' ', '.', $servername); $servername = str_replace('$', '.', $servername); $servername = str_replace('#', '.', $servername); $servername = str_replace('%', '.', $servername); $servername = str_replace('*', '.', $servername); if (substr($servername, strlen($servername) - 1, 1) == '.') { $servername = substr($servername, 0, strlen($servername) - 1); } if (substr($servername, 0, 1) == '.') { $servername = substr($servername, 1, strlen($servername)); } $sock->getFrameWork("freeweb.php?force-resolv=yes"); $sql = "INSERT INTO freeweb (mysql_password,mysql_username,ftpuser,ftppassword,useSSL,servername,mysql_database,\n\t\tuid,useMysql,useFTP,lvm_vg,lvm_size,UseLoopDisk,LoopMounts,ou,domainname,www_dir,ServerPort,UseReverseProxy,ProxyPass,Forwarder,ForwardTo)\n\t\tVALUES('{$mysql_password}','{$mysql_username}','{$ftpuser}','{$ftppassword}','{$useSSL}','{$servername}','{$mysql_database}',\n\t\t'{$uid}','{$_GET["useMysql"]}',\n\t\t'{$_GET["useFTP"]}','{$_GET["lvm_vg"]}','{$_GET["vg_size"]}','{$_GET["UseLoopDisk"]}','{$_GET["LoopMounts"]}','{$ou}',\n\t\t'{$_GET["domainname"]}','{$FreewebsStorageDirectory}','{$ServerPort}','{$_GET["UseReverseProxy"]}','{$_GET["ProxyPass"]}',\n\t\t'{$_GET["Forwarder"]}','{$_GET["ForwardTo"]}'\n\t\t)"; } writelogs("{$sql}", __FUNCTION__, __FILE__, __LINE__); $q = new mysql(); $q->BuildTables(); $q->QUERY_SQL($sql, "artica_backup"); if (!$q->ok) { echo $q->mysql_error; return; } $sock = new sockets(); if ($_GET["useFTP"] == 1) { if ($users->PUREFTP_INSTALLED) { if (trim($ftpuser) != null) { if (trim($ftppassword) != null) { $pure = new pureftpd_user(); if (!$pure->CreateUser($ftpuser, $ftppassword, $servername)) { echo "FTP: Failed\n"; return; } $sock->getFrameWork("services.php?reload-pure-ftpd=yes"); } } } } if ($_GET["useMysql"] == 1) { if (!$q->DATABASE_EXISTS($mysql_database)) { $q->CREATE_DATABASE("{$mysql_database}"); } if (!$q->PRIVILEGES($mysql_username, $mysql_password, $mysql_database)) { echo "GRANT {$mysql_database} FAILED FOR {$mysql_username}\n{$q->mysql_error}"; } } if (isset($_GET["ADD_DNS_ENTRY"])) { $dnsDOM = explode(".", $_GET["servername"]); $netbiosname = $dnsDOM[0]; unset($dnsDOM[0]); $domainname = implode(".", $dnsDOM); include_once dirname(__FILE__) . "/ressources/class.pdns.inc"; $pdns = new pdns($domainname); $pdns->EditIPName($netbiosname, $_GET["ADD_DNS_ENTRY"], "A"); } $sock->getFrameWork("cmd.php?freeweb-restart=yes"); }
function Save(){ $servername=trim(strtolower($_GET["servername"])); if(substr($servername, 0,1)=='.'){echo $servername. " FAILED\n";return;} $users=new usersMenus(); $sock=new sockets(); $FreewebsStorageDirectory=$sock->GET_INFO("FreewebsStorageDirectory"); if(!$users->AsWebMaster){return "FALSE";} $uid=$_GET["uid"]; $mysql_database=format_mysql_table($_GET["mysql_database"]); $mysql_password=$_GET["mysql_password"]; $mysql_username=$_GET["mysql_username"]; $lvm_vg=$_GET["lvm_vg"]; $vg_size=$_GET["vg_size"]; $ServerPort=$_GET["ServerPort"]; if(!is_numeric($ServerPort)){$ServerPort=0;} if($_GET["UseDefaultPort"]==1){$ServerPort=0;} if(!is_numeric($vg_size)){$vg_size=5000;} $ftpuser=$_GET["ftpuser"]; $ftppassword=$_GET["ftppassword"]; $useSSL=$_GET["useSSL"]; if(!$users->PUREFTP_INSTALLED){ $_GET["useFTP"]=0; $ftpuser=null; $ftppassword=null; } $sql="SELECT servername FROM freeweb WHERE servername='{$_GET["servername"]}'"; $q=new mysql(); $ligne=@mysql_fetch_array($q->QUERY_SQL($sql,'artica_backup')); if($ligne["servername"]<>null){ if($uid<>null){$u=new user($uid);$ou=$u->ou;} if(!$users->AsSystemAdministrator){$ou=$_SESSION["ou"];} $sql="UPDATE freeweb SET mysql_password='******', mysql_username='******', ftpuser='******', ftppassword='******', uid='$uid', useMysql='{$_GET["useMysql"]}', useFTP='{$_GET["useFTP"]}', lvm_vg='{$_GET["lvm_vg"]}', lvm_size='{$_GET["vg_size"]}', UseLoopDisk='{$_GET["UseLoopDisk"]}', LoopMounts='{$_GET["LoopMounts"]}', UseReverseProxy='{$_GET["UseReverseProxy"]}', ProxyPass='******', useSSL='$useSSL', ServerPort='$ServerPort', ou='$ou', Forwarder='{$_GET["Forwarder"]}', ForwardTo='{$_GET["ForwardTo"]}' WHERE servername='$servername' "; }else{ if($uid<>null){$u=new user($uid);$ou=$u->ou;} if($ou<>null){if($FreewebsStorageDirectory<>null){$www_dir="$FreewebsStorageDirectory/$servername";}} $sock=new sockets(); $sock->getFrameWork("freeweb.php?force-resolv=yes"); $sql="INSERT INTO freeweb (mysql_password,mysql_username,ftpuser,ftppassword,useSSL,servername,mysql_database, uid,useMysql,useFTP,lvm_vg,lvm_size,UseLoopDisk,LoopMounts,ou,domainname,www_dir,ServerPort,UseReverseProxy,ProxyPass,Forwarder,ForwardTo) VALUES('$mysql_password','$mysql_username','$ftpuser','$ftppassword','$useSSL','$servername','$mysql_database', '$uid','{$_GET["useMysql"]}', '{$_GET["useFTP"]}','{$_GET["lvm_vg"]}','{$_GET["vg_size"]}','{$_GET["UseLoopDisk"]}','{$_GET["LoopMounts"]}','$ou', '{$_GET["domainname"]}','$FreewebsStorageDirectory','$ServerPort','{$_GET["UseReverseProxy"]}','{$_GET["ProxyPass"]}', '{$_GET["Forwarder"]}','{$_GET["ForwardTo"]}' )"; } $q=new mysql(); $q->BuildTables(); $q->QUERY_SQL($sql,"artica_backup"); if(!$q->ok){echo $q->mysql_error;return;} $sock=new sockets(); if($_GET["useFTP"]==1){ if($users->PUREFTP_INSTALLED){ $pure=new pureftpd_user(); if(!$pure->CreateUser($ftpuser,$ftppassword,$servername)){ echo "FTP: Failed\n"; return; } } } if($_GET["useMysql"]==1){ if(!$q->DATABASE_EXISTS($mysql_database)){$q->CREATE_DATABASE("$mysql_database");} if(!$q->PRIVILEGES($mysql_username,$mysql_password,$mysql_database)){ echo "GRANT $mysql_database FAILED FOR $mysql_username\n$q->mysql_error"; } } $sock->getFrameWork("cmd.php?freeweb-restart=yes"); }