From b2d8559a5323977f7e77d75d634de3babfd4bd11 Mon Sep 17 00:00:00 2001
From: Webslice <webslice@bixels.nl>
Date: Tue, 22 Oct 2019 22:01:32 +0200
Subject: [PATCH] #5387 make apache init script overridable in server config

---
 install/tpl/server.ini.master                            | 1 +
 install/update.php                                       | 9 ++++++++-
 interface/lib/classes/IDS/Config/Config.ini.php          | 1 +
 interface/web/admin/form/server_config.tform.php         | 8 ++++++++
 interface/web/admin/lib/lang/ar_server_config.lng        | 2 ++
 interface/web/admin/lib/lang/bg_server_config.lng        | 2 ++
 interface/web/admin/lib/lang/br_server_config.lng        | 2 ++
 interface/web/admin/lib/lang/ca_server_config.lng        | 2 ++
 interface/web/admin/lib/lang/cz_server_config.lng        | 2 ++
 interface/web/admin/lib/lang/de_server_config.lng        | 2 ++
 interface/web/admin/lib/lang/dk_server_config.lng        | 2 ++
 interface/web/admin/lib/lang/el_server_config.lng        | 2 ++
 interface/web/admin/lib/lang/en_server_config.lng        | 2 ++
 interface/web/admin/lib/lang/es_server_config.lng        | 2 ++
 interface/web/admin/lib/lang/fi_server_config.lng        | 2 ++
 interface/web/admin/lib/lang/fr_server_config.lng        | 2 ++
 interface/web/admin/lib/lang/hr_server_config.lng        | 2 ++
 interface/web/admin/lib/lang/hu_server_config.lng        | 2 ++
 interface/web/admin/lib/lang/id_server_config.lng        | 2 ++
 interface/web/admin/lib/lang/it_server_config.lng        | 2 ++
 interface/web/admin/lib/lang/ja_server_config.lng        | 2 ++
 interface/web/admin/lib/lang/nl_server_config.lng        | 2 ++
 interface/web/admin/lib/lang/pl_server_config.lng        | 2 ++
 interface/web/admin/lib/lang/pt_server_config.lng        | 2 ++
 interface/web/admin/lib/lang/ro_server_config.lng        | 2 ++
 interface/web/admin/lib/lang/ru_server_config.lng        | 2 ++
 interface/web/admin/lib/lang/se_server_config.lng        | 2 ++
 interface/web/admin/lib/lang/sk_server_config.lng        | 2 ++
 interface/web/admin/lib/lang/tr_server_config.lng        | 2 ++
 interface/web/admin/templates/server_config_web_edit.htm | 3 +++
 security/ids.whitelist                                   | 1 +
 server/mods-available/web_module.inc.php                 | 4 +++-
 32 files changed, 75 insertions(+), 2 deletions(-)

diff --git a/install/tpl/server.ini.master b/install/tpl/server.ini.master
index 36f157d8e6..3786fc2ca3 100644
--- a/install/tpl/server.ini.master
+++ b/install/tpl/server.ini.master
@@ -72,6 +72,7 @@ website_symlinks_rel=n
 network_filesystem=n
 vhost_conf_dir=/etc/apache2/sites-available
 vhost_conf_enabled_dir=/etc/apache2/sites-enabled
+apache_init_script=
 nginx_vhost_conf_dir=/etc/nginx/sites-available
 nginx_vhost_conf_enabled_dir=/etc/nginx/sites-enabled
 security_level=20
