diff --git a/autoinstaller/Adapter/DebianAdapter.pm b/autoinstaller/Adapter/DebianAdapter.pm index 874adc6de0..1af4a13b24 100644 --- a/autoinstaller/Adapter/DebianAdapter.pm +++ b/autoinstaller/Adapter/DebianAdapter.pm @@ -180,7 +180,7 @@ sub uninstallPackages } my $rs = execute( - "$command -y remove @{$self->{'packagesToUninstall'}} --auto-remove --purge --no-install-recommends", + "$command -y remove @{$self->{'packagesToUninstall'}} --auto-remove --purge", ($preseed || $main::noprompt) ? \$stdout : undef, \$stderr ); debug($stdout) if $stdout; @@ -221,9 +221,10 @@ sub installPackages unshift @command, ('UCF_FORCE_CONFFMISS=1 '); # Force installation of missing conffile which are managed by UCF push @command, "apt-get -y -o DPkg::Options::='--force-confnew' -o Dpkg::Options::='--force-confask' " . - "--reinstall install @{$self->{'packagesToInstall'}} --auto-remove --purge"; + "--reinstall install @{$self->{'packagesToInstall'}} --auto-remove --purge --no-install-recommends"; } else { - push @command, "apt-get -y install @{$self->{'packagesToInstall'}} --auto-remove --purge"; + push @command, "apt-get -y -o DPkg::Options::='--force-confnew' DPkg::Options::='--force-confmiss' " . + "install @{$self->{'packagesToInstall'}} --no-install-recommends --auto-remove --purge"; } my ($stdout, $stderr); diff --git a/configs/debian/init.d/imscp_panel b/configs/debian/init.d/imscp_panel index a2ff65587a..f2d5623358 100644 --- a/configs/debian/init.d/imscp_panel +++ b/configs/debian/init.d/imscp_panel @@ -100,7 +100,7 @@ case "$1" in reload|force-reload) log_warning_msg "Reloading not supported" ;; - restart) + restart) log_daemon_msg "Restarting $DESC" "$NAME" do_stop case "$?" in diff --git a/configs/debian/nginx/00_master.conf b/configs/debian/nginx/00_master.conf index 4367fe100c..bcb937a5b9 100644 --- a/configs/debian/nginx/00_master.conf +++ b/configs/debian/nginx/00_master.conf @@ -55,6 +55,7 @@ server { } location ~ \.php$ { + try_files $uri $uri/ /plugins.php$is_args$args; include imscp_fastcgi.conf; } diff --git a/configs/debian/nginx/00_master_ssl.conf b/configs/debian/nginx/00_master_ssl.conf index cb21dc8f31..f6fb6b2e33 100644 --- a/configs/debian/nginx/00_master_ssl.conf +++ b/configs/debian/nginx/00_master_ssl.conf @@ -65,6 +65,7 @@ server { } location ~ \.php$ { + try_files $uri $uri/ /plugins.php$is_args$args; include imscp_fastcgi.conf; fastcgi_param HTTPS on; } diff --git a/docs/Debian/packages-squeeze.xml b/docs/Debian/packages-squeeze.xml index a077b1e5b6..bd13cd050a 100644 --- a/docs/Debian/packages-squeeze.xml +++ b/docs/Debian/packages-squeeze.xml @@ -28,7 +28,7 @@ libapache2-mod-php5 @@ -190,7 +190,6 @@ php5-intl php5-mcrypt php5-mysql - php5-suhosin perl diff --git a/engine/PerlLib/Package/FrontEnd.pm b/engine/PerlLib/Package/FrontEnd.pm index 3357f2ab98..d2f95e3b46 100644 --- a/engine/PerlLib/Package/FrontEnd.pm +++ b/engine/PerlLib/Package/FrontEnd.pm @@ -107,8 +107,7 @@ sub postinstall my $rs = $self->{'hooksManager'}->trigger('beforeFrontEndPostInstall'); return $rs if $rs; - $rs = $self->start(); - return $rs if $rs; + $self->{'start'} = 1; $self->{'hooksManager'}->trigger('afterFrontEndPostInstall'); } @@ -256,8 +255,10 @@ sub start error("Unable to start $self->{'config'}->{'HTTPD_SNAME'} service") if $rs; return $rs if $rs; + my $panelUName = $main::imscpConfig{'SYSTEM_USER_PREFIX'}.$main::imscpConfig{'SYSTEM_USER_MIN_UID'}; + $rs = iMSCP::Service->getInstance()->start( - $main::imscpConfig{'IMSCP_PANEL_SNAME'}, $self->{'config'}->{'PHP_CGI_BIN'} + $main::imscpConfig{'IMSCP_PANEL_SNAME'}, "$self->{'config'}->{'PHP_CGI_BIN'} -u $panelUName" ); error("Unable to start imscp_panel (FCGI manager) service") if $rs; return $rs if $rs; @@ -280,12 +281,14 @@ sub stop my $rs = $self->{'hooksManager'}->trigger('beforeFrontEndStop'); return $rs if $rs; - $rs = iMSCP::Service->getInstance()->start("$self->{'config'}->{'HTTPD_SNAME'}"); + $rs = iMSCP::Service->getInstance()->stop("$self->{'config'}->{'HTTPD_SNAME'}"); error("Unable to stop $self->{'config'}->{'HTTPD_SNAME'} service") if $rs; return $rs if $rs; + my $panelUName = $main::imscpConfig{'SYSTEM_USER_PREFIX'}.$main::imscpConfig{'SYSTEM_USER_MIN_UID'}; + $rs = iMSCP::Service->getInstance()->stop( - $main::imscpConfig{'IMSCP_PANEL_SNAME'}, $self->{'config'}->{'PHP_CGI_BIN'} + $main::imscpConfig{'IMSCP_PANEL_SNAME'}, "$self->{'config'}->{'PHP_CGI_BIN'} -u $panelUName" ); error("Unable to stop imscp_panel (FCGI manager) service") if $rs; return $rs if $rs; @@ -312,8 +315,10 @@ sub restart error("Unable to restart $self->{'config'}->{'HTTPD_SNAME'} service") if $rs; return $rs if $rs; + my $panelUName = $main::imscpConfig{'SYSTEM_USER_PREFIX'}.$main::imscpConfig{'SYSTEM_USER_MIN_UID'}; + $rs = iMSCP::Service->getInstance()->restart( - $main::imscpConfig{'IMSCP_PANEL_SNAME'}, $self->{'config'}->{'PHP_CGI_BIN'} + $main::imscpConfig{'IMSCP_PANEL_SNAME'}, "$self->{'config'}->{'PHP_CGI_BIN'} -u $panelUName" ); error("Unable to restart imscp_panel (FCGI manager) service") if $rs; return $rs if $rs; diff --git a/engine/PerlLib/iMSCP/Service.pm b/engine/PerlLib/iMSCP/Service.pm index 65000a9794..6f626641ed 100644 --- a/engine/PerlLib/iMSCP/Service.pm +++ b/engine/PerlLib/iMSCP/Service.pm @@ -59,6 +59,7 @@ use parent 'Common::SingletonClass'; sub start($$;$) { my ($self, $serviceName, $processPattern) = @_; + $processPattern ||= $serviceName; $self->_runCommand("$self->{'service_provider'} $serviceName start"); @@ -78,6 +79,7 @@ sub start($$;$) sub stop($$;$) { my ($self, $serviceName, $processPattern) = @_; + $processPattern ||= $serviceName; $self->_runCommand("$self->{'service_provider'} $serviceName stop"); @@ -90,7 +92,10 @@ sub stop($$;$) $loopCount++; } while($loopCount < 5); - 1; + # Try with pkill in last resort + $self->_runCommand("$main::imscpConfig{'CMD_PKILL'} -KILL -f $processPattern"); + + ! $self->status($processPattern); } =item restart($serviceName, [$processPattern = $serviceName]) @@ -106,6 +111,7 @@ sub stop($$;$) sub restart($$;$) { my ($self, $serviceName, $processPattern) = @_; + $processPattern ||= $serviceName; $self->_runCommand("$self->{'service_provider'} $serviceName restart"); @@ -125,6 +131,7 @@ sub restart($$;$) sub reload($$;$) { my ($self, $serviceName, $processPattern) = @_; + $processPattern ||= $serviceName; if($self->status($processPattern)) { # In case the service is not running, we start it