| | |
| | | |
| | | } |
| | | |
| | | 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; |
| | |
| | | // 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"; |
| | |
| | | $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); |
| | | |
| | |
| | | // 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); |
| | |
| | | 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 |
| | |
| | | // 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_file($install_dir.'/interface/invoices')) { |
| | | chmod($install_dir.'/interface/invoices', 0770); |
| | | chown($install_dir.'/interface/invoices', 'ispconfig'); |
| | | chgrp($install_dir.'/interface/invoices', 'ispconfig'); |
| | | } |
| | | |
| | | } |
| | | |
| | |
| | | '* * * * * /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"; |