diff --git a/install/update.php b/install/update.php
index 11570aa666..3b3cf969ef 100644
--- a/install/update.php
+++ b/install/update.php
@@ -567,7 +567,14 @@ if($reconfigure_services_answer == 'yes') {
 		if($conf['mailman']['installed'] == true && $conf['mailman']['init_script'] != '') system('nohup '.$inst->getinitcommand($conf['mailman']['init_script'], 'restart').' >/dev/null 2>&1 &');
 	}
 	if($conf['services']['web'] || $inst->install_ispconfig_interface) {
-		if($conf['webserver']['server_type'] == 'apache' && $conf['apache']['init_script'] != '') system($inst->getinitcommand($conf['apache']['init_script'], 'restart'));
+		if($conf['webserver']['server_type'] == 'apache') {
+			// If user has configured a custom Apache init script, use that. Otherwise use the default auto-detected init script
+			if(!empty($conf['server_config']['web']['apache_init_script'])) {
+				system($inst->getinitcommand($conf['server_config']['web']['apache_init_script'], 'restart'));
+			} elseif(!empty($conf['apache']['init_script'])) {
+				system($inst->getinitcommand($conf['apache']['init_script'], 'restart'));
+			}
+		}
 		//* Reload is enough for nginx
 		if($conf['webserver']['server_type'] == 'nginx'){
 			if($conf['nginx']['php_fpm_init_script'] != '') system($inst->getinitcommand($conf['nginx']['php_fpm_init_script'], 'reload'));
diff --git a/interface/lib/classes/IDS/Config/Config.ini.php b/interface/lib/classes/IDS/Config/Config.ini.php
index 080055298d..19af5d59bd 100644
--- a/interface/lib/classes/IDS/Config/Config.ini.php
+++ b/interface/lib/classes/IDS/Config/Config.ini.php
@@ -47,6 +47,7 @@
 	; exceptions[]    = POST.website_symlinks
 	; exceptions[]    = POST.vhost_conf_dir
 	; exceptions[]    = POST.vhost_conf_enabled_dir
+	; exceptions[]    = POST.apache_init_script
 	; exceptions[]    = POST.nginx_vhost_conf_dir
 	; exceptions[]    = POST.nginx_vhost_conf_enabled_dir
 	; exceptions[]    = POST.php_open_basedir
diff --git a/interface/web/admin/form/server_config.tform.php b/interface/web/admin/form/server_config.tform.php
index 2663cdd0e0..0e02b8525b 100644
--- a/interface/web/admin/form/server_config.tform.php
+++ b/interface/web/admin/form/server_config.tform.php
@@ -848,6 +848,14 @@ $form["tabs"]['web'] = array(
 			'width' => '40',
 			'maxlength' => '255'
 		),
+		'apache_init_script' => array(
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'default' => '',
+			'value' => '',
+			'width' => '40',
+			'maxlength' => '255'
+		),
 		'nginx_enable_pagespeed' => array (
 			'datatype' => 'VARCHAR',
 			'formtype' => 'CHECKBOX',
diff --git a/interface/web/admin/lib/lang/ar_server_config.lng b/interface/web/admin/lib/lang/ar_server_config.lng
index bccdcc42c0..dec2b56c8e 100644
--- a/interface/web/admin/lib/lang/ar_server_config.lng
+++ b/interface/web/admin/lib/lang/ar_server_config.lng
@@ -9,6 +9,8 @@ $wb['website_symlinks_rel_txt'] = 'Make relative symlinks';
 $wb['website_basedir_txt'] = 'Website basedir';
 $wb['vhost_conf_dir_txt'] = 'Vhost config dir';
 $wb['vhost_conf_enabled_dir_txt'] = 'Vhost config enabled dir';
+$wb['apache_init_script_txt'] = 'Apache init script';
+$wb['apache_init_script_note_txt'] = 'Leaving this empty will auto-detect the Apache init script';
 $wb['getmail_config_dir_txt'] = 'Getmail config dir';
 $wb['fastcgi_starter_path_txt'] = 'FastCGI starter path';
 $wb['fastcgi_starter_script_txt'] = 'FastCGI starter script';
diff --git a/interface/web/admin/lib/lang/bg_server_config.lng b/interface/web/admin/lib/lang/bg_server_config.lng
index 39531461c3..186462720e 100644
--- a/interface/web/admin/lib/lang/bg_server_config.lng
+++ b/interface/web/admin/lib/lang/bg_server_config.lng
@@ -7,6 +7,8 @@ $wb['website_symlinks_txt'] = 'Website symlinks';
 $wb['website_symlinks_rel_txt'] = 'Make relative symlinks';
 $wb['vhost_conf_dir_txt'] = 'Vhost config dir';
 $wb['vhost_conf_enabled_dir_txt'] = 'Vhost config enabled dir';
+$wb['apache_init_script_txt'] = 'Apache init скрипт';
+$wb['apache_init_script_note_txt'] = 'Оставянето на това празно ще открие автоматично скрипта за Apache init';
 $wb['getmail_config_dir_txt'] = 'Getmail config dir';
 $wb['fastcgi_starter_path_txt'] = 'FastCGI starter path';
 $wb['fastcgi_starter_script_txt'] = 'FastCGI starter script';
diff --git a/interface/web/admin/lib/lang/br_server_config.lng b/interface/web/admin/lib/lang/br_server_config.lng
index f57a2310f2..25cb1a3a3d 100644
--- a/interface/web/admin/lib/lang/br_server_config.lng
+++ b/interface/web/admin/lib/lang/br_server_config.lng
@@ -19,6 +19,8 @@ $wb['website_autoalias_txt'] = 'Auto alias - site';
 $wb['website_autoalias_note_txt'] = 'Área reservada:';
 $wb['vhost_conf_dir_txt'] = 'Diretório de configuração vhost';
 $wb['vhost_conf_enabled_dir_txt'] = 'Diretório de configuração vhost habilitado';
+$wb['apache_init_script_txt'] = 'Script de inicialização do Apache';
+$wb['apache_init_script_note_txt'] = 'Deixando esta vontade vazio detectar automaticamente o script de inicialização do Apache';
 $wb['getmail_config_dir_txt'] = 'Diretório de configuração do getmail';
 $wb['fastcgi_starter_path_txt'] = 'Caminho de inicialização do FastCGI';
 $wb['fastcgi_starter_script_txt'] = 'Script de inicialização do FastCGI';
diff --git a/interface/web/admin/lib/lang/ca_server_config.lng b/interface/web/admin/lib/lang/ca_server_config.lng
index 14f0b91d3b..f0d79a89f9 100644
--- a/interface/web/admin/lib/lang/ca_server_config.lng
+++ b/interface/web/admin/lib/lang/ca_server_config.lng
@@ -19,6 +19,8 @@ $wb['website_autoalias_txt'] = 'Website auto alias';
 $wb['website_autoalias_note_txt'] = 'Placeholders:';
 $wb['vhost_conf_dir_txt'] = 'Vhost config dir';
 $wb['vhost_conf_enabled_dir_txt'] = 'Vhost config enabled dir';
+$wb['apache_init_script_txt'] = 'Apache init script';
+$wb['apache_init_script_note_txt'] = 'Leaving this empty will auto-detect the Apache init script';
 $wb['getmail_config_dir_txt'] = 'Getmail config dir';
 $wb['fastcgi_starter_path_txt'] = 'FastCGI starter path';
 $wb['fastcgi_starter_script_txt'] = 'FastCGI starter script';
diff --git a/interface/web/admin/lib/lang/cz_server_config.lng b/interface/web/admin/lib/lang/cz_server_config.lng
index a97d78b8eb..100694c625 100644
--- a/interface/web/admin/lib/lang/cz_server_config.lng
+++ b/interface/web/admin/lib/lang/cz_server_config.lng
@@ -9,6 +9,8 @@ $wb['website_symlinks_rel_txt'] = 'Make relative symlinks';
 $wb['website_basedir_txt'] = 'Website config adresář';
 $wb['vhost_conf_dir_txt'] = 'Vhost config adresář';
 $wb['vhost_conf_enabled_dir_txt'] = 'Vhost config enabled adresář';
+$wb['apache_init_script_txt'] = 'Inicializační skript Apache';
+$wb['apache_init_script_note_txt'] = 'Ponecháte-li toto prázdné, automaticky detekuje iniciační skript Apache';
 $wb['getmail_config_dir_txt'] = 'Getmail složka pro konfigurace';
 $wb['fastcgi_starter_path_txt'] = 'FastCGI starter cesta';
 $wb['fastcgi_starter_script_txt'] = 'FastCGI starter skript';
diff --git a/interface/web/admin/lib/lang/de_server_config.lng b/interface/web/admin/lib/lang/de_server_config.lng
index 960381e7c1..d7f21fc473 100644
--- a/interface/web/admin/lib/lang/de_server_config.lng
+++ b/interface/web/admin/lib/lang/de_server_config.lng
@@ -8,6 +8,8 @@ $wb['website_symlinks_txt'] = 'Webseiten Symlinks';
 $wb['website_symlinks_rel_txt'] = 'Erstelle relative Symlinks';
 $wb['vhost_conf_dir_txt'] = 'vHost Konfigurationsverzeichnis';
 $wb['vhost_conf_enabled_dir_txt'] = 'vHost config enabled dir';
+$wb['apache_init_script_txt'] = 'Apache-Init-Skript';
+$wb['apache_init_script_note_txt'] = 'Wenn Sie dieses Feld leer lassen, wird das Apache-Init-Skript automatisch erkannt';
 $wb['getmail_config_dir_txt'] = 'Getmail Konfigurationsverzeichnis';
 $wb['fastcgi_starter_path_txt'] = 'FastCGI Starter Pfad';
 $wb['fastcgi_starter_script_txt'] = 'FastCGI Starter Script';
diff --git a/interface/web/admin/lib/lang/dk_server_config.lng b/interface/web/admin/lib/lang/dk_server_config.lng
index 73e7ef1bfd..2a8c13e143 100644
--- a/interface/web/admin/lib/lang/dk_server_config.lng
+++ b/interface/web/admin/lib/lang/dk_server_config.lng
@@ -19,6 +19,8 @@ $wb['website_autoalias_txt'] = 'Webside auto alias';
 $wb['website_autoalias_note_txt'] = 'Pladsholdere:';
 $wb['vhost_conf_dir_txt'] = 'Vhost config dir';
 $wb['vhost_conf_enabled_dir_txt'] = 'Vhost config enabled dir';
+$wb['apache_init_script_txt'] = 'Apache init script';
+$wb['apache_init_script_note_txt'] = 'Forlader denne tomme vilje automatisk registrering Apache init-script';
 $wb['getmail_config_dir_txt'] = 'Getmail config dir';
 $wb['fastcgi_starter_path_txt'] = 'FastCGI starter path';
 $wb['fastcgi_starter_script_txt'] = 'FastCGI starter script';
diff --git a/interface/web/admin/lib/lang/el_server_config.lng b/interface/web/admin/lib/lang/el_server_config.lng
index 84992261bb..60d3564e13 100644
--- a/interface/web/admin/lib/lang/el_server_config.lng
+++ b/interface/web/admin/lib/lang/el_server_config.lng
@@ -9,6 +9,8 @@ $wb['website_symlinks_rel_txt'] = 'Δημιουργία σχετικών symlink
 $wb['website_basedir_txt'] = 'Βασικός φάκελος Website';
 $wb['vhost_conf_dir_txt'] = 'Φάκελος ρυθμίσεων Vhost';
 $wb['vhost_conf_enabled_dir_txt'] = 'Φάκελος ρυθμίσεων (ενεργών) Vhost';
+$wb['apache_init_script_txt'] = 'Apache script init';
+$wb['apache_init_script_note_txt'] = 'Εάν αφήσετε αυτό το κενό, θα ανιχνευθεί αυτόματα το σενάριο εισαγωγής Apache';
 $wb['getmail_config_dir_txt'] = 'Φάκελος ρυθμίσεων Getmail';
 $wb['fastcgi_starter_path_txt'] = 'Διαδρομή εκκίνησης FastCGI';
 $wb['fastcgi_starter_script_txt'] = 'Script εκκίνησης FastCGI';
diff --git a/interface/web/admin/lib/lang/en_server_config.lng b/interface/web/admin/lib/lang/en_server_config.lng
index 0ba3638a0a..82c847f88d 100644
--- a/interface/web/admin/lib/lang/en_server_config.lng
+++ b/interface/web/admin/lib/lang/en_server_config.lng
@@ -19,6 +19,8 @@ $wb["website_autoalias_txt"] = 'Website auto alias';
 $wb["website_autoalias_note_txt"] = 'Placeholders:';
 $wb["vhost_conf_dir_txt"] = 'Vhost config dir';
 $wb["vhost_conf_enabled_dir_txt"] = 'Vhost config enabled dir';
+$wb["apache_init_script_txt"] = 'Apache init script';
+$wb["apache_init_script_note_txt"] = 'Leaving this empty will auto-detect the Apache init script';
 $wb["getmail_config_dir_txt"] = 'Getmail config dir';
 $wb["fastcgi_starter_path_txt"] = 'FastCGI starter path';
 $wb["fastcgi_starter_script_txt"] = 'FastCGI starter script';
diff --git a/interface/web/admin/lib/lang/es_server_config.lng b/interface/web/admin/lib/lang/es_server_config.lng
index 01350367ae..04333c60a3 100755
--- a/interface/web/admin/lib/lang/es_server_config.lng
+++ b/interface/web/admin/lib/lang/es_server_config.lng
@@ -2,6 +2,8 @@
 $wb['add_web_users_to_sshusers_group_txt'] = 'Añadir usuarios web al grupo -sshusers-';
 $wb['admin_notify_events_txt'] = 'Enviar correo al administrador a partir de siguiente nivel';
 $wb['apache_group_error_empty'] = 'El grupo de Apache está vacío.';
+$wb['apache_init_script_note_txt'] = 'Dejar esto vacío detectará automáticamente el script de inicio de Apache';
+$wb['apache_init_script_txt'] = 'Apache init script';
 $wb['apache_user_error_empty'] = 'El usuario de Apache está vacío.';
 $wb['apps_vhost_enabled_txt'] = 'Host virtual de aplicaciones habilitado';
 $wb['apps_vhost_ip_error_empty'] = 'La IP para el host virtual de las aplicaciones está vacía.';
diff --git a/interface/web/admin/lib/lang/fi_server_config.lng b/interface/web/admin/lib/lang/fi_server_config.lng
index 6caf643abe..c471b4c11b 100755
--- a/interface/web/admin/lib/lang/fi_server_config.lng
+++ b/interface/web/admin/lib/lang/fi_server_config.lng
@@ -7,6 +7,8 @@ $wb['website_symlinks_txt'] = 'Verkkotunnuksen symmetriset linkit';
 $wb['website_symlinks_rel_txt'] = 'Make relative symlinks';
 $wb['vhost_conf_dir_txt'] = 'Virtuaalipalvelimen asetuskansio';
 $wb['vhost_conf_enabled_dir_txt'] = 'Virtuaalipalvelimen käyttöönottokansio';
+$wb['apache_init_script_txt'] = 'Apache-aloituskomentosarja';
+$wb['apache_init_script_note_txt'] = 'Jätä tämä tyhjä tunnistaa Apache-aloitusohjelman automaattisesti';
 $wb['getmail_config_dir_txt'] = 'Getmail-asetuskansio';
 $wb['fastcgi_starter_path_txt'] = 'FastCGI:n käynnistyspolku';
 $wb['fastcgi_starter_script_txt'] = 'FastCGI:n käynnistysskripti';
diff --git a/interface/web/admin/lib/lang/fr_server_config.lng b/interface/web/admin/lib/lang/fr_server_config.lng
index 25f7375688..b7741efefc 100644
--- a/interface/web/admin/lib/lang/fr_server_config.lng
+++ b/interface/web/admin/lib/lang/fr_server_config.lng
@@ -7,6 +7,8 @@ $wb['website_symlinks_txt'] = 'Liens symboliques du site web';
 $wb['website_symlinks_rel_txt'] = 'Make relative symlinks';
 $wb['vhost_conf_dir_txt'] = 'Répertoire de configuration des VHosts';
 $wb['vhost_conf_enabled_dir_txt'] = 'Répertoire de configuration des VHosts actifs';
+$wb['apache_init_script_txt'] = 'Script d\'initiation Apache';
+$wb['apache_init_script_note_txt'] = 'Si vous laissez ce champ vide, le script init Apache sera automatiquement détecté.';
 $wb['getmail_config_dir_txt'] = 'Répertoire de configuration de Getmail';
 $wb['fastcgi_starter_path_txt'] = 'Chemin du lanceur de FastCGI';
 $wb['fastcgi_starter_script_txt'] = 'Script lanceur de FastCGI';
diff --git a/interface/web/admin/lib/lang/hr_server_config.lng b/interface/web/admin/lib/lang/hr_server_config.lng
index faf08f4201..d1da411eec 100644
--- a/interface/web/admin/lib/lang/hr_server_config.lng
+++ b/interface/web/admin/lib/lang/hr_server_config.lng
@@ -8,6 +8,8 @@ $wb['website_symlinks_txt'] = 'Symlinkovi Web stranice';
 $wb['website_basedir_txt'] = 'Bazni direktorij Web stranice';
 $wb['vhost_conf_dir_txt'] = 'Vhost konfiguracijski direktorij';
 $wb['vhost_conf_enabled_dir_txt'] = 'Vhost dozvoljeni konfiguracijski direktorij';
+$wb['apache_init_script_txt'] = 'Apache init skripta';
+$wb['apache_init_script_note_txt'] = 'Ostavite ovo prazno automatski će otkriti skriptu Apache init';
 $wb['getmail_config_dir_txt'] = 'Getmail konfiguracijski direktorij';
 $wb['fastcgi_starter_path_txt'] = 'Put do FastCGI-a';
 $wb['fastcgi_starter_script_txt'] = 'FastCGI početna skripta';
diff --git a/interface/web/admin/lib/lang/hu_server_config.lng b/interface/web/admin/lib/lang/hu_server_config.lng
index 6347afb7da..f07dc1a7dd 100644
--- a/interface/web/admin/lib/lang/hu_server_config.lng
+++ b/interface/web/admin/lib/lang/hu_server_config.lng
@@ -7,6 +7,8 @@ $wb['website_symlinks_txt'] = 'Website symlinks';
 $wb['website_symlinks_rel_txt'] = 'Make relative symlinks';
 $wb['vhost_conf_dir_txt'] = 'Vhost config dir';
 $wb['vhost_conf_enabled_dir_txt'] = 'Vhost config enabled dir';
+$wb['apache_init_script_txt'] = 'Apache init parancsfájl';
+$wb['apache_init_script_note_txt'] = 'Ha üresen hagyja, az automatikusan felismeri az Apache init parancsfájlját';
 $wb['getmail_config_dir_txt'] = 'Getmail config dir';
 $wb['fastcgi_starter_path_txt'] = 'FastCGI starter path';
 $wb['fastcgi_starter_script_txt'] = 'FastCGI starter script';
diff --git a/interface/web/admin/lib/lang/id_server_config.lng b/interface/web/admin/lib/lang/id_server_config.lng
index 9a28dff300..71e060c0ea 100644
--- a/interface/web/admin/lib/lang/id_server_config.lng
+++ b/interface/web/admin/lib/lang/id_server_config.lng
@@ -9,6 +9,8 @@ $wb['website_symlinks_rel_txt'] = 'Make relative symlinks';
 $wb['website_basedir_txt'] = 'Basedir Situs web';
 $wb['vhost_conf_dir_txt'] = 'Direktori konfigurasi vhost';
 $wb['vhost_conf_enabled_dir_txt'] = 'Direktori konfigurasi vhost yang aktif';
+$wb['apache_init_script_txt'] = 'Skrip init Apache';
+$wb['apache_init_script_note_txt'] = 'Membiarkan ini kosong akan secara otomatis mendeteksi skrip init Apache';
 $wb['getmail_config_dir_txt'] = 'Direktori konfigurasi getmail';
 $wb['fastcgi_starter_path_txt'] = 'Path pemicu FastCGI';
 $wb['fastcgi_starter_script_txt'] = 'Skrip pemicu FastCGI';
diff --git a/interface/web/admin/lib/lang/it_server_config.lng b/interface/web/admin/lib/lang/it_server_config.lng
index 3dc37a3c1d..b853e1f4ab 100644
--- a/interface/web/admin/lib/lang/it_server_config.lng
+++ b/interface/web/admin/lib/lang/it_server_config.lng
@@ -6,6 +6,8 @@ $wb['website_path_txt'] = 'Percorso Sito Web';
 $wb['website_symlinks_txt'] = 'Sito Web symlinks';
 $wb['vhost_conf_dir_txt'] = 'Vhost config dir';
 $wb['vhost_conf_enabled_dir_txt'] = 'Vhost config dir abilitata';
+$wb['apache_init_script_txt'] = 'Apache init script';
+$wb['apache_init_script_note_txt'] = 'Lasciare questo vuoto rileverà automaticamente lo script init di Apache';
 $wb['getmail_config_dir_txt'] = 'Getmail config dir';
 $wb['fastcgi_starter_path_txt'] = 'Percorso FastCGI starter';
 $wb['fastcgi_starter_script_txt'] = 'FastCGI starter script';
diff --git a/interface/web/admin/lib/lang/ja_server_config.lng b/interface/web/admin/lib/lang/ja_server_config.lng
index 72bef72c4b..efaff2df6c 100644
--- a/interface/web/admin/lib/lang/ja_server_config.lng
+++ b/interface/web/admin/lib/lang/ja_server_config.lng
@@ -9,6 +9,8 @@ $wb['website_symlinks_rel_txt'] = 'Make relative symlinks';
 $wb['website_basedir_txt'] = 'ウェブサイトのベースディレクトリ';
 $wb['vhost_conf_dir_txt'] = 'バーチャルホスト設定ディレクトリ';
 $wb['vhost_conf_enabled_dir_txt'] = 'バーチャルホスト設定ディレクトリ(有効)';
+$wb['apache_init_script_txt'] = 'Apache initスクリプト';
+$wb['apache_init_script_note_txt'] = 'これを空のままにすると、Apache initスクリプトが自動検出されます';
 $wb['getmail_config_dir_txt'] = 'Getmail 設定ディレクトリ';
 $wb['fastcgi_starter_path_txt'] = 'FastCGIスターターのパス';
 $wb['fastcgi_starter_script_txt'] = 'FastCGIスタータースクリプト';
diff --git a/interface/web/admin/lib/lang/nl_server_config.lng b/interface/web/admin/lib/lang/nl_server_config.lng
index 2884f304ec..e081fd79ea 100644
--- a/interface/web/admin/lib/lang/nl_server_config.lng
+++ b/interface/web/admin/lib/lang/nl_server_config.lng
@@ -9,6 +9,8 @@ $wb['website_symlinks_rel_txt'] = 'Maak relative symlinks';
 $wb['website_basedir_txt'] = 'Website basedir';
 $wb['vhost_conf_dir_txt'] = 'Vhost config dir';
 $wb['vhost_conf_enabled_dir_txt'] = 'Vhost config enabled dir';
+$wb['apache_init_script_txt'] = 'Apache init script';
+$wb['apache_init_script_note_txt'] = 'Als u dit leeg laat, wordt het Apache init-script automatisch gedetecteerd';
 $wb['getmail_config_dir_txt'] = 'Getmail config dir';
 $wb['fastcgi_starter_path_txt'] = 'FastCGI starter pad';
 $wb['fastcgi_starter_script_txt'] = 'FastCGI starter script';
diff --git a/interface/web/admin/lib/lang/pl_server_config.lng b/interface/web/admin/lib/lang/pl_server_config.lng
index 29cb94e96c..68ad88c95a 100644
--- a/interface/web/admin/lib/lang/pl_server_config.lng
+++ b/interface/web/admin/lib/lang/pl_server_config.lng
@@ -9,6 +9,8 @@ $wb['website_symlinks_rel_txt'] = 'Twórz linki relatywne';
 $wb['website_basedir_txt'] = 'Ścieżka bazowa strony WWW';
 $wb['vhost_conf_dir_txt'] = 'Ścieżka do konfiguracyji wirtualnego serwera';
 $wb['vhost_conf_enabled_dir_txt'] = 'Ścieżka do aktywnej konfiguracyji Vhost';
+$wb['apache_init_script_txt'] = 'Skrypt inicjujÄ…cy Apache';
+$wb['apache_init_script_note_txt'] = 'Pozostawienie tego pustego spowoduje automatyczne wykrycie skryptu inicjujÄ…cego Apache';
 $wb['getmail_config_dir_txt'] = 'Ścieżka do konfiguracyji Getmail';
 $wb['fastcgi_starter_path_txt'] = 'Adres startowy FastCGI';
 $wb['fastcgi_starter_script_txt'] = 'Startowy skrypt FastCGI';
diff --git a/interface/web/admin/lib/lang/pt_server_config.lng b/interface/web/admin/lib/lang/pt_server_config.lng
index 3703c759ed..8639ad3a8b 100644
--- a/interface/web/admin/lib/lang/pt_server_config.lng
+++ b/interface/web/admin/lib/lang/pt_server_config.lng
@@ -8,6 +8,8 @@ $wb['website_symlinks_rel_txt'] = 'Make relative symlinks';
 $wb['website_basedir_txt'] = 'Website basedir: pasta base ';
 $wb['vhost_conf_dir_txt'] = 'Vhost config dir';
 $wb['vhost_conf_enabled_dir_txt'] = 'Vhost pasta de configuração activo';
+$wb['apache_init_script_txt'] = 'Script de inicialização do Apache';
+$wb['apache_init_script_note_txt'] = 'Deixando esta vontade vazio detectar automaticamente o script de inicialização do Apache';
 $wb['getmail_config_dir_txt'] = 'Getmail config dir';
 $wb['fastcgi_starter_path_txt'] = 'FastCGI: Pasta inicial';
 $wb['fastcgi_starter_script_txt'] = 'FastCGI: Script inicial';
diff --git a/interface/web/admin/lib/lang/ro_server_config.lng b/interface/web/admin/lib/lang/ro_server_config.lng
index 3251476126..4292ee008f 100644
--- a/interface/web/admin/lib/lang/ro_server_config.lng
+++ b/interface/web/admin/lib/lang/ro_server_config.lng
@@ -8,6 +8,8 @@ $wb['website_symlinks_rel_txt'] = 'Make relative symlinks';
 $wb['website_basedir_txt'] = 'Website basedir';
 $wb['vhost_conf_dir_txt'] = 'Vhost config dir';
 $wb['vhost_conf_enabled_dir_txt'] = 'Vhost config enabled dir';
+$wb['apache_init_script_txt'] = 'Scriptul Apache init';
+$wb['apache_init_script_note_txt'] = 'Lăsând acest gol, va detecta automat scriptul inițial Apache';
 $wb['getmail_config_dir_txt'] = 'Getmail config dir';
 $wb['fastcgi_starter_path_txt'] = 'FastCGI starter path';
 $wb['fastcgi_starter_script_txt'] = 'FastCGI starter script';
diff --git a/interface/web/admin/lib/lang/ru_server_config.lng b/interface/web/admin/lib/lang/ru_server_config.lng
index b2f0b407d6..43468ce757 100644
--- a/interface/web/admin/lib/lang/ru_server_config.lng
+++ b/interface/web/admin/lib/lang/ru_server_config.lng
@@ -6,6 +6,8 @@ $wb['website_path_txt'] = 'Путь к web-сайту';
 $wb['website_symlinks_txt'] = 'Симлинки Web-сайта';
 $wb['vhost_conf_dir_txt'] = 'Каталог config Vhost';
 $wb['vhost_conf_enabled_dir_txt'] = 'Каталог Vhost conf enabled';
+$wb['apache_init_script_txt'] = 'Apache init script';
+$wb['apache_init_script_note_txt'] = 'Если оставить это поле пустым, будет автоматически обнаружен скрипт инициализации Apache.';
 $wb['getmail_config_dir_txt'] = 'Папка конфига Getmail';
 $wb['fastcgi_starter_path_txt'] = 'Стартовый путь FastCGI';
 $wb['fastcgi_starter_script_txt'] = 'Стартовый скрипт FastCGI';
diff --git a/interface/web/admin/lib/lang/se_server_config.lng b/interface/web/admin/lib/lang/se_server_config.lng
index 1103baa4d2..baf3c16e6f 100644
--- a/interface/web/admin/lib/lang/se_server_config.lng
+++ b/interface/web/admin/lib/lang/se_server_config.lng
@@ -7,6 +7,8 @@ $wb['website_symlinks_txt'] = 'Website symlinks';
 $wb['website_symlinks_rel_txt'] = 'Make relative symlinks';
 $wb['vhost_conf_dir_txt'] = 'Vhost config dir';
 $wb['vhost_conf_enabled_dir_txt'] = 'Vhost config enabled dir';
+$wb['apache_init_script_txt'] = 'Apache init-skript';
+$wb['apache_init_script_note_txt'] = 'Om du lämnar detta tomt kommer det automatiskt att upptäcka Apache-init-skriptet';
 $wb['getmail_config_dir_txt'] = 'Getmail config dir';
 $wb['fastcgi_starter_path_txt'] = 'FastCGI starter path';
 $wb['fastcgi_starter_script_txt'] = 'FastCGI starter script';
diff --git a/interface/web/admin/lib/lang/sk_server_config.lng b/interface/web/admin/lib/lang/sk_server_config.lng
index 125e0b1ea2..4eaacc4b59 100644
--- a/interface/web/admin/lib/lang/sk_server_config.lng
+++ b/interface/web/admin/lib/lang/sk_server_config.lng
@@ -9,6 +9,8 @@ $wb['website_symlinks_rel_txt'] = 'Make relative symlinks';
 $wb['website_basedir_txt'] = 'Website základny adresár';
 $wb['vhost_conf_dir_txt'] = 'Vhost konfig adresár';
 $wb['vhost_conf_enabled_dir_txt'] = 'Vhost konfig odblokovaný adresár';
+$wb['apache_init_script_txt'] = 'Inicializačný skript Apache';
+$wb['apache_init_script_note_txt'] = 'Ak ponecháte toto pole prázdne, automaticky zistí iniciačný skript Apache';
 $wb['getmail_config_dir_txt'] = 'Getmail konfig adresár';
 $wb['fastcgi_starter_path_txt'] = 'FastCGI starter cesta';
 $wb['fastcgi_starter_script_txt'] = 'FastCGI starter skript';
diff --git a/interface/web/admin/lib/lang/tr_server_config.lng b/interface/web/admin/lib/lang/tr_server_config.lng
index 3b63e881f9..a5ca5adfff 100644
--- a/interface/web/admin/lib/lang/tr_server_config.lng
+++ b/interface/web/admin/lib/lang/tr_server_config.lng
@@ -19,6 +19,8 @@ $wb['website_autoalias_txt'] = 'Otomatik Web Sitesi Takma Adı';
 $wb['website_autoalias_note_txt'] = 'Kodlar:';
 $wb['vhost_conf_dir_txt'] = 'Sanal Sunucu Ayarları Klasörü';
 $wb['vhost_conf_enabled_dir_txt'] = 'Etkin Sanal Sunucu Ayarları Klasörü';
+$wb['apache_init_script_txt'] = 'Apache init betiÄŸi';
+$wb['apache_init_script_note_txt'] = 'Bu değerin boş bırakılması Apache init betiğini otomatik olarak algılar';
 $wb['getmail_config_dir_txt'] = 'Getmail Ayarları Klasörü';
 $wb['fastcgi_starter_path_txt'] = 'FastCGI Başlatıcı Yolu';
 $wb['fastcgi_starter_script_txt'] = 'FastCGI Başlatıcı Betiği';
diff --git a/interface/web/admin/templates/server_config_web_edit.htm b/interface/web/admin/templates/server_config_web_edit.htm
index eb285bbc07..97dc0557fc 100644
--- a/interface/web/admin/templates/server_config_web_edit.htm
+++ b/interface/web/admin/templates/server_config_web_edit.htm
@@ -60,6 +60,9 @@
             <div class="form-group apache">
                 <label for="vhost_conf_enabled_dir" class="col-sm-3 control-label">{tmpl_var name='vhost_conf_enabled_dir_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="vhost_conf_enabled_dir" id="vhost_conf_enabled_dir" value="{tmpl_var name='vhost_conf_enabled_dir'}" class="form-control" /></div></div>
+            <div class="form-group apache">
+                <label for="apache_init_script" class="col-sm-3 control-label">{tmpl_var name='apache_init_script_txt'}</label>
+                <div class="col-sm-9"><input type="text" name="apache_init_script" id="apache_init_script" value="{tmpl_var name='apache_init_script'}" class="form-control" />{tmpl_var name='apache_init_script_note_txt'}</div></div>
             <div class="form-group nginx">
                 <label for="nginx_enable_pagespeed" class="col-sm-3 control-label">{tmpl_var name='nginx_enable_pagespeed_txt'}</label>
                 <div class="col-sm-9">{tmpl_var name='nginx_enable_pagespeed'}</div></div>
diff --git a/security/ids.whitelist b/security/ids.whitelist
index a9b045e15f..6a953f45cf 100644
--- a/security/ids.whitelist
+++ b/security/ids.whitelist
@@ -7,6 +7,7 @@ admin:/admin/server_config_edit.php:POST.website_path
 admin:/admin/server_config_edit.php:POST.website_symlinks
 admin:/admin/server_config_edit.php:POST.vhost_conf_dir
 admin:/admin/server_config_edit.php:POST.vhost_conf_enabled_dir
+admin:/admin/server_config_edit.php:POST.apache_init_script
 admin:/admin/server_config_edit.php:POST.nginx_vhost_conf_dir
 admin:/admin/server_config_edit.php:POST.nginx_vhost_conf_enabled_dir
 admin:/admin/server_config_edit.php:POST.php_open_basedir
diff --git a/server/mods-available/web_module.inc.php b/server/mods-available/web_module.inc.php
index aecec10579..02f31510c2 100644
--- a/server/mods-available/web_module.inc.php
+++ b/server/mods-available/web_module.inc.php
@@ -203,7 +203,9 @@ class web_module {
 			$daemon = $web_config['server_type'];
 			break;
 		default:
-			if(is_file($conf['init_scripts'] . '/' . 'httpd') || is_dir('/etc/httpd')) {
+			if (!empty($web_config['apache_init_script'])) {
+				$daemon = $web_config['apache_init_script'];
+			} elseif(is_file($conf['init_scripts'] . '/' . 'httpd') || is_dir('/etc/httpd')) {
 				$daemon = 'httpd';
 			} else {
 				$daemon = 'apache2';
-- 
GitLab