diff --git a/install/dist/conf/centos70.conf.php b/install/dist/conf/centos70.conf.php
index ec59c754cb3c93ead89f61738982bd9f4ba5756f..0ea6524c1b119a626de661f841cfe7eb665dd218 100644
--- a/install/dist/conf/centos70.conf.php
+++ b/install/dist/conf/centos70.conf.php
@@ -186,7 +186,7 @@ $conf['bind']['init_script'] = 'named';
 //* Jailkit
 $conf['jailkit']['installed'] = false; // will be detected automatically during installation
 $conf['jailkit']['config_dir'] = '/etc/jailkit';
-$conf['jailkit']['jk_init'] = 'jk_init.ini';
+$conf['jailkit']['jk_init'] = 'jk_init_el.ini';
 $conf['jailkit']['jk_chrootsh'] = 'jk_chrootsh.ini';
 $conf['jailkit']['jailkit_chroot_app_programs'] = '/usr/bin/groups /usr/bin/id /usr/bin/dircolors /bin/basename /usr/bin/dirname /usr/bin/nano';
 $conf['jailkit']['jailkit_chroot_cron_programs'] = '/usr/bin/php /usr/bin/perl /usr/share/perl /usr/share/php';
diff --git a/install/dist/conf/centos72.conf.php b/install/dist/conf/centos72.conf.php
index d83ac2300b8f284c565363180e26450f054d8edc..51cd5b3332992e6c79ad13927baa68bf56b71d11 100644
--- a/install/dist/conf/centos72.conf.php
+++ b/install/dist/conf/centos72.conf.php
@@ -189,7 +189,7 @@ $conf['bind']['init_script'] = 'named';
 //* Jailkit
 $conf['jailkit']['installed'] = false; // will be detected automatically during installation
 $conf['jailkit']['config_dir'] = '/etc/jailkit';
-$conf['jailkit']['jk_init'] = 'jk_init.ini';
+$conf['jailkit']['jk_init'] = 'jk_init_el.ini';
 $conf['jailkit']['jk_chrootsh'] = 'jk_chrootsh.ini';
 $conf['jailkit']['jailkit_chroot_app_programs'] = '/usr/bin/groups /usr/bin/id /usr/bin/dircolors /bin/basename /usr/bin/dirname /usr/bin/nano';
 $conf['jailkit']['jailkit_chroot_cron_programs'] = '/usr/bin/php /usr/bin/perl /usr/share/perl /usr/share/php';
diff --git a/install/dist/conf/centos80.conf.php b/install/dist/conf/centos80.conf.php
index dd2abc668a21384b906f987f59da19a9ff24bf06..bdba560c4f10757d1c53a9f481a68e037da5a558 100644
--- a/install/dist/conf/centos80.conf.php
+++ b/install/dist/conf/centos80.conf.php
@@ -189,7 +189,7 @@ $conf['bind']['init_script'] = 'named';
 //* Jailkit
 $conf['jailkit']['installed'] = false; // will be detected automatically during installation
 $conf['jailkit']['config_dir'] = '/etc/jailkit';
-$conf['jailkit']['jk_init'] = 'jk_init.ini';
+$conf['jailkit']['jk_init'] = 'jk_init_el.ini';
 $conf['jailkit']['jk_chrootsh'] = 'jk_chrootsh.ini';
 $conf['jailkit']['jailkit_chroot_app_programs'] = '/usr/bin/groups /usr/bin/id /usr/bin/dircolors /bin/basename /usr/bin/dirname /usr/bin/nano';
 $conf['jailkit']['jailkit_chroot_cron_programs'] = '/usr/bin/php /usr/bin/perl /usr/share/perl /usr/share/php';
diff --git a/install/dist/conf/centos90.conf.php b/install/dist/conf/centos90.conf.php
index 909418dc2ef9d2babed8f0f413c3cfa0a1d9e648..f513d6b080d1d9446025964b2115b65874f56ee8 100644
--- a/install/dist/conf/centos90.conf.php
+++ b/install/dist/conf/centos90.conf.php
@@ -189,7 +189,7 @@ $conf['bind']['init_script'] = 'named';
 //* Jailkit
 $conf['jailkit']['installed'] = false; // will be detected automatically during installation
 $conf['jailkit']['config_dir'] = '/etc/jailkit';
-$conf['jailkit']['jk_init'] = 'jk_init.ini';
+$conf['jailkit']['jk_init'] = 'jk_init_el.ini';
 $conf['jailkit']['jk_chrootsh'] = 'jk_chrootsh.ini';
 $conf['jailkit']['jailkit_chroot_app_programs'] = '/usr/bin/groups /usr/bin/id /usr/bin/dircolors /bin/basename /usr/bin/dirname /usr/bin/nano';
 $conf['jailkit']['jailkit_chroot_cron_programs'] = '/usr/bin/php /usr/bin/perl /usr/share/perl /usr/share/php';
diff --git a/install/dist/conf/fedora9.conf.php b/install/dist/conf/fedora9.conf.php
index 49802db9d6e59beb1ba6527b2f8557e505e798a6..1928489e5c2c1e1191daf15940641c6724ac00fe 100644
--- a/install/dist/conf/fedora9.conf.php
+++ b/install/dist/conf/fedora9.conf.php
@@ -185,7 +185,7 @@ $conf['bind']['init_script'] = 'named';
 //* Jailkit
 $conf['jailkit']['installed'] = false; // will be detected automatically during installation
 $conf['jailkit']['config_dir'] = '/etc/jailkit';
-$conf['jailkit']['jk_init'] = 'jk_init.ini';
+$conf['jailkit']['jk_init'] = 'jk_init_el.ini';
 $conf['jailkit']['jk_chrootsh'] = 'jk_chrootsh.ini';
 $conf['jailkit']['jailkit_chroot_app_programs'] = '/usr/bin/groups /usr/bin/id /usr/bin/dircolors /bin/basename /usr/bin/dirname /usr/bin/nano';
 $conf['jailkit']['jailkit_chroot_cron_programs'] = '/usr/bin/php /usr/bin/perl /usr/share/perl /usr/share/php';
diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index 6b72bbf834162cf52f12f1ef181e3219f6c96404..ae8f2ca7d1f894fdd62ca93f784d847b0beeaf3f 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -914,20 +914,22 @@ class installer_base extends stdClass {
 		$config_dir = $cf['config_dir'];
 		$jk_init = $cf['jk_init'];
 		$jk_chrootsh = $cf['jk_chrootsh'];
+		$dest_jk_init = 'jk_init.ini';
+		$dest_jk_chrootsh = 'jk_chrootsh.ini';
 
 		if (is_dir($config_dir)) {
-			if(is_file($config_dir.'/'.$jk_init)) copy($config_dir.'/'.$jk_init, $config_dir.'/'.$jk_init.'~');
-			if(is_file($config_dir.'/'.$jk_chrootsh)) copy($config_dir.'/'.$jk_chrootsh, $config_dir.'/'.$jk_chrootsh.'~');
+			if(is_file($config_dir.'/'.$jk_init)) copy($config_dir.'/'.$jk_init, $config_dir.'/'.$dest_jk_init.'~');
+			if(is_file($config_dir.'/'.$jk_chrootsh)) copy($config_dir.'/'.$jk_chrootsh, $config_dir.'/'.$dest_jk_chrootsh.'~');
 
 			if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$jk_init.'.master')) {
-				copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$jk_init.'.master', $config_dir.'/'.$jk_init);
+				copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$jk_init.'.master', $config_dir.'/'.$dest_jk_init);
 			} else {
-				copy('tpl/'.$jk_init.'.master', $config_dir.'/'.$jk_init);
+				copy('tpl/'.$jk_init.'.master', $config_dir.'/'.$dest_jk_init);
 			}
 			if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$jk_chrootsh.'.master')) {
-				copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$jk_chrootsh.'.master', $config_dir.'/'.$jk_chrootsh);
+				copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$jk_chrootsh.'.master', $config_dir.'/'.$dest_jk_chrootsh);
 			} else {
-				copy('tpl/'.$jk_chrootsh.'.master', $config_dir.'/'.$jk_chrootsh);
+				copy('tpl/'.$jk_chrootsh.'.master', $config_dir.'/'.$dest_jk_chrootsh);
 			}
 		}
 
diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql
index 1a6f847d65e58e1e172a969d8871524a7932c46c..361b1d18269d8e44f3888e8c8da52a0f9036c379 100644
--- a/install/sql/incremental/upd_dev_collection.sql
+++ b/install/sql/incremental/upd_dev_collection.sql
@@ -1 +1,3 @@
+ALTER TABLE `web_database_user` ADD `database_password_sha2` varchar(70) DEFAULT NULL AFTER `database_password`;
 ALTER TABLE `server_php` ADD `php_cli_binary` varchar(255) DEFAULT NULL AFTER `php_fpm_socket_dir`;
