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