| | |
| | | echo 'WARNING: '.$msg."\n"; |
| | | } |
| | | |
| | | public function simple_query($query, $answers, $default) { |
| | | public function simple_query($query, $answers, $default, $name = '') { |
| | | global $autoinstall; |
| | | $finished = false; |
| | | do { |
| | | $answers_str = implode(',', $answers); |
| | | swrite($this->lng($query).' ('.$answers_str.') ['.$default.']: '); |
| | | $input = sread(); |
| | | if($name != '' && $autoinstall[$name] != '') { |
| | | if($autoinstall[$name] == 'default') { |
| | | $input = $default; |
| | | } else { |
| | | $input = $autoinstall[$name]; |
| | | } |
| | | } else { |
| | | $answers_str = implode(',', $answers); |
| | | swrite($this->lng($query).' ('.$answers_str.') ['.$default.']: '); |
| | | $input = sread(); |
| | | } |
| | | |
| | | //* Stop the installation |
| | | if($input == 'quit') { |
| | |
| | | return $answer; |
| | | } |
| | | |
| | | public function free_query($query, $default) { |
| | | swrite($this->lng($query).' ['.$default.']: '); |
| | | $input = sread(); |
| | | public function free_query($query, $default, $name = '') { |
| | | global $autoinstall; |
| | | if($name != '' && $autoinstall[$name] != '') { |
| | | if($autoinstall[$name] == 'default') { |
| | | $input = $default; |
| | | } else { |
| | | $input = $autoinstall[$name]; |
| | | } |
| | | } else { |
| | | swrite($this->lng($query).' ['.$default.']: '); |
| | | $input = sread(); |
| | | } |
| | | |
| | | //* Stop the installation |
| | | if($input == 'quit') { |
| | |
| | | $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); |
| | | } |
| | | |
| | | $query = "GRANT SELECT, UPDATE ON ".$value['db'].".`aps_instances` TO '".$value['user']."'@'".$host."' "; |
| | | $query = "GRANT SELECT, UPDATE, DELETE ON ".$value['db'].".`aps_instances` TO '".$value['user']."'@'".$host."' "; |
| | | if ($verbose){ |
| | | echo $query ."\n"; |
| | | } |
| | | if(!$this->dbmaster->query($query)) { |
| | | $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); |
| | | } |
| | | |
| | | $query = "GRANT SELECT, DELETE ON ".$value['db'].".`aps_instances_settings` TO '".$value['user']."'@'".$host."' "; |
| | | if ($verbose){ |
| | | echo $query ."\n"; |
| | | } |
| | |
| | | copy('tpl/mailman-virtual_to_transport.sh', $full_file_name); |
| | | } |
| | | chgrp($full_file_name, 'list'); |
| | | chmod($full_file_name, 0750); |
| | | chmod($full_file_name, 0755); |
| | | } |
| | | |
| | | //* Create aliasaes |
| | | exec('/usr/lib/mailman/bin/genaliases 2>/dev/null'); |
| | | if(is_file('/var/lib/mailman/data/virtual-mailman')) exec('postmap /var/lib/mailman/data/virtual-mailman'); |
| | | |
| | | } |
| | | |
| | | public function configure_postfix($options = '') { |
| | | global $conf; |
| | | global $conf,$autoinstall; |
| | | $cf = $conf['postfix']; |
| | | $config_dir = $cf['config_dir']; |
| | | |
| | |
| | | if(!is_user($cf['vmail_username'])) caselog("$command &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* These postconf commands will be executed on installation and update |
| | | $server_ini_rec = $this->db->queryOneRecord("SELECT config FROM server WHERE server_id = ".$conf['server_id']); |
| | | $server_ini_rec = $this->db->queryOneRecord("SELECT config FROM `" . $this->db->quote($conf["mysql"]["database"]) . "`.`server` WHERE server_id = ".$conf['server_id']); |
| | | $server_ini_array = ini_to_array(stripslashes($server_ini_rec['config'])); |
| | | unset($server_ini_rec); |
| | | |
| | |
| | | |
| | | if(!stristr($options, 'dont-create-certs')) { |
| | | //* Create the SSL certificate |
| | | $command = 'cd '.$config_dir.'; ' |
| | | .'openssl req -new -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509'; |
| | | if(AUTOINSTALL){ |
| | | $command = 'cd '.$config_dir.'; ' |
| | | ."openssl req -new -subj '/C=".escapeshellcmd($autoinstall['ssl_cert_country'])."/ST=".escapeshellcmd($autoinstall['ssl_cert_state'])."/L=".escapeshellcmd($autoinstall['ssl_cert_locality'])."/O=".escapeshellcmd($autoinstall['ssl_cert_organisation'])."/OU=".escapeshellcmd($autoinstall['ssl_cert_organisation_unit'])."/CN=".escapeshellcmd($autoinstall['ssl_cert_common_name'])."' -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509"; |
| | | } else { |
| | | $command = 'cd '.$config_dir.'; ' |
| | | .'openssl req -new -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509'; |
| | | } |
| | | exec($command); |
| | | |
| | | $command = 'chmod o= '.$config_dir.'/smtpd.key'; |
| | |
| | | } else { |
| | | copy('tpl/debian_dovecot2.conf.master', $config_dir.'/'.$configfile); |
| | | } |
| | | replaceLine($config_dir.'/'.$configfile, 'postmaster_address = postmaster@example.com', 'postmaster_address = postmaster@'.$conf['hostname'], 1, 0); |
| | | } else { |
| | | if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/debian_dovecot.conf.master')) { |
| | | copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/debian_dovecot.conf.master', $config_dir.'/'.$configfile); |
| | |
| | | $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); |
| | | $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); |
| | | $content = str_replace('{mysql_server_host}', $conf['mysql']['host'], $content); |
| | | $content = str_replace('{server_id}', $conf['server_id'], $content); |
| | | wf($config_dir.'/'.$configfile, $content); |
| | | |
| | | chmod($config_dir.'/'.$configfile, 0600); |
| | | chown($config_dir.'/'.$configfile, 'root'); |
| | | chgrp($config_dir.'/'.$configfile, 'root'); |
| | | |
| | | // Dovecot shall ignore mounts in website directory |
| | | if(is_installed('doveadm')) exec("doveadm mount add '/var/www/*' ignore > /dev/null 2> /dev/null"); |
| | | |
| | | } |
| | | |
| | |
| | | if(is_file('/etc/apache2/ports.conf')) { |
| | | // add a line "Listen 443" to ports conf if line does not exist |
| | | replaceLine('/etc/apache2/ports.conf', 'Listen 443', 'Listen 443', 1); |
| | | |
| | | // Comment out the namevirtualhost lines, as they were added by ispconfig in ispconfig.conf file again |
| | | replaceLine('/etc/apache2/ports.conf', 'NameVirtualHost *:80', '# NameVirtualHost *:80', 1); |
| | | replaceLine('/etc/apache2/ports.conf', 'NameVirtualHost *:443', '# NameVirtualHost *:443', 1); |
| | | } |
| | | |
| | | if(is_file('/etc/apache2/apache.conf')) { |
| | | if(hasLine('/etc/apache2/apache.conf', 'Include sites-enabled/', 1) == false) { |
| | | if(hasLine('/etc/apache2/apache.conf', 'IncludeOptional sites-enabled/*.conf', 1) == false) { |
| | | if(hasLine('/etc/apache2/apache.conf', 'IncludeOptional sites-enabled/*.conf', 1) == false && hasLine('/etc/apache2/apache.conf', 'IncludeOptional sites-enabled/', 1) == false) { |
| | | replaceLine('/etc/apache2/apache.conf', 'Include sites-enabled/', 'Include sites-enabled/', 1, 1); |
| | | } elseif(hasLine('/etc/apache2/apache.conf', 'IncludeOptional sites-enabled/*.vhost', 1) == false) { |
| | | replaceLine('/etc/apache2/apache.conf', 'IncludeOptional sites-enabled/*.vhost', 'IncludeOptional sites-enabled/*.vhost', 1, 1); |
| | | replaceLine('/etc/apache2/apache.conf', 'IncludeOptional sites-enabled/*.vhost', 'IncludeOptional sites-enabled/', 1, 1); |
| | | } |
| | | } |
| | | } |
| | | |
| | | if(is_file('/etc/apache2/apache2.conf')) { |
| | | if(hasLine('/etc/apache2/apache2.conf', 'Include sites-enabled/', 1) == false && hasLine('/etc/apache2/apache2.conf', 'IncludeOptional sites-enabled/', 1) == false) { |
| | | if(hasLine('/etc/apache2/apache2.conf', 'Include sites-enabled/*.conf', 1) == true) { |
| | | replaceLine('/etc/apache2/apache2.conf', 'Include sites-enabled/*.conf', 'Include sites-enabled/', 1, 1); |
| | | } elseif(hasLine('/etc/apache2/apache2.conf', 'IncludeOptional sites-enabled/*.conf', 1) == true) { |
| | | replaceLine('/etc/apache2/apache2.conf', 'IncludeOptional sites-enabled/*.conf', 'IncludeOptional sites-enabled/', 1, 1); |
| | | } |
| | | } |
| | | } |
| | |
| | | $vhost_conf_dir = $conf['apache']['vhost_conf_dir']; |
| | | $vhost_conf_enabled_dir = $conf['apache']['vhost_conf_enabled_dir']; |
| | | |
| | | // copy('tpl/apache_ispconfig.conf.master',$vhost_conf_dir.'/ispconfig.conf'); |
| | | |
| | | $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/apache_ispconfig.conf.master', 'tpl/apache_ispconfig.conf.master'); |
| | | $tpl = new tpl('apache_ispconfig.conf.master'); |
| | | $tpl->setVar('apache_version',getapacheversion()); |
| | | |
| | | $records = $this->db->queryAllRecords('SELECT * FROM '.$conf['mysql']['master_database'].'.server_ip WHERE server_id = '.$conf['server_id']." AND virtualhost = 'y'"); |
| | | |
| | | $ip_addresses = array(); |
| | | |
| | | if(is_array($records) && count($records) > 0) { |
| | | foreach($records as $rec) { |
| | | if($rec['ip_type'] == 'IPv6') { |
| | |
| | | foreach($ports as $port) { |
| | | $port = intval($port); |
| | | if($port > 0 && $port < 65536 && $ip_address != '') { |
| | | $content .= 'NameVirtualHost '.$ip_address.":".$port."\n"; |
| | | $ip_addresses[] = array('ip_address' => $ip_address, 'port' => $port); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | $content .= "\n"; |
| | | wf($vhost_conf_dir.'/ispconfig.conf', $content); |
| | | |
| | | if(count($ip_addresses) > 0) $tpl->setLoop('ip_adresses',$ip_addresses); |
| | | |
| | | wf($vhost_conf_dir.'/ispconfig.conf', $tpl->grab()); |
| | | unset($tpl); |
| | | |
| | | if(!@is_link($vhost_conf_enabled_dir.'/000-ispconfig.conf')) { |
| | | symlink($vhost_conf_dir.'/ispconfig.conf', $vhost_conf_enabled_dir.'/000-ispconfig.conf'); |
| | |
| | | } |
| | | |
| | | // Dont just copy over the virtualhost template but add some custom settings |
| | | $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/apache_apps.vhost.master', 'tpl/apache_apps.vhost.master'); |
| | | |
| | | $content = str_replace('{apps_vhost_ip}', $conf['web']['apps_vhost_ip'], $content); |
| | | $content = str_replace('{apps_vhost_port}', $conf['web']['apps_vhost_port'], $content); |
| | | $content = str_replace('{apps_vhost_dir}', $conf['web']['website_basedir'].'/apps', $content); |
| | | $content = str_replace('{website_basedir}', $conf['web']['website_basedir'], $content); |
| | | $content = str_replace('{apps_vhost_servername}', $apps_vhost_servername, $content); |
| | | $tpl = new tpl('apache_apps.vhost.master'); |
| | | $tpl->setVar('apps_vhost_ip',$conf['web']['apps_vhost_ip']); |
| | | $tpl->setVar('apps_vhost_port',$conf['web']['apps_vhost_port']); |
| | | $tpl->setVar('apps_vhost_dir',$conf['web']['website_basedir'].'/apps'); |
| | | $tpl->setVar('apps_vhost_basedir',$conf['web']['website_basedir']); |
| | | $tpl->setVar('apps_vhost_servername',$apps_vhost_servername); |
| | | $tpl->setVar('apache_version',getapacheversion()); |
| | | |
| | | |
| | | // comment out the listen directive if port is 80 or 443 |
| | | if($conf['web']['apps_vhost_ip'] == 80 or $conf['web']['apps_vhost_ip'] == 443) { |
| | | $content = str_replace('{vhost_port_listen}', '#', $content); |
| | | $tpl->setVar('vhost_port_listen','#'); |
| | | } else { |
| | | $content = str_replace('{vhost_port_listen}', '', $content); |
| | | $tpl->setVar('vhost_port_listen',''); |
| | | } |
| | | |
| | | wf($vhost_conf_dir.'/apps.vhost', $content); |
| | | wf($vhost_conf_dir.'/apps.vhost', $tpl->grab()); |
| | | unset($tpl); |
| | | |
| | | //copy('tpl/apache_ispconfig.vhost.master', "$vhost_conf_dir/ispconfig.vhost"); |
| | | //* and create the symlink |
| | |
| | | if(!is_user($apps_vhost_user)) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | |
| | | $command = 'adduser '.$conf['nginx']['user'].' '.$apps_vhost_group; |
| | | //$command = 'adduser '.$conf['nginx']['user'].' '.$apps_vhost_group; |
| | | $command = 'usermod -a -G '.$apps_vhost_group.' '.$conf['nginx']['user']; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | if(!@is_dir($install_dir)){ |
| | |
| | | } |
| | | |
| | | public function make_ispconfig_ssl_cert() { |
| | | global $conf; |
| | | global $conf,$autoinstall; |
| | | |
| | | $install_dir = $conf['ispconfig_install_dir']; |
| | | |
| | |
| | | |
| | | $ssl_pw = substr(md5(mt_rand()), 0, 6); |
| | | exec("openssl genrsa -des3 -passout pass:$ssl_pw -out $ssl_key_file 4096"); |
| | | exec("openssl req -new -passin pass:$ssl_pw -passout pass:$ssl_pw -key $ssl_key_file -out $ssl_csr_file"); |
| | | if(AUTOINSTALL){ |
| | | exec("openssl req -new -passin pass:$ssl_pw -passout pass:$ssl_pw -subj '/C=".escapeshellcmd($autoinstall['ssl_cert_country'])."/ST=".escapeshellcmd($autoinstall['ssl_cert_state'])."/L=".escapeshellcmd($autoinstall['ssl_cert_locality'])."/O=".escapeshellcmd($autoinstall['ssl_cert_organisation'])."/OU=".escapeshellcmd($autoinstall['ssl_cert_organisation_unit'])."/CN=".escapeshellcmd($autoinstall['ssl_cert_common_name'])."' -key $ssl_key_file -out $ssl_csr_file"); |
| | | } else { |
| | | exec("openssl req -new -passin pass:$ssl_pw -passout pass:$ssl_pw -key $ssl_key_file -out $ssl_csr_file"); |
| | | } |
| | | exec("openssl req -x509 -passin pass:$ssl_pw -passout pass:$ssl_pw -key $ssl_key_file -in $ssl_csr_file -out $ssl_crt_file -days 3650"); |
| | | exec("openssl rsa -passin pass:$ssl_pw -in $ssl_key_file -out $ssl_key_file.insecure"); |
| | | rename($ssl_key_file, $ssl_key_file.'.secure'); |
| | |
| | | |
| | | //* copy the ISPConfig server part |
| | | $command = 'cp -rf ../server '.$install_dir; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* copy the ISPConfig security part |
| | | $command = 'cp -rf ../security '.$install_dir; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* Create a symlink, so ISPConfig is accessible via web |
| | |
| | | } |
| | | |
| | | |
| | | //* Chmod the files |
| | | $command = 'chmod -R 750 '.$install_dir; |
| | | // chown install dir to root and chmod 755 |
| | | $command = 'chown root:root '.$install_dir; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | $command = 'chmod 755 '.$install_dir; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* chown the files to the ispconfig user and group |
| | | $command = 'chown -R ispconfig:ispconfig '.$install_dir; |
| | | //* Chmod the files and directories in the install dir |
| | | $command = 'chmod -R 750 '.$install_dir.'/*'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* chown the interface files to the ispconfig user and group |
| | | $command = 'chown -R ispconfig:ispconfig '.$install_dir.'/interface'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* chown the server files to the root user and group |
| | | $command = 'chown -R root:root '.$install_dir.'/server'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* chown the security files to the root user and group |
| | | $command = 'chown -R root:root '.$install_dir.'/security'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* chown the security directory and security_settings.ini to root:ispconfig |
| | | $command = 'chown root:ispconfig '.$install_dir.'/security/security_settings.ini'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | $command = 'chown root:ispconfig '.$install_dir.'/security'; |
| | | caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | |
| | | //* Make the global language file directory group writable |
| | |
| | | $vhost_conf_enabled_dir = $conf['apache']['vhost_conf_enabled_dir']; |
| | | |
| | | // Dont just copy over the virtualhost template but add some custom settings |
| | | $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/apache_ispconfig.vhost.master', 'tpl/apache_ispconfig.vhost.master'); |
| | | $content = str_replace('{vhost_port}', $conf['apache']['vhost_port'], $content); |
| | | $tpl = new tpl('apache_ispconfig.vhost.master'); |
| | | $tpl->setVar('vhost_port',$conf['apache']['vhost_port']); |
| | | |
| | | // comment out the listen directive if port is 80 or 443 |
| | | if($conf['apache']['vhost_port'] == 80 or $conf['apache']['vhost_port'] == 443) { |
| | | $content = str_replace('{vhost_port_listen}', '#', $content); |
| | | $tpl->setVar('vhost_port_listen','#'); |
| | | } else { |
| | | $content = str_replace('{vhost_port_listen}', '', $content); |
| | | $tpl->setVar('vhost_port_listen',''); |
| | | } |
| | | |
| | | if(is_file($install_dir.'/interface/ssl/ispserver.crt') && is_file($install_dir.'/interface/ssl/ispserver.key')) { |
| | | $content = str_replace('{ssl_comment}', '', $content); |
| | | $tpl->setVar('ssl_comment',''); |
| | | } else { |
| | | $content = str_replace('{ssl_comment}', '#', $content); |
| | | $tpl->setVar('ssl_comment','#'); |
| | | } |
| | | if(is_file($install_dir.'/interface/ssl/ispserver.crt') && is_file($install_dir.'/interface/ssl/ispserver.key') && is_file($install_dir.'/interface/ssl/ispserver.bundle')) { |
| | | $content = str_replace('{ssl_bundle_comment}', '', $content); |
| | | $tpl->setVar('ssl_bundle_comment',''); |
| | | } else { |
| | | $content = str_replace('{ssl_bundle_comment}', '#', $content); |
| | | $tpl->setVar('ssl_bundle_comment','#'); |
| | | } |
| | | |
| | | $tpl->setVar('apache_version',getapacheversion()); |
| | | |
| | | wf($vhost_conf_dir.'/ispconfig.vhost', $content); |
| | | wf($vhost_conf_dir.'/ispconfig.vhost', $tpl->grab()); |
| | | |
| | | //copy('tpl/apache_ispconfig.vhost.master', $vhost_conf_dir.'/ispconfig.vhost'); |
| | | //* and create the symlink |
| | | if($this->is_update == false) { |
| | | if(@is_link($vhost_conf_enabled_dir.'/ispconfig.vhost')) unlink($vhost_conf_enabled_dir.'/ispconfig.vhost'); |
| | |
| | | |
| | | //* Remove Domain module as its functions are available in the client module now |
| | | if(@is_dir('/usr/local/ispconfig/interface/web/domain')) exec('rm -rf /usr/local/ispconfig/interface/web/domain'); |
| | | |
| | | |
| | | |
| | | //* Disable rkhunter run and update in debian cronjob as ispconfig is running and updating rkhunter |
| | | if(is_file('/etc/default/rkhunter')) { |
| | | replaceLine('/etc/default/rkhunter', 'CRON_DAILY_RUN="yes"', 'CRON_DAILY_RUN="no"', 1, 0); |
| | | replaceLine('/etc/default/rkhunter', 'CRON_DB_UPDATE="yes"', 'CRON_DB_UPDATE="no"', 1, 0); |
| | | } |
| | | |
| | | // Add symlink for patch tool |
| | | if(!is_link('/usr/local/bin/ispconfig_patch')) exec('ln -s /usr/local/ispconfig/server/scripts/ispconfig_patch /usr/local/bin/ispconfig_patch'); |
| | | |
| | | } |
| | | |
| | | public function configure_dbserver() { |
| | |
| | | chmod($conf['ispconfig_log_dir'].'/cron.log', 0660); |
| | | |
| | | } |
| | | |
| | | // This function is called at the end of the update process and contains code to clean up parts of old ISPCONfig releases |
| | | public function cleanup_ispconfig() { |
| | | global $app,$conf; |
| | | |
| | | // Remove directories recursively |
| | | if(is_dir('/usr/local/ispconfig/interface/web/designer')) exec('rm -rf /usr/local/ispconfig/interface/web/designer'); |
| | | if(is_dir('/usr/local/ispconfig/interface/web/themes/default-304')) exec('rm -rf /usr/local/ispconfig/interface/web/themes/default-304'); |
| | | |
| | | // Remove files |
| | | if(is_file('/usr/local/ispconfig/interface/lib/classes/db_firebird.inc.php')) unlink('/usr/local/ispconfig/interface/lib/classes/db_firebird.inc.php'); |
| | | if(is_file('/usr/local/ispconfig/interface/lib/classes/form.inc.php')) unlink('/usr/local/ispconfig/interface/lib/classes/form.inc.php'); |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | public function getinitcommand($servicename, $action, $init_script_directory = ''){ |
| | | global $conf; |