From 897af06af9522ded99b1e0f46730299e89856ffe Mon Sep 17 00:00:00 2001 From: tbrehm <t.brehm@ispconfig.org> Date: Mon, 11 Jun 2012 05:00:57 -0400 Subject: [PATCH] Updated version number to 3.0.4.6 --- install/dist/lib/fedora.lib.php | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 105 insertions(+), 9 deletions(-) diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php index 30abfd2..2eca528 100644 --- a/install/dist/lib/fedora.lib.php +++ b/install/dist/lib/fedora.lib.php @@ -83,10 +83,8 @@ $command = 'useradd -g '.$cf['vmail_groupname'].' -u '.$cf['vmail_userid'].' '.$cf['vmail_username'].' -d '.$cf['vmail_mailbox_base'].' -m'; 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 $postconf_commands = array ( - 'myhostname = '.$conf['hostname'], - 'mydestination = '.$conf['hostname'].', localhost, localhost.localdomain', - 'mynetworks = 127.0.0.0/8 [::1]/128', 'virtual_alias_domains =', 'virtual_alias_maps = proxy:mysql:'.$config_dir.'/mysql-virtual_forwardings.cf, mysql:'.$config_dir.'/mysql-virtual_email2email.cf', 'virtual_mailbox_domains = proxy:mysql:'.$config_dir.'/mysql-virtual_domains.cf', @@ -117,6 +115,15 @@ 'body_checks = regexp:'.$config_dir.'/body_checks', 'inet_interfaces = all' ); + + //* These postconf commands will be executed on installation only + if($this->is_update == false) { + $postconf_commands = array_merge($postconf_commands,array( + 'myhostname = '.$conf['hostname'], + 'mydestination = '.$conf['hostname'].', localhost, localhost.localdomain', + 'mynetworks = 127.0.0.0/8 [::1]/128' + )); + } //* Create the header and body check files touch($config_dir.'/header_checks'); @@ -308,12 +315,25 @@ caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); } - //* copy dovecot.conf + //* backup dovecot.conf $configfile = 'dovecot.conf'; if(is_file("$config_dir/$configfile")){ copy("$config_dir/$configfile", "$config_dir/$configfile~"); } - copy('tpl/fedora_dovecot.conf.master',"$config_dir/$configfile"); + + //* Get the dovecot version + exec('dovecot --version',$tmp); + $parts = explode('.',trim($tmp[0])); + $dovecot_version = $parts[0]; + unset($tmp); + unset($parts); + + //* Copy dovecot configuration file + if($dovecot_version == 2) { + copy('tpl/fedora_dovecot2.conf.master',$config_dir.'/'.$configfile); + } else { + copy('tpl/fedora_dovecot.conf.master',$config_dir.'/'.$configfile); + } //* dovecot-sql.conf $configfile = 'dovecot-sql.conf'; @@ -570,6 +590,42 @@ } + public function configure_nginx(){ + global $conf; + + if($conf['nginx']['installed'] == false) return; + //* Create the logging directory for the vhost logfiles + if(!@is_dir($conf['ispconfig_log_dir'].'/httpd')) mkdir($conf['ispconfig_log_dir'].'/httpd', 0755, true); + + // Sites enabled and avaulable dirs + exec('mkdir -p '.$conf['nginx']['vhost_conf_enabled_dir']); + exec('mkdir -p '.$conf['nginx']['vhost_conf_dir']); + + wf('/etc/nginx/conf.d/ispconfig_vhosts.conf',"include /etc/nginx/sites-enabled/*.vhost;"); + + //* make sure that webalizer finds its config file when it is directly in /etc + if(@is_file('/etc/webalizer.conf') && !@is_dir('/etc/webalizer')) { + mkdir('/etc/webalizer'); + symlink('/etc/webalizer.conf','/etc/webalizer/webalizer.conf'); + } + + if(is_file('/etc/webalizer/webalizer.conf')) { + // Change webalizer mode to incremental + replaceLine('/etc/webalizer/webalizer.conf','#IncrementalName','IncrementalName webalizer.current',0,0); + replaceLine('/etc/webalizer/webalizer.conf','#Incremental','Incremental yes',0,0); + replaceLine('/etc/webalizer/webalizer.conf','#HistoryName','HistoryName webalizer.hist',0,0); + } + + // Check the awsatst script + if(!is_dir('/usr/share/awstats/tools')) exec('mkdir -p /usr/share/awstats/tools'); + if(!file_exists('/usr/share/awstats/tools/awstats_buildstaticpages.pl') && file_exists('/usr/share/doc/awstats/examples/awstats_buildstaticpages.pl')) symlink('/usr/share/doc/awstats/examples/awstats_buildstaticpages.pl','/usr/share/awstats/tools/awstats_buildstaticpages.pl'); + if(file_exists('/etc/awstats/awstats.conf.local')) replaceLine('/etc/awstats/awstats.conf.local','LogFormat=4','LogFormat=1',0,1); + + //* add a sshusers group + $command = 'groupadd sshusers'; + if(!is_group('sshusers')) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + } + public function configure_firewall() { global $conf; @@ -682,6 +738,7 @@ $content = str_replace('{server_id}', $conf['server_id'], $content); $content = str_replace('{ispconfig_log_priority}', $conf['ispconfig_log_priority'], $content); $content = str_replace('{language}', $conf['language'], $content); + $content = str_replace('{timezone}', $conf['timezone'], $content); wf("$install_dir/interface/lib/$configfile", $content); @@ -704,6 +761,7 @@ $content = str_replace('{server_id}', $conf['server_id'], $content); $content = str_replace('{ispconfig_log_priority}', $conf['ispconfig_log_priority'], $content); $content = str_replace('{language}', $conf['language'], $content); + $content = str_replace('{timezone}', $conf['timezone'], $content); wf("$install_dir/server/lib/$configfile", $content); @@ -818,8 +876,27 @@ // TODO: FIXME: add the www-data user to the ispconfig group. This is just for testing // and must be fixed as this will allow the apache user to read the ispconfig files. // Later this must run as own apache server or via suexec! - $command = 'usermod -a -G ispconfig '.$conf['apache']['user']; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + if($conf['apache']['installed'] == true){ + $command = 'usermod -a -G ispconfig '.$conf['apache']['user']; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + if(is_group('ispapps')){ + $command = 'usermod -a -G ispapps '.$conf['apache']['user']; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + } + } + if($conf['nginx']['installed'] == true){ + $command = 'usermod -a -G ispconfig '.$conf['nginx']['user']; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + //if(is_user('ispapps')){ + // Allow the ispapps vhost access to /etc/squirrelmail + //$command = 'usermod -a -G '.$conf['apache']['group'].' ispapps'; + //caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + //} + if(is_group('ispapps')){ + $command = 'usermod -a -G ispapps '.$conf['nginx']['user']; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + } + } //* Make the shell scripts executable $command = "chmod +x $install_dir/server/scripts/*.sh"; @@ -897,7 +974,13 @@ $content = str_replace('{fastcgi_ssl}', 'off', $content); } - $content = str_replace('{fpm_port}', $conf['nginx']['php_fpm_start_port'], $content); + $socket_dir = escapeshellcmd($conf['nginx']['php_fpm_socket_dir']); + if(substr($socket_dir,-1) != '/') $socket_dir .= '/'; + if(!is_dir($socket_dir)) exec('mkdir -p '.$socket_dir); + $fpm_socket = $socket_dir.'ispconfig.sock'; + + //$content = str_replace('{fpm_port}', $conf['nginx']['php_fpm_start_port'], $content); + $content = str_replace('{fpm_socket}', $fpm_socket, $content); wf($vhost_conf_dir.'/ispconfig.vhost', $content); @@ -907,7 +990,8 @@ // Dont just copy over the php-fpm pool template but add some custom settings $content = rf('tpl/php_fpm_pool.conf.master'); $content = str_replace('{fpm_pool}', 'ispconfig', $content); - $content = str_replace('{fpm_port}', $conf['nginx']['php_fpm_start_port'], $content); + //$content = str_replace('{fpm_port}', $conf['nginx']['php_fpm_start_port'], $content); + $content = str_replace('{fpm_socket}', $fpm_socket, $content); $content = str_replace('{fpm_user}', 'ispconfig', $content); $content = str_replace('{fpm_group}', 'ispconfig', $content); wf($conf['nginx']['php_fpm_pool_dir'].'/ispconfig.conf', $content); @@ -920,6 +1004,9 @@ symlink($vhost_conf_dir.'/ispconfig.vhost',$vhost_conf_enabled_dir.'/000-ispconfig.vhost'); } } + + // create symlink from /usr/share/phpmyadmin to /usr/share/phpMyAdmin, if it is installed + if(!@file_exists('/usr/share/phpmyadmin') && @is_dir('/usr/share/phpMyAdmin')) symlink('/usr/share/phpMyAdmin/','/usr/share/phpmyadmin'); } // Make the Clamav log files readable by ISPConfig @@ -964,6 +1051,10 @@ // Edit the file Edit the file /etc/sudoers and comment out the requiregetty line, otherwise the backup function will fail replaceLine('/etc/sudoers','Defaults requiretty','#Defaults requiretty',0,0); + if(is_dir($install_dir.'/interface/invoices')) { + exec('chmod -R 770 '.escapeshellarg($install_dir.'/interface/invoices')); + exec('chown -R ispconfig:ispconfig '.escapeshellarg($install_dir.'/interface/invoices')); + } } @@ -1008,6 +1099,11 @@ '* * * * * /usr/local/ispconfig/server/server.sh &> /dev/null', '30 00 * * * /usr/local/ispconfig/server/cron_daily.sh &> /dev/null' ); + + if ($conf['nginx']['installed'] == true) { + $root_cron_jobs[] = "0 0 * * * /usr/local/ispconfig/server/scripts/create_daily_nginx_access_logs.sh &> /dev/null"; + } + foreach($root_cron_jobs as $cron_job) { if(!in_array($cron_job."\n", $existing_root_cron_jobs)) { $existing_root_cron_jobs[] = $cron_job."\n"; -- Gitblit v1.9.1