+ALTER TABLE `server_php` ADD `php_jk_section` varchar(255) DEFAULT NULL AFTER `php_cli_binary`;
diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql
index c178f843d59854e54142ecced2a12f6fc30eeff1..afb076daa85ec04262498dc7f94c1fba7e779d0b 100644
--- a/install/sql/ispconfig3.sql
+++ b/install/sql/ispconfig3.sql
@@ -1463,6 +1463,7 @@ CREATE TABLE `server_php` (
   `php_fpm_pool_dir` varchar(255) DEFAULT NULL,
   `php_fpm_socket_dir` varchar(255) DEFAULT NULL,
   `php_cli_binary` varchar(255) DEFAULT NULL,
+	`php_jk_section` varchar(255) DEFAULT NULL,
   `active` enum('n','y') NOT NULL DEFAULT 'y',
   `sortprio` int(20) NOT NULL DEFAULT 100,
   PRIMARY KEY (`server_php_id`)
diff --git a/install/tpl/jk_init_el.ini.master b/install/tpl/jk_init_el.ini.master
new file mode 100644
index 0000000000000000000000000000000000000000..2f4ae5afe2a59963ebaac988355fc4404919b37d
--- /dev/null
+++ b/install/tpl/jk_init_el.ini.master
@@ -0,0 +1,272 @@
+# jk_init.ini:  jailkit initialization config
+
+# Includes paths to handle Enterprise Linux systems like RHEL and its derivatives AlmaLinux, Rocky Linux et cetera
+# if other paths are needed please create an issue with the details or a merge request at:
+# https://git.ispconfig.org/ispconfig/ispconfig3
+
+[uidbasics]
+comment = common files for all jails that need user/group information
+paths = /lib*/libnsl.so.*, /lib*/libnss*.so.*, /lib/*/libnsl.so.*, /lib/*/libnss*.so.*, /etc/nsswitch.conf, /etc/ld.so.conf
+
+[netbasics]
+comment = common files for all jails that need any internet connectivity
+paths = /lib*/libnss_dns.so.*, /lib*/libnss_mdns*.so.*, /lib/*/libnss_dns.so.*, /lib/*/libnss_mdns*.so.*, /etc/resolv.conf, /etc/host.conf, /etc/hosts, /etc/protocols, /etc/services, /etc/ssl/certs/, /usr/lib/ssl/certs
+
+[logbasics]
+comment = timezone information and log sockets
+paths = /etc/localtime
+need_logsocket = 1
+
+[enterpriselinuxbasics]
+comment = Various Enterprise Linux specific directories and programs
+paths = /usr/lib/locale, /usr/share/modulefiles, /usr/share/Modules, /usr/share/tcl*, /usr/bin/lesspipe.sh, /usr/libexec/grepconf.sh, /usr/bin/tclsh, /usr/bin/tty
+includesections = enterpriselinux_etc_env
+
+[enterpriselinux_etc_env]
+comment = Enterprise Linux /etc specific environment related files
+paths = /etc/profile, /etc/modulefiles, /etc/alternatives/modulecmd, /etc/DIR_COLORS*,  /etc/sysconfig/bash-prompt-default, /etc/profile.d/bash_completion.sh, /etc/profile.d/color*, /etc/profile.d/lang*, /etc/profile.d/less*, /etc/profile.d/sh.local, /etc/profile.d/vim*, /etc/profile.d/composer*, /etc/profile.d/conda*, /etc/profile.d/guestfish.sh, /etc/locale.conf, /etc/inputrc
+emptydirs = /etc/ssl, /etc/pki
+
+[jk_lsh]
+comment = Jailkit limited shell
+paths = /usr/sbin/jk_lsh, /etc/jailkit/jk_lsh.ini
+users = root
+groups = root
+includesections = uidbasics, logbasics
+
+[limitedshell]
+comment = alias for jk_lsh
+includesections = jk_lsh
+
+[cvs]
+comment = Concurrent Versions System
+paths = cvs
+devices = /dev/null
+
+[git]
+comment = Fast Version Control System
+paths = /usr/bin/git*, /usr/lib/git-core, /usr/share/git-core, pager
+includesections = editors, perl, netbasics, basicshell, coreutils
+
+[scp]
+comment = ssh secure copy
+paths = scp
+includesections = netbasics, uidbasics
+devices = /dev/urandom, /dev/null
+
+[sftp]
+comment = ssh secure ftp
+paths = /usr/lib/sftp-server, /usr/libexec/openssh/sftp-server, /usr/lib/misc/sftp-server, /usr/libexec/sftp-server, /usr/lib/openssh/sftp-server
+includesections = netbasics, uidbasics
+devices = /dev/urandom, /dev/null
+
+[ssh]
+comment = ssh secure shell
+paths = ssh
+includesections = netbasics, uidbasics
+devices = /dev/urandom, /dev/tty, /dev/null
+
+[rsync]
+paths = rsync
+includesections = netbasics, uidbasics
+
+[procmail]
+comment = procmail mail delivery
+paths = procmail, /bin/sh
+devices = /dev/null
+
+[basicshell]
+comment = bash based shell with several basic utilities
+paths = /bin/sh, bash, ls, cat, chmod, mkdir, cp, cpio, date, dd, echo, egrep, false, fgrep, grep, gunzip, gzip, ln, ls, mkdir, mktemp, more, mv, pwd, rm, rmdir, sed, sh, sleep, sync, tar, touch, true, uncompress, zcat, /etc/motd, /etc/issue, /etc/bash.bashrc, /etc/bashrc, /etc/profile, /usr/lib/locale/en_US.utf8, uname, expr, xargs
+users = root
+groups = root
+includesections = uidbasics, enterpriselinuxbasics
+
+[interactiveshell]
+comment = for ssh access to a full shell
+includesections = uidbasics, basicshell, terminfo, editors, extendedshell
+
+[midnightcommander]
+comment = Midnight Commander
+paths = mc, mcedit, mcview, /usr/share/mc
+includesections = basicshell, terminfo
+
+[extendedshell]
+comment = bash shell including things like awk, bzip, tail, less
+paths = awk, bzip2, bunzip2, ldd, less, clear, cut, du, find, head, less, md5sum, nice, sort, tac, tail, tr, sort, wc, watch, whoami
+includesections = basicshell, midnightcommander, editors
+
+[terminfo]
+comment = terminfo databases, required for example for ncurses or vim
+paths = /etc/terminfo, /usr/share/terminfo, /lib/terminfo
+
+[editors]
+comment = vim, joe and nano
+includesections = terminfo
+paths = joe, nano, vi, vim, /etc/vimrc, /etc/joe, /usr/share/vim
+
+[netutils]
+comment = several internet utilities like curl, wget, ftp, rsync, scp, ssh
+paths = curl, wget, lynx, ftp, host, rsync, smbclient
+includesections = netbasics, ssh, sftp, scp
+
+[apacheutils]
+comment = htpasswd utility
+paths = htpasswd
+
+[extshellplusnet]
+comment = alias for extendedshell + netutils + apacheutils
+includesections = extendedshell, netutils, apacheutils
+
+[openvpn]
+comment = jail for the openvpn daemon
+paths = /usr/sbin/openvpn
+users = root,nobody
+groups = root,nogroup
+devices = /dev/urandom, /dev/random, /dev/net/tun
+includesections = netbasics, uidbasics
+need_logsocket = 1
+
+[apache]
+comment = the apache webserver, very basic setup, probably too limited for you
+paths = /usr/sbin/apache
+users = root, www-data
+groups = root, www-data
+includesections = netbasics, uidbasics
+
+[perl]
+comment = the perl interpreter and libraries
+paths = perl, /usr/lib64/perl, /usr/lib64/perl5, /usr/share/perl, /usr/share/perl5
+
+[xauth]
+comment = getting X authentication to work
+paths = /usr/bin/X11/xauth, /usr/X11R6/lib/X11/rgb.txt, /etc/ld.so.conf
+
+[xclients]
+comment = minimal files for X clients
+paths = /usr/X11R6/lib/X11/rgb.txt
+includesections = xauth
+
+[vncserver]
+comment = the VNC server program
+paths = Xvnc, Xrealvnc, /usr/X11R6/lib/X11/fonts/
+includesections = xclients
+
+[ping]
+comment = Ping program
+paths_w_setuid = /bin/ping
+
+#[xterm]
+#comment = xterm
+#paths = /usr/bin/X11/xterm, /usr/share/terminfo, /etc/terminfo
+#devices = /dev/pts/0, /dev/pts/1, /dev/pts/2, /dev/pts/3, /dev/pts/4, /dev/ptyb4, /dev/ptya4, /dev/tty, /dev/tty0, /dev/tty4
+
+[coreutils]
+comment = Progs from coreutils
+paths = arch, b2sum, base32, base64, basename, cat, chcon, chgrp, chmod, chown, cksum, comm, cp, csplit, cut, date, dir, dircolors, dirname, du, echo, env, expand, expr, factor, false, fmt, fold, groups, head, hostid, id, install, join, link, ln, logname, ls, md5sum, mkdir, mkfifo, mknod, mktemp, mv, nice, nl, nohup, nproc, numfmt, od, paste, pathchk, pinky, pr, printenv, printf, ptx, pwd, readlink, realpath, rm, rmdir, runcon, seq, sha1sum, sha224sum, sha256sum, sha384sum, sha512sum, shred, shuf, sleep, sort, split, stat, stdbuf, stty, sum, tac, tail, tee, test, timeout, touch, tr, true, truncate, tsort, uname, unexpand, uniq, unlink, users, vdir, wc, who, whoami, yes
+
+[webutils]
+comment = Collection of commonly used utils for webapps
+paths = /usr/bin/gm, /usr/bin/convert, /usr/bin/identify, /usr/bin/composite, /usr/bin/combine, /usr/bin/cwebp, /usr/bin/pdf*
+
+[mysqlutils]
+comment = MySQL client utils
+paths = mysql, mysqldump, mysqlshow
+
+[composer]
+comment = composer
+paths = composer, /usr/local/bin/composer, /usr/share/doc/composer
+includesections = php, uidbasics, netbasics
+
+[node]
+comment = NodeJS
+paths = npm, npx, node, nodejs, semver, /usr/lib/nodejs, /usr/share/nodejs, /usr/share/npm, /usr/share/node-mime, /usr/lib/node_modules, /usr/local/lib/nodejs, /usr/local/lib/node_modules, /etc/npmrc, /etc/npmignore, elmi-to-json, /usr/local/bin/elmi-to-json
+
+[env]
+comment = /usr/bin/env for environment variables
+paths = env
+
+[php]
+comment = default php version and libraries
+paths = /usr/bin/php
+includesections = php_common
+
+[php_common]
+comment = Common PHP directories and libraries
+# notice:  potential information leak
+#  do not add all of /etc/php/ or any of the fpm directories
+#  or the php config (which includes custom php snippets) from *all*
+#  sites which use fpm will be copied to *every* jailkit
+paths = /usr/bin/php, /usr/bin/phar, /usr/lib64/php/, /usr/share/php/, /usr/share/zoneinfo/
+includesections = env, logbasics, netbasics, mysqlutils, webutils, imagemagick
+
+[php5_4]
+comment = PHP 5.4
+paths = /opt/remi/php54/root/bin/php, /opt/remi/php54/root/bin/phar, /opt/remi/php54/root/usr/lib64/, /opt/remi/php54/root/usr/share/
+includesections = php_common
+
+[php5_5]
+comment = PHP 5.5
+paths = /opt/remi/php55/root/bin/php, /opt/remi/php55/root/bin/phar, /opt/remi/php55/root/usr/lib64/, /opt/remi/php55/root/usr/share/
+includesections = php_common
+
+[php5_6]
+comment = PHP 5.6
+paths = /opt/remi/php56/root/bin/php, /opt/remi/php56/root/bin/phar, /opt/remi/php56/root/usr/lib64/, /opt/remi/php56/root/usr/share/
+includesections = php_common
+
+[php7_0]
+comment = PHP 7.0
+paths = /opt/remi/php70/root/bin/php, /opt/remi/php70/root/bin/phar, /opt/remi/php70/root/usr/lib64/, /opt/remi/php70/root/usr/share/
+includesections = php_common
+
+[php7_1]
+comment = PHP 7.1
+paths = /opt/remi/php71/root/bin/php, /opt/remi/php71/root/bin/phar, /opt/remi/php71/root/usr/lib64/, /opt/remi/php71/root/usr/share/
+includesections = php_common
+
+[php7_2]
+comment = PHP 7.2
+paths = /opt/remi/php72/root/bin/php, /opt/remi/php72/root/bin/phar, /opt/remi/php72/root/usr/lib64/, /opt/remi/php72/root/usr/share/
+includesections = php_common
+
+[php7_3]
+comment = PHP 7.3
+paths = /opt/remi/php73/root/bin/php, /opt/remi/php73/root/bin/phar, /opt/remi/php73/root/usr/lib64/, /opt/remi/php73/root/usr/share/
+includesections = php_common
+
+[php7_4]
+comment = PHP 7.4
+paths = /opt/remi/php74/root/bin/php, /opt/remi/php74/root/bin/phar, /opt/remi/php74/root/usr/lib64/, /opt/remi/php74/root/usr/share/
+includesections = php_common
+
+[php8_0]
+comment = PHP 8.0
+paths = /opt/remi/php80/root/bin/php, /opt/remi/php80/root/bin/phar, /opt/remi/php80/root/usr/lib64/, /opt/remi/php80/root/usr/share/
+includesections = php_common
+
+[php8_1]
+comment = PHP 8.1
+paths = /opt/remi/php81/root/bin/php, /opt/remi/php81/root/bin/phar, /opt/remi/php81/root/usr/lib64/, /opt/remi/php81/root/usr/share/
+includesections = php_common
+
+[php8_2]
+comment = PHP 8.2
+paths = /opt/remi/php82/root/bin/php, /opt/remi/php82/root/bin/phar, /opt/remi/php82/root/usr/lib64/, /opt/remi/php82/root/usr/share/
+includesections = php_common
+
+[php8_3]
+comment = PHP 8.3
+paths = /opt/remi/php83/root/bin/php, /opt/remi/php83/root/bin/phar, /opt/remi/php83/root/usr/lib64/, /opt/remi/php83/root/usr/share/
+includesections = php_common
+
+[php8_4]
+comment = PHP 8.4
+paths = /opt/remi/php84/root/bin/php, /opt/remi/php84/root/bin/phar, /opt/remi/php84/root/usr/lib64/, /opt/remi/php84/root/usr/share/
+includesections = php_common
+
+[imagemagick]
+comment = ImageMagick needed for php-imagemagick extension
+paths = /usr/share/ImageMagick-*, /etc/ImageMagick-*, /usr/lib64/ImageMagick-*
+
+
diff --git a/interface/web/admin/form/server_php.tform.php b/interface/web/admin/form/server_php.tform.php
index f005e56f6415d81b1fa19b25fe165ffc240aa04f..1d1ba41c484bef07c96ffc8ddffb9f99ac8022fa 100644
--- a/interface/web/admin/form/server_php.tform.php
+++ b/interface/web/admin/form/server_php.tform.php
@@ -271,14 +271,29 @@ $form["tabs"]['php_cli'] = array (
 		'width' => '40',
 		'maxlength' => '255'
 	),
+	'php_jk_section' => array(
+		'datatype' => 'TEXT',
+		'formtype' => 'TEXT',
+		'default' => '',
+		'validators' => array(
+			0 => array (
+				'type' => 'REGEX',
+				'regex' => '/^[a-zA-Z0-9\-\_\ ]*$/',
+				'errmsg'=> 'php_cli_jk_section_error_regex'
+			),
+		),
+		'value' => '',
+		'width' => '40',
+		'maxlength' => '255'
+	),
 )
 );
 $form["tabs"]['php_sort'] = array (
-    	'title' => "PHP Sort Priority",
+	'title' => "PHP Sort Priority",
 	'width' => 80,
 	'template' => "templates/server_php_sort_edit.htm",
 	'fields' => array(
-                   'sortprio' => array (
+		'sortprio' => array (
 			'datatype' => 'INTEGER',
 			'formtype' => 'TEXT',
 			'default' => '100',
diff --git a/interface/web/admin/lib/lang/ar_server_php.lng b/interface/web/admin/lib/lang/ar_server_php.lng
index 89b357cdbccd594701c970bed0d520904e972ba1..ab471611dadb33580cf5ebc0fd6ea057e8cdd2dd 100644
--- a/interface/web/admin/lib/lang/ar_server_php.lng
+++ b/interface/web/admin/lib/lang/ar_server_php.lng
@@ -22,4 +22,8 @@ $wb['sortprio_txt'] = 'Priority';
 $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority';
 $wb['PHP-CLI settings'] = 'PHP-CLI settings';
 $wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary';
+$wb['tooltip_php_cli_binary_txt'] = 'Path to the PHP CLI binary including the filename';
+$wb['php_jk_section_txt'] = 'PHP Jailkit section';
+$wb['tooltip_php_jk_section_txt'] = 'Identifier of the PHP version in your jk_init.ini (without square brackets).';
+$wb['php_cli_jk_section_error_regex'] = 'Invalid Jaikit chroot section';
 ?>
diff --git a/interface/web/admin/lib/lang/bg_server_php.lng b/interface/web/admin/lib/lang/bg_server_php.lng
index 89b357cdbccd594701c970bed0d520904e972ba1..ab471611dadb33580cf5ebc0fd6ea057e8cdd2dd 100644
--- a/interface/web/admin/lib/lang/bg_server_php.lng
+++ b/interface/web/admin/lib/lang/bg_server_php.lng
@@ -22,4 +22,8 @@ $wb['sortprio_txt'] = 'Priority';
 $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority';
 $wb['PHP-CLI settings'] = 'PHP-CLI settings';
 $wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary';
+$wb['tooltip_php_cli_binary_txt'] = 'Path to the PHP CLI binary including the filename';
+$wb['php_jk_section_txt'] = 'PHP Jailkit section';
+$wb['tooltip_php_jk_section_txt'] = 'Identifier of the PHP version in your jk_init.ini (without square brackets).';
+$wb['php_cli_jk_section_error_regex'] = 'Invalid Jaikit chroot section';
 ?>
diff --git a/interface/web/admin/lib/lang/br_server_php.lng b/interface/web/admin/lib/lang/br_server_php.lng
index cb1b93acc32442a1830e0e03a79b741f5953b9c4..178d70a3c935399973b0e8f63435a1ff7ce25995 100644
--- a/interface/web/admin/lib/lang/br_server_php.lng
+++ b/interface/web/admin/lib/lang/br_server_php.lng
@@ -22,4 +22,8 @@ $wb['sortprio_txt'] = 'Priority';
 $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority';
 $wb['PHP-CLI settings'] = 'PHP-CLI settings';
 $wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary';
+$wb['tooltip_php_cli_binary_txt'] = 'Path to the PHP CLI binary including the filename';
+$wb['php_jk_section_txt'] = 'PHP Jailkit section';
+$wb['tooltip_php_jk_section_txt'] = 'Identifier of the PHP version in your jk_init.ini (without square brackets).';
+$wb['php_cli_jk_section_error_regex'] = 'Invalid Jaikit chroot section';
 ?>
diff --git a/interface/web/admin/lib/lang/ca_server_php.lng b/interface/web/admin/lib/lang/ca_server_php.lng
index 89b357cdbccd594701c970bed0d520904e972ba1..ab471611dadb33580cf5ebc0fd6ea057e8cdd2dd 100644
--- a/interface/web/admin/lib/lang/ca_server_php.lng
+++ b/interface/web/admin/lib/lang/ca_server_php.lng
@@ -22,4 +22,8 @@ $wb['sortprio_txt'] = 'Priority';
 $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority';
 $wb['PHP-CLI settings'] = 'PHP-CLI settings';
 $wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary';
+$wb['tooltip_php_cli_binary_txt'] = 'Path to the PHP CLI binary including the filename';
+$wb['php_jk_section_txt'] = 'PHP Jailkit section';
+$wb['tooltip_php_jk_section_txt'] = 'Identifier of the PHP version in your jk_init.ini (without square brackets).';
+$wb['php_cli_jk_section_error_regex'] = 'Invalid Jaikit chroot section';
 ?>
diff --git a/interface/web/admin/lib/lang/cn_server_php.lng b/interface/web/admin/lib/lang/cn_server_php.lng
index 102bcc1fbf94070a94e14f2c7731845f4ec25be4..83178a50ab0581f44e2f1a67a5ce05f9686e416d 100644
--- a/interface/web/admin/lib/lang/cn_server_php.lng
+++ b/interface/web/admin/lib/lang/cn_server_php.lng
@@ -22,4 +22,8 @@ $wb['sortprio_txt'] = 'Priority';
 $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority';
 $wb['PHP-CLI settings'] = 'PHP-CLI settings';
 $wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary';
+$wb['tooltip_php_cli_binary_txt'] = 'Path to the PHP CLI binary including the filename';
+$wb['php_jk_section_txt'] = 'PHP Jailkit section';
+$wb['tooltip_php_jk_section_txt'] = 'Identifier of the PHP version in your jk_init.ini (without square brackets).';
+$wb['php_cli_jk_section_error_regex'] = 'Invalid Jaikit chroot section';
 ?>
diff --git a/interface/web/admin/lib/lang/cz_server_php.lng b/interface/web/admin/lib/lang/cz_server_php.lng
index eb16414a31dafcf8a7132808ea484700c6800261..be20bd3286b8931afd25417a2778b7a3133f73fb 100644
--- a/interface/web/admin/lib/lang/cz_server_php.lng
+++ b/interface/web/admin/lib/lang/cz_server_php.lng
@@ -22,4 +22,8 @@ $wb['sortprio_txt'] = 'Priority';
 $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority';
 $wb['PHP-CLI settings'] = 'PHP-CLI settings';
 $wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary';
+$wb['tooltip_php_cli_binary_txt'] = 'Path to the PHP CLI binary including the filename';
+$wb['php_jk_section_txt'] = 'PHP Jailkit section';
+$wb['tooltip_php_jk_section_txt'] = 'Identifier of the PHP version in your jk_init.ini (without square brackets).';
+$wb['php_cli_jk_section_error_regex'] = 'Invalid Jaikit chroot section';
 ?>
diff --git a/interface/web/admin/lib/lang/de_server_php.lng b/interface/web/admin/lib/lang/de_server_php.lng
index a63e90d80c6d650f500088c40224f48666c3ec87..c7ad0fe8a0210eaa53ade60e1cad419cc5b874e8 100644
--- a/interface/web/admin/lib/lang/de_server_php.lng
+++ b/interface/web/admin/lib/lang/de_server_php.lng
@@ -5,8 +5,8 @@ $wb['name_txt'] = 'PHP Name';
 $wb['Name'] = 'Name';
 $wb['FastCGI Settings'] = 'FastCGI Einstellungen';
 $wb['PHP-FPM Settings'] = 'PHP-FPM Einstellungen';
-$wb['Additional PHP Versions'] = 'Zusätzliche PHP Versionen';
-$wb['Form to edit additional PHP versions'] = 'Formular, um zusätzliche PHP Versionen hinzuzufügen';
+$wb['Additional PHP Versions'] = 'Zusätzliche PHP-Versionen';
+$wb['Form to edit additional PHP versions'] = 'Formular, um zusätzliche PHP-Versionen hinzuzufügen';
 $wb['server_php_name_error_empty'] = 'Das Name Feld darf nicht leer sein.';
 $wb['php_fastcgi_binary_txt'] = 'Pfad zum PHP FastCGI Binary';
 $wb['php_fastcgi_ini_dir_txt'] = 'Pfad zum php.ini Verzeichnis';
@@ -18,8 +18,12 @@ $wb['active_txt'] = 'Aktiv';
 $wb['php_in_use_error'] = 'Diese PHP-Version wird noch benutzt.';
 $wb['php_name_in_use_error'] = 'Der Name kann nicht geändert werden.';
 $wb['PHP Sort Priority'] = 'Priorität';
-$wb['sortprio_txt'] = 'Sorting Priority';
-$wb['sortprio_long_txt'] = 'Priority of PHP Version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority';
+$wb['sortprio_txt'] = 'Sortieren Priorität';
+$wb['sortprio_long_txt'] = 'Priorität der PHP-Version im Auswahlfeld für die PHP-Version<br>Standardmäßig hat PHP die Priorität 0, wenn es aktiviert ist<br>Ein kleinerer Wert bedeutet eine höhere Priorität';
 $wb['PHP-CLI settings'] = 'PHP-CLI-Einstellungen';
 $wb['php_cli_binary_txt'] = 'Pfad zur PHP-CLI Binary';
+$wb['tooltip_php_cli_binary_txt'] = 'Vollständiger Pfad zur PHP-CLI Binary (inkl. Dateinamen)';
+$wb['php_jk_section_txt'] = 'PHP Jailkit Sektion';
+$wb['tooltip_php_jk_section_txt'] = 'Bezeichner der PHP-Version in der jk_init.ini (Angabe ohne eckige Klammern)';
+$wb['php_cli_jk_section_error_regex'] = 'Ungültige Jaikit chroot-Sektion';
 ?>
diff --git a/interface/web/admin/lib/lang/en_server_php.lng b/interface/web/admin/lib/lang/en_server_php.lng
index 89b357cdbccd594701c970bed0d520904e972ba1..ab471611dadb33580cf5ebc0fd6ea057e8cdd2dd 100644
--- a/interface/web/admin/lib/lang/en_server_php.lng
+++ b/interface/web/admin/lib/lang/en_server_php.lng
@@ -22,4 +22,8 @@ $wb['sortprio_txt'] = 'Priority';
 $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority';
 $wb['PHP-CLI settings'] = 'PHP-CLI settings';
 $wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary';
+$wb['tooltip_php_cli_binary_txt'] = 'Path to the PHP CLI binary including the filename';
+$wb['php_jk_section_txt'] = 'PHP Jailkit section';
+$wb['tooltip_php_jk_section_txt'] = 'Identifier of the PHP version in your jk_init.ini (without square brackets).';
+$wb['php_cli_jk_section_error_regex'] = 'Invalid Jaikit chroot section';
 ?>
diff --git a/interface/web/admin/lib/lang/es_server_php.lng b/interface/web/admin/lib/lang/es_server_php.lng
index ff81b3ae90fa99c6327f1ffd3a3fc651807c1789..74c3d593fb01fa9700942885d0fcf74c6c516236 100644
--- a/interface/web/admin/lib/lang/es_server_php.lng
+++ b/interface/web/admin/lib/lang/es_server_php.lng
@@ -22,4 +22,8 @@ $wb['sortprio_txt'] = 'Priority';
 $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority';
 $wb['PHP-CLI settings'] = 'PHP-CLI settings';
 $wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary';
+$wb['tooltip_php_cli_binary_txt'] = 'Path to the PHP CLI binary including the filename';
+$wb['php_jk_section_txt'] = 'PHP Jailkit section';
+$wb['tooltip_php_jk_section_txt'] = 'Identifier of the PHP version in your jk_init.ini (without square brackets).';
+$wb['php_cli_jk_section_error_regex'] = 'Invalid Jaikit chroot section';
 ?>
diff --git a/interface/web/admin/lib/lang/fi_server_php.lng b/interface/web/admin/lib/lang/fi_server_php.lng
index 89b357cdbccd594701c970bed0d520904e972ba1..ab471611dadb33580cf5ebc0fd6ea057e8cdd2dd 100644
--- a/interface/web/admin/lib/lang/fi_server_php.lng
+++ b/interface/web/admin/lib/lang/fi_server_php.lng
@@ -22,4 +22,8 @@ $wb['sortprio_txt'] = 'Priority';
 $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority';
 $wb['PHP-CLI settings'] = 'PHP-CLI settings';
 $wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary';
+$wb['tooltip_php_cli_binary_txt'] = 'Path to the PHP CLI binary including the filename';
+$wb['php_jk_section_txt'] = 'PHP Jailkit section';
+$wb['tooltip_php_jk_section_txt'] = 'Identifier of the PHP version in your jk_init.ini (without square brackets).';
+$wb['php_cli_jk_section_error_regex'] = 'Invalid Jaikit chroot section';
 ?>
diff --git a/interface/web/admin/lib/lang/fr_server_php.lng b/interface/web/admin/lib/lang/fr_server_php.lng
index 89b357cdbccd594701c970bed0d520904e972ba1..ab471611dadb33580cf5ebc0fd6ea057e8cdd2dd 100644
--- a/interface/web/admin/lib/lang/fr_server_php.lng
+++ b/interface/web/admin/lib/lang/fr_server_php.lng
@@ -22,4 +22,8 @@ $wb['sortprio_txt'] = 'Priority';
 $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority';
 $wb['PHP-CLI settings'] = 'PHP-CLI settings';
 $wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary';
+$wb['tooltip_php_cli_binary_txt'] = 'Path to the PHP CLI binary including the filename';
+$wb['php_jk_section_txt'] = 'PHP Jailkit section';
+$wb['tooltip_php_jk_section_txt'] = 'Identifier of the PHP version in your jk_init.ini (without square brackets).';
+$wb['php_cli_jk_section_error_regex'] = 'Invalid Jaikit chroot section';
 ?>
diff --git a/interface/web/admin/lib/lang/hr_server_php.lng b/interface/web/admin/lib/lang/hr_server_php.lng
index 57c44ae53cba58fc7f3df36dfc8e09e534103c33..625b2618a264ac7419089a3cb710669ef6e878bc 100644
--- a/interface/web/admin/lib/lang/hr_server_php.lng
+++ b/interface/web/admin/lib/lang/hr_server_php.lng
@@ -22,4 +22,8 @@ $wb['sortprio_txt'] = 'Priority';
 $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority';
 $wb['PHP-CLI settings'] = 'PHP-CLI settings';
 $wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary';
+$wb['tooltip_php_cli_binary_txt'] = 'Path to the PHP CLI binary including the filename';
+$wb['php_jk_section_txt'] = 'PHP Jailkit section';
+$wb['tooltip_php_jk_section_txt'] = 'Identifier of the PHP version in your jk_init.ini (without square brackets).';
+$wb['php_cli_jk_section_error_regex'] = 'Invalid Jaikit chroot section';
 ?>
diff --git a/interface/web/admin/lib/lang/hu_server_php.lng b/interface/web/admin/lib/lang/hu_server_php.lng
index 89b357cdbccd594701c970bed0d520904e972ba1..ab471611dadb33580cf5ebc0fd6ea057e8cdd2dd 100644
--- a/interface/web/admin/lib/lang/hu_server_php.lng
+++ b/interface/web/admin/lib/lang/hu_server_php.lng
@@ -22,4 +22,8 @@ $wb['sortprio_txt'] = 'Priority';
 $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority';
 $wb['PHP-CLI settings'] = 'PHP-CLI settings';
 $wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary';
+$wb['tooltip_php_cli_binary_txt'] = 'Path to the PHP CLI binary including the filename';
+$wb['php_jk_section_txt'] = 'PHP Jailkit section';
+$wb['tooltip_php_jk_section_txt'] = 'Identifier of the PHP version in your jk_init.ini (without square brackets).';
+$wb['php_cli_jk_section_error_regex'] = 'Invalid Jaikit chroot section';
 ?>
diff --git a/interface/web/admin/lib/lang/id_server_php.lng b/interface/web/admin/lib/lang/id_server_php.lng
index 89b357cdbccd594701c970bed0d520904e972ba1..ab471611dadb33580cf5ebc0fd6ea057e8cdd2dd 100644
--- a/interface/web/admin/lib/lang/id_server_php.lng
+++ b/interface/web/admin/lib/lang/id_server_php.lng
@@ -22,4 +22,8 @@ $wb['sortprio_txt'] = 'Priority';
 $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority';
 $wb['PHP-CLI settings'] = 'PHP-CLI settings';
 $wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary';
+$wb['tooltip_php_cli_binary_txt'] = 'Path to the PHP CLI binary including the filename';
+$wb['php_jk_section_txt'] = 'PHP Jailkit section';
+$wb['tooltip_php_jk_section_txt'] = 'Identifier of the PHP version in your jk_init.ini (without square brackets).';
+$wb['php_cli_jk_section_error_regex'] = 'Invalid Jaikit chroot section';
 ?>
diff --git a/interface/web/admin/lib/lang/it_server_php.lng b/interface/web/admin/lib/lang/it_server_php.lng
index 76c97e8adc09a1c471f5461077ff70e4161f0d0b..1752743a4359d4624bd486b3c4ad43edd80b5707 100644
--- a/interface/web/admin/lib/lang/it_server_php.lng
+++ b/interface/web/admin/lib/lang/it_server_php.lng
@@ -22,4 +22,8 @@ $wb['sortprio_txt'] = 'Priority';
 $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority';
 $wb['PHP-CLI settings'] = 'PHP-CLI settings';
 $wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary';
+$wb['tooltip_php_cli_binary_txt'] = 'Path to the PHP CLI binary including the filename';
+$wb['php_jk_section_txt'] = 'PHP Jailkit section';
+$wb['tooltip_php_jk_section_txt'] = 'Identifier of the PHP version in your jk_init.ini (without square brackets).';
+$wb['php_cli_jk_section_error_regex'] = 'Invalid Jaikit chroot section';
 ?>
diff --git a/interface/web/admin/lib/lang/ja_server_php.lng b/interface/web/admin/lib/lang/ja_server_php.lng
index 89b357cdbccd594701c970bed0d520904e972ba1..ab471611dadb33580cf5ebc0fd6ea057e8cdd2dd 100644
--- a/interface/web/admin/lib/lang/ja_server_php.lng
+++ b/interface/web/admin/lib/lang/ja_server_php.lng
@@ -22,4 +22,8 @@ $wb['sortprio_txt'] = 'Priority';
 $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority';
 $wb['PHP-CLI settings'] = 'PHP-CLI settings';
 $wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary';
+$wb['tooltip_php_cli_binary_txt'] = 'Path to the PHP CLI binary including the filename';
+$wb['php_jk_section_txt'] = 'PHP Jailkit section';
+$wb['tooltip_php_jk_section_txt'] = 'Identifier of the PHP version in your jk_init.ini (without square brackets).';
+$wb['php_cli_jk_section_error_regex'] = 'Invalid Jaikit chroot section';
 ?>
diff --git a/interface/web/admin/lib/lang/nl_server_php.lng b/interface/web/admin/lib/lang/nl_server_php.lng
index 89b357cdbccd594701c970bed0d520904e972ba1..ab471611dadb33580cf5ebc0fd6ea057e8cdd2dd 100644
--- a/interface/web/admin/lib/lang/nl_server_php.lng
+++ b/interface/web/admin/lib/lang/nl_server_php.lng
@@ -22,4 +22,8 @@ $wb['sortprio_txt'] = 'Priority';
 $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority';
 $wb['PHP-CLI settings'] = 'PHP-CLI settings';
 $wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary';
+$wb['tooltip_php_cli_binary_txt'] = 'Path to the PHP CLI binary including the filename';
+$wb['php_jk_section_txt'] = 'PHP Jailkit section';
+$wb['tooltip_php_jk_section_txt'] = 'Identifier of the PHP version in your jk_init.ini (without square brackets).';
+$wb['php_cli_jk_section_error_regex'] = 'Invalid Jaikit chroot section';
 ?>
diff --git a/interface/web/admin/lib/lang/pl_server_php.lng b/interface/web/admin/lib/lang/pl_server_php.lng
index c43dd727cb651640e342baac74dcac028baee45e..191171bb102ba0f87ea538a1b615a0749badbf12 100644
--- a/interface/web/admin/lib/lang/pl_server_php.lng
+++ b/interface/web/admin/lib/lang/pl_server_php.lng
@@ -22,4 +22,8 @@ $wb['sortprio_txt'] = 'Priority';
 $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority';
 $wb['PHP-CLI settings'] = 'PHP-CLI settings';
 $wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary';
+$wb['tooltip_php_cli_binary_txt'] = 'Path to the PHP CLI binary including the filename';
+$wb['php_jk_section_txt'] = 'PHP Jailkit section';
+$wb['tooltip_php_jk_section_txt'] = 'Identifier of the PHP version in your jk_init.ini (without square brackets).';
+$wb['php_cli_jk_section_error_regex'] = 'Invalid Jaikit chroot section';
 ?>
diff --git a/interface/web/admin/lib/lang/pt_server_php.lng b/interface/web/admin/lib/lang/pt_server_php.lng
index 89b357cdbccd594701c970bed0d520904e972ba1..ab471611dadb33580cf5ebc0fd6ea057e8cdd2dd 100644
--- a/interface/web/admin/lib/lang/pt_server_php.lng
+++ b/interface/web/admin/lib/lang/pt_server_php.lng
@@ -22,4 +22,8 @@ $wb['sortprio_txt'] = 'Priority';
 $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority';
 $wb['PHP-CLI settings'] = 'PHP-CLI settings';
 $wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary';
+$wb['tooltip_php_cli_binary_txt'] = 'Path to the PHP CLI binary including the filename';
+$wb['php_jk_section_txt'] = 'PHP Jailkit section';
+$wb['tooltip_php_jk_section_txt'] = 'Identifier of the PHP version in your jk_init.ini (without square brackets).';
+$wb['php_cli_jk_section_error_regex'] = 'Invalid Jaikit chroot section';
 ?>
diff --git a/interface/web/admin/lib/lang/ro_server_php.lng b/interface/web/admin/lib/lang/ro_server_php.lng
index 89b357cdbccd594701c970bed0d520904e972ba1..ab471611dadb33580cf5ebc0fd6ea057e8cdd2dd 100644
--- a/interface/web/admin/lib/lang/ro_server_php.lng
+++ b/interface/web/admin/lib/lang/ro_server_php.lng
@@ -22,4 +22,8 @@ $wb['sortprio_txt'] = 'Priority';
 $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority';
 $wb['PHP-CLI settings'] = 'PHP-CLI settings';
 $wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary';
+$wb['tooltip_php_cli_binary_txt'] = 'Path to the PHP CLI binary including the filename';
+$wb['php_jk_section_txt'] = 'PHP Jailkit section';
+$wb['tooltip_php_jk_section_txt'] = 'Identifier of the PHP version in your jk_init.ini (without square brackets).';
+$wb['php_cli_jk_section_error_regex'] = 'Invalid Jaikit chroot section';
 ?>
diff --git a/interface/web/admin/lib/lang/ru_server_php.lng b/interface/web/admin/lib/lang/ru_server_php.lng
index 6644018b3a531addcce8b23b470bc058f57d1f8a..9b2516472b65b383eace58308f611b0362034a4d 100644
--- a/interface/web/admin/lib/lang/ru_server_php.lng
+++ b/interface/web/admin/lib/lang/ru_server_php.lng
@@ -22,4 +22,8 @@ $wb['sortprio_txt'] = 'Priority';
 $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority';
 $wb['PHP-CLI settings'] = 'PHP-CLI settings';
 $wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary';
+$wb['tooltip_php_cli_binary_txt'] = 'Path to the PHP CLI binary including the filename';
+$wb['php_jk_section_txt'] = 'PHP Jailkit section';
+$wb['tooltip_php_jk_section_txt'] = 'Identifier of the PHP version in your jk_init.ini (without square brackets).';
+$wb['php_cli_jk_section_error_regex'] = 'Invalid Jaikit chroot section';
 ?>
diff --git a/interface/web/admin/lib/lang/se_server_php.lng b/interface/web/admin/lib/lang/se_server_php.lng
index 89b357cdbccd594701c970bed0d520904e972ba1..ab471611dadb33580cf5ebc0fd6ea057e8cdd2dd 100644
--- a/interface/web/admin/lib/lang/se_server_php.lng
+++ b/interface/web/admin/lib/lang/se_server_php.lng
@@ -22,4 +22,8 @@ $wb['sortprio_txt'] = 'Priority';
 $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority';
 $wb['PHP-CLI settings'] = 'PHP-CLI settings';
 $wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary';
+$wb['tooltip_php_cli_binary_txt'] = 'Path to the PHP CLI binary including the filename';
+$wb['php_jk_section_txt'] = 'PHP Jailkit section';
+$wb['tooltip_php_jk_section_txt'] = 'Identifier of the PHP version in your jk_init.ini (without square brackets).';
+$wb['php_cli_jk_section_error_regex'] = 'Invalid Jaikit chroot section';
 ?>
diff --git a/interface/web/admin/lib/lang/sk_server_php.lng b/interface/web/admin/lib/lang/sk_server_php.lng
index 89b357cdbccd594701c970bed0d520904e972ba1..ab471611dadb33580cf5ebc0fd6ea057e8cdd2dd 100644
--- a/interface/web/admin/lib/lang/sk_server_php.lng
+++ b/interface/web/admin/lib/lang/sk_server_php.lng
@@ -22,4 +22,8 @@ $wb['sortprio_txt'] = 'Priority';
 $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority';
 $wb['PHP-CLI settings'] = 'PHP-CLI settings';
 $wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary';
+$wb['tooltip_php_cli_binary_txt'] = 'Path to the PHP CLI binary including the filename';
+$wb['php_jk_section_txt'] = 'PHP Jailkit section';
+$wb['tooltip_php_jk_section_txt'] = 'Identifier of the PHP version in your jk_init.ini (without square brackets).';
+$wb['php_cli_jk_section_error_regex'] = 'Invalid Jaikit chroot section';
 ?>
diff --git a/interface/web/admin/lib/lang/tr_server_php.lng b/interface/web/admin/lib/lang/tr_server_php.lng
index 447b3ab20bd4f558d77bd10f5343e179f451f2a2..ccf806181e3d0b623a25835d3cfcc6e7977b671a 100644
--- a/interface/web/admin/lib/lang/tr_server_php.lng
+++ b/interface/web/admin/lib/lang/tr_server_php.lng
@@ -22,4 +22,8 @@ $wb['sortprio_txt'] = 'Priority';
 $wb['sortprio_long_txt'] = 'Priority of PHP version in the PHP version select box<br>Default PHP has prio 0 if enabled<br>Lower value is higher priority';
 $wb['PHP-CLI settings'] = 'PHP-CLI settings';
 $wb['php_cli_binary_txt'] = 'Path to the PHP CLI binary';
+$wb['tooltip_php_cli_binary_txt'] = 'Path to the PHP CLI binary including the filename';
+$wb['php_jk_section_txt'] = 'PHP Jailkit section';
+$wb['tooltip_php_jk_section_txt'] = 'Identifier of the PHP version in your jk_init.ini (without square brackets).';
+$wb['php_cli_jk_section_error_regex'] = 'Invalid Jaikit chroot section';
 ?>
diff --git a/interface/web/admin/templates/server_php_cli_edit.htm b/interface/web/admin/templates/server_php_cli_edit.htm
index 72e26bd4b8bf7cd2d56e64001cf03b9bb3b638f0..bc641ee82726e6107d8727a3b1ed2be68c2afee1 100644
--- a/interface/web/admin/templates/server_php_cli_edit.htm
+++ b/interface/web/admin/templates/server_php_cli_edit.htm
@@ -1,6 +1,9 @@
             <div class="form-group">
                 <label for="php_cli_binary" class="col-sm-3 control-label">{tmpl_var name='php_cli_binary_txt'}</label>
-                <div class="col-sm-9"><input type="text" name="php_cli_binary" id="php_cli_binary" value="{tmpl_var name='php_cli_binary'}" class="form-control" /></div></div>
+                <div class="col-sm-9"><input type="text" name="php_cli_binary"data-toggle="tooltip" title="{tmpl_var name='tooltip_php_cli_binary_txt'}" id="php_cli_binary" value="{tmpl_var name='php_cli_binary'}" class="form-control" /></div></div>
+            <div class="form-group">
+                <label for="php_jk_section" class="col-sm-3 control-label">{tmpl_var name='php_jk_section_txt'}</label>
+                <div class="col-sm-9"><input type="text" name="php_jk_section" data-toggle="tooltip" title="{tmpl_var name='tooltip_php_jk_section_txt'}" id="php_jk_section" value="{tmpl_var name='php_jk_section'}" class="form-control" /></div></div>
 
         <input type="hidden" name="id" value="{tmpl_var name='id'}">
 
@@ -8,3 +11,5 @@
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/server_php_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/server_php_list.php">{tmpl_var name='btn_cancel_txt'}</button>
         </div></div>
+
+
diff --git a/interface/web/sites/ajax_get_json.php b/interface/web/sites/ajax_get_json.php
index c90cd4bb403f79e1a38ea6798593b25c8359a9c7..1743d4c185596c48783a1097a0f5f4b046a58c7c 100644
--- a/interface/web/sites/ajax_get_json.php
+++ b/interface/web/sites/ajax_get_json.php
@@ -248,59 +248,55 @@ if($type == 'getclientssldata'){
 	$json = $app->functions->json_encode($client);
 }
 
-if($type == 'getcronplaceholders') {
-
-	if(is_array($web_id) && !empty($web_id)) {
-
-		$web_docroot_client = '';
-
-		$web = $app->db->queryOneRecord("SELECT wd.sys_groupid, wd.domain, wd.document_root, sp.php_cli_binary
-			FROM web_domain wd
-				LEFT JOIN server_php sp ON wd.server_php_id = sp.server_php_id
-			WHERE wd.domain_id = ?", $web_id);
-
-		if(empty($web['php_cli_binary'])) {
-			$php_cli_binary = "/usr/bin/php";
-		} else {
-			$php_cli_binary = $web['php_cli_binary'];
-		}
-
-		if(empty($web['domain'])) {
-			$domain = $app->tform->wordbook["domain_not_selected_placeholder_txt"];
-		} else {
-			$domain = $web['domain'];
-		}
-
-
-		$domain_owner = $app->db->queryOneRecord("SELECT limit_cron_type FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $web["sys_groupid"]);
-
-		//* True if the site is assigned to a client
-		if(isset($domain_owner["limit_cron_type"])) {
-			if($domain_owner["limit_cron_type"] == 'full') {
-				$cron_type = 'full';
-			} else {
-				$cron_type = 'chrooted';
-			}
-		} else {
-			//* True if the site is assigned to the admin
-			$cron_type = 'full';
-		}
-
-		if($cron_type != 'chrooted') {
-			$web_docroot_client = $web['document_root'];
-		}
-
-		$web_docroot_client .= '/web';
-
-		$json = json_encode(array(
-			'php_cli_binary' => $php_cli_binary,
-			'docroot_client' => $web_docroot_client,
-			//'cron_type' => $cron_type,
-			'domain' => $domain
-		));
-	}
-
-
+if ($type == 'getcronplaceholders') {
+
+    if (!empty($web_id)) {
+        $web_docroot_client = '';
+
+        $web = $app->db->queryOneRecord("SELECT wd.sys_groupid, wd.domain, wd.document_root, sp.php_cli_binary
+            FROM web_domain wd
+            	LEFT JOIN server_php sp ON wd.server_php_id = sp.server_php_id
+            WHERE wd.domain_id = ?", $web_id);
+
+        if (empty($web['php_cli_binary'])) {
+            $php_cli_binary = "/usr/bin/php";
+        } else {
+            $php_cli_binary = $web['php_cli_binary'];
+        }
+
+        if (empty($web['domain'])) {
+            $domain = $app->tform->wordbook["domain_not_selected_placeholder_txt"];
+        } else {
+            $domain = $web['domain'];
+        }
+
+        $domain_owner = $app->db->queryOneRecord("SELECT limit_cron_type FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $web["sys_groupid"]);
+
+        //* True if the site is assigned to a client
+        if (isset($domain_owner["limit_cron_type"])) {
+            if ($domain_owner["limit_cron_type"] == 'full') {
+                $cron_type = 'full';
+            } else {
+                $cron_type = 'chrooted';
+            }
+        } else {
+            //* True if the site is assigned to the admin
+            $cron_type = 'full';
+        }
+
+        if ($cron_type != 'chrooted') {
+            $web_docroot_client = $web['document_root'];
+        }
+
+        $web_docroot_client .= '/web';
+
+        $json = json_encode(array(
+            'php_cli_binary' => $php_cli_binary,
+            'docroot_client' => $web_docroot_client,
+			'cron_type' => $cron_type,
+            'domain' => $domain
+        ));
+    }
 }
 
 header('Content-type: application/json');
diff --git a/interface/web/sites/lib/lang/ar_cron.lng b/interface/web/sites/lib/lang/ar_cron.lng
index fb114d1a5b71f64f697de6acd18515e71f74f454..76b8952a7340ab08765342c7324c41bfcff2a511 100644
--- a/interface/web/sites/lib/lang/ar_cron.lng
+++ b/interface/web/sites/lib/lang/ar_cron.lng
@@ -24,4 +24,5 @@ $wb['command_error_empty'] = 'Command is empty.';
 $wb['command_hint_txt'] = 'e.g. /var/www/clients/clientX/webY/myscript.sh or https://www.mydomain.com/path/script.php, you can use [web_root] placeholder that is replaced by /var/www/clients/clientX/webY/web.';
 $wb['log_output_txt'] = 'Log output';
 $wb['domain_not_selected_placeholder_txt'] = 'No domain selected';
+$wb['is_jailed_txt'] = 'Jailkit secured cronjob';
 ?>
diff --git a/interface/web/sites/lib/lang/bg_cron.lng b/interface/web/sites/lib/lang/bg_cron.lng
index c4877f897254df2ce1da6ab81ba162cc7f206c45..f70b1e33225f7afd74ecde07873d074a1bec61a3 100644
--- a/interface/web/sites/lib/lang/bg_cron.lng
+++ b/interface/web/sites/lib/lang/bg_cron.lng
@@ -24,4 +24,5 @@ $wb['command_error_empty'] = 'Command is empty.';
 $wb['command_hint_txt'] = 'e.g. /var/www/clients/clientX/webY/myscript.sh or https://www.mydomain.com/path/script.php, you can use [web_root] placeholder that is replaced by /var/www/clients/clientX/webY/web.';
 $wb['log_output_txt'] = 'Log output';
 $wb['domain_not_selected_placeholder_txt'] = 'No domain selected';
+$wb['is_jailed_txt'] = 'Jailkit secured cronjob';
 ?>
diff --git a/interface/web/sites/lib/lang/br_cron.lng b/interface/web/sites/lib/lang/br_cron.lng
index bf26c58310f2385ed1f24ca6d30cdeb919a49d10..8c8d51c89379e5681e47126e69251be8f71535e1 100644
--- a/interface/web/sites/lib/lang/br_cron.lng
+++ b/interface/web/sites/lib/lang/br_cron.lng
@@ -25,3 +25,5 @@ $wb['limit_cron_url_txt'] = 'Somente URL no Cron. Por favor insira uma URL inici
 $wb['command_error_empty'] = 'Comando a executar está vazio.';
 $wb['Cron Job'] = 'Tarefas no Cron';
 $wb['domain_not_selected_placeholder_txt'] = 'No domain selected';
+$wb['is_jailed_txt'] = 'Jailkit secured cronjob';
+
diff --git a/interface/web/sites/lib/lang/ca_cron.lng b/interface/web/sites/lib/lang/ca_cron.lng
index 8d04a71e03b191516277e365dee06e72ca0058e2..15e78569a751257207f01aec399c0094db2486e1 100644
--- a/interface/web/sites/lib/lang/ca_cron.lng
+++ b/interface/web/sites/lib/lang/ca_cron.lng
@@ -24,4 +24,5 @@ $wb['command_error_empty'] = 'Le champ Commande à exécuter est vide.';
 $wb['command_hint_txt'] = 'par exemple /var/www/clients/clientX/webY/monscript.sh ou https://www.mondomaine.com/chemin/script.php, vous pouvez utiliser la constante [web_root] qui sera remplacée par /var/www/clients/clientX/webY/web.';
 $wb['log_output_txt'] = 'Journaliser la sortie du cron';
 $wb['domain_not_selected_placeholder_txt'] = 'No domain selected';
+$wb['is_jailed_txt'] = 'Jailkit secured cronjob';
 ?>
diff --git a/interface/web/sites/lib/lang/cn_cron.lng b/interface/web/sites/lib/lang/cn_cron.lng
index f689a930cfdb40db0fbf6636cda7b3f39b70de0f..7c753a523072633e83f57494cc68ec7343449f0e 100644
--- a/interface/web/sites/lib/lang/cn_cron.lng
+++ b/interface/web/sites/lib/lang/cn_cron.lng
@@ -24,4 +24,5 @@ $wb['log_output_txt'] = '记录输出';
 $wb['limit_cron_url_txt'] = '仅限 URL 计划任务。请将以 https:// 开头的 URL 作为计划任务命令输入。';
 $wb['command_error_empty'] = '命令为空。';
 $wb['domain_not_selected_placeholder_txt'] = 'No domain selected';
+$wb['is_jailed_txt'] = 'Jailkit secured cronjob';
 ?>
diff --git a/interface/web/sites/lib/lang/cz_cron.lng b/interface/web/sites/lib/lang/cz_cron.lng
index 5144015d6f0d13bd1e7ffe182bb095da8034b5f0..637657ee87f431fffa950cf81c32cf82a39842ab 100644
--- a/interface/web/sites/lib/lang/cz_cron.lng
+++ b/interface/web/sites/lib/lang/cz_cron.lng
@@ -24,3 +24,5 @@ $wb['command_error_empty'] = 'Command is empty.';
 $wb['command_hint_txt'] = 'e.g. /var/www/clients/clientX/webY/myscript.sh or http://www.mydomain.com/path/script.php, you can use [web_root] placeholder that is replaced by /var/www/clients/clientX/webY/web.';
 $wb['log_output_txt'] = 'Log output';
 $wb['domain_not_selected_placeholder_txt'] = 'No domain selected';
+$wb['is_jailed_txt'] = 'Jailkit secured cronjob';
+
diff --git a/interface/web/sites/lib/lang/de_cron.lng b/interface/web/sites/lib/lang/de_cron.lng
index 81f1f61e7d67f396f8a6bb979c9ef9ca78120f27..9e50a757d60800641545cc002e63bc663a211356 100644
--- a/interface/web/sites/lib/lang/de_cron.lng
+++ b/interface/web/sites/lib/lang/de_cron.lng
@@ -25,4 +25,5 @@ $wb['limit_cron_url_txt'] = 'Es sind nur URL cronjobs möglich. Der Cron-Befehl
 $wb['command_error_empty'] = 'Befehl ist leer.';
 $wb['variables_txt'] = 'Variablen';
 $wb['domain_not_selected_placeholder_txt'] = 'Bitte wähle eine Domain aus';
+$wb['is_jailed_txt'] = 'Jailkit gesicherter Cronjob';
 
diff --git a/interface/web/sites/lib/lang/de_web_vhost_domain.lng b/interface/web/sites/lib/lang/de_web_vhost_domain.lng
index 8441dfbdd9c7d431ac5fc64667af3b0bd0eeef3e..55f5f59051b325acaab9ccd2631e09e624ef0464 100644
--- a/interface/web/sites/lib/lang/de_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/de_web_vhost_domain.lng
@@ -191,16 +191,16 @@ $wb['error_ipv4_change_forbidden'] = 'Die IP kann nicht geändert werden. Bitte
 $wb['error_ipv6_change_forbidden'] = 'Die IP kann nicht geändert werden. Bitte wenden Sie sich an Ihren Administrator, wenn Sie die IPv6-Adresse ändern möchten.';
 $wb['error_domain_change_forbidden'] = 'Der Domänenname kann nicht geändert werden. Wenden Sie sich bitte an Ihren Administrator, wenn Sie den Domänennamen ändern möchten.';
 $wb['error_server_change_not_possible'] = 'Der Server kann nicht geändert werden.';
-$wb['jailkit_chroot_app_sections_txt'] = 'Jailkit Chroot Anwendungsbereiche';
-$wb['jailkit_chroot_app_programs_txt'] = 'Jailkit Chrooted Anwendungen';
-$wb['jailkit_chroot_app_sections_error_empty'] = 'Jailkit Chroot Anwendungsbereiche ist leer.';
-$wb['jailkit_chroot_app_programs_error_empty'] = 'Jailkit Chrooted Anwendungen ist leer.';
-$wb['jailkit_chroot_app_sections_error_regex'] = 'Ungültige Jaikit Chroot Anwendungsbereiche.';
+$wb['jailkit_chroot_app_sections_txt'] = 'Jailkit Chroot Sektionen';
+$wb['jailkit_chroot_app_programs_txt'] = 'Jailkit Chroot Anwendungen';
+$wb['jailkit_chroot_app_sections_error_empty'] = 'Jailkit Chroot Sektionen ist leer.';
+$wb['jailkit_chroot_app_programs_error_empty'] = 'Jailkit Chroot Anwendungen ist leer.';
+$wb['jailkit_chroot_app_sections_error_regex'] = 'Ungültige Jaikit Chroot Sektionen.';
 $wb['jailkit_chroot_app_programs_error_regex'] = 'Ungültige Jaikit Chroot Anwendungen.';
-$wb['tooltip_jailkit_chroot_app_sections_txt'] = 'Wenn leer, verwende Jailkit Chroot Anwendungsbereiche aus der Serverkonfiguration';
-$wb['tooltip_jailkit_chroot_app_programs_txt'] = 'Wenn leer, verwende Jailkit Chroot Anwendungen aus der Serverkonfiguration';
+$wb['tooltip_jailkit_chroot_app_sections_txt'] = 'Wenn leer, übernehme die Jailkit Chroot Sektionen aus der Serverkonfiguration';
+$wb['tooltip_jailkit_chroot_app_programs_txt'] = 'Wenn leer, übernehme die Jailkit Chroot Anwendungen aus der Serverkonfiguration';
 $wb['delete_unused_jailkit_txt'] = 'Lösche unbenutzten Jailkit Chroot';
 $wb['tooltip_delete_unused_jailkit_txt'] = 'Lösche die Jailkit-Chroot-Umgebung, wenn es keine Shell-Benutzer oder Cronjobs gibt, die sie benötigen.';
 $wb['ssl_options_not_for_le_txt'] = 'Sie haben Let\'s Encrypt-Zertifikate für diese Website aktiviert. Bitte beachten Sie, dass alle Optionen auf dieser Seite nur für Nicht-Let\'s Encrypt-Zertifikate gelten. Denken Sie daran, Let\'s Encrypt auf der Hauptregisterkarte zu deaktivieren, wenn Sie zu einem anderen Zertifikat wechseln möchten.';
 $wb['disable_symlinknotowner_txt'] = 'Deaktiviere Symlinks-Restriktion des Webspace';
-$wb['tooltip_disable_symlinknotowner_txt'] = 'WARNUNG: Diese Funktion deaktiviert die Restriktion SymLinksIfOwnerMatch (Apache) und disable_symlinks if_not_owner (Nginx).';
+$wb['tooltip_disable_symlinknotowner_txt'] = 'WARNUNG: Diese Funktion deaktiviert die Restriktion SymLinksIfOwnerMatch (Apache) und disable_symlinks if_not_owner (Nginx)';
diff --git a/interface/web/sites/lib/lang/dk_cron.lng b/interface/web/sites/lib/lang/dk_cron.lng
index 798cb4ea49d403e080c51e1642a3c291fddcaf56..c9559071c7fa135adef9a0547b79d2640746a7e8 100644
--- a/interface/web/sites/lib/lang/dk_cron.lng
+++ b/interface/web/sites/lib/lang/dk_cron.lng
@@ -24,3 +24,5 @@ $wb['command_error_empty'] = 'Command er tom.';
 $wb['command_hint_txt'] = 'e.g. /var/www/clients/clientX/webY/myscript.sh or https://www.mydomain.com/path/script.php, you can use [web_root] placeholder that is replaced by /var/www/clients/clientX/webY/web.';
 $wb['log_output_txt'] = 'Log output';
 $wb['domain_not_selected_placeholder_txt'] = 'No domain selected';
+$wb['is_jailed_txt'] = 'Jailkit secured cronjob';
+
diff --git a/interface/web/sites/lib/lang/el_cron.lng b/interface/web/sites/lib/lang/el_cron.lng
index fe4985443050025fd4d0b6ece2a40a4ea10a3949..70ac780e2a866ae6cab90467796d1419d763bd9b 100644
--- a/interface/web/sites/lib/lang/el_cron.lng
+++ b/interface/web/sites/lib/lang/el_cron.lng
@@ -24,3 +24,4 @@ $wb['command_error_empty'] = 'Command is empty.';
 $wb['command_hint_txt'] = 'e.g. /var/www/clients/clientX/webY/myscript.sh or https://www.mydomain.com/path/script.php, you can use [web_root] placeholder that is replaced by /var/www/clients/clientX/webY/web.';
 $wb['log_output_txt'] = 'Log output';
 $wb['domain_not_selected_placeholder_txt'] = 'No domain selected';
+$wb['is_jailed_txt'] = 'Jailkit secured cronjob';
diff --git a/interface/web/sites/lib/lang/en_cron.lng b/interface/web/sites/lib/lang/en_cron.lng
index ecd146deea118dd1713a20bc7ff1d9bc6a44fe04..47cb15122fb2b1280a9a996abab35ce2bb84325c 100644
--- a/interface/web/sites/lib/lang/en_cron.lng
+++ b/interface/web/sites/lib/lang/en_cron.lng
@@ -25,3 +25,4 @@ $wb['limit_cron_url_txt'] = 'URL cron only. Please enter a URL starting with htt
 $wb['command_error_empty'] = 'Command is empty.';
 $wb['variables_txt'] = 'Variables';
 $wb['domain_not_selected_placeholder_txt'] = 'No domain selected';
+$wb['is_jailed_txt'] = 'Jailkit secured cronjob';
diff --git a/interface/web/sites/lib/lang/es_cron.lng b/interface/web/sites/lib/lang/es_cron.lng
index ccf7753b68c66ea3eadb221b28e38d2fbfce0c93..ae0157df97b8dd20c7c08c9cb8701e3f2cac58d9 100644
--- a/interface/web/sites/lib/lang/es_cron.lng
+++ b/interface/web/sites/lib/lang/es_cron.lng
@@ -24,3 +24,4 @@ $wb['server_id_error_empty'] = 'La ID del servidor está vacía.';
 $wb['server_id_txt'] = 'Servidor';
 $wb['unknown_fieldtype_error'] = 'Se ha usado un tipo de campo desconocido.';
 $wb['domain_not_selected_placeholder_txt'] = 'No domain selected';
+$wb['is_jailed_txt'] = 'Jailkit secured cronjob';
diff --git a/interface/web/sites/lib/lang/fi_cron.lng b/interface/web/sites/lib/lang/fi_cron.lng
index b45f2e8849632f4637c9b19eb6549ae60ef93b8a..23fe57c3aaa273ea4070b2620f0eb4f4a54da048 100644
--- a/interface/web/sites/lib/lang/fi_cron.lng
+++ b/interface/web/sites/lib/lang/fi_cron.lng
@@ -24,4 +24,5 @@ $wb['command_error_empty'] = 'Command is empty.';
 $wb['command_hint_txt'] = 'e.g. /var/www/clients/clientX/webY/myscript.sh or https://www.mydomain.com/path/script.php, you can use [web_root] placeholder that is replaced by /var/www/clients/clientX/webY/web.';
 $wb['log_output_txt'] = 'Log output';
 $wb['domain_not_selected_placeholder_txt'] = 'No domain selected';
+$wb['is_jailed_txt'] = 'Jailkit secured cronjob';
 
diff --git a/interface/web/sites/lib/lang/fr_cron.lng b/interface/web/sites/lib/lang/fr_cron.lng
index 407b246a11458bcd8d8d6f1d54a8a4c56c0756b1..19f07fc93d53026786b7841ae458b029cffa8383 100644
--- a/interface/web/sites/lib/lang/fr_cron.lng
+++ b/interface/web/sites/lib/lang/fr_cron.lng
@@ -24,4 +24,4 @@ $wb['command_error_empty'] = 'Le champ Commande à exécuter est vide.';
 $wb['command_hint_txt'] = 'par exemple /var/www/clients/clientX/webY/monscript.sh ou https://www.mondomaine.com/chemin/script.php, vous pouvez utiliser la constante [web_root] qui sera remplacée par /var/www/clients/clientX/webY/web.';
 $wb['log_output_txt'] = 'Journaliser la sortie du cron';
 $wb['domain_not_selected_placeholder_txt'] = 'No domain selected';
-
+$wb['is_jailed_txt'] = 'Jailkit secured cronjob';
diff --git a/interface/web/sites/lib/lang/hr_cron.lng b/interface/web/sites/lib/lang/hr_cron.lng
index a847d94087b46838a2238639a5fd372c61fda397..b6fa53491111325017e49697fb05514914757152 100644
--- a/interface/web/sites/lib/lang/hr_cron.lng
+++ b/interface/web/sites/lib/lang/hr_cron.lng
@@ -24,4 +24,5 @@ $wb['command_error_empty'] = 'Naredba je prazna.';
 $wb['command_hint_txt'] = 'e.g. /var/www/clients/clientX/webY/myscript.sh or https://www.mydomain.com/path/script.php, you can use [web_root] placeholder that is replaced by /var/www/clients/clientX/webY/web.';
 $wb['log_output_txt'] = 'Log output';
 $wb['domain_not_selected_placeholder_txt'] = 'No domain selected';
+$wb['is_jailed_txt'] = 'Jailkit secured cronjob';
 
diff --git a/interface/web/sites/lib/lang/hu_cron.lng b/interface/web/sites/lib/lang/hu_cron.lng
index fce63b11f03e4cdae57d11fd11b4df07491f808b..a1a7822c62a1b576a6c22a1846584b8bc7dea502 100644
--- a/interface/web/sites/lib/lang/hu_cron.lng
+++ b/interface/web/sites/lib/lang/hu_cron.lng
@@ -24,4 +24,4 @@ $wb['command_error_empty'] = 'Command is empty.';
 $wb['command_hint_txt'] = 'e.g. /var/www/clients/clientX/webY/myscript.sh or https://www.mydomain.com/path/script.php, you can use [web_root] placeholder that is replaced by /var/www/clients/clientX/webY/web.';
 $wb['log_output_txt'] = 'Log output';
 $wb['domain_not_selected_placeholder_txt'] = 'No domain selected';
-
+$wb['is_jailed_txt'] = 'Jailkit secured cronjob';
diff --git a/interface/web/sites/lib/lang/id_cron.lng b/interface/web/sites/lib/lang/id_cron.lng
index c001dfb28f7cc1bb4a89754e09eb5ec2d3e87ea0..aa6aeb7f5b97eedadcd54bc36f14642f8cfd1c6c 100644
--- a/interface/web/sites/lib/lang/id_cron.lng
+++ b/interface/web/sites/lib/lang/id_cron.lng
@@ -24,4 +24,5 @@ $wb['command_error_empty'] = 'Command is empty.';
 $wb['command_hint_txt'] = 'e.g. /var/www/clients/clientX/webY/myscript.sh or https://www.mydomain.com/path/script.php, you can use [web_root] placeholder that is replaced by /var/www/clients/clientX/webY/web.';
 $wb['log_output_txt'] = 'Log output';
 $wb['domain_not_selected_placeholder_txt'] = 'No domain selected';
+$wb['is_jailed_txt'] = 'Jailkit secured cronjob';
 
diff --git a/interface/web/sites/lib/lang/it_cron.lng b/interface/web/sites/lib/lang/it_cron.lng
index 7227cab4e669e648362735d9c21fe77dc836cfe7..225e08cea9130fa92c509954a3688dab00b72d81 100644
--- a/interface/web/sites/lib/lang/it_cron.lng
+++ b/interface/web/sites/lib/lang/it_cron.lng
@@ -24,4 +24,5 @@ $wb['command_error_empty'] = 'Command  vuoto.';
 $wb['command_hint_txt'] = 'esempio: /var/www/clients/clientX/webY/myscript.sh o https://www.mydomain.com/path/script.php, puoi usare [web_root] come sostitutivo che viene rimpiazzato da /var/www/clients/clientX/webY/web.';
 $wb['log_output_txt'] = 'Log output';
 $wb['domain_not_selected_placeholder_txt'] = 'No domain selected';
+$wb['is_jailed_txt'] = 'Jailkit secured cronjob';
 
diff --git a/interface/web/sites/lib/lang/ja_cron.lng b/interface/web/sites/lib/lang/ja_cron.lng
index cb02ffe8c6050d18f982c2dbef1bae981f351031..0dd394a81b01124dcf13984210c5d4f36baf2ac0 100644
--- a/interface/web/sites/lib/lang/ja_cron.lng
+++ b/interface/web/sites/lib/lang/ja_cron.lng
@@ -24,4 +24,5 @@ $wb['command_error_empty'] = 'Command is empty.';
 $wb['command_hint_txt'] = 'e.g. /var/www/clients/clientX/webY/myscript.sh or https://www.mydomain.com/path/script.php, you can use [web_root] placeholder that is replaced by /var/www/clients/clientX/webY/web.';
 $wb['log_output_txt'] = 'Log output';
 $wb['domain_not_selected_placeholder_txt'] = 'No domain selected';
+$wb['is_jailed_txt'] = 'Jailkit secured cronjob';
 
diff --git a/interface/web/sites/lib/lang/nl_cron.lng b/interface/web/sites/lib/lang/nl_cron.lng
index 587cb4d5ce2e018db671311b0eb0f5dee31a3abe..156445c3e1ab1ff2f7ead7c94854ae7c57ce6ac7 100644
--- a/interface/web/sites/lib/lang/nl_cron.lng
+++ b/interface/web/sites/lib/lang/nl_cron.lng
@@ -24,3 +24,4 @@ $wb['command_error_empty'] = 'Command is empty.';
 $wb['command_hint_txt'] = 'e.g. /var/www/clients/clientX/webY/myscript.sh or https://www.mydomain.com/path/script.php, you can use [web_root] placeholder that is replaced by /var/www/clients/clientX/webY/web.';
 $wb['log_output_txt'] = 'Log output';
 $wb['domain_not_selected_placeholder_txt'] = 'Geen domein geselecteerd';
+$wb['is_jailed_txt'] = 'Jailkit secured cronjob';
diff --git a/interface/web/sites/lib/lang/pl_cron.lng b/interface/web/sites/lib/lang/pl_cron.lng
index 7212a3a2133d6544cbc4644eb49fdc1d30099aa8..77a30b34d47cba13595ec71b8a1e0135f56b6459 100644
--- a/interface/web/sites/lib/lang/pl_cron.lng
+++ b/interface/web/sites/lib/lang/pl_cron.lng
@@ -24,3 +24,4 @@ $wb['command_error_empty'] = 'Command is empty.';
 $wb['command_hint_txt'] = 'e.g. /var/www/clients/clientX/webY/myscript.sh or https://www.mydomain.com/path/script.php, you can use [web_root] placeholder that is replaced by /var/www/clients/clientX/webY/web.';
 $wb['log_output_txt'] = 'Log output';
 $wb['domain_not_selected_placeholder_txt'] = 'No domain selected';
+$wb['is_jailed_txt'] = 'Jailkit secured cronjob';
diff --git a/interface/web/sites/lib/lang/pt_cron.lng b/interface/web/sites/lib/lang/pt_cron.lng
index a6b06a5305529e32bcfc7aec4c0ef160afc2fd03..992d0097f78af880629112138d0dc49835c6edc1 100644
--- a/interface/web/sites/lib/lang/pt_cron.lng
+++ b/interface/web/sites/lib/lang/pt_cron.lng
@@ -24,3 +24,4 @@ $wb['command_error_empty'] = 'Command is empty.';
 $wb['command_hint_txt'] = 'e.g. /var/www/clients/clientX/webY/myscript.sh or https://www.mydomain.com/path/script.php, you can use [web_root] placeholder that is replaced by /var/www/clients/clientX/webY/web.';
 $wb['log_output_txt'] = 'Log output';
 $wb['domain_not_selected_placeholder_txt'] = 'No domain selected';
+$wb['is_jailed_txt'] = 'Jailkit secured cronjob';
diff --git a/interface/web/sites/lib/lang/ro_cron.lng b/interface/web/sites/lib/lang/ro_cron.lng
index 8a8d2aa79f1ab6474e0a4df29216d864fde903af..6a8bbbeedd118d29f181bc165e6951ac21cc0a1b 100644
--- a/interface/web/sites/lib/lang/ro_cron.lng
+++ b/interface/web/sites/lib/lang/ro_cron.lng
@@ -24,3 +24,4 @@ $wb['command_error_empty'] = 'Command is empty.';
 $wb['command_hint_txt'] = 'e.g. /var/www/clients/clientX/webY/myscript.sh or https://www.mydomain.com/path/script.php, you can use [web_root] placeholder that is replaced by /var/www/clients/clientX/webY/web.';
 $wb['log_output_txt'] = 'Log output';
 $wb['domain_not_selected_placeholder_txt'] = 'No domain selected';
+$wb['is_jailed_txt'] = 'Jailkit secured cronjob';
diff --git a/interface/web/sites/lib/lang/ru_cron.lng b/interface/web/sites/lib/lang/ru_cron.lng
index 1774ba5c646c82fa5e75dfd015cff75bce772567..fae60d73a2e7521caade3c8422d37815a059ec37 100644
--- a/interface/web/sites/lib/lang/ru_cron.lng
+++ b/interface/web/sites/lib/lang/ru_cron.lng
@@ -24,3 +24,4 @@ $wb['command_error_empty'] = 'Команда отсутствует.';
 $wb['command_hint_txt'] = 'Например, /var/www/clients/clientX/webY/myscript.sh или https://www.mydomain.com/path/script.php, Вы можете использовать заполнитель [web_root], который заменяется на /var/www/clients/clientX/webY/web.';
 $wb['log_output_txt'] = 'Журнал вывода';
 $wb['domain_not_selected_placeholder_txt'] = 'No domain selected';
+$wb['is_jailed_txt'] = 'Jailkit secured cronjob';
diff --git a/interface/web/sites/lib/lang/se_cron.lng b/interface/web/sites/lib/lang/se_cron.lng
index 7ecf078210314d98c407f3a3072e501b8fc82e68..b56eb8764765c690ebdf135939e85c3ef250f30d 100644
--- a/interface/web/sites/lib/lang/se_cron.lng
+++ b/interface/web/sites/lib/lang/se_cron.lng
@@ -24,3 +24,4 @@ $wb['command_error_empty'] = 'Kommandofältet är tomt.';
 $wb['command_hint_txt'] = 'e.g. /var/www/clients/clientX/webY/myscript.sh or https://www.mydomain.com/path/script.php, you can use [web_root] placeholder that is replaced by /var/www/clients/clientX/webY/web.';
 $wb['log_output_txt'] = 'Log output';
 $wb['domain_not_selected_placeholder_txt'] = 'No domain selected';
+$wb['is_jailed_txt'] = 'Jailkit secured cronjob';
diff --git a/interface/web/sites/lib/lang/sk_cron.lng b/interface/web/sites/lib/lang/sk_cron.lng
index 7c9341d8138c3d844039fe7219dad7af6e37bd3a..68cf3846912bce1fac669ad698d2d3cd64b6534e 100644
--- a/interface/web/sites/lib/lang/sk_cron.lng
+++ b/interface/web/sites/lib/lang/sk_cron.lng
@@ -24,3 +24,4 @@ $wb['command_error_empty'] = 'Command is empty.';
 $wb['command_hint_txt'] = 'e.g. /var/www/clients/clientX/webY/myscript.sh or https://www.mydomain.com/path/script.php, you can use [web_root] placeholder that is replaced by /var/www/clients/clientX/webY/web.';
 $wb['log_output_txt'] = 'Log output';
 $wb['domain_not_selected_placeholder_txt'] = 'No domain selected';
+$wb['is_jailed_txt'] = 'Jailkit secured cronjob';
diff --git a/interface/web/sites/lib/lang/tr_cron.lng b/interface/web/sites/lib/lang/tr_cron.lng
index c41267b9228b97f27152418ca91421bcd8e1f945..6e14e7f97d8f6d3b8aad40d2dac57442a67d6377 100644
--- a/interface/web/sites/lib/lang/tr_cron.lng
+++ b/interface/web/sites/lib/lang/tr_cron.lng
@@ -24,3 +24,4 @@ $wb['log_output_txt'] = 'Günlük çıktısı';
 $wb['limit_cron_url_txt'] = 'Yalnız İnternet adresli zamanlanmış görev kullanılabilir. Lütfen zamanlanmış görev komutu olarak https:// ile başlayan bir İnternet adresi yazın.';
 $wb['command_error_empty'] = 'Komut boÅŸ olamaz.';
 $wb['domain_not_selected_placeholder_txt'] = 'No domain selected';
+$wb['is_jailed_txt'] = 'Jailkit secured cronjob';
diff --git a/interface/web/sites/templates/cron_edit.htm b/interface/web/sites/templates/cron_edit.htm
index 68bc8669ca6a466918e249df84c296d210a4daa3..0d4cb2f08ace471a3c3750cb4d1fd2a793a99be8 100644
--- a/interface/web/sites/templates/cron_edit.htm
+++ b/interface/web/sites/templates/cron_edit.htm
@@ -1,18 +1,23 @@
-            <div class="form-group">
-                <tmpl_if name="edit_disabled">
-
-                    <label for="parent_domain_id" class="col-sm-3 control-label">{tmpl_var name='parent_domain_id_txt'}</label>
-                    <div class="col-sm-9"><select name="parent_domain_id" id="parent_domain_id" class="form-control" disabled="disabled">
-                        {tmpl_var name='parent_domain_id'}
-                    </select></div>
-                    <input type="hidden" name="parent_domain_id" value="{tmpl_var name='parent_domain_id_value'}" />
-                    <tmpl_else>
-                        <label for="parent_domain_id" class="col-sm-3 control-label">{tmpl_var name='parent_domain_id_txt'}</label>
-                        <div class="col-sm-9"><select name="parent_domain_id" id="parent_domain_id" class="form-control">
-                            {tmpl_var name='parent_domain_id'}
-                        </select></div>
-                </tmpl_if>
+<div class="form-group">
+    <tmpl_if name="edit_disabled">
+        <label for="parent_domain_id" class="col-sm-3 control-label">{tmpl_var name='parent_domain_id_txt'}</label>
+        <div class="col-sm-9 position-relative">
+            <select name="parent_domain_id" id="parent_domain_id" class="form-control" disabled="disabled">
+                {tmpl_var name='parent_domain_id'}
+            </select>
+            <span class="jail-symbol" title="{tmpl_var name='is_jailed_txt'}"><i class="fa fa-lock"></i></span>
+        </div>
+        <input type="hidden" name="parent_domain_id" value="{tmpl_var name='parent_domain_id_value'}" />
+        <tmpl_else>
+            <label for="parent_domain_id" class="col-sm-3 control-label">{tmpl_var name='parent_domain_id_txt'}</label>
+            <div class="col-sm-9 position-relative">
+                <select name="parent_domain_id" id="parent_domain_id" class="form-control">
+                    {tmpl_var name='parent_domain_id'}
+                </select>
+                <span class="jail-symbol" title="{tmpl_var name='is_jailed_txt'}"><i class="fa fa-lock"></i></span>
             </div>
+    </tmpl_if>
+</div>
 
             <div class="form-group">
                 <label for="run_min" class="col-sm-3 control-label">{tmpl_var name='run_min_txt'}</label>
@@ -80,28 +85,43 @@
         </div></div>
 
         <script language="JavaScript" type="text/javascript">
-        // Select first existing domain "onLoad"
-        jQuery(document).ready(function() {
-            jQuery('#parent_domain_id').trigger('change');
-        });
-        // Reload cron placeholders if a different domain was selected
-        jQuery('#parent_domain_id').change(function() {
-            reloadCronPlaceholders();
-        });
+            // Select first existing domain "onLoad"
+            jQuery(document).ready(function() {
+                jQuery('#parent_domain_id').trigger('change');
+            });
+
+            // Reload cron placeholders if a different domain was selected
+            jQuery('#parent_domain_id').change(function() {
+                reloadCronPlaceholders();
+            });
 
-        function reloadCronPlaceholders() {
-            var parentDomainId = jQuery('#parent_domain_id').val()
-            jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {web_id: parentDomainId, 'type': 'getcronplaceholders'}, function(data) {
+            function reloadCronPlaceholders() {
+                var parentDomainId = jQuery('#parent_domain_id').val();
+                jQuery.getJSON('sites/ajax_get_json.php' + '?' + Math.round(new Date().getTime()), {web_id: parentDomainId, 'type': 'getcronplaceholders'}, function(data) {
                 //console.log(data);
-                $("#php_cli_binary").attr('data-original-title', data.php_cli_binary);
-                $('#docroot_client').attr('data-original-title', data.docroot_client);
-                // Update the data-original-title of the {DOMAIN} placeholder or load and display a hint to the user that no domain was selected yet. Should only happen if no web has been created or assigned by or to the user.
-                if(data.domain) {
-                    $('#domain').attr('data-original-title', data.domain);
+                if (data) {
+                    $("#php_cli_binary").attr('data-original-title', data.php_cli_binary);
+                    $('#docroot_client').attr('data-original-title', data.docroot_client);
+                    if (data.domain) {
+                        $('#domain').attr('data-original-title', data.domain);
+                    } else {
+                        $('#domain').attr('data-original-title', "{tmpl_var name='domain_not_selected_placeholder_txt'}");
+                    }
+                    // Show or hide the jail symbol based on cron_type
+                    if (data.cron_type === 'chrooted') {
+                        if (!$('.jail-symbol').length) {
+                            $('#parent_domain_id').after('<span class="jail-symbol" title="{tmpl_var name='is_jailed_txt'}"><i class="fa fa-lock"></i></span>');
+                        }
+                    } else {
+                        $('.jail-symbol').remove();
+                    }
                 } else {
-                    $('#domain').attr('data-original-title', "{tmpl_var name='domain_not_selected_placeholder_txt'}");
+                    console.error("Empty response received from server.");
                 }
+            }).fail(function(jqxhr, textStatus, error) {
+                console.error("Request Failed: " + textStatus + ", " + error);
+                console.log(jqxhr.responseText); // Log the response text
             });
-        }
+            }
         </script>
 
diff --git a/interface/web/sites/web_vhost_domain_edit.php b/interface/web/sites/web_vhost_domain_edit.php
index 1e2286112f2992fee6de6cbf0a922bba6ded6d5a..dd3a261b8328a79460449251619cb2685a3c2caf 100644
--- a/interface/web/sites/web_vhost_domain_edit.php
+++ b/interface/web/sites/web_vhost_domain_edit.php
@@ -266,6 +266,7 @@ class page_action extends tform_actions {
 					$php_select .= "<option value='" . $php_record['server_php_id'] . "' $selected>".$app->functions->htmlentities($php_record['name'])."</option>\r\n";
 				}
 			}
+
 			$app->tpl->setVar("server_php_id", $php_select);
 			unset($php_records);
 
@@ -409,6 +410,7 @@ class page_action extends tform_actions {
 					$php_select .= "<option value='" . $php_record['server_php_id'] . "' $selected>".$app->functions->htmlentities($php_record['name'])."</option>\r\n";
 				}
 			}
+
 			$app->tpl->setVar("server_php_id", $php_select);
 			unset($php_records);
 
@@ -587,6 +589,7 @@ class page_action extends tform_actions {
 					$php_select .= "<option value='" . $php_record['server_php_id'] . "' $selected>".$app->functions->htmlentities($php_record['name'])."</option>\r\n";
 				}
 			}
+
 			$app->tpl->setVar("server_php_id", $php_select);
 			unset($php_records);
 
@@ -680,10 +683,9 @@ class page_action extends tform_actions {
                     $app->tpl->setVar("document_root", $tmp["document_root"], true);
                     unset($tmp);
                 }
-				
 			} else {
                 $app->tpl->setVar('server_id_value', $parent_domain['server_id']);
-            } 
+            }
 		} else {
 			$app->tpl->setVar("edit_disabled", 0);
 			$app->tpl->setVar('fixed_folder', 'n');
diff --git a/interface/web/themes/default/assets/stylesheets/ispconfig.css b/interface/web/themes/default/assets/stylesheets/ispconfig.css
index b27fe510938543de42aac00a5b1ab8609ad5b548..5ada86a478e2e9d9e199ae66b4d3e9ee69128675 100644
--- a/interface/web/themes/default/assets/stylesheets/ispconfig.css
+++ b/interface/web/themes/default/assets/stylesheets/ispconfig.css
@@ -854,4 +854,15 @@ max-width: 1260px; }
 		max-width: 90%;
 		text-overflow: ellipsis ;
 		overflow-x: hidden;
-	}
\ No newline at end of file
+	}
+	.position-relative {
+        position: relative;
+    }
+    .jail-symbol {
+        position: absolute;
+        right: 5.5%;
+        top: 50%;
+        transform: translateY(-50%);
+        font-size: 1.4em;
+        color: #808080;
+    }
diff --git a/server/conf/bashrc_user_deb.master b/server/conf/bashrc_user_deb.master
index 10b4b94da275d55a0cd9c1519412367dc49dbe20..2e49857c9f966ff6ab5fbee4355cf349d5026bda 100644
--- a/server/conf/bashrc_user_deb.master
+++ b/server/conf/bashrc_user_deb.master
@@ -97,9 +97,6 @@ fi
 # Overwrite the PHP cli binaries by using $PATH:
 export PATH=<tmpl_var name='php_bin_dir'>:$PATH
 </tmpl_if>
-<tmpl_if name='use_php_alias'>
-alias php="<tmpl_var name='php_alias'>"
-</tmpl_if>
 </tmpl_if>
 
 # Alias definitions.
@@ -122,6 +119,13 @@ if ! shopt -oq posix; then
   fi
 fi
 
+# User specific environment
+if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]]
+then
+    PATH="$HOME/.local/bin:$HOME/bin:$PATH"
+fi
+export PATH
+
 
 # Source custom bashrc files
 if [ -d ~/.bashrc.d ]
diff --git a/server/conf/bashrc_user_generic.master b/server/conf/bashrc_user_generic.master
index 563ebefdb2f359244c25cb0249c0be1d61d94302..17b7347efc758267d76b6d3bc79e135279839009 100644
--- a/server/conf/bashrc_user_generic.master
+++ b/server/conf/bashrc_user_generic.master
@@ -17,9 +17,14 @@ export HOSTNAME=<tmpl_var name='domain'>
 # Overwrite the PHP cli binaries by using $PATH:
 export PATH=<tmpl_var name='php_bin_dir'>:$PATH
 </tmpl_if>
-<tmpl_if name='use_php_alias'>
-alias php="<tmpl_var name='php_alias'>"
-</tmpl_if>
+
+# User specific environment
+if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]]
+then
+    PATH="$HOME/.local/bin:$HOME/bin:$PATH"
+fi
+export PATH
+
 
 # Source custom bashrc files
 if [ -d ~/.bashrc.d ]
diff --git a/server/conf/bashrc_user_redhat.master b/server/conf/bashrc_user_redhat.master
index 0a81e94b778eb19174568f06236013ef383e491c..c3d24e306e8b7b3844c27b69dc526118de1b37da 100644
--- a/server/conf/bashrc_user_redhat.master
+++ b/server/conf/bashrc_user_redhat.master
@@ -4,9 +4,9 @@
 export TERM=xterm
 </tmpl_if>
 
-# Source global definitions
+# Source global definitions first
 if [ -f /etc/bashrc ]; then
-        . /etc/bashrc
+	. /etc/bashrc
 fi
 
 <tmpl_if name='jailkit_chroot' op='==' value='y'>
@@ -28,9 +28,6 @@ export HOSTNAME=<tmpl_var name='domain'>
 # Overwrite the PHP cli binaries by using $PATH:
 export PATH=<tmpl_var name='php_bin_dir'>:$PATH
 </tmpl_if>
-<tmpl_if name='use_php_alias'>
-alias php="<tmpl_var name='php_alias'>"
-</tmpl_if>
 
 # User specific environment
 if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]]
diff --git a/server/lib/classes/cron.d/600-jailkit_maintenance.inc.php b/server/lib/classes/cron.d/600-jailkit_maintenance.inc.php
index e7ad60634b35fc2e5a1a3a13f1bf279e9966d40c..7651a4d9969a4434794f378fcc71db1269f057b5 100644
--- a/server/lib/classes/cron.d/600-jailkit_maintenance.inc.php
+++ b/server/lib/classes/cron.d/600-jailkit_maintenance.inc.php
@@ -65,7 +65,7 @@ class cronjob_jailkit_maintenance extends cronjob {
 		// limit the number of jails we update at one time according to time of day
 		$num_jails_to_update = (date('H') < 6) ? 25 : 3;
 
-		$sql = "SELECT domain_id, domain, document_root, system_user, system_group, php_fpm_chroot, jailkit_chroot_app_sections, jailkit_chroot_app_programs, delete_unused_jailkit, last_jailkit_hash, `php_cli_binary`
+		$sql = "SELECT domain_id, domain, document_root, system_user, system_group, php_fpm_chroot, jailkit_chroot_app_sections, jailkit_chroot_app_programs, delete_unused_jailkit, last_jailkit_hash, `php_cli_binary`, server_php.php_jk_section
 					FROM web_domain
 						LEFT JOIN server_php ON web_domain.server_php_id = server_php.server_php_id
 					WHERE type = 'vhost' AND (last_jailkit_update IS NULL OR last_jailkit_update < (NOW() - INTERVAL 24 HOUR)) AND web_domain.server_id = ?
@@ -89,6 +89,16 @@ class cronjob_jailkit_maintenance extends cronjob {
 				$options['php_cli_binary'] = $rec['php_cli_binary'];
 			}
 
+			$shelluser_list = $app->db->queryAllRecords("SELECT * FROM shell_user WHERE parent_domain_id = ? and chroot = 'jailkit' and active = 'y'", $rec['domain_id']);
+			$cronjob_list = $app->db->queryAllRecords("SELECT * FROM cron WHERE parent_domain_id = ? and type = 'chrooted' and active = 'y'", $rec['domain_id']);
+
+			if(is_array($cronjob_list) && !empty($cronjob_list) || is_array($shelluser_list) && !empty($shelluser_list)) {
+				$options['jk_php_maintenance_check'] = "yes";
+			} else {
+				$options['jk_php_maintenance_check'] = "no";
+
+			}
+
 
 			//$app->log('Beginning jailkit maintenance for domain '.$rec['domain'].' at '.$rec['document_root'], LOGLEVEL_DEBUG);
 			print 'Beginning jailkit maintenance for domain '.$rec['domain'].' at '.$rec['document_root']."\n";
@@ -109,6 +119,7 @@ class cronjob_jailkit_maintenance extends cronjob {
 
 			if ($shell_user_inuse || $cron_inuse || $rec['php_fpm_chroot'] == 'y' || $rec['delete_unused_jailkit'] != 'y') {
 				$sections = $jailkit_config['jailkit_chroot_app_sections'];
+
 				if (isset($rec['jailkit_chroot_app_sections']) && $rec['jailkit_chroot_app_sections'] != '') {
 					$sections = $rec['jailkit_chroot_app_sections'];
 				}
@@ -116,14 +127,19 @@ class cronjob_jailkit_maintenance extends cronjob {
 				if (isset($rec['jailkit_chroot_app_programs']) && $rec['jailkit_chroot_app_programs'] != '') {
 					$programs = $rec['jailkit_chroot_app_programs'];
 				}
+
 				$programs .= ' '.$jailkit_config['jailkit_chroot_cron_programs'];
 
+				if (isset($rec['php_jk_section']) && $rec['php_jk_section'] != '') {
+					$sections .= ' '.$rec['php_jk_section'];
+				}
+
 				$last_updated = preg_split('/[\s,]+/', $sections.' '.$programs);
 				$last_updated = array_unique($last_updated, SORT_REGULAR);
 				sort($last_updated, SORT_STRING);
 				$update_hash = hash('md5', implode(' ', $last_updated));
 
-				if (substr($rec['last_jailkit_hash'], 0, strlen('force_update')) === 'force_update') {
+				if (isset($rec['last_jailkit_hash']) && substr($rec['last_jailkit_hash'], 0, strlen('force_update')) === 'force_update') {
 					$options[] = 'force';
 				} elseif (is_file( $rec['document_root']."/bin/bash" )) {
 					# test that /bin/bash functions in the jail
diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php
index 4a03aecc6d5e4c5ccd55a6df9664b5c518d77ace..80a07bdc5db14958541e2cb15e134fc6173caf67 100644
--- a/server/lib/classes/system.inc.php
+++ b/server/lib/classes/system.inc.php
@@ -2366,22 +2366,64 @@ class system{
 	public function get_os_type() {
 		global $app;
 
-
 		$dist = "undetected";
+		$version = "unknown";
+		$full_version = "unknown";
 
-		if(file_exists('/etc/redhat-release') && (filesize('/etc/redhat-release') > 0)) {
+		if (file_exists('/etc/redhat-release') && (filesize('/etc/redhat-release') > 0)) {
 			$dist = "redhat";
-		} elseif(file_exists('/etc/debian_version') && (filesize('/etc/debian_version') > 0)) {
+			if (file_exists('/etc/os-release')) {
+				$os_release = file_get_contents('/etc/os-release');
+				if (preg_match('/VERSION_ID="([^"]+)"/', $os_release, $matches)) {
+					$version = $matches[1];
+				}
+			}
+			$full_version = trim(file_get_contents('/etc/redhat-release'));
+		} elseif (file_exists('/etc/debian_version') && (filesize('/etc/debian_version') > 0)) {
 			$dist = "debian";
-		} elseif(strstr(trim(file_get_contents('/etc/issue')), 'Ubuntu') || (is_file('/etc/os-release') && stristr(file_get_contents('/etc/os-release'), 'Ubuntu'))) {
+			if (file_exists('/etc/os-release')) {
+				$os_release = file_get_contents('/etc/os-release');
+				if (preg_match('/VERSION_ID="([^"]+)"/', $os_release, $matches)) {
+					$version = $matches[1];
+				}
+			}
+			$full_version = trim(file_get_contents('/etc/debian_version'));
+		} elseif (strstr(trim(file_get_contents('/etc/issue')), 'Ubuntu') || (is_file('/etc/os-release') && stristr(file_get_contents('/etc/os-release'), 'Ubuntu'))) {
 			$dist = "ubuntu";
-		} elseif(file_exists('/etc/SuSE-release') && (filesize('/etc/SuSE-release') > 0)) {
+			if (file_exists('/etc/os-release')) {
+				$os_release = file_get_contents('/etc/os-release');
+				if (preg_match('/VERSION="([^"]+)"/', $os_release, $matches)) {
+					$full_version = $matches[1];
+				}
+				if (preg_match('/VERSION_ID="([^"]+)"/', $os_release, $matches)) {
+					$version = $matches[1];
+				}
+			}
+		} elseif (file_exists('/etc/SuSE-release') && (filesize('/etc/SuSE-release') > 0)) {
 			$dist = "suse";
-		} elseif(file_exists('/etc/gentoo-release') && (filesize('/etc/gentoo-release') > 0)) {
+			if (file_exists('/etc/os-release')) {
+				$os_release = file_get_contents('/etc/os-release');
+				if (preg_match('/VERSION_ID="([^"]+)"/', $os_release, $matches)) {
+					$version = $matches[1];
+				}
+			}
+			$full_version = trim(file_get_contents('/etc/SuSE-release'));
+		} elseif (file_exists('/etc/gentoo-release') && (filesize('/etc/gentoo-release') > 0)) {
 			$dist = "gentoo";
+			if (file_exists('/etc/os-release')) {
+				$os_release = file_get_contents('/etc/os-release');
+				if (preg_match('/VERSION_ID="([^"]+)"/', $os_release, $matches)) {
+					$version = $matches[1];
+				}
+			}
+			$full_version = trim(file_get_contents('/etc/gentoo-release'));
 		}
 
-		return $dist;
+		return [
+			'type' => $dist,
+			'version' => $version,
+			'full_version' => $full_version
+		];
 	}
 
 	public function is_allowed_path($path) {
@@ -2835,32 +2877,39 @@ class system{
 			$this->chmod($home_dir . '/var/tmp', 0770, true);
 		}
 
+		$os_type = $app->system->get_os_type();
+		if (isset($os_type['type'])) {
+			$used_os_type = $os_type['type'];
+		} else {
+			$used_os_type = 'unknown';
+		}
 
-		if(!empty($options['php_cli_binary'])) {
-			$php_bin_dir = dirname($options['php_cli_binary']);
-			if(!file_exists($home_dir . '/' . $options['php_cli_binary'])) {
-				$app->log("update_jailkit_chroot: The PHP cli binary " . $options['php_cli_binary'] . " is not available in the jail of the web " . $options['domain'], LOGLEVEL_DEBUG);
+		if($options['jk_php_maintenance_check'] == 'yes') {
 
-				$fallback_php = $app->system->get_newest_php_bin($home_dir . $php_bin_dir);
-				$fallback_php_bin = str_replace($home_dir, '', $fallback_php);
+			if(!empty($options['php_cli_binary'])) {
+				$php_bin_dir = dirname($options['php_cli_binary']);
+				if(!file_exists($home_dir . '/' . $options['php_cli_binary'])) {
+					$app->log("update_jailkit_chroot: The PHP cli binary " . $options['php_cli_binary'] . " is not available in the jail of the web " . $options['domain'], LOGLEVEL_DEBUG);
 
-				if(!empty($fallback_php) && file_exists($fallback_php_bin)) {
-					if(is_link($home_dir . '/etc/alternatives/php') || is_file($home_dir . '/etc/alternatives/php')) {
-						unlink($home_dir . '/etc/alternatives/php');
-						symlink($fallback_php_bin, $home_dir . '/etc/alternatives/php');
-						$app->log("update_jailkit_chroot: Found " . $fallback_php_bin . " as a fallback for alternatives/php in the jail of " . $options['domain'], LOGLEVEL_DEBUG);
-					}
-				}
+					$fallback_php = $app->system->get_newest_php_bin($home_dir . $php_bin_dir);
+					$fallback_php_bin = str_replace($home_dir, '', $fallback_php);
 
-			} else {
-				if($app->system->get_os_type() == "debian" || $app->system->get_os_type() == "ubuntu") {
-					$app->log("update_jailkit_chroot: setting alternatives/php to " . $options['php_cli_binary'], LOGLEVEL_DEBUG);
-					if(is_link($home_dir . '/etc/alternatives/php') || is_file($home_dir . '/etc/alternatives/php')) {
-						unlink($home_dir . '/etc/alternatives/php');
-						symlink($options['php_cli_binary'], $home_dir . '/etc/alternatives/php');
+					if(!empty($fallback_php) && file_exists($fallback_php_bin)) {
+						if(is_link($home_dir . '/etc/alternatives/php') || is_file($home_dir . '/etc/alternatives/php')) {
+							unlink($home_dir . '/etc/alternatives/php');
+							symlink($fallback_php_bin, $home_dir . '/etc/alternatives/php');
+							$app->log("update_jailkit_chroot: Found " . $fallback_php_bin . " as a fallback for alternatives/php in the jail of " . $options['domain'], LOGLEVEL_DEBUG);
+						}
+					}
+				} else {
+					if($used_os_type == "debian" || $$used_os_type == "ubuntu") {
+						$app->log("update_jailkit_chroot: setting alternatives/php to " . $options['php_cli_binary'], LOGLEVEL_DEBUG);
+						if(is_link($home_dir . '/etc/alternatives/php') || is_file($home_dir . '/etc/alternatives/php')) {
+							unlink($home_dir . '/etc/alternatives/php');
+							symlink($options['php_cli_binary'], $home_dir . '/etc/alternatives/php');
+						}
 					}
 				}
-
 			}
 		}
 
diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index 622a5b9da5c1fd7915a723bacc6c9f3e375f968e..594c44f483c948b5639910b68d0f05a46b8e098c 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -718,6 +718,7 @@ class apache2_plugin {
 		if(!is_dir($data['new']['document_root'].'/tmp')) $app->system->mkdirpath($data['new']['document_root'].'/tmp', 0770);
 		if(!is_dir($data['new']['document_root'].'/webdav')) $app->system->mkdirpath($data['new']['document_root'].'/webdav');
 		if(!is_dir($data['new']['document_root'].'/backup')) $app->system->mkdirpath($data['new']['document_root'].'/backup', 0755, $username, $groupname);
+		if(!is_dir($data['new']['document_root'].'/.composer')) $app->system->mkdirpath($data['new']['document_root'].'/.composer', 0750, $username, $groupname);
 
 		if(!is_dir($data['new']['document_root'].'/.ssh')) {
 			$app->system->mkdirpath($data['new']['document_root'].'/.ssh');
diff --git a/server/plugins-available/cron_jailkit_plugin.inc.php b/server/plugins-available/cron_jailkit_plugin.inc.php
index d1e22915fa2507af700ce40408270a93ae9c537a..8ec8d042ff0ee71bf586bdd8fc29cba9c9ca5b9c 100644
--- a/server/plugins-available/cron_jailkit_plugin.inc.php
+++ b/server/plugins-available/cron_jailkit_plugin.inc.php
@@ -78,7 +78,10 @@ class cron_jailkit_plugin {
 		}
 
 		//* get data from web
-		$parent_domain = $app->db->queryOneRecord("SELECT * FROM web_domain LEFT JOIN server_php ON web_domain.server_php_id = server_php.server_php_id WHERE domain_id = ?", $data["new"]["parent_domain_id"]);
+		$parent_domain = $app->db->queryOneRecord("SELECT web_domain.*, server_php.php_jk_section
+		FROM web_domain
+			LEFT JOIN server_php ON web_domain.server_php_id = server_php.server_php_id
+		WHERE web_domain.domain_id = ?", $data["new"]["parent_domain_id"]);
 
 		if(!$parent_domain["domain_id"]) {
 			$app->log("Parent domain not found", LOGLEVEL_WARN);
@@ -107,9 +110,21 @@ class cron_jailkit_plugin {
 				$this->data = $data;
 				$this->jailkit_config = $app->getconf->get_server_config($conf["server_id"], 'jailkit');
 				foreach (array('jailkit_chroot_app_sections', 'jailkit_chroot_app_programs') as $section) {
+					// Replace and don't inherit the server's Jailkit config
 					if (isset($parent_domain[$section]) && $parent_domain[$section] != '' ) {
 						$this->jailkit_config[$section] = $parent_domain[$section];
 					}
+					// Add selected PHP version to the jailkit chroot
+					if ($section == 'jailkit_chroot_app_sections') {
+						if (isset($parent_domain['php_jk_section']) && $parent_domain['php_jk_section'] != '' ) {
+							$this->jailkit_config['jailkit_chroot_app_sections'] = $this->jailkit_config['jailkit_chroot_app_sections'] . ' ' . $parent_domain['php_jk_section'];
+							$jk_temp_config = preg_split('/[\s,]+/', $this->jailkit_config['jailkit_chroot_app_sections']);
+
+							// Merge the arrays and remove duplicates
+							$this->jailkit_config[$section] = array_unique($jk_temp_config, SORT_REGULAR);
+							sort($this->jailkit_config[$section], SORT_STRING);
+						}
+					}
 				}
 
 				$this->_update_website_security_level();
@@ -148,7 +163,10 @@ class cron_jailkit_plugin {
 		}
 
 		//* get data from web
-		$parent_domain = $app->db->queryOneRecord("SELECT * FROM web_domain LEFT JOIN server_php ON web_domain.server_php_id = server_php.server_php_id WHERE domain_id = ?", $data["new"]["parent_domain_id"]);
+		$parent_domain = $app->db->queryOneRecord("SELECT web_domain.*, server_php.php_jk_section
+		FROM web_domain
+		LEFT JOIN server_php ON web_domain.server_php_id = server_php.server_php_id
+		WHERE web_domain.domain_id = ?", $data["new"]["parent_domain_id"]);
 
 		if(!$parent_domain["domain_id"]) {
 			$app->log("Parent domain not found", LOGLEVEL_WARN);
@@ -174,9 +192,21 @@ class cron_jailkit_plugin {
 				$this->data = $data;
 				$this->jailkit_config = $app->getconf->get_server_config($conf["server_id"], 'jailkit');
 				foreach (array('jailkit_chroot_app_sections', 'jailkit_chroot_app_programs') as $section) {
+					// Replace and don't inherit the server's Jailkit config
 					if (isset($parent_domain[$section]) && $parent_domain[$section] != '' ) {
 						$this->jailkit_config[$section] = $parent_domain[$section];
 					}
+					// Add selected PHP version to the jailkit chroot
+					if ($section == 'jailkit_chroot_app_sections') {
+						if (isset($parent_domain['php_jk_section']) && $parent_domain['php_jk_section'] != '' ) {
+							$this->jailkit_config['jailkit_chroot_app_sections'] = $this->jailkit_config['jailkit_chroot_app_sections'] . ' ' . $parent_domain['php_jk_section'];
+							$jk_temp_config = preg_split('/[\s,]+/', $this->jailkit_config['jailkit_chroot_app_sections']);
+
+							// Merge the arrays and remove duplicates
+							$this->jailkit_config[$section] = array_unique($jk_temp_config, SORT_REGULAR);
+							sort($this->jailkit_config[$section], SORT_STRING);
+						}
+					}
 				}
 
 				$this->_update_website_security_level();
@@ -366,9 +396,16 @@ class cron_jailkit_plugin {
 
 		$tpl = new tpl();
 
-		if($app->system->get_os_type() == "debian" || $app->system->get_os_type() == "ubuntu") {
+		$os_type = $app->system->get_os_type();
+		if (isset($os_type['type'])) {
+			$used_os_type = $os_type['type'];
+		} else {
+			$used_os_type = 'unknown';
+		}
+
+		if($used_os_type == "debian" || $used_os_type == "ubuntu") {
 			$tpl->newTemplate("bashrc_user_deb.master");
-		} elseif($app->system->get_os_type() == "redhat") {
+		} elseif($used_os_type == "redhat") {
 			$tpl->newTemplate("bashrc_user_redhat.master");
 		} else {
 			$tpl->newTemplate("bashrc_user_generic.master");
@@ -380,7 +417,6 @@ class cron_jailkit_plugin {
 		$tpl->setVar('home_dir', $this->_get_home_dir(""));
 
 		$tpl->setVar('use_php_path', false);
-		$tpl->setVar('use_php_alias', false);
 
 
 		if(($this->parent_domain['server_php_id'] > 0) && !empty($this->parent_domain['php_cli_binary'])) {
@@ -389,17 +425,14 @@ class cron_jailkit_plugin {
 			if(preg_match('/^(\/usr\/(s)?bin|\/(s)?bin)/', $php_bin_dir)) {
 				$tpl->setVar('use_php_path', false);
 				$tpl->setVar('use_php_alias', true);
-				$tpl->setVar('php_alias', $this->parent_domain['php_cli_binary']);
 			} else {
 				$tpl->setVar('use_php_path', true);
-				$tpl->setVar('use_php_alias', false);
 				$tpl->setVar('php_bin_dir', $php_bin_dir);
 			}
 
 			if(!file_exists($this->parent_domain['document_root'] . '/' . $this->parent_domain['php_cli_binary'])) {
 				$app->log("The PHP cli binary " . $this->parent_domain['php_cli_binary'] . " is not available in the jail of the web " . $this->parent_domain['domain']  . " / cronjob_id: " . $this->data['new']['id']  . ". Check your Jailkit setup!", LOGLEVEL_DEBUG);
 				$tpl->setVar('use_php_path', false);
-				$tpl->setVar('use_php_alias', false);
 
 				if(!empty($app->system->get_newest_php_bin($this->parent_domain['document_root'] . $php_bin_dir))) {
 					$fallback_php = $app->system->get_newest_php_bin($this->parent_domain['document_root'] . $php_bin_dir);
@@ -414,7 +447,7 @@ class cron_jailkit_plugin {
 					}
 				}
 			} else {
-				if($app->system->get_os_type() == "debian" || $app->system->get_os_type() == "ubuntu") {
+				if($used_os_type == "debian" || $used_os_type == "ubuntu") {
 					if(is_link($this->parent_domain['document_root'] . '/etc/alternatives/php') || is_file($this->parent_domain['document_root'] . '/etc/alternatives/php'))
 					{
 						unlink($this->parent_domain['document_root'] . '/etc/alternatives/php');
diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php
index b7cc9c5258767b58b2ba47d4c48a7e3b12a17585..39cb56d9b8860e979d6c3961e56bb37e3f7e76f4 100644
--- a/server/plugins-available/nginx_plugin.inc.php
+++ b/server/plugins-available/nginx_plugin.inc.php
@@ -562,6 +562,7 @@ class nginx_plugin {
 		if(!is_dir($data['new']['document_root'].'/cgi-bin')) $app->system->mkdirpath($data['new']['document_root'].'/cgi-bin');
 		if(!is_dir($data['new']['document_root'].'/tmp')) $app->system->mkdirpath($data['new']['document_root'].'/tmp');
 		if(!is_dir($data['new']['document_root'].'/backup')) $app->system->mkdirpath($data['new']['document_root'].'/backup', 0755, $username, $groupname);
+		if(!is_dir($data['new']['document_root'].'/.composer')) $app->system->mkdirpath($data['new']['document_root'].'/.composer', 0750, $username, $groupname);
 
 		if(!is_dir($data['new']['document_root'].'/.ssh')) {
 			$app->system->mkdirpath($data['new']['document_root'].'/.ssh');
diff --git a/server/plugins-available/shelluser_base_plugin.inc.php b/server/plugins-available/shelluser_base_plugin.inc.php
index d931107799540534f66d340866e764a97bb2f7a6..7797b37aae5477f2032860f1764382fed0cd8496 100755
--- a/server/plugins-available/shelluser_base_plugin.inc.php
+++ b/server/plugins-available/shelluser_base_plugin.inc.php
@@ -146,13 +146,23 @@ class shelluser_base_plugin {
 				$command .= ' -s ? -u ? ?';
 				$app->system->exec_safe($command, $homedir, $data['new']['pgroup'], $data['new']['shell'], $uid, $data['new']['username']);
 
-				//* Create .bashrc.d directory
+				//* Create the .bashrc.d directory for ease of use and a more customisable bashrc environment
 				if(!is_dir($homedir.'/.bashrc.d')){
 					$app->file->mkdirs($homedir.'/.bashrc.d', '0750');
 					$app->system->chown($homedir.'/.bashrc.d', $data['new']['username']);
 					$app->system->chgrp($homedir.'/.bashrc.d', $data['new']['pgroup']);
 				}
 
+				//* Specified in FHS 3.0, https://refspecs.linuxfoundation.org/FHS_3.0/index.html
+				//* Supported by Systemd/XDG, provides binaries via user ~/.local/bin directory and PATH
+				if(!is_dir($homedir.'/.local/bin')){
+					$app->file->mkdirs($homedir.'/.local/bin', '0750');
+					$app->system->chown($homedir.'/.local', $data['new']['username'], false);
+					$app->system->chgrp($homedir.'/.local', $data['new']['pgroup'], false);
+					$app->system->chown($homedir.'/.local/bin', $data['new']['username'], false);
+					$app->system->chgrp($homedir.'/.local/bin', $data['new']['pgroup'], false);
+				}
+
 				$app->log("Executed command: ".$command, LOGLEVEL_DEBUG);
 				$app->log("Added shelluser: ".$data['new']['username'], LOGLEVEL_DEBUG);
 
@@ -182,8 +192,7 @@ class shelluser_base_plugin {
 				//* Create .profile file
 				$app->system->touch($homedir.'/.profile');
 				$app->system->chmod($homedir.'/.profile', 0644);
-				$app->system->chown($homedir.'/.profile', $data['new']['username']);
-				$app->system->chgrp($homedir.'/.profile', $data['new']['pgroup']);
+
 				$profile_content = "if [ -f ~/.bashrc ]
 then
 	. ~/.bashrc
@@ -191,6 +200,8 @@ fi
 
 ";
 				$app->system->file_put_contents($homedir.'/.profile', $profile_content);
+				$app->system->chown($homedir.'/.profile', $data['new']['username']);
+				$app->system->chgrp($homedir.'/.profile', $data['new']['pgroup']);
 
 				//* Create .bashrc.d directory
 				if(!is_dir($homedir.'/.bashrc.d')){
@@ -332,19 +343,18 @@ fi
 					}
 
 					//* Create .profile file
-					if(!is_file($data['new']['dir']).'/.profile') {
-						$app->system->touch($homedir.'/.profile');
-						$app->system->chmod($homedir.'/.profile', 0644);
-						$app->system->chown($homedir.'/.profile', $data['new']['puser']);
-						$app->system->chgrp($homedir.'/.profile', $data['new']['pgroup']);
-						$profile_content = "if [ -f ~/.bashrc ]
+					$app->system->touch($homedir.'/.profile');
+					$app->system->chmod($homedir.'/.profile', 0644);
+					$profile_content = "if [ -f ~/.bashrc ]
 then
 	. ~/.bashrc
 fi
 
 ";
 						$app->system->file_put_contents($homedir.'/.profile', $profile_content);
-					}
+						$app->system->chown($homedir.'/.profile', $data['new']['puser']);
+						$app->system->chgrp($homedir.'/.profile', $data['new']['pgroup']);
+
 
 					//* Create .bashrc.d directory
 					if(!is_dir($homedir.'/.bashrc.d')){
@@ -602,7 +612,6 @@ fi
 		// Create .bashrc file
 		$app->load('tpl');
 
-
 		$tpl = new tpl();
 
 		// Predefine some template vars
@@ -610,22 +619,47 @@ fi
 		$tpl->setVar('use_php_path', false);
 		$tpl->setVar('use_php_alias', false);
 
-		if($app->system->get_os_type() == "debian" || $app->system->get_os_type() == "ubuntu") {
+		$os_type = $app->system->get_os_type();
+		if (isset($os_type['type'])) {
+			$used_os_type = $os_type['type'];
+		} else {
+			$used_os_type = 'unknown';
+		}
+
+		if (isset($os_type['version'])) {
+			$os_version = $os_type['version'];
+		} else {
+			$os_version = 'unknown';
+		}
+
+		if($used_os_type == "debian" || $used_os_type == "ubuntu") {
 			$tpl->newTemplate("bashrc_user_deb.master");
-		} elseif($app->system->get_os_type() == "redhat") {
+		} elseif($used_os_type == "redhat") {
 			$tpl->newTemplate("bashrc_user_redhat.master");
 		} else {
 			$tpl->newTemplate("bashrc_user_generic.master");
 		}
 
+		$user_home_dir = $this->data['new']['dir'] . '/home/' . $this->data['new']['username'];
+		$bashrc = $user_home_dir . '/.bashrc';
+
 		if(($this->web['server_php_id'] > 0) && !empty($this->web['php_cli_binary'])) {
 			$php_bin_dir = dirname($this->web['php_cli_binary']);
 
 			if(preg_match('/^(\/usr\/(s)?bin|\/(s)?bin)/', $php_bin_dir)) {
 				$tpl->setVar('use_php_path', false);
-				$tpl->setVar('use_php_alias', true);
-				$tpl->setVar('php_alias', $this->web['php_cli_binary']);
+
+				if(!is_dir($user_home_dir . '/.local/bin')) $app->system->mkdirpath($user_home_dir . '/.local/bin', 0750, $this->data['new']['username'], $this->data['new']['pgroup']);
+
+				if(is_link($user_home_dir . '/.local/bin' . '/php') || is_file($user_home_dir . '/.local/bin' . '/php')) {
+					unlink($user_home_dir . '/.local/bin' . '/php');
+					symlink($this->web['php_cli_binary'], $user_home_dir . '/.local/bin' . '/php');
+				} else {
+					symlink($this->web['php_cli_binary'], $user_home_dir . '/.local/bin' . '/php');
+				}
+
 			} else {
+				// We rely on $PATH in case that the binaries are located in a separate directory that doesn't match the regex above
 				$tpl->setVar('use_php_path', true);
 				$tpl->setVar('use_php_alias', false);
 				$tpl->setVar('php_bin_dir', $php_bin_dir);
@@ -635,7 +669,7 @@ fi
 			$app->log("The PHP cli binary is not set for the selected PHP version. Affected web: " . $this->web['domain'], LOGLEVEL_DEBUG);
 		}
 
-		$bashrc = $this->data['new']['dir'] . '/home/' . $this->data['new']['username'] . '/.bashrc';
+		//$bashrc = $this->data['new']['dir'] . '/home/' . $this->data['new']['username'] . '/.bashrc';
 
 		if(@is_file($bashrc) || @is_link($bashrc)) unlink($bashrc);
 
diff --git a/server/plugins-available/shelluser_jailkit_plugin.inc.php b/server/plugins-available/shelluser_jailkit_plugin.inc.php
index 572f99b5a8595a112cbf400d2bb101d02dfb0d63..f3de865de2326033d6e567182d6bbec982fc85a5 100755
--- a/server/plugins-available/shelluser_jailkit_plugin.inc.php
+++ b/server/plugins-available/shelluser_jailkit_plugin.inc.php
@@ -83,8 +83,10 @@ class shelluser_jailkit_plugin {
 		}
 
 
-
-		$web = $app->db->queryOneRecord("SELECT * FROM web_domain LEFT JOIN server_php ON web_domain.server_php_id = server_php.server_php_id WHERE `domain_id` = ?", $data["new"]["parent_domain_id"]);
+		$web = $app->db->queryOneRecord("SELECT web_domain.*, server_php.php_cli_binary, server_php.php_jk_section
+		FROM web_domain
+			LEFT JOIN server_php ON web_domain.server_php_id = server_php.server_php_id
+		WHERE web_domain.domain_id = ?", $data["new"]["parent_domain_id"]);
 
 		$this->web = $web;
 
@@ -119,15 +121,27 @@ class shelluser_jailkit_plugin {
 					if ($data['new']['chroot'] == "jailkit")
 					{
 
-
 						// load the server configuration options
 						$app->uses("getconf");
 						$this->data = $data;
 						$this->jailkit_config = $app->getconf->get_server_config($conf["server_id"], 'jailkit');
+
 						foreach (array('jailkit_chroot_app_sections', 'jailkit_chroot_app_programs') as $section) {
+							// Replace and don't inherit the server's Jailkit config
 							if (isset($web[$section]) && $web[$section] != '' ) {
 								$this->jailkit_config[$section] = $web[$section];
 							}
+							// Add selected PHP version to the jailkit chroot
+							if ($section == 'jailkit_chroot_app_sections') {
+								if (isset($web['php_jk_section']) && $web['php_jk_section'] != '' ) {
+									$this->jailkit_config['jailkit_chroot_app_sections'] = $this->jailkit_config['jailkit_chroot_app_sections'] . ' ' . $web['php_jk_section'];
+									$jk_temp_config = preg_split('/[\s,]+/', $this->jailkit_config['jailkit_chroot_app_sections']);
+
+									// Merge the arrays and remove duplicates
+									$this->jailkit_config[$section] = array_unique($jk_temp_config, SORT_REGULAR);
+									sort($this->jailkit_config[$section], SORT_STRING);
+								}
+							}
 						}
 
 						$this->_update_website_security_level();
@@ -198,16 +212,17 @@ class shelluser_jailkit_plugin {
 		if($app->system->is_user($data['new']['puser'])) {
 
 
-			$web = $app->db->queryOneRecord("SELECT * FROM web_domain LEFT JOIN server_php ON web_domain.server_php_id = server_php.server_php_id WHERE `domain_id` = ?", $data["new"]["parent_domain_id"]);
+			$web = $app->db->queryOneRecord("SELECT web_domain.*, server_php.php_jk_section
+          	FROM web_domain
+          		LEFT JOIN server_php ON web_domain.server_php_id = server_php.server_php_id
+          	WHERE web_domain.domain_id = ?", $data["new"]["parent_domain_id"]);
 
 			$this->web = $web;
-			$username = $data['new']['username'];
 
 			// Get the UID of the parent user
 			$uid = intval($app->system->getuid($data['new']['puser']));
 			if($uid > $this->min_uid) {
 
-
 				if($app->system->is_user($data['new']['username'])) {
 
 					/**
@@ -220,10 +235,23 @@ class shelluser_jailkit_plugin {
 						$app->uses("getconf");
 						$this->data = $data;
 						$this->jailkit_config = $app->getconf->get_server_config($conf["server_id"], 'jailkit');
+
 						foreach (array('jailkit_chroot_app_sections', 'jailkit_chroot_app_programs') as $section) {
+							// Replace and don't inherit the server's Jailkit config
 							if (isset($web[$section]) && $web[$section] != '' ) {
 								$this->jailkit_config[$section] = $web[$section];
 							}
+							// Add selected PHP version to the jailkit chroot
+							if ($section == 'jailkit_chroot_app_sections') {
+								if (isset($web['php_jk_section']) && $web['php_jk_section'] != '' ) {
+									$this->jailkit_config['jailkit_chroot_app_sections'] = $this->jailkit_config['jailkit_chroot_app_sections'] . ' ' . $web['php_jk_section'];
+									$jk_temp_config = preg_split('/[\s,]+/', $this->jailkit_config['jailkit_chroot_app_sections']);
+
+									// Merge the arrays and remove duplicates
+									$this->jailkit_config[$section] = array_unique($jk_temp_config, SORT_REGULAR);
+									sort($this->jailkit_config[$section], SORT_STRING);
+								}
+							}
 						}
 
 						$this->_update_website_security_level();
@@ -287,6 +315,7 @@ class shelluser_jailkit_plugin {
 
 			$app->uses("getconf");
 			$this->jailkit_config = $app->getconf->get_server_config($conf["server_id"], 'jailkit');
+
 			foreach (array('jailkit_chroot_app_sections', 'jailkit_chroot_app_programs', 'jailkit_do_not_remove_paths') as $section) {
 				if (isset($web[$section]) && $web[$section] != '' ) {
 					$this->jailkit_config[$section] = $web[$section];
@@ -390,6 +419,7 @@ class shelluser_jailkit_plugin {
 			foreach ($records as $record) {
 				$options[] = 'skip='.$record['web_folder'];
 			}
+
 			$options['php_cli_binary'] = $web['php_cli_binary'];
 
 			$app->system->update_jailkit_chroot($this->data['new']['dir'], $sections, $programs, $options);
@@ -468,6 +498,8 @@ class shelluser_jailkit_plugin {
 		$app->system->chgrp($this->data['new']['dir'].$jailkit_chroot_puserhome, $this->data['new']['pgroup']);
 
 		// Create user .my.cnf file
+		// Necessary for MySQL client to connect to the DB server for Jailkit users
+		// TODO: If the web has only one DB assigned, which is also located on a remote DB server instead of localhost, then add client connection params here
 		$mycnf = $this->data['new']['dir'].$jailkit_chroot_userhome .  '/.my.cnf';
 		if(!file_exists($this->data['new']['dir'].$jailkit_chroot_userhome . '/.my.cnf')) {
 			$app->load('tpl');
@@ -703,9 +735,16 @@ class shelluser_jailkit_plugin {
 
 		$tpl = new tpl();
 
-		if($app->system->get_os_type() == "debian" || $app->system->get_os_type() == "ubuntu") {
+		$os_type = $app->system->get_os_type();
+		if (isset($os_type['type'])) {
+			$used_os_type = $os_type['type'];
+		} else {
+			$used_os_type = 'unknown';
+		}
+
+		if($used_os_type == "debian" || $used_os_type == "ubuntu") {
 			$tpl->newTemplate("bashrc_user_deb.master");
-		} elseif($app->system->get_os_type() == "redhat") {
+		} elseif($used_os_type == "redhat") {
 			$tpl->newTemplate("bashrc_user_redhat.master");
 		} else {
 			$tpl->newTemplate("bashrc_user_generic.master");
@@ -717,26 +756,20 @@ class shelluser_jailkit_plugin {
 		$tpl->setVar('home_dir', $this->_get_home_dir(""));
 
 		$tpl->setVar('use_php_path', false);
-		$tpl->setVar('use_php_alias', false);
-
 
 		if(($this->web['server_php_id'] > 0) && !empty($this->web['php_cli_binary'])) {
 			$php_bin_dir = dirname($this->web['php_cli_binary']);
 
 			if(preg_match('/^(\/usr\/(s)?bin|\/(s)?bin)/', $php_bin_dir)) {
 				$tpl->setVar('use_php_path', false);
-				$tpl->setVar('use_php_alias', true);
-				$tpl->setVar('php_alias', $this->web['php_cli_binary']);
 			} else {
 				$tpl->setVar('use_php_path', true);
-				$tpl->setVar('use_php_alias', false);
 				$tpl->setVar('php_bin_dir', $php_bin_dir);
 			}
 
 			if(!file_exists($this->web['document_root'] . '/' . $this->web['php_cli_binary'])) {
 				$app->log("The PHP cli binary " . $this->web['php_cli_binary'] . " is not available in the jail of the web " . $this->web['domain']  . " / SSH/SFTP user: " . $this->data['new']['username']  . ". Check your Jailkit setup!", LOGLEVEL_DEBUG);
 				$tpl->setVar('use_php_path', false);
-				$tpl->setVar('use_php_alias', false);
 
 				if(!empty($app->system->get_newest_php_bin($this->web['document_root'] . $php_bin_dir))) {
 					$fallback_php = $app->system->get_newest_php_bin($this->web['document_root'] . $php_bin_dir);
@@ -750,8 +783,9 @@ class shelluser_jailkit_plugin {
 						}
 					}
 				}
+
 			} else {
-				if($app->system->get_os_type() == "debian" || $app->system->get_os_type() == "ubuntu") {
+				if($used_os_type == "debian" || $used_os_type == "ubuntu") {
 					if(is_link($this->web['document_root'] . '/etc/alternatives/php') || is_file($this->web['document_root'] . '/etc/alternatives/php'))
 					{
 						unlink($this->web['document_root'] . '/etc/alternatives/php');
@@ -762,7 +796,6 @@ class shelluser_jailkit_plugin {
 				}
 			}
 		}
-
 		$bashrc = $this->web['document_root'] . '/home/' . $this->data['new']['username'] . '/.bashrc';
 
 		if(@is_file($bashrc) || @is_link($bashrc)) unlink($bashrc);