From 1062168fed165a7def379f6b2051858c9928df8e Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 5 Dec 2020 19:45:58 +0100 Subject: [PATCH 001/984] Update latest.txt --- src/deb/latest.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/latest.txt b/src/deb/latest.txt index e62d9535..bee6760c 100644 --- a/src/deb/latest.txt +++ b/src/deb/latest.txt @@ -1 +1 @@ - vesta-0.9.8-26-38 +vesta-0.9.8-26-38 From 5da09d9c5be028b66d13be61bbfc0abcd6969c47 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 12 Dec 2020 12:54:06 +0100 Subject: [PATCH 002/984] Fix for downloading backup of other users --- web/download/backup/index.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/web/download/backup/index.php b/web/download/backup/index.php index 06846714..f71131a1 100644 --- a/web/download/backup/index.php +++ b/web/download/backup/index.php @@ -3,6 +3,13 @@ error_reporting(NULL); session_start(); include($_SERVER['DOCUMENT_ROOT']."/inc/main.php"); + +// Check token +if ((!isset($_GET['token'])) || ($_SESSION['token'] != $_GET['token'])) { + header('Location: /login/'); + exit(); +} + $backup = basename($_GET['backup']); // Check if the backup exists From 00b4267afd7e23673887aff9bacd3c2e2d26fe76 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 12 Dec 2020 13:43:27 +0100 Subject: [PATCH 003/984] htmlentities() for token --- web/add/user/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/add/user/index.php b/web/add/user/index.php index 914eb3dd..1ed521e3 100644 --- a/web/add/user/index.php +++ b/web/add/user/index.php @@ -100,7 +100,7 @@ if (!empty($_POST['ok'])) { // Flush field values on success if (empty($_SESSION['error_msg'])) { $_SESSION['ok_msg'] = __('USER_CREATED_OK',htmlentities($_POST['v_username']),htmlentities($_POST['v_username'])); - $_SESSION['ok_msg'] .= " / " . __('login as') ." ".htmlentities($_POST['v_username']). ""; + $_SESSION['ok_msg'] .= " / " . __('login as') ." ".htmlentities($_POST['v_username']). ""; unset($v_username); unset($v_password); unset($v_email); From 292d933f88e25132c13f030cd5396c3285f00e4a Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 12 Dec 2020 13:48:51 +0100 Subject: [PATCH 004/984] Preventing admin to do loginas action without token This is useless issue and useless fix too. --- web/login/index.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/web/login/index.php b/web/login/index.php index 87aa6f1a..bf3f2c28 100644 --- a/web/login/index.php +++ b/web/login/index.php @@ -16,6 +16,12 @@ if (isset($_GET['logout'])) { // Login as someone else if (isset($_SESSION['user'])) { + if ((!isset($_GET['token'])) || ($_SESSION['token'] != $_GET['token'])) { + session_destroy(); + session_start(); + header('Location: /login/'); + exit(); + } if ($_SESSION['user'] == 'admin' && !empty($_GET['loginas'])) { exec (VESTA_CMD . "v-list-user ".escapeshellarg($_GET['loginas'])." json", $output, $return_var); if ( $return_var == 0 ) { From f31b4b4d41b1921fd82d1bb355635e8dd005f7f2 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 12 Dec 2020 13:52:26 +0100 Subject: [PATCH 005/984] Update index.php --- web/logout/index.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/web/logout/index.php b/web/logout/index.php index 795eb65f..7f1d693c 100644 --- a/web/logout/index.php +++ b/web/logout/index.php @@ -4,10 +4,11 @@ session_start(); if (!empty($_SESSION['look'])) { unset($_SESSION['look']); + header("Location: /"); } else { session_destroy(); + header("Location: /login/"); } -header("Location: /login/"); exit; ?> From 81daa6413b187d0a26a516dda937a39eef72f976 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 12 Dec 2020 14:09:48 +0100 Subject: [PATCH 006/984] Checking period value in /list/rrd/ --- web/list/rrd/index.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/web/list/rrd/index.php b/web/list/rrd/index.php index 7a13b78b..2c30b530 100644 --- a/web/list/rrd/index.php +++ b/web/list/rrd/index.php @@ -11,6 +11,10 @@ if ($_SESSION['user'] != 'admin') { exit; } +if (!empty($_GET['period'])) { + if ($_GET['period']!="daily" && $_GET['period']!="weekly" && $_GET['period']!="monthly" && $_GET['period']!="yearly") unset($_GET['period']); +} + // Data exec (VESTA_CMD."v-list-sys-rrd json", $output, $return_var); $data = json_decode(implode('', $output), true); From 10bfc78741f2d13102f924fc2182cc3de796d383 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 12 Dec 2020 14:16:02 +0100 Subject: [PATCH 007/984] Version 0.9.8-26-39 --- src/deb/latest.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/latest.txt b/src/deb/latest.txt index bee6760c..22cf0781 100644 --- a/src/deb/latest.txt +++ b/src/deb/latest.txt @@ -1 +1 @@ -vesta-0.9.8-26-38 +vesta-0.9.8-26-39 From e7ec63a85faddb6de41d5ecda176ba16d0fe18ab Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 12 Dec 2020 14:20:44 +0100 Subject: [PATCH 008/984] Update Changelog.md --- Changelog.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Changelog.md b/Changelog.md index bfc65d08..93c7aac0 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,6 +1,11 @@ +Version 0.9.8-26-39 [12-Dec-2020] +================================================== +* [Security] Fixing useless issue with tokens in "download backup" and "loginas" functions (thanks to HestiaCP for fixes) +* [Security] Fixing XSS in /list/rrd/?period= value + Version 0.9.8-26-38 [05-Dec-2020] ================================================== -* Fixing Apache status public access (thanks to HestiaCP for letting us know) +* [Security] Fixing Apache status public access (thanks to HestiaCP for letting us know) Version 0.9.8-26-37 [26-Oct-2020] ================================================== From 5be1e2d56d5942634e6477d0f4f81715ff208a2e Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 21 Dec 2020 18:40:58 +0100 Subject: [PATCH 009/984] Fixing DNS issue in LXC virtualization --- bin/v-update-firewall | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-update-firewall b/bin/v-update-firewall index d2d06355..183522a7 100755 --- a/bin/v-update-firewall +++ b/bin/v-update-firewall @@ -60,7 +60,7 @@ echo "$iptables -P INPUT ACCEPT" >> $tmp echo "$iptables -F INPUT" >> $tmp # Enabling stateful support -if [ "$conntrack" != 'no' ]; then +if [ "$conntrack" != 'no' ] || grep --quiet container=lxc /proc/1/environ; then str="$iptables -A INPUT -m state" str="$str --state ESTABLISHED,RELATED -j ACCEPT" echo "$str" >> $tmp From ad6258a50859025f93655d3d8589897015d68729 Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:24:20 -0500 Subject: [PATCH 010/984] Update default.stpl --- install/debian/10/templates/web/nginx/php-fpm/default.stpl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/default.stpl b/install/debian/10/templates/web/nginx/php-fpm/default.stpl index 5cb55311..38de83d2 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/default.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/default.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port%; + listen %ip%:%web_ssl_port% ssl; server_name %domain_idn% %alias_idn%; root %sdocroot%; index index.php index.html index.htm; @@ -7,7 +7,6 @@ server { access_log /var/log/nginx/domains/%domain%.bytes bytes; error_log /var/log/nginx/domains/%domain%.error.log error; - ssl on; ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; From 156a7358e890adc5fa4e0b07786df90fffab4212 Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:30:56 -0500 Subject: [PATCH 011/984] Update cms_made_simple.stpl ssl directive is deprecated --- .../debian/10/templates/web/nginx/php-fpm/cms_made_simple.stpl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/cms_made_simple.stpl b/install/debian/10/templates/web/nginx/php-fpm/cms_made_simple.stpl index d85bcce3..003e9180 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/cms_made_simple.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/cms_made_simple.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port%; + listen %ip%:%web_ssl_port% ssl; server_name %domain_idn% %alias_idn%; root %sdocroot%; index index.php index.html index.htm; @@ -7,7 +7,6 @@ server { access_log /var/log/nginx/domains/%domain%.bytes bytes; error_log /var/log/nginx/domains/%domain%.error.log error; - ssl on; ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; From 01f84bff1c46f8034d8f4a00dce6a40223f7fe17 Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:31:18 -0500 Subject: [PATCH 012/984] Update codeigniter2.stpl ssl directive is deprecated --- .../debian/10/templates/web/nginx/php-fpm/codeigniter2.stpl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/codeigniter2.stpl b/install/debian/10/templates/web/nginx/php-fpm/codeigniter2.stpl index 9c24c3ea..51f1f408 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/codeigniter2.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/codeigniter2.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port%; + listen %ip%:%web_ssl_port% ssl; server_name %domain_idn% %alias_idn%; root %sdocroot%; index index.php index.html index.htm; @@ -7,7 +7,6 @@ server { access_log /var/log/nginx/domains/%domain%.bytes bytes; error_log /var/log/nginx/domains/%domain%.error.log error; - ssl on; ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; From 9ae68a35da3bd565a2748c66ba5a0e5872dc96c6 Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:31:35 -0500 Subject: [PATCH 013/984] Update codeigniter3.stpl --- .../debian/10/templates/web/nginx/php-fpm/codeigniter3.stpl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/codeigniter3.stpl b/install/debian/10/templates/web/nginx/php-fpm/codeigniter3.stpl index d7186314..e8dd8bf6 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/codeigniter3.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/codeigniter3.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port%; + listen %ip%:%web_ssl_port% ssl; server_name %domain_idn% %alias_idn%; root %sdocroot%; index index.php index.html index.htm; @@ -7,7 +7,6 @@ server { access_log /var/log/nginx/domains/%domain%.bytes bytes; error_log /var/log/nginx/domains/%domain%.error.log error; - ssl on; ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; From 4a7ff708ae004bf865c4d6752c259bab4b7177a4 Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:31:54 -0500 Subject: [PATCH 014/984] Update datalife_engine.stpl --- .../10/templates/web/nginx/php-fpm/datalife_engine.stpl | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/datalife_engine.stpl b/install/debian/10/templates/web/nginx/php-fpm/datalife_engine.stpl index 4f0b9ec7..b066d5d2 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/datalife_engine.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/datalife_engine.stpl @@ -1,13 +1,12 @@ server { - listen %ip%:%web_ssl_port%; + listen %ip%:%web_ssl_port% ssl; server_name %domain_idn% %alias_idn%; root %sdocroot%; index index.php index.html index.htm; access_log /var/log/nginx/domains/%domain%.log combined; access_log /var/log/nginx/domains/%domain%.bytes bytes; error_log /var/log/nginx/domains/%domain%.error.log error; - - ssl on; + ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; From b21f0e6c32e02ee3795043cab4139df829cbcb84 Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:32:34 -0500 Subject: [PATCH 015/984] Update dokuwiki.stpl --- install/debian/10/templates/web/nginx/php-fpm/dokuwiki.stpl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/dokuwiki.stpl b/install/debian/10/templates/web/nginx/php-fpm/dokuwiki.stpl index f85032ba..c9387bfb 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/dokuwiki.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/dokuwiki.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port%; + listen %ip%:%web_ssl_port% ssl; server_name %domain_idn% %alias_idn%; root %sdocroot%; index index.php index.html index.htm; @@ -7,7 +7,6 @@ server { access_log /var/log/nginx/domains/%domain%.bytes bytes; error_log /var/log/nginx/domains/%domain%.error.log error; - ssl on; ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; From ca4422b717ede1befab3eb367c90a9ee42516f40 Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:32:49 -0500 Subject: [PATCH 016/984] Update drupal6.stpl --- install/debian/10/templates/web/nginx/php-fpm/drupal6.stpl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/drupal6.stpl b/install/debian/10/templates/web/nginx/php-fpm/drupal6.stpl index 0af7ce84..93f8c55a 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/drupal6.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/drupal6.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port%; + listen %ip%:%web_ssl_port% ssl; server_name %domain_idn% %alias_idn%; root %sdocroot%; index index.php index.html index.htm; @@ -7,7 +7,6 @@ server { access_log /var/log/nginx/domains/%domain%.bytes bytes; error_log /var/log/nginx/domains/%domain%.error.log error; - ssl on; ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; From 4371f625c450feefbe94dd92969f48983a6c059d Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:33:07 -0500 Subject: [PATCH 017/984] Update wordpress2_rewrite.stpl --- .../10/templates/web/nginx/php-fpm/wordpress2_rewrite.stpl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/wordpress2_rewrite.stpl b/install/debian/10/templates/web/nginx/php-fpm/wordpress2_rewrite.stpl index 0d933b30..264ca01a 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/wordpress2_rewrite.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/wordpress2_rewrite.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port%; + listen %ip%:%web_ssl_port% ssl; server_name %domain_idn% %alias_idn%; root %docroot%; index index.php index.html index.htm; @@ -7,7 +7,6 @@ server { access_log /var/log/nginx/domains/%domain%.bytes bytes; error_log /var/log/nginx/domains/%domain%.error.log error; - ssl on; ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; From 3ee30043f99d1d3ff25ad565be7608da71be37bb Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:33:23 -0500 Subject: [PATCH 018/984] Update wordpress2.stpl --- install/debian/10/templates/web/nginx/php-fpm/wordpress2.stpl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/wordpress2.stpl b/install/debian/10/templates/web/nginx/php-fpm/wordpress2.stpl index e0aeb524..39cce361 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/wordpress2.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/wordpress2.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port%; + listen %ip%:%web_ssl_port% ssl; server_name %domain_idn% %alias_idn%; root %sdocroot%; index index.php index.html index.htm; @@ -7,7 +7,6 @@ server { access_log /var/log/nginx/domains/%domain%.bytes bytes; error_log /var/log/nginx/domains/%domain%.error.log error; - ssl on; ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; From 049c8535ed237919b1efdb148f5d1fd808c49349 Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:33:40 -0500 Subject: [PATCH 019/984] Update wordpress.stpl --- install/debian/10/templates/web/nginx/php-fpm/wordpress.stpl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/wordpress.stpl b/install/debian/10/templates/web/nginx/php-fpm/wordpress.stpl index 5cb55311..38de83d2 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/wordpress.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/wordpress.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port%; + listen %ip%:%web_ssl_port% ssl; server_name %domain_idn% %alias_idn%; root %sdocroot%; index index.php index.html index.htm; @@ -7,7 +7,6 @@ server { access_log /var/log/nginx/domains/%domain%.bytes bytes; error_log /var/log/nginx/domains/%domain%.error.log error; - ssl on; ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; From 7cbd41a1ebaae76bbae5c828d0e4d26a951c4f7f Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:34:18 -0500 Subject: [PATCH 020/984] Update pyrocms.stpl --- install/debian/10/templates/web/nginx/php-fpm/pyrocms.stpl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/pyrocms.stpl b/install/debian/10/templates/web/nginx/php-fpm/pyrocms.stpl index 5ffc9ed5..c9f91854 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/pyrocms.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/pyrocms.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port%; + listen %ip%:%web_ssl_port% ssl; server_name %domain_idn% %alias_idn%; root %sdocroot%/public; index index.php index.html index.htm; @@ -7,7 +7,6 @@ server { access_log /var/log/nginx/domains/%domain%.bytes bytes; error_log /var/log/nginx/domains/%domain%.error.log error; - ssl on; ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; From 95d5f459f87bae60ae6e298b9fd81708ccb12120 Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:34:42 -0500 Subject: [PATCH 021/984] Update owncloud.stpl --- install/debian/10/templates/web/nginx/php-fpm/owncloud.stpl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/owncloud.stpl b/install/debian/10/templates/web/nginx/php-fpm/owncloud.stpl index 891566b9..b43fdc75 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/owncloud.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/owncloud.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port%; + listen %ip%:%web_ssl_port% ssl; server_name %domain_idn% %alias_idn%; root %sdocroot%; index index.php index.html index.htm; @@ -7,7 +7,6 @@ server { access_log /var/log/nginx/domains/%domain%.bytes bytes; error_log /var/log/nginx/domains/%domain%.error.log error; - ssl on; ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; From d177e8941dde7c530671c4201fb520b90d573371 Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:45:39 -0500 Subject: [PATCH 022/984] Update cms_made_simple.stpl --- .../debian/10/templates/web/nginx/php-fpm/cms_made_simple.stpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/cms_made_simple.stpl b/install/debian/10/templates/web/nginx/php-fpm/cms_made_simple.stpl index 003e9180..6d24f8b5 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/cms_made_simple.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/cms_made_simple.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port% ssl; + listen %ip%:%web_ssl_port% ssl https; server_name %domain_idn% %alias_idn%; root %sdocroot%; index index.php index.html index.htm; From 1cc0bcc140402782d1a1a04bc1710816e9d38b7e Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:45:57 -0500 Subject: [PATCH 023/984] Update cms_made_simple.stpl --- .../debian/10/templates/web/nginx/php-fpm/cms_made_simple.stpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/cms_made_simple.stpl b/install/debian/10/templates/web/nginx/php-fpm/cms_made_simple.stpl index 6d24f8b5..cf8fad56 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/cms_made_simple.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/cms_made_simple.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port% ssl https; + listen %ip%:%web_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; root %sdocroot%; index index.php index.html index.htm; From fddbb696773e709976952d8d894b43e929e0e06a Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:46:12 -0500 Subject: [PATCH 024/984] Update codeigniter2.stpl --- install/debian/10/templates/web/nginx/php-fpm/codeigniter2.stpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/codeigniter2.stpl b/install/debian/10/templates/web/nginx/php-fpm/codeigniter2.stpl index 51f1f408..5931f617 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/codeigniter2.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/codeigniter2.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port% ssl; + listen %ip%:%web_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; root %sdocroot%; index index.php index.html index.htm; From 267651c31c6ef23201348d0110e567a9bf3a2c2a Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:46:24 -0500 Subject: [PATCH 025/984] Update codeigniter3.stpl --- install/debian/10/templates/web/nginx/php-fpm/codeigniter3.stpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/codeigniter3.stpl b/install/debian/10/templates/web/nginx/php-fpm/codeigniter3.stpl index e8dd8bf6..3c2793d1 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/codeigniter3.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/codeigniter3.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port% ssl; + listen %ip%:%web_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; root %sdocroot%; index index.php index.html index.htm; From d437c55cd0759dbac5af921b5e1be8094faa981f Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:46:36 -0500 Subject: [PATCH 026/984] Update datalife_engine.stpl --- .../debian/10/templates/web/nginx/php-fpm/datalife_engine.stpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/datalife_engine.stpl b/install/debian/10/templates/web/nginx/php-fpm/datalife_engine.stpl index b066d5d2..bb9a727b 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/datalife_engine.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/datalife_engine.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port% ssl; + listen %ip%:%web_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; root %sdocroot%; index index.php index.html index.htm; From 5918df6ebb71135a53e2fb6c37939e1d0bd15654 Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:46:52 -0500 Subject: [PATCH 027/984] Update default.stpl --- install/debian/10/templates/web/nginx/php-fpm/default.stpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/default.stpl b/install/debian/10/templates/web/nginx/php-fpm/default.stpl index 38de83d2..f9c01e40 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/default.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/default.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port% ssl; + listen %ip%:%web_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; root %sdocroot%; index index.php index.html index.htm; From ed27947cf706057d041b27fce63b6e20d5718836 Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:47:07 -0500 Subject: [PATCH 028/984] Update dokuwiki.stpl --- install/debian/10/templates/web/nginx/php-fpm/dokuwiki.stpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/dokuwiki.stpl b/install/debian/10/templates/web/nginx/php-fpm/dokuwiki.stpl index c9387bfb..a7564705 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/dokuwiki.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/dokuwiki.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port% ssl; + listen %ip%:%web_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; root %sdocroot%; index index.php index.html index.htm; From 086f92f7a54de1cadc0e347e79cd81676ce456bb Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:47:19 -0500 Subject: [PATCH 029/984] Update drupal6.stpl --- install/debian/10/templates/web/nginx/php-fpm/drupal6.stpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/drupal6.stpl b/install/debian/10/templates/web/nginx/php-fpm/drupal6.stpl index 93f8c55a..6e67a4e0 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/drupal6.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/drupal6.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port% ssl; + listen %ip%:%web_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; root %sdocroot%; index index.php index.html index.htm; From 2b37a1eb11ce632565809e93c72f4fab5a16ff6b Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:47:57 -0500 Subject: [PATCH 030/984] Update drupal7.stpl --- install/debian/10/templates/web/nginx/php-fpm/drupal7.stpl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/drupal7.stpl b/install/debian/10/templates/web/nginx/php-fpm/drupal7.stpl index 030ea952..32f01a6f 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/drupal7.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/drupal7.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port%; + listen %ip%:%web_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; root %sdocroot%; index index.php index.html index.htm; @@ -7,7 +7,6 @@ server { access_log /var/log/nginx/domains/%domain%.bytes bytes; error_log /var/log/nginx/domains/%domain%.error.log error; - ssl on; ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; From 003a748735418522147f6aa435cdaba066a55a10 Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:48:23 -0500 Subject: [PATCH 031/984] Update drupal8.stpl --- install/debian/10/templates/web/nginx/php-fpm/drupal8.stpl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/drupal8.stpl b/install/debian/10/templates/web/nginx/php-fpm/drupal8.stpl index 030ea952..32f01a6f 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/drupal8.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/drupal8.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port%; + listen %ip%:%web_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; root %sdocroot%; index index.php index.html index.htm; @@ -7,7 +7,6 @@ server { access_log /var/log/nginx/domains/%domain%.bytes bytes; error_log /var/log/nginx/domains/%domain%.error.log error; - ssl on; ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; From bed654fce9790f2fdb06d3431b5f0bc7bb39c361 Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:48:42 -0500 Subject: [PATCH 032/984] Update joomla.stpl --- install/debian/10/templates/web/nginx/php-fpm/joomla.stpl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/joomla.stpl b/install/debian/10/templates/web/nginx/php-fpm/joomla.stpl index 704405f3..d4f96ee3 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/joomla.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/joomla.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port%; + listen %ip%:%web_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; root %sdocroot%; index index.php index.html index.htm; @@ -7,7 +7,6 @@ server { access_log /var/log/nginx/domains/%domain%.bytes bytes; error_log /var/log/nginx/domains/%domain%.error.log error; - ssl on; ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; From 63ebab9db5eb88d75e1c321c09e271647a52342f Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:48:57 -0500 Subject: [PATCH 033/984] Update laravel.stpl --- install/debian/10/templates/web/nginx/php-fpm/laravel.stpl | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/laravel.stpl b/install/debian/10/templates/web/nginx/php-fpm/laravel.stpl index 477f6f01..db0b4dde 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/laravel.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/laravel.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port%; + listen %ip%:%web_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; root %sdocroot%/public; index index.php index.html index.htm; @@ -7,8 +7,6 @@ server { access_log /var/log/nginx/domains/%domain%.bytes bytes; error_log /var/log/nginx/domains/%domain%.error.log error; - - ssl on; ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; From 7a3e06941c3ca1c61e31745209bac8f0a69fe23d Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:49:25 -0500 Subject: [PATCH 034/984] Update magento.stpl --- install/debian/10/templates/web/nginx/php-fpm/magento.stpl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/magento.stpl b/install/debian/10/templates/web/nginx/php-fpm/magento.stpl index fdab43aa..f8ac30c9 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/magento.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/magento.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port%; + listen %ip%:%web_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; root %sdocroot%/pub; @@ -9,7 +9,6 @@ server { error_page 404 403 = /errors/404.php; add_header "X-UA-Compatible" "IE=Edge"; - ssl on; ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; From 22accb9e83eed05be2bd37009a055e3055d03db7 Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:49:55 -0500 Subject: [PATCH 035/984] Update modx.stpl --- install/debian/10/templates/web/nginx/php-fpm/modx.stpl | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/modx.stpl b/install/debian/10/templates/web/nginx/php-fpm/modx.stpl index f410ab77..420aeb9e 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/modx.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/modx.stpl @@ -1,13 +1,12 @@ server { - listen %ip%:%web_ssl_port%; + listen %ip%:%web_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; root %sdocroot%; index index.php index.html index.htm; access_log /var/log/nginx/domains/%domain%.log combined; access_log /var/log/nginx/domains/%domain%.bytes bytes; error_log /var/log/nginx/domains/%domain%.error.log error; - - ssl on; + ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; # if you need to rewrite www to non-www uncomment bellow From add195b6b0077a45a78f3701161f4e15d7e324e4 Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:50:20 -0500 Subject: [PATCH 036/984] Update moodle.stpl --- install/debian/10/templates/web/nginx/php-fpm/moodle.stpl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/moodle.stpl b/install/debian/10/templates/web/nginx/php-fpm/moodle.stpl index f15a68c5..8594ec94 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/moodle.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/moodle.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port%; + listen %ip%:%web_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; root %sdocroot%; index index.php index.html index.htm; @@ -7,7 +7,6 @@ server { access_log /var/log/nginx/domains/%domain%.bytes bytes; error_log /var/log/nginx/domains/%domain%.error.log error; - ssl on; ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; From 4a890b1b55af912104d4b13aa9539df9de195a48 Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:50:54 -0500 Subject: [PATCH 037/984] Update no-php.stpl --- install/debian/10/templates/web/nginx/php-fpm/no-php.stpl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/no-php.stpl b/install/debian/10/templates/web/nginx/php-fpm/no-php.stpl index bc8b53a3..4bb50383 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/no-php.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/no-php.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port%; + listen %ip%:%web_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; root %sdocroot%; index index.php index.html index.htm; @@ -7,7 +7,6 @@ server { access_log /var/log/nginx/domains/%domain%.bytes bytes; error_log /var/log/nginx/domains/%domain%.error.log error; - ssl on; ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; From 3b6acaf3a8971a38f13195fb2697936a19239aa0 Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:51:12 -0500 Subject: [PATCH 038/984] Update odoo.stpl --- install/debian/10/templates/web/nginx/php-fpm/odoo.stpl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/odoo.stpl b/install/debian/10/templates/web/nginx/php-fpm/odoo.stpl index d6697d7a..e28afcfc 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/odoo.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/odoo.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port%; + listen %ip%:%web_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; root %sdocroot%; index index.php index.html index.htm; @@ -7,7 +7,6 @@ server { access_log /var/log/nginx/domains/%domain%.bytes bytes; error_log /var/log/nginx/domains/%domain%.error.log error; - ssl on; ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; From 760ff7fa650636b584db418c4ef8215f62892b6e Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:51:37 -0500 Subject: [PATCH 039/984] Update opencart.stpl --- install/debian/10/templates/web/nginx/php-fpm/opencart.stpl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/opencart.stpl b/install/debian/10/templates/web/nginx/php-fpm/opencart.stpl index 908b9aeb..52706d21 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/opencart.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/opencart.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port%; + listen %ip%:%web_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; root %sdocroot%; index index.php index.html index.htm; @@ -7,7 +7,6 @@ server { access_log /var/log/nginx/domains/%domain%.bytes bytes; error_log /var/log/nginx/domains/%domain%.error.log error; - ssl on; ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; From 764df300314e609f3add1a6f9a48f543a4821681 Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:51:53 -0500 Subject: [PATCH 040/984] Update owncloud.stpl --- install/debian/10/templates/web/nginx/php-fpm/owncloud.stpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/owncloud.stpl b/install/debian/10/templates/web/nginx/php-fpm/owncloud.stpl index b43fdc75..1b803f97 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/owncloud.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/owncloud.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port% ssl; + listen %ip%:%web_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; root %sdocroot%; index index.php index.html index.htm; From 28cb4758ac8b6fb4ac04b0b26d97e33e2b6dc6bf Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:52:13 -0500 Subject: [PATCH 041/984] Update piwik.stpl --- install/debian/10/templates/web/nginx/php-fpm/piwik.stpl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/piwik.stpl b/install/debian/10/templates/web/nginx/php-fpm/piwik.stpl index 78c1bb78..1b299343 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/piwik.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/piwik.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port%; + listen %ip%:%web_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; root %sdocroot%; index index.php index.html index.htm; @@ -7,7 +7,6 @@ server { access_log /var/log/nginx/domains/%domain%.bytes bytes; error_log /var/log/nginx/domains/%domain%.error.log error; - ssl on; ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; From f93dce60b54bec06b9917de0ddbb025eb70a1647 Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:52:28 -0500 Subject: [PATCH 042/984] Update pyrocms.stpl --- install/debian/10/templates/web/nginx/php-fpm/pyrocms.stpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/pyrocms.stpl b/install/debian/10/templates/web/nginx/php-fpm/pyrocms.stpl index c9f91854..6d44f20f 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/pyrocms.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/pyrocms.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port% ssl; + listen %ip%:%web_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; root %sdocroot%/public; index index.php index.html index.htm; From ac607eafa852d850e7904f0c618d29add914b194 Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:52:59 -0500 Subject: [PATCH 043/984] Update wordpress.stpl --- install/debian/10/templates/web/nginx/php-fpm/wordpress.stpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/wordpress.stpl b/install/debian/10/templates/web/nginx/php-fpm/wordpress.stpl index 38de83d2..f9c01e40 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/wordpress.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/wordpress.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port% ssl; + listen %ip%:%web_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; root %sdocroot%; index index.php index.html index.htm; From 7bb3ab659a2717c4206e47e9ad7f5c3edc769d7a Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:53:25 -0500 Subject: [PATCH 044/984] Update wordpress2.stpl --- install/debian/10/templates/web/nginx/php-fpm/wordpress2.stpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/wordpress2.stpl b/install/debian/10/templates/web/nginx/php-fpm/wordpress2.stpl index 39cce361..01dfee5b 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/wordpress2.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/wordpress2.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port% ssl; + listen %ip%:%web_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; root %sdocroot%; index index.php index.html index.htm; From a61faf24a967abe97d3a10d16c7f3033420bc2fd Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:53:48 -0500 Subject: [PATCH 045/984] Update wordpress2_rewrite.stpl --- .../10/templates/web/nginx/php-fpm/wordpress2_rewrite.stpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/debian/10/templates/web/nginx/php-fpm/wordpress2_rewrite.stpl b/install/debian/10/templates/web/nginx/php-fpm/wordpress2_rewrite.stpl index 264ca01a..a5fc46fb 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/wordpress2_rewrite.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/wordpress2_rewrite.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%web_ssl_port% ssl; + listen %ip%:%web_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; root %docroot%; index index.php index.html index.htm; From b18e70f5c8cb7ef9b5a13021a972610e5fa7226c Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:58:06 -0500 Subject: [PATCH 046/984] Update force-https-legacy.stpl --- install/debian/10/templates/web/nginx/force-https-legacy.stpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/debian/10/templates/web/nginx/force-https-legacy.stpl b/install/debian/10/templates/web/nginx/force-https-legacy.stpl index 56278e86..01a4eea3 100644 --- a/install/debian/10/templates/web/nginx/force-https-legacy.stpl +++ b/install/debian/10/templates/web/nginx/force-https-legacy.stpl @@ -1,7 +1,7 @@ server { listen %ip%:%proxy_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; - # ssl on; + ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; error_log /var/log/%web_system%/domains/%domain%.error.log error; From 46f70ac244d13c19061a5f9739db862fb8b56427 Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:58:26 -0500 Subject: [PATCH 047/984] Update force-https-public.stpl --- install/debian/10/templates/web/nginx/force-https-public.stpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/debian/10/templates/web/nginx/force-https-public.stpl b/install/debian/10/templates/web/nginx/force-https-public.stpl index 8f0d3fe3..22951ae5 100644 --- a/install/debian/10/templates/web/nginx/force-https-public.stpl +++ b/install/debian/10/templates/web/nginx/force-https-public.stpl @@ -1,7 +1,7 @@ server { listen %ip%:%proxy_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; - # ssl on; + ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; error_log /var/log/%web_system%/domains/%domain%.error.log error; From 951f5c932f33b51830b1b0e8f4830c161cbf0ddf Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:58:40 -0500 Subject: [PATCH 048/984] Update force-https-webmail-phpmyadmin.stpl --- .../10/templates/web/nginx/force-https-webmail-phpmyadmin.stpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/debian/10/templates/web/nginx/force-https-webmail-phpmyadmin.stpl b/install/debian/10/templates/web/nginx/force-https-webmail-phpmyadmin.stpl index 4fadbbfc..dac7adaf 100644 --- a/install/debian/10/templates/web/nginx/force-https-webmail-phpmyadmin.stpl +++ b/install/debian/10/templates/web/nginx/force-https-webmail-phpmyadmin.stpl @@ -1,7 +1,7 @@ server { listen %ip%:%proxy_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; - # ssl on; + ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; error_log /var/log/%web_system%/domains/%domain%.error.log error; From 384e24973ffb5909b6f534e6f2ab73ee6ef536af Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:58:54 -0500 Subject: [PATCH 049/984] Update force-https.stpl --- install/debian/10/templates/web/nginx/force-https.stpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/debian/10/templates/web/nginx/force-https.stpl b/install/debian/10/templates/web/nginx/force-https.stpl index 7da96e46..4a8185c8 100644 --- a/install/debian/10/templates/web/nginx/force-https.stpl +++ b/install/debian/10/templates/web/nginx/force-https.stpl @@ -1,7 +1,7 @@ server { listen %ip%:%proxy_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; - # ssl on; + ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; error_log /var/log/%web_system%/domains/%domain%.error.log error; From 6aad1e02323e08a36ef3f63f7f60af345b143ac1 Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:59:13 -0500 Subject: [PATCH 050/984] Update hosting-legacy.stpl --- install/debian/10/templates/web/nginx/hosting-legacy.stpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/debian/10/templates/web/nginx/hosting-legacy.stpl b/install/debian/10/templates/web/nginx/hosting-legacy.stpl index d62b5171..cc0370c6 100644 --- a/install/debian/10/templates/web/nginx/hosting-legacy.stpl +++ b/install/debian/10/templates/web/nginx/hosting-legacy.stpl @@ -1,7 +1,7 @@ server { listen %ip%:%proxy_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; - # ssl on; + ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; error_log /var/log/%web_system%/domains/%domain%.error.log error; From 3aca6d837ef7e7e6ac198b24b5a82acd3daba474 Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:59:26 -0500 Subject: [PATCH 051/984] Update hosting.stpl --- install/debian/10/templates/web/nginx/hosting.stpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/debian/10/templates/web/nginx/hosting.stpl b/install/debian/10/templates/web/nginx/hosting.stpl index 0c456c5e..30fe0f74 100644 --- a/install/debian/10/templates/web/nginx/hosting.stpl +++ b/install/debian/10/templates/web/nginx/hosting.stpl @@ -1,7 +1,7 @@ server { listen %ip%:%proxy_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; - # ssl on; + ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; error_log /var/log/%web_system%/domains/%domain%.error.log error; From 322df88467d744bd29adc40cc0bd7cc674778b90 Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:59:38 -0500 Subject: [PATCH 052/984] Update private-hosting.stpl --- install/debian/10/templates/web/nginx/private-hosting.stpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/debian/10/templates/web/nginx/private-hosting.stpl b/install/debian/10/templates/web/nginx/private-hosting.stpl index d7326a46..60b23c55 100644 --- a/install/debian/10/templates/web/nginx/private-hosting.stpl +++ b/install/debian/10/templates/web/nginx/private-hosting.stpl @@ -1,7 +1,7 @@ server { listen %ip%:%proxy_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; - # ssl on; + ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; error_log /var/log/%web_system%/domains/%domain%.error.log error; From 20f6f3ed285bfab90751b03ff31a87f13ccf91ac Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 04:59:55 -0500 Subject: [PATCH 053/984] Update private-force-https.stpl --- install/debian/10/templates/web/nginx/private-force-https.stpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/debian/10/templates/web/nginx/private-force-https.stpl b/install/debian/10/templates/web/nginx/private-force-https.stpl index 38532e6b..2b4e42cc 100644 --- a/install/debian/10/templates/web/nginx/private-force-https.stpl +++ b/install/debian/10/templates/web/nginx/private-force-https.stpl @@ -1,7 +1,7 @@ server { listen %ip%:%proxy_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; - # ssl on; + ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; error_log /var/log/%web_system%/domains/%domain%.error.log error; From 9778a945a2b06b94482ea418f1c9c7fde5f7e44a Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 05:00:11 -0500 Subject: [PATCH 054/984] Update hosting-webmail-phpmyadmin.stpl --- .../10/templates/web/nginx/hosting-webmail-phpmyadmin.stpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/debian/10/templates/web/nginx/hosting-webmail-phpmyadmin.stpl b/install/debian/10/templates/web/nginx/hosting-webmail-phpmyadmin.stpl index 4fadbbfc..dac7adaf 100644 --- a/install/debian/10/templates/web/nginx/hosting-webmail-phpmyadmin.stpl +++ b/install/debian/10/templates/web/nginx/hosting-webmail-phpmyadmin.stpl @@ -1,7 +1,7 @@ server { listen %ip%:%proxy_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; - # ssl on; + ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; error_log /var/log/%web_system%/domains/%domain%.error.log error; From b1ab212701f9ef1f689611a873984b915224f05b Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 05:00:47 -0500 Subject: [PATCH 055/984] Update hosting-public.stpl --- install/debian/10/templates/web/nginx/hosting-public.stpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/debian/10/templates/web/nginx/hosting-public.stpl b/install/debian/10/templates/web/nginx/hosting-public.stpl index 8f0d3fe3..22951ae5 100644 --- a/install/debian/10/templates/web/nginx/hosting-public.stpl +++ b/install/debian/10/templates/web/nginx/hosting-public.stpl @@ -1,7 +1,7 @@ server { listen %ip%:%proxy_ssl_port% ssl http2; server_name %domain_idn% %alias_idn%; - # ssl on; + ssl_certificate %ssl_pem%; ssl_certificate_key %ssl_key%; error_log /var/log/%web_system%/domains/%domain%.error.log error; From 777d1d2564a69e4501fc35bed12c84a436da4894 Mon Sep 17 00:00:00 2001 From: j52m <65143495+j52m@users.noreply.github.com> Date: Fri, 25 Dec 2020 20:04:27 -0500 Subject: [PATCH 056/984] Fix Issue #96 --- install/debian/10/pma/pma.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/debian/10/pma/pma.sh b/install/debian/10/pma/pma.sh index 53ec9982..eb4be110 100644 --- a/install/debian/10/pma/pma.sh +++ b/install/debian/10/pma/pma.sh @@ -134,8 +134,8 @@ PMAUSER=pma #DROP USER and TABLE mysql -uroot < Date: Mon, 8 Feb 2021 18:33:36 +0100 Subject: [PATCH 057/984] Update v-add-web-domain --- bin/v-add-web-domain | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bin/v-add-web-domain b/bin/v-add-web-domain index 5a4f029f..b356080a 100755 --- a/bin/v-add-web-domain +++ b/bin/v-add-web-domain @@ -48,6 +48,8 @@ is_object_unsuspended 'user' 'USER' "$user" is_package_full 'WEB_DOMAINS' 'WEB_ALIASES' is_domain_new 'web' "$domain,$aliases" is_dir_symlink $HOMEDIR/$user/web +if_dir_exists $HOMEDIR/$user/web/$domain +if_dir_symlink $HOMEDIR/$user/web/$domain if [ ! -z "$ip" ]; then is_ip_valid "$ip" "$user" else From 19ca71e8fb0d548d592fc911f76c0b5d3e7f11c0 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 8 Feb 2021 18:34:57 +0100 Subject: [PATCH 058/984] Update main.sh --- func/main.sh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/func/main.sh b/func/main.sh index 704e5446..5c622b58 100644 --- a/func/main.sh +++ b/func/main.sh @@ -299,6 +299,20 @@ is_dir_symlink() { fi } +# Check if file exists +if_file_exists() { + if [[ -f "$1" ]]; then + check_result $E_FORBIDEN "$1 file exists" + fi +} + +# Check if directory exists +if_dir_exists() { + if [[ -d "$1" ]]; then + check_result $E_FORBIDEN "$1 directory exists" + fi +} + # Get object value get_object_value() { object=$(grep "$2='$3'" $USER_DATA/$1.conf) From 5e6bccb68f68be5d0ffe37e0e3a91f98f871ac82 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 8 Feb 2021 18:41:55 +0100 Subject: [PATCH 059/984] Update v-check-api-key --- bin/v-check-api-key | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/bin/v-check-api-key b/bin/v-check-api-key index 8d0d409e..2c6ccd0a 100755 --- a/bin/v-check-api-key +++ b/bin/v-check-api-key @@ -19,6 +19,11 @@ time_n_date=$(date +'%T %F') time=$(echo "$time_n_date" |cut -f 1 -d \ ) date=$(echo "$time_n_date" |cut -f 2 -d \ ) +if [[ -z $key || ${#key} -lt 16 ]]; then + echo "Error: not valid keysh" + echo "$date $time api $ip failed to login" >> $VESTA/log/auth.log + exit 9 +fi #----------------------------------------------------------# # Action # From 407e84fb3731f7885f4253021d531b1c1a03ef51 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 8 Feb 2021 18:52:37 +0100 Subject: [PATCH 060/984] Update Changelog.md --- Changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Changelog.md b/Changelog.md index 93c7aac0..5cea5757 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,7 @@ +Version 0.9.8-26-40 [08-Feb-2021] +================================================== +* Few bugfixes + Version 0.9.8-26-39 [12-Dec-2020] ================================================== * [Security] Fixing useless issue with tokens in "download backup" and "loginas" functions (thanks to HestiaCP for fixes) From 6324ca1690670517c37a5f2ae229646bfc2abf22 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 8 Feb 2021 18:53:27 +0100 Subject: [PATCH 061/984] Update latest.txt --- src/deb/latest.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/latest.txt b/src/deb/latest.txt index 22cf0781..f35a7617 100644 --- a/src/deb/latest.txt +++ b/src/deb/latest.txt @@ -1 +1 @@ -vesta-0.9.8-26-39 +vesta-0.9.8-26-40 From 177793a664684b7caa9893acf28659400962ba9a Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 8 Feb 2021 22:32:34 +0100 Subject: [PATCH 062/984] Update v-generate-api-key --- bin/v-generate-api-key | 1 + 1 file changed, 1 insertion(+) diff --git a/bin/v-generate-api-key b/bin/v-generate-api-key index ba60b92f..c6221cc6 100755 --- a/bin/v-generate-api-key +++ b/bin/v-generate-api-key @@ -23,6 +23,7 @@ HASH=$(keygen) if [ ! -d ${KEYS} ]; then mkdir ${KEYS} + chmod 0770 ${KEYS} fi if [[ -e ${KEYS}${HASH} ]] ; then From 13d58ff390fb6613be6626811183064cf71603ca Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 9 Feb 2021 09:08:56 +0100 Subject: [PATCH 063/984] Update v-check-api-key --- bin/v-check-api-key | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-check-api-key b/bin/v-check-api-key index 2c6ccd0a..66284e69 100755 --- a/bin/v-check-api-key +++ b/bin/v-check-api-key @@ -20,7 +20,7 @@ time=$(echo "$time_n_date" |cut -f 1 -d \ ) date=$(echo "$time_n_date" |cut -f 2 -d \ ) if [[ -z $key || ${#key} -lt 16 ]]; then - echo "Error: not valid keysh" + echo "Error: not valid keys" echo "$date $time api $ip failed to login" >> $VESTA/log/auth.log exit 9 fi From a136fe8009a4a9e0864b83264b59116954f657ac Mon Sep 17 00:00:00 2001 From: didyouexpectthat Date: Wed, 10 Feb 2021 23:45:11 -0800 Subject: [PATCH 064/984] Change if to is main.sh defines the command as is_dir_symlink, not if_dir_symlink. --- bin/v-add-web-domain | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-add-web-domain b/bin/v-add-web-domain index b356080a..64be838a 100755 --- a/bin/v-add-web-domain +++ b/bin/v-add-web-domain @@ -49,7 +49,7 @@ is_package_full 'WEB_DOMAINS' 'WEB_ALIASES' is_domain_new 'web' "$domain,$aliases" is_dir_symlink $HOMEDIR/$user/web if_dir_exists $HOMEDIR/$user/web/$domain -if_dir_symlink $HOMEDIR/$user/web/$domain +is_dir_symlink $HOMEDIR/$user/web/$domain if [ ! -z "$ip" ]; then is_ip_valid "$ip" "$user" else From 7056f36286b6c5f8c4fc5b02be1a0a8740a4c830 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 11 Feb 2021 09:52:42 +0100 Subject: [PATCH 065/984] Update latest.txt --- src/deb/latest.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/latest.txt b/src/deb/latest.txt index f35a7617..e6ae7bb3 100644 --- a/src/deb/latest.txt +++ b/src/deb/latest.txt @@ -1 +1 @@ -vesta-0.9.8-26-40 +vesta-0.9.8-26-41 From e3f1153942d2aaf5d8056c4449c222bb11839188 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 21 Feb 2021 22:27:15 +0100 Subject: [PATCH 066/984] Disabling libapache2-mod-php8.0 --- src/deb/for-download/tools/multi-php-install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/src/deb/for-download/tools/multi-php-install.sh b/src/deb/for-download/tools/multi-php-install.sh index 895f80d2..5f819755 100644 --- a/src/deb/for-download/tools/multi-php-install.sh +++ b/src/deb/for-download/tools/multi-php-install.sh @@ -240,6 +240,7 @@ if [ $debian_version -eq 10 ]; then a2dismod php7.2 a2dismod php7.3 a2dismod php7.4 + a2dismod php8.0 a2dismod mpm_prefork a2enmod mpm_event service apache2 restart From bdaa3da31091d530b3f1516bc3924a52e075b660 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 21 Feb 2021 22:51:13 +0100 Subject: [PATCH 067/984] php8.0 apache templates --- .../tools/apache-fpm-tpl/PHP-FPM-74-public.sh | 2 +- .../tools/apache-fpm-tpl/PHP-FPM-74.sh | 2 +- .../tools/apache-fpm-tpl/PHP-FPM-80-public.sh | 98 +++++++++++++++++++ .../apache-fpm-tpl/PHP-FPM-80-public.stpl | 44 +++++++++ .../apache-fpm-tpl/PHP-FPM-80-public.tpl | 38 +++++++ .../tools/apache-fpm-tpl/PHP-FPM-80.sh | 98 +++++++++++++++++++ .../tools/apache-fpm-tpl/PHP-FPM-80.stpl | 44 +++++++++ .../tools/apache-fpm-tpl/PHP-FPM-80.tpl | 38 +++++++ 8 files changed, 362 insertions(+), 2 deletions(-) create mode 100644 src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80-public.sh create mode 100644 src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80-public.stpl create mode 100644 src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80-public.tpl create mode 100644 src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.sh create mode 100644 src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.stpl create mode 100644 src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.tpl diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74-public.sh b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74-public.sh index 64cbaaf6..6f6290b1 100755 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74-public.sh +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74-public.sh @@ -69,7 +69,7 @@ fi if [ -f "$pool_file_73" ]; then rm $pool_file_73 - service php7-3-fpm restart + service php7.3-fpm restart fi write_file=0 diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74.sh b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74.sh index 552cd112..482cdd7e 100755 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74.sh +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74.sh @@ -69,7 +69,7 @@ fi if [ -f "$pool_file_73" ]; then rm $pool_file_73 - service php7-3-fpm restart + service php7.3-fpm restart fi write_file=0 diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80-public.sh b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80-public.sh new file mode 100644 index 00000000..5f119dd8 --- /dev/null +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80-public.sh @@ -0,0 +1,98 @@ +#!/bin/bash +# Adding php pool conf +user="$1" +domain="$2" +ip="$3" +home_dir="$4" +docroot="$5" + +pool_conf="[$2] + +listen = /run/php/php8.0-fpm-$2.sock +listen.owner = $1 +listen.group = $1 +listen.mode = 0666 + +user = $1 +group = $1 + +pm = ondemand +pm.max_children = 16 +request_terminate_timeout = 30s +pm.max_requests = 4000 +pm.process_idle_timeout = 10s +pm.status_path = /status + +php_admin_value[upload_tmp_dir] = /home/$1/tmp +php_admin_value[session.save_path] = /home/$1/tmp +php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube +php_admin_value[upload_max_filesize] = 80M +php_admin_value[max_execution_time] = 20 +php_admin_value[post_max_size] = 80M +php_admin_value[memory_limit] = 256M +php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" +php_admin_flag[mysql.allow_persistent] = off +php_admin_flag[safe_mode] = off + +env[PATH] = /usr/local/bin:/usr/bin:/bin +env[TMP] = /home/$1/tmp +env[TMPDIR] = /home/$1/tmp +env[TEMP] = /home/$1/tmp +" + +pool_file_56="/etc/php/5.6/fpm/pool.d/$2.conf" +pool_file_70="/etc/php/7.0/fpm/pool.d/$2.conf" +pool_file_71="/etc/php/7.1/fpm/pool.d/$2.conf" +pool_file_72="/etc/php/7.2/fpm/pool.d/$2.conf" +pool_file_73="/etc/php/7.3/fpm/pool.d/$2.conf" +pool_file_74="/etc/php/7.4/fpm/pool.d/$2.conf" +pool_file_80="/etc/php/8.0/fpm/pool.d/$2.conf" + +if [ -f "$pool_file_56" ]; then + rm $pool_file_56 + service php5.6-fpm restart +fi + +if [ -f "$pool_file_70" ]; then + rm $pool_file_70 + service php7.0-fpm restart +fi + +if [ -f "$pool_file_71" ]; then + rm $pool_file_71 + service php7.1-fpm restart +fi + +if [ -f "$pool_file_72" ]; then + rm $pool_file_72 + service php7.2-fpm restart +fi + +if [ -f "$pool_file_73" ]; then + rm $pool_file_73 + service php7.3-fpm restart +fi + +if [ -f "$pool_file_74" ]; then + rm $pool_file_74 + service php7.4-fpm restart +fi + +write_file=0 +if [ ! -f "$pool_file_80" ]; then + write_file=1 +else + user_count=$(grep -c "/home/$1/" $pool_file_80) + if [ $user_count -eq 0 ]; then + write_file=1 + fi +fi +if [ $write_file -eq 1 ]; then + echo "$pool_conf" > $pool_file_80 + service php8.0-fpm restart +fi +if [ -f "/etc/php/8.0/fpm/pool.d/www.conf" ]; then + rm /etc/php/8.0/fpm/pool.d/www.conf +fi + +exit 0 \ No newline at end of file diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80-public.stpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80-public.stpl new file mode 100644 index 00000000..4ce4b993 --- /dev/null +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80-public.stpl @@ -0,0 +1,44 @@ + + + ServerName %domain_idn% + %alias_string% + ServerAdmin %email% + DocumentRoot %sdocroot%/public + ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ + Alias /vstats/ %home%/%user%/web/%domain%/stats/ + Alias /error/ %home%/%user%/web/%domain%/document_errors/ + #SuexecUserGroup %user% %group% + CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes + CustomLog /var/log/%web_system%/domains/%domain%.log combined + ErrorLog /var/log/%web_system%/domains/%domain%.error.log + + AllowOverride All + + + AllowOverride All + SSLRequireSSL + Options +Includes -Indexes +ExecCGI + + SSLEngine on + SSLVerifyClient none + SSLCertificateFile %ssl_crt% + SSLCertificateKeyFile %ssl_key% + %ssl_ca_str%SSLCertificateChainFile %ssl_ca% +# +# RMode config +# RUidGid %user% %group% +# RGroups www-data +# +# +# AssignUserID %user% %group% +# + + + SetHandler "proxy:unix:/run/php/php8.0-fpm-%domain%.sock|fcgi://localhost/" + + SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0 + + IncludeOptional %home%/%user%/conf/web/s%web_system%.%domain%.conf* + + + diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80-public.tpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80-public.tpl new file mode 100644 index 00000000..41a5d506 --- /dev/null +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80-public.tpl @@ -0,0 +1,38 @@ + + + ServerName %domain_idn% + %alias_string% + ServerAdmin %email% + DocumentRoot %docroot%/public + ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ + Alias /vstats/ %home%/%user%/web/%domain%/stats/ + Alias /error/ %home%/%user%/web/%domain%/document_errors/ + #SuexecUserGroup %user% %group% + CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes + CustomLog /var/log/%web_system%/domains/%domain%.log combined + ErrorLog /var/log/%web_system%/domains/%domain%.error.log + + AllowOverride All + + + AllowOverride All + Options +Includes -Indexes +ExecCGI + +# +# RMode config +# RUidGid %user% %group% +# RGroups www-data +# +# +# AssignUserID %user% %group% +# + + + SetHandler "proxy:unix:/run/php/php8.0-fpm-%domain%.sock|fcgi://localhost/" + + SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0 + + IncludeOptional %home%/%user%/conf/web/%web_system%.%domain%.conf* + + + diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.sh b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.sh new file mode 100644 index 00000000..5f119dd8 --- /dev/null +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.sh @@ -0,0 +1,98 @@ +#!/bin/bash +# Adding php pool conf +user="$1" +domain="$2" +ip="$3" +home_dir="$4" +docroot="$5" + +pool_conf="[$2] + +listen = /run/php/php8.0-fpm-$2.sock +listen.owner = $1 +listen.group = $1 +listen.mode = 0666 + +user = $1 +group = $1 + +pm = ondemand +pm.max_children = 16 +request_terminate_timeout = 30s +pm.max_requests = 4000 +pm.process_idle_timeout = 10s +pm.status_path = /status + +php_admin_value[upload_tmp_dir] = /home/$1/tmp +php_admin_value[session.save_path] = /home/$1/tmp +php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube +php_admin_value[upload_max_filesize] = 80M +php_admin_value[max_execution_time] = 20 +php_admin_value[post_max_size] = 80M +php_admin_value[memory_limit] = 256M +php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" +php_admin_flag[mysql.allow_persistent] = off +php_admin_flag[safe_mode] = off + +env[PATH] = /usr/local/bin:/usr/bin:/bin +env[TMP] = /home/$1/tmp +env[TMPDIR] = /home/$1/tmp +env[TEMP] = /home/$1/tmp +" + +pool_file_56="/etc/php/5.6/fpm/pool.d/$2.conf" +pool_file_70="/etc/php/7.0/fpm/pool.d/$2.conf" +pool_file_71="/etc/php/7.1/fpm/pool.d/$2.conf" +pool_file_72="/etc/php/7.2/fpm/pool.d/$2.conf" +pool_file_73="/etc/php/7.3/fpm/pool.d/$2.conf" +pool_file_74="/etc/php/7.4/fpm/pool.d/$2.conf" +pool_file_80="/etc/php/8.0/fpm/pool.d/$2.conf" + +if [ -f "$pool_file_56" ]; then + rm $pool_file_56 + service php5.6-fpm restart +fi + +if [ -f "$pool_file_70" ]; then + rm $pool_file_70 + service php7.0-fpm restart +fi + +if [ -f "$pool_file_71" ]; then + rm $pool_file_71 + service php7.1-fpm restart +fi + +if [ -f "$pool_file_72" ]; then + rm $pool_file_72 + service php7.2-fpm restart +fi + +if [ -f "$pool_file_73" ]; then + rm $pool_file_73 + service php7.3-fpm restart +fi + +if [ -f "$pool_file_74" ]; then + rm $pool_file_74 + service php7.4-fpm restart +fi + +write_file=0 +if [ ! -f "$pool_file_80" ]; then + write_file=1 +else + user_count=$(grep -c "/home/$1/" $pool_file_80) + if [ $user_count -eq 0 ]; then + write_file=1 + fi +fi +if [ $write_file -eq 1 ]; then + echo "$pool_conf" > $pool_file_80 + service php8.0-fpm restart +fi +if [ -f "/etc/php/8.0/fpm/pool.d/www.conf" ]; then + rm /etc/php/8.0/fpm/pool.d/www.conf +fi + +exit 0 \ No newline at end of file diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.stpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.stpl new file mode 100644 index 00000000..f39e9631 --- /dev/null +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.stpl @@ -0,0 +1,44 @@ + + + ServerName %domain_idn% + %alias_string% + ServerAdmin %email% + DocumentRoot %sdocroot% + ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ + Alias /vstats/ %home%/%user%/web/%domain%/stats/ + Alias /error/ %home%/%user%/web/%domain%/document_errors/ + #SuexecUserGroup %user% %group% + CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes + CustomLog /var/log/%web_system%/domains/%domain%.log combined + ErrorLog /var/log/%web_system%/domains/%domain%.error.log + + AllowOverride All + + + AllowOverride All + SSLRequireSSL + Options +Includes -Indexes +ExecCGI + + SSLEngine on + SSLVerifyClient none + SSLCertificateFile %ssl_crt% + SSLCertificateKeyFile %ssl_key% + %ssl_ca_str%SSLCertificateChainFile %ssl_ca% +# +# RMode config +# RUidGid %user% %group% +# RGroups www-data +# +# +# AssignUserID %user% %group% +# + + + SetHandler "proxy:unix:/run/php/php8.0-fpm-%domain%.sock|fcgi://localhost/" + + SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0 + + IncludeOptional %home%/%user%/conf/web/s%web_system%.%domain%.conf* + + + diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.tpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.tpl new file mode 100644 index 00000000..b9e32f14 --- /dev/null +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.tpl @@ -0,0 +1,38 @@ + + + ServerName %domain_idn% + %alias_string% + ServerAdmin %email% + DocumentRoot %docroot% + ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ + Alias /vstats/ %home%/%user%/web/%domain%/stats/ + Alias /error/ %home%/%user%/web/%domain%/document_errors/ + #SuexecUserGroup %user% %group% + CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes + CustomLog /var/log/%web_system%/domains/%domain%.log combined + ErrorLog /var/log/%web_system%/domains/%domain%.error.log + + AllowOverride All + + + AllowOverride All + Options +Includes -Indexes +ExecCGI + +# +# RMode config +# RUidGid %user% %group% +# RGroups www-data +# +# +# AssignUserID %user% %group% +# + + + SetHandler "proxy:unix:/run/php/php8.0-fpm-%domain%.sock|fcgi://localhost/" + + SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0 + + IncludeOptional %home%/%user%/conf/web/%web_system%.%domain%.conf* + + + From b2ddf443b8e21613ee175c8359452ada3a5ecb0e Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 21 Feb 2021 23:02:17 +0100 Subject: [PATCH 068/984] Support for php8.0 --- .../for-download/tools/multi-php-install.sh | 238 ++++++++++-------- 1 file changed, 133 insertions(+), 105 deletions(-) diff --git a/src/deb/for-download/tools/multi-php-install.sh b/src/deb/for-download/tools/multi-php-install.sh index 5f819755..a0191f4b 100644 --- a/src/deb/for-download/tools/multi-php-install.sh +++ b/src/deb/for-download/tools/multi-php-install.sh @@ -10,6 +10,7 @@ inst_71=0 inst_72=0 inst_73=0 inst_74=0 +inst_80=0 ####################################################################### @@ -43,8 +44,11 @@ fi if [ $# -gt 6 ]; then inst_74=$7 fi +if [ $# -gt 7 ]; then + inst_80=$8 +fi -if [ $inst_56 -eq 1 ] || [ $inst_70 -eq 1 ] || [ $inst_71 -eq 1 ] || [ $inst_72 -eq 1 ] || [ $inst_73 -eq 1 ] || [ $inst_74 -eq 1 ]; then +if [ $inst_56 -eq 1 ] || [ $inst_70 -eq 1 ] || [ $inst_71 -eq 1 ] || [ $inst_72 -eq 1 ] || [ $inst_73 -eq 1 ] || [ $inst_74 -eq 1 ] || [ $inst_80 -eq 1 ]; then inst_repo=1 fi @@ -71,27 +75,28 @@ echo "inst_71=$inst_71" echo "inst_72=$inst_72" echo "inst_73=$inst_73" echo "inst_74=$inst_74" +echo "inst_80=$inst_80" echo "wait_to_press_enter=$wait_to_press_enter" press_enter "=== Press enter to continue ===============================================================================" apt update if [ "$inst_repo" -eq 1 ]; then -press_enter "=== Press enter to install sury.org repo ===============================================================================" -apt -y install apt-transport-https ca-certificates -wget -nv -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg -if [ $debian_version -eq 8 ]; then - sh -c 'echo "deb https://packages.sury.org/php/ jessie main" > /etc/apt/sources.list.d/php.list' -fi -if [ $debian_version -eq 9 ]; then - sh -c 'echo "deb https://packages.sury.org/php/ stretch main" > /etc/apt/sources.list.d/php.list' -fi -if [ $debian_version -eq 10 ]; then - sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' -fi -apt update -apt upgrade -y -press_enter "=== Press enter to continue ===============================================================================" + press_enter "=== Press enter to install sury.org repo ===============================================================================" + apt -y install apt-transport-https ca-certificates + wget -nv -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg + if [ $debian_version -eq 8 ]; then + sh -c 'echo "deb https://packages.sury.org/php/ jessie main" > /etc/apt/sources.list.d/php.list' + fi + if [ $debian_version -eq 9 ]; then + sh -c 'echo "deb https://packages.sury.org/php/ stretch main" > /etc/apt/sources.list.d/php.list' + fi + if [ $debian_version -eq 10 ]; then + sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' + fi + apt update + apt upgrade -y + press_enter "=== Press enter to continue ===============================================================================" fi echo "=== Enabling proxy_fcgi setenvif" @@ -100,107 +105,107 @@ service apache2 restart if [ "$inst_56" -eq 1 ]; then -press_enter "=== Press enter to install PHP 5.6 ===============================================================================" -apt -y install php5.6-mbstring php5.6-bcmath php5.6-cli php5.6-curl php5.6-fpm php5.6-gd php5.6-intl php5.6-mcrypt php5.6-mysql php5.6-soap php5.6-xml php5.6-zip php5.6-memcache php5.6-memcached -update-rc.d php5.6-fpm defaults -a2enconf php5.6-fpm -systemctl restart apache2 -cp -r /etc/php/5.6/ /root/vst_install_backups/php5.6/ -# rm -f /etc/php/5.6/fpm/pool.d/* -wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-56.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-56.stpl -wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-56.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-56.tpl -wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-56.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-56.sh -chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-56.sh -mkdir -p /root/vesta-temp-dl/vesta/patch -wget -nv https://c.myvestacp.com/tools/patches/php5.6.patch -O /root/vesta-temp-dl/vesta/patch/php5.6.patch -patch -p1 --directory=/ < /root/vesta-temp-dl/vesta/patch/php5.6.patch -rm -rf /root/vesta-temp-dl -press_enter "=== Press enter to continue ===============================================================================" + press_enter "=== Press enter to install PHP 5.6 ===============================================================================" + apt -y install php5.6-mbstring php5.6-bcmath php5.6-cli php5.6-curl php5.6-fpm php5.6-gd php5.6-intl php5.6-mcrypt php5.6-mysql php5.6-soap php5.6-xml php5.6-zip php5.6-memcache php5.6-memcached + update-rc.d php5.6-fpm defaults + a2enconf php5.6-fpm + systemctl restart apache2 + cp -r /etc/php/5.6/ /root/vst_install_backups/php5.6/ + # rm -f /etc/php/5.6/fpm/pool.d/* + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-56.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-56.stpl + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-56.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-56.tpl + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-56.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-56.sh + chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-56.sh + mkdir -p /root/vesta-temp-dl/vesta/patch + wget -nv https://c.myvestacp.com/tools/patches/php5.6.patch -O /root/vesta-temp-dl/vesta/patch/php5.6.patch + patch -p1 --directory=/ < /root/vesta-temp-dl/vesta/patch/php5.6.patch + rm -rf /root/vesta-temp-dl + press_enter "=== Press enter to continue ===============================================================================" fi if [ "$inst_70" -eq 1 ]; then -press_enter "=== Press enter to install PHP 7.0 ===============================================================================" -apt -y install php7.0-mbstring php7.0-bcmath php7.0-cli php7.0-curl php7.0-fpm php7.0-gd php7.0-intl php7.0-mcrypt php7.0-mysql php7.0-soap php7.0-xml php7.0-zip php7.0-memcache php7.0-memcached -update-rc.d php7.0-fpm defaults -a2enconf php7.0-fpm -systemctl restart apache2 -cp -r /etc/php/7.0/ /root/vst_install_backups/php7.0/ -# rm -f /etc/php/7.0/fpm/pool.d/* -wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-70.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-70.stpl -wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-70.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-70.tpl -wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-70.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-70.sh -chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-70.sh -if [ $debian_version -eq 9 ]; then - cp /etc/php/7.0/apache2/php.ini /etc/php/7.0/fpm/php.ini -fi -if [ $debian_version -eq 10 ]; then - cp /etc/php/7.3/fpm/php.ini /etc/php/7.0/fpm/php.ini -fi -press_enter "=== Press enter to continue ===============================================================================" + press_enter "=== Press enter to install PHP 7.0 ===============================================================================" + apt -y install php7.0-mbstring php7.0-bcmath php7.0-cli php7.0-curl php7.0-fpm php7.0-gd php7.0-intl php7.0-mcrypt php7.0-mysql php7.0-soap php7.0-xml php7.0-zip php7.0-memcache php7.0-memcached + update-rc.d php7.0-fpm defaults + a2enconf php7.0-fpm + systemctl restart apache2 + cp -r /etc/php/7.0/ /root/vst_install_backups/php7.0/ + # rm -f /etc/php/7.0/fpm/pool.d/* + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-70.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-70.stpl + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-70.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-70.tpl + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-70.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-70.sh + chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-70.sh + if [ $debian_version -eq 9 ]; then + cp /etc/php/7.0/apache2/php.ini /etc/php/7.0/fpm/php.ini + fi + if [ $debian_version -eq 10 ]; then + cp /etc/php/7.3/fpm/php.ini /etc/php/7.0/fpm/php.ini + fi + press_enter "=== Press enter to continue ===============================================================================" fi if [ "$inst_71" -eq 1 ]; then -press_enter "=== Press enter to install PHP 7.1 ===============================================================================" -apt -y install php7.1-mbstring php7.1-bcmath php7.1-cli php7.1-curl php7.1-fpm php7.1-gd php7.1-intl php7.1-mcrypt php7.1-mysql php7.1-soap php7.1-xml php7.1-zip php7.1-memcache php7.1-memcached -update-rc.d php7.1-fpm defaults -a2enconf php7.1-fpm -systemctl restart apache2 -cp -r /etc/php/7.1/ /root/vst_install_backups/php7.1/ -# rm -f /etc/php/7.1/fpm/pool.d/* -wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-71.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-71.stpl -wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-71.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-71.tpl -wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-71.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-71.sh -chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-71.sh -if [ $debian_version -eq 9 ]; then - cp /etc/php/7.0/apache2/php.ini /etc/php/7.1/fpm/php.ini -fi -if [ $debian_version -eq 10 ]; then - cp /etc/php/7.3/fpm/php.ini /etc/php/7.1/fpm/php.ini -fi -press_enter "=== Press enter to continue ===============================================================================" + press_enter "=== Press enter to install PHP 7.1 ===============================================================================" + apt -y install php7.1-mbstring php7.1-bcmath php7.1-cli php7.1-curl php7.1-fpm php7.1-gd php7.1-intl php7.1-mcrypt php7.1-mysql php7.1-soap php7.1-xml php7.1-zip php7.1-memcache php7.1-memcached + update-rc.d php7.1-fpm defaults + a2enconf php7.1-fpm + systemctl restart apache2 + cp -r /etc/php/7.1/ /root/vst_install_backups/php7.1/ + # rm -f /etc/php/7.1/fpm/pool.d/* + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-71.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-71.stpl + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-71.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-71.tpl + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-71.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-71.sh + chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-71.sh + if [ $debian_version -eq 9 ]; then + cp /etc/php/7.0/apache2/php.ini /etc/php/7.1/fpm/php.ini + fi + if [ $debian_version -eq 10 ]; then + cp /etc/php/7.3/fpm/php.ini /etc/php/7.1/fpm/php.ini + fi + press_enter "=== Press enter to continue ===============================================================================" fi if [ "$inst_72" -eq 1 ]; then -press_enter "=== Press enter to install PHP 7.2 ===============================================================================" -apt -y install php7.2-mbstring php7.2-bcmath php7.2-cli php7.2-curl php7.2-fpm php7.2-gd php7.2-intl php7.2-mysql php7.2-soap php7.2-xml php7.2-zip php7.2-memcache php7.2-memcached -update-rc.d php7.2-fpm defaults -a2enconf php7.2-fpm -systemctl restart apache2 -cp -r /etc/php/7.2/ /root/vst_install_backups/php7.2/ -# rm -f /etc/php/7.2/fpm/pool.d/* -wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-72.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-72.stpl -wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-72.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-72.tpl -wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-72.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-72.sh -chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-72.sh -if [ $debian_version -eq 9 ]; then - cp /etc/php/7.0/apache2/php.ini /etc/php/7.2/fpm/php.ini -fi -if [ $debian_version -eq 10 ]; then - cp /etc/php/7.3/fpm/php.ini /etc/php/7.2/fpm/php.ini -fi -press_enter "=== Press enter to continue ===============================================================================" + press_enter "=== Press enter to install PHP 7.2 ===============================================================================" + apt -y install php7.2-mbstring php7.2-bcmath php7.2-cli php7.2-curl php7.2-fpm php7.2-gd php7.2-intl php7.2-mysql php7.2-soap php7.2-xml php7.2-zip php7.2-memcache php7.2-memcached + update-rc.d php7.2-fpm defaults + a2enconf php7.2-fpm + systemctl restart apache2 + cp -r /etc/php/7.2/ /root/vst_install_backups/php7.2/ + # rm -f /etc/php/7.2/fpm/pool.d/* + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-72.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-72.stpl + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-72.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-72.tpl + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-72.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-72.sh + chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-72.sh + if [ $debian_version -eq 9 ]; then + cp /etc/php/7.0/apache2/php.ini /etc/php/7.2/fpm/php.ini + fi + if [ $debian_version -eq 10 ]; then + cp /etc/php/7.3/fpm/php.ini /etc/php/7.2/fpm/php.ini + fi + press_enter "=== Press enter to continue ===============================================================================" fi if [ "$inst_73" -eq 1 ]; then -press_enter "=== Press enter to install PHP 7.3 ===============================================================================" -apt -y install php7.3-mbstring php7.3-bcmath php7.3-cli php7.3-curl php7.3-fpm php7.3-gd php7.3-intl php7.3-mysql php7.3-soap php7.3-xml php7.3-zip php7.3-memcache php7.3-memcached -update-rc.d php7.3-fpm defaults -a2enconf php7.3-fpm -systemctl restart apache2 -cp -r /etc/php/7.3/ /root/vst_install_backups/php7.3/ -# rm -f /etc/php/7.3/fpm/pool.d/* -wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-73.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-73.stpl -wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-73.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-73.tpl -wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-73.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-73.sh -wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-73-public.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-73-public.stpl -wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-73-public.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-73-public.tpl -wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-73-public.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-73-public.sh -chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-73.sh -chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-73-public.sh -if [ $debian_version -eq 9 ]; then - cp /etc/php/7.0/apache2/php.ini /etc/php/7.3/fpm/php.ini -fi -press_enter "=== Press enter to continue ===============================================================================" + press_enter "=== Press enter to install PHP 7.3 ===============================================================================" + apt -y install php7.3-mbstring php7.3-bcmath php7.3-cli php7.3-curl php7.3-fpm php7.3-gd php7.3-intl php7.3-mysql php7.3-soap php7.3-xml php7.3-zip php7.3-memcache php7.3-memcached + update-rc.d php7.3-fpm defaults + a2enconf php7.3-fpm + systemctl restart apache2 + cp -r /etc/php/7.3/ /root/vst_install_backups/php7.3/ + # rm -f /etc/php/7.3/fpm/pool.d/* + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-73.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-73.stpl + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-73.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-73.tpl + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-73.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-73.sh + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-73-public.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-73-public.stpl + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-73-public.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-73-public.tpl + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-73-public.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-73-public.sh + chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-73.sh + chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-73-public.sh + if [ $debian_version -eq 9 ]; then + cp /etc/php/7.0/apache2/php.ini /etc/php/7.3/fpm/php.ini + fi + press_enter "=== Press enter to continue ===============================================================================" fi if [ "$inst_74" -eq 1 ]; then @@ -228,6 +233,28 @@ if [ "$inst_74" -eq 1 ]; then press_enter "=== Press enter to continue ===============================================================================" fi + +if [ "$inst_80" -eq 1 ]; then + press_enter "=== Press enter to install PHP 8.0 ===============================================================================" + apt -y install php8.0-mbstring php8.0-bcmath php8.0-cli php8.0-curl php8.0-fpm php8.0-gd php8.0-intl php8.0-mysql php8.0-soap php8.0-xml php8.0-zip php8.0-memcache php8.0-memcached + update-rc.d php8.0-fpm defaults + a2enconf php8.0-fpm + a2dismod php8.0 + apt-get -y remove libapache2-mod-php8.0 + systemctl restart apache2 + cp -r /etc/php/8.0/ /root/vst_install_backups/php8.0/ + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-80.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-80.stpl + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-80.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-80.tpl + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-80.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-80.sh + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-80-public.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-80-public.stpl + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-80-public.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-80-public.tpl + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-80-public.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-80-public.sh + chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-80.sh + chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-80-public.sh + press_enter "=== Press enter to continue ===============================================================================" +fi + + apt update apt upgrade -y @@ -243,5 +270,6 @@ if [ $debian_version -eq 10 ]; then a2dismod php8.0 a2dismod mpm_prefork a2enmod mpm_event + apt-get -y remove libapache2-mod-php8.0 service apache2 restart fi From bf3387139f808c8bd5aaf399637ace4d457a71a4 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 22 Feb 2021 01:00:20 +0100 Subject: [PATCH 069/984] php.ini patch for php8.0 --- install/debian/10/php/php8.0.patch | 78 ++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 install/debian/10/php/php8.0.patch diff --git a/install/debian/10/php/php8.0.patch b/install/debian/10/php/php8.0.patch new file mode 100644 index 00000000..243f7f1f --- /dev/null +++ b/install/debian/10/php/php8.0.patch @@ -0,0 +1,78 @@ +--- /etc/php/8.0/fpm/php.ini.orig 2021-02-20 06:34:43.000000000 +0100 ++++ /etc/php/8.0/fpm/php.ini 2021-02-22 00:56:23.000000000 +0100 +@@ -320,7 +320,8 @@ + ; This directive allows you to disable certain functions. + ; It receives a comma-delimited list of function names. + ; http://php.net/disable-functions +-disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, ++; disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, ++disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,exec,system,passthru,shell_exec,proc_open,popen + + ; This directive allows you to disable certain classes. + ; It receives a comma-delimited list of class names. +@@ -423,11 +424,11 @@ + ;max_input_nesting_level = 64 + + ; How many GET/POST/COOKIE input variables may be accepted +-;max_input_vars = 1000 ++max_input_vars = 6000 + + ; Maximum amount of memory a script may consume + ; http://php.net/memory-limit +-memory_limit = 128M ++memory_limit = 256M + + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ; Error handling and logging ; +@@ -700,7 +701,7 @@ + ; Its value may be 0 to disable the limit. It is ignored if POST data reading + ; is disabled through enable_post_data_reading. + ; http://php.net/post-max-size +-post_max_size = 8M ++post_max_size = 50M + + ; Automatically add files before PHP document. + ; http://php.net/auto-prepend-file +@@ -852,7 +853,7 @@ + + ; Maximum allowed size for uploaded files. + ; http://php.net/upload-max-filesize +-upload_max_filesize = 2M ++upload_max_filesize = 50M + + ; Maximum number of files that can be uploaded via a single request + max_file_uploads = 20 +@@ -1098,7 +1099,7 @@ + + ; The path to a log file that will log all mail() calls. Log entries include + ; the full path of the script, line number, To address and headers. +-;mail.log = ++mail.log = /var/log/php-mail.log + ; Log mail to syslog (Event Log on Windows). + ;mail.log = syslog + +@@ -1760,20 +1761,20 @@ + + [opcache] + ; Determines if Zend OPCache is enabled +-;opcache.enable=1 ++opcache.enable=1 + + ; Determines if Zend OPCache is enabled for the CLI version of PHP +-;opcache.enable_cli=0 ++opcache.enable_cli=0 + + ; The OPcache shared memory storage size. +-;opcache.memory_consumption=128 ++opcache.memory_consumption=512 + + ; The amount of memory for interned strings in Mbytes. + ;opcache.interned_strings_buffer=8 + + ; The maximum number of keys (scripts) in the OPcache hash table. + ; Only numbers between 200 and 1000000 are allowed. +-;opcache.max_accelerated_files=10000 ++opcache.max_accelerated_files=100000 + + ; The maximum percentage of "wasted" memory until a restart is scheduled. + ;opcache.max_wasted_percentage=5 From 7614d0cbc34cbb4c0954bbce944aa6e4c220d05d Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 22 Feb 2021 01:08:33 +0100 Subject: [PATCH 070/984] Delete php8.0.patch --- install/debian/10/php/php8.0.patch | 78 ------------------------------ 1 file changed, 78 deletions(-) delete mode 100644 install/debian/10/php/php8.0.patch diff --git a/install/debian/10/php/php8.0.patch b/install/debian/10/php/php8.0.patch deleted file mode 100644 index 243f7f1f..00000000 --- a/install/debian/10/php/php8.0.patch +++ /dev/null @@ -1,78 +0,0 @@ ---- /etc/php/8.0/fpm/php.ini.orig 2021-02-20 06:34:43.000000000 +0100 -+++ /etc/php/8.0/fpm/php.ini 2021-02-22 00:56:23.000000000 +0100 -@@ -320,7 +320,8 @@ - ; This directive allows you to disable certain functions. - ; It receives a comma-delimited list of function names. - ; http://php.net/disable-functions --disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, -+; disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, -+disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,exec,system,passthru,shell_exec,proc_open,popen - - ; This directive allows you to disable certain classes. - ; It receives a comma-delimited list of class names. -@@ -423,11 +424,11 @@ - ;max_input_nesting_level = 64 - - ; How many GET/POST/COOKIE input variables may be accepted --;max_input_vars = 1000 -+max_input_vars = 6000 - - ; Maximum amount of memory a script may consume - ; http://php.net/memory-limit --memory_limit = 128M -+memory_limit = 256M - - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ; Error handling and logging ; -@@ -700,7 +701,7 @@ - ; Its value may be 0 to disable the limit. It is ignored if POST data reading - ; is disabled through enable_post_data_reading. - ; http://php.net/post-max-size --post_max_size = 8M -+post_max_size = 50M - - ; Automatically add files before PHP document. - ; http://php.net/auto-prepend-file -@@ -852,7 +853,7 @@ - - ; Maximum allowed size for uploaded files. - ; http://php.net/upload-max-filesize --upload_max_filesize = 2M -+upload_max_filesize = 50M - - ; Maximum number of files that can be uploaded via a single request - max_file_uploads = 20 -@@ -1098,7 +1099,7 @@ - - ; The path to a log file that will log all mail() calls. Log entries include - ; the full path of the script, line number, To address and headers. --;mail.log = -+mail.log = /var/log/php-mail.log - ; Log mail to syslog (Event Log on Windows). - ;mail.log = syslog - -@@ -1760,20 +1761,20 @@ - - [opcache] - ; Determines if Zend OPCache is enabled --;opcache.enable=1 -+opcache.enable=1 - - ; Determines if Zend OPCache is enabled for the CLI version of PHP --;opcache.enable_cli=0 -+opcache.enable_cli=0 - - ; The OPcache shared memory storage size. --;opcache.memory_consumption=128 -+opcache.memory_consumption=512 - - ; The amount of memory for interned strings in Mbytes. - ;opcache.interned_strings_buffer=8 - - ; The maximum number of keys (scripts) in the OPcache hash table. - ; Only numbers between 200 and 1000000 are allowed. --;opcache.max_accelerated_files=10000 -+opcache.max_accelerated_files=100000 - - ; The maximum percentage of "wasted" memory until a restart is scheduled. - ;opcache.max_wasted_percentage=5 From a143064127c8594d0b53bf4ed2583c526a148478 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 22 Feb 2021 01:10:03 +0100 Subject: [PATCH 071/984] php.ini patch for php8.0 --- .../for-download/tools/patches/php8.0.patch | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 src/deb/for-download/tools/patches/php8.0.patch diff --git a/src/deb/for-download/tools/patches/php8.0.patch b/src/deb/for-download/tools/patches/php8.0.patch new file mode 100644 index 00000000..243f7f1f --- /dev/null +++ b/src/deb/for-download/tools/patches/php8.0.patch @@ -0,0 +1,78 @@ +--- /etc/php/8.0/fpm/php.ini.orig 2021-02-20 06:34:43.000000000 +0100 ++++ /etc/php/8.0/fpm/php.ini 2021-02-22 00:56:23.000000000 +0100 +@@ -320,7 +320,8 @@ + ; This directive allows you to disable certain functions. + ; It receives a comma-delimited list of function names. + ; http://php.net/disable-functions +-disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, ++; disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, ++disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,exec,system,passthru,shell_exec,proc_open,popen + + ; This directive allows you to disable certain classes. + ; It receives a comma-delimited list of class names. +@@ -423,11 +424,11 @@ + ;max_input_nesting_level = 64 + + ; How many GET/POST/COOKIE input variables may be accepted +-;max_input_vars = 1000 ++max_input_vars = 6000 + + ; Maximum amount of memory a script may consume + ; http://php.net/memory-limit +-memory_limit = 128M ++memory_limit = 256M + + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ; Error handling and logging ; +@@ -700,7 +701,7 @@ + ; Its value may be 0 to disable the limit. It is ignored if POST data reading + ; is disabled through enable_post_data_reading. + ; http://php.net/post-max-size +-post_max_size = 8M ++post_max_size = 50M + + ; Automatically add files before PHP document. + ; http://php.net/auto-prepend-file +@@ -852,7 +853,7 @@ + + ; Maximum allowed size for uploaded files. + ; http://php.net/upload-max-filesize +-upload_max_filesize = 2M ++upload_max_filesize = 50M + + ; Maximum number of files that can be uploaded via a single request + max_file_uploads = 20 +@@ -1098,7 +1099,7 @@ + + ; The path to a log file that will log all mail() calls. Log entries include + ; the full path of the script, line number, To address and headers. +-;mail.log = ++mail.log = /var/log/php-mail.log + ; Log mail to syslog (Event Log on Windows). + ;mail.log = syslog + +@@ -1760,20 +1761,20 @@ + + [opcache] + ; Determines if Zend OPCache is enabled +-;opcache.enable=1 ++opcache.enable=1 + + ; Determines if Zend OPCache is enabled for the CLI version of PHP +-;opcache.enable_cli=0 ++opcache.enable_cli=0 + + ; The OPcache shared memory storage size. +-;opcache.memory_consumption=128 ++opcache.memory_consumption=512 + + ; The amount of memory for interned strings in Mbytes. + ;opcache.interned_strings_buffer=8 + + ; The maximum number of keys (scripts) in the OPcache hash table. + ; Only numbers between 200 and 1000000 are allowed. +-;opcache.max_accelerated_files=10000 ++opcache.max_accelerated_files=100000 + + ; The maximum percentage of "wasted" memory until a restart is scheduled. + ;opcache.max_wasted_percentage=5 From 7391d3664dbc32c63d8e30187e7002b6bcd0d2f6 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 22 Feb 2021 01:19:29 +0100 Subject: [PATCH 072/984] Patching php.ini for php8.0 --- src/deb/for-download/tools/multi-php-install.sh | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/deb/for-download/tools/multi-php-install.sh b/src/deb/for-download/tools/multi-php-install.sh index a0191f4b..761efac7 100644 --- a/src/deb/for-download/tools/multi-php-install.sh +++ b/src/deb/for-download/tools/multi-php-install.sh @@ -22,6 +22,7 @@ fi inst_repo=0 debian_version=$(cat /etc/debian_version | tr "." "\n" | head -n1) +memory=$(grep 'MemTotal' /proc/meminfo |tr ' ' '\n' |grep [0-9]) if [ $# -gt 0 ]; then inst_repo=$1 @@ -251,7 +252,14 @@ if [ "$inst_80" -eq 1 ]; then wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-80-public.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-80-public.sh chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-80.sh chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-80-public.sh - press_enter "=== Press enter to continue ===============================================================================" + echo "=== Patching php.ini for php8.0" + wget -nv https://c.myvestacp.com/tools/patches/php8.0.patch -O /root/php8.0.patch + patch /etc/php/8.0/fpm/php.ini < /root/php8.0.patch + if [ $memory -gt 9999999 ]; then + sed -i "s|opcache.memory_consumption=512|opcache.memory_consumption=2048|g" /etc/php/8.0/fpm/php.ini + fi + service php8.0-fpm restart + press_enter "=== PHP 8.0 installed, press enter to continue ===============================================================================" fi From 809b310a15e965200c59e151c29254aa755b3ffa Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 25 Feb 2021 23:57:23 +0100 Subject: [PATCH 073/984] Making sure Apache is in mpm_event mode --- src/deb/vesta/postinst | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/deb/vesta/postinst b/src/deb/vesta/postinst index 712b2ac4..be9d932b 100755 --- a/src/deb/vesta/postinst +++ b/src/deb/vesta/postinst @@ -218,6 +218,34 @@ if [ ! -f "/usr/local/vesta/data/upgrades/apache_status_public_access" ]; then fi fi +# Making sure Apache is in mpm_event mode +if [ ! -f "/usr/local/vesta/data/upgrades/apache_in_mpm_mode" ]; then + touch /usr/local/vesta/data/upgrades/apache_in_mpm_mode + + check_grep=$(grep -c "WEB_SYSTEM='nginx'" /usr/local/vesta/conf/vesta.conf) + if [ "$check_grep" -eq 0 ]; then + if [ $release -eq 10 ]; then + if [ -f "/etc/apt/sources.list.d/php.list" ]; then + echo "=== Making sure Apache is in mpm_event mode" + a2dismod ruid2 > /dev/null 2>&1 + a2dismod suexec > /dev/null 2>&1 + a2dismod php5.6 > /dev/null 2>&1 + a2dismod php7.0 > /dev/null 2>&1 + a2dismod php7.1 > /dev/null 2>&1 + a2dismod php7.2 > /dev/null 2>&1 + a2dismod php7.3 > /dev/null 2>&1 + a2dismod php7.4 > /dev/null 2>&1 + a2dismod php8.0 > /dev/null 2>&1 + a2dismod mpm_prefork > /dev/null 2>&1 + a2enmod mpm_event > /dev/null 2>&1 + apt-get -y remove libapache2-mod-php7.4 > /dev/null 2>&1 + apt-get -y remove libapache2-mod-php8.0 > /dev/null 2>&1 + service apache2 restart + fi + fi + fi +fi + # Run custom triggers if [ -x "/root/vesta-patch.sh" ]; then /root/vesta-patch.sh From 5dc0788b3679e8658b10e603d2e70607e792d9ff Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 25 Feb 2021 23:58:03 +0100 Subject: [PATCH 074/984] Update latest.txt --- src/deb/latest.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/latest.txt b/src/deb/latest.txt index e6ae7bb3..ac7e724b 100644 --- a/src/deb/latest.txt +++ b/src/deb/latest.txt @@ -1 +1 @@ -vesta-0.9.8-26-41 +vesta-0.9.8-26-42 From bc4c57d302644fdc4b95f8d5b2fbd5d5dff6deaf Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 26 Feb 2021 00:02:10 +0100 Subject: [PATCH 075/984] Update Changelog.md --- Changelog.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Changelog.md b/Changelog.md index 5cea5757..01b057f7 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,12 @@ +Version 0.9.8-26-42 [26-Feb-2021] +================================================== +* [Feature] Support for PHP 8.0, see: https://forum.myvestacp.com/viewtopic.php?f=18&t=52 +* [Bugfix] Making sure Apache is in mpm_event mode + +Version 0.9.8-26-41 [11-Feb-2021] +================================================== +* Few bugfixes + Version 0.9.8-26-40 [08-Feb-2021] ================================================== * Few bugfixes From 36e5d2c9ec9ad17bad5250b36be657b1edfc7fae Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 26 Feb 2021 01:16:42 +0100 Subject: [PATCH 076/984] Update keep_mpm_event.sh --- upd/keep_mpm_event.sh | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/upd/keep_mpm_event.sh b/upd/keep_mpm_event.sh index e9ea92e4..36ccae5f 100644 --- a/upd/keep_mpm_event.sh +++ b/upd/keep_mpm_event.sh @@ -14,8 +14,8 @@ if [ "$1" = 'background' ]; then echo "=== Cleaning restart.pipe" sed -i "/keep_mpm_event/d" /usr/local/vesta/data/queue/restart.pipe /usr/local/vesta/bin/v-delete-cron-restart-job - if [ ! -f "/usr/local/vesta/data/upgrades/keeping-mpm-event-checked" ]; then - touch /usr/local/vesta/data/upgrades/keeping-mpm-event-checked + if [ ! -f "/usr/local/vesta/data/upgrades/keeping-mpm-event-checked-2" ]; then + touch /usr/local/vesta/data/upgrades/keeping-mpm-event-checked-2 echo "=== OK, mpm_event is not checked" check_grep=$(grep -c "WEB_SYSTEM='apache2'" /usr/local/vesta/conf/vesta.conf) if [ "$check_grep" -eq 1 ]; then @@ -40,17 +40,19 @@ fi if [ "$switch_to_mpm_event" -eq 1 ]; then echo "=== OK, let's ensure mpm_event" - apt-get -y remove libapache2-mod-php7.4 - a2dismod ruid2 - a2dismod suexec - a2dismod php5.6 - a2dismod php7.0 - a2dismod php7.1 - a2dismod php7.2 - a2dismod php7.3 - a2dismod php7.4 - a2dismod mpm_prefork - a2enmod mpm_event + a2dismod ruid2 > /dev/null 2>&1 + a2dismod suexec > /dev/null 2>&1 + a2dismod php5.6 > /dev/null 2>&1 + a2dismod php7.0 > /dev/null 2>&1 + a2dismod php7.1 > /dev/null 2>&1 + a2dismod php7.2 > /dev/null 2>&1 + a2dismod php7.3 > /dev/null 2>&1 + a2dismod php7.4 > /dev/null 2>&1 + a2dismod php8.0 > /dev/null 2>&1 + a2dismod mpm_prefork > /dev/null 2>&1 + a2enmod mpm_event > /dev/null 2>&1 + apt-get -y remove libapache2-mod-php7.4 > /dev/null 2>&1 + apt-get -y remove libapache2-mod-php8.0 > /dev/null 2>&1 service apache2 restart echo "=== Done!" fi From d7f3d48d369c34da3dffbe1c005be4712cab9aa6 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 26 Feb 2021 01:18:06 +0100 Subject: [PATCH 077/984] Update postinst --- src/deb/vesta/postinst | 32 ++------------------------------ 1 file changed, 2 insertions(+), 30 deletions(-) diff --git a/src/deb/vesta/postinst b/src/deb/vesta/postinst index be9d932b..acf13709 100755 --- a/src/deb/vesta/postinst +++ b/src/deb/vesta/postinst @@ -133,8 +133,8 @@ if [ ! -f "/usr/local/vesta/data/upgrades/change-clamav-socket-v4" ]; then fi # Making sure mpm_event will stay -if [ ! -f "/usr/local/vesta/data/upgrades/keeping-mpm-event" ]; then - touch /usr/local/vesta/data/upgrades/keeping-mpm-event +if [ ! -f "/usr/local/vesta/data/upgrades/keeping-mpm-event-2" ]; then + touch /usr/local/vesta/data/upgrades/keeping-mpm-event-2 echo "=== scheduling keeping-mpm-event check script" echo "bash /usr/local/vesta/upd/keep_mpm_event.sh 'background' >> /usr/local/vesta/data/upgrades/keeping-mpm-event.log 2>&1" >> /usr/local/vesta/data/queue/restart.pipe /usr/local/vesta/bin/v-add-cron-restart-job > /dev/null 2>&1 @@ -218,34 +218,6 @@ if [ ! -f "/usr/local/vesta/data/upgrades/apache_status_public_access" ]; then fi fi -# Making sure Apache is in mpm_event mode -if [ ! -f "/usr/local/vesta/data/upgrades/apache_in_mpm_mode" ]; then - touch /usr/local/vesta/data/upgrades/apache_in_mpm_mode - - check_grep=$(grep -c "WEB_SYSTEM='nginx'" /usr/local/vesta/conf/vesta.conf) - if [ "$check_grep" -eq 0 ]; then - if [ $release -eq 10 ]; then - if [ -f "/etc/apt/sources.list.d/php.list" ]; then - echo "=== Making sure Apache is in mpm_event mode" - a2dismod ruid2 > /dev/null 2>&1 - a2dismod suexec > /dev/null 2>&1 - a2dismod php5.6 > /dev/null 2>&1 - a2dismod php7.0 > /dev/null 2>&1 - a2dismod php7.1 > /dev/null 2>&1 - a2dismod php7.2 > /dev/null 2>&1 - a2dismod php7.3 > /dev/null 2>&1 - a2dismod php7.4 > /dev/null 2>&1 - a2dismod php8.0 > /dev/null 2>&1 - a2dismod mpm_prefork > /dev/null 2>&1 - a2enmod mpm_event > /dev/null 2>&1 - apt-get -y remove libapache2-mod-php7.4 > /dev/null 2>&1 - apt-get -y remove libapache2-mod-php8.0 > /dev/null 2>&1 - service apache2 restart - fi - fi - fi -fi - # Run custom triggers if [ -x "/root/vesta-patch.sh" ]; then /root/vesta-patch.sh From 97ffdd0571f43f93dd81487862fbfebf84794517 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 27 Feb 2021 19:26:56 +0100 Subject: [PATCH 078/984] Update vst-install-debian.sh --- install/vst-install-debian.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index 3481897a..ec1928e0 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -1623,6 +1623,7 @@ touch /usr/local/vesta/data/upgrades/change-clamav-socket-v2 touch /usr/local/vesta/data/upgrades/change-clamav-socket-v3 touch /usr/local/vesta/data/upgrades/change-clamav-socket-v4 touch /usr/local/vesta/data/upgrades/keeping-mpm-event +touch /usr/local/vesta/data/upgrades/keeping-mpm-event-2 touch /usr/local/vesta/data/upgrades/fix_ssl_directive_in_templates touch /usr/local/vesta/data/upgrades/clamav_block_exe_in_archives touch /usr/local/vesta/data/upgrades/clearing-letsencrypt-pipe From d0108b4ae324ed85d42c39e1890d7f97ed5d9d27 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 2 Mar 2021 22:53:33 +0100 Subject: [PATCH 079/984] Update v-clone-website --- bin/v-clone-website | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/bin/v-clone-website b/bin/v-clone-website index 5922d2d1..ed7344ab 100644 --- a/bin/v-clone-website +++ b/bin/v-clone-website @@ -68,8 +68,15 @@ eval $r FROM_FOLDER=$SITE_FOLDER -FROM_CONFIG_FILE=$CONFIG_FILE -FROM_CONFIG_FILE_FULL_PATH=$CONFIG_FILE_FULL_PATH +if [ ! -z "$CONFIG_FILE" ]; then + FROM_CONFIG_FILE=$CONFIG_FILE +fi +if [ ! -z "$FROM_CONFIG_FILE" ]; then + FROM_CONFIG_FILE_FULL_PATH="$FROM_FOLDER/$FROM_CONFIG_FILE" +fi +if [ ! -z "$CONFIG_FILE_FULL_PATH" ]; then + FROM_CONFIG_FILE_FULL_PATH=$CONFIG_FILE_FULL_PATH +fi if [ ! -f "$FROM_CONFIG_FILE_FULL_PATH" ]; then echo "Error: FROM_CONFIG_FILE_FULL_PATH $FROM_CONFIG_FILE_FULL_PATH does not exists" From c981edee63c0979b1bc4c77be4605c823bf85e02 Mon Sep 17 00:00:00 2001 From: myvesta Date: Sun, 14 Mar 2021 00:23:23 +0100 Subject: [PATCH 080/984] Making sure chmod and chown does not follow symlinks --- bin/v-add-web-domain | 8 ++++---- func/main.sh | 12 ++++++++++++ func/rebuild.sh | 10 +++++----- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/bin/v-add-web-domain b/bin/v-add-web-domain index 64be838a..aab09e6a 100755 --- a/bin/v-add-web-domain +++ b/bin/v-add-web-domain @@ -90,10 +90,10 @@ done # Changing file owner & permission chown -R $user:$user $HOMEDIR/$user/web/$domain chown root:$user /var/log/$WEB_SYSTEM/domains/$domain.* $conf -chmod 640 /var/log/$WEB_SYSTEM/domains/$domain.* -chmod 751 $HOMEDIR/$user/web/$domain $HOMEDIR/$user/web/$domain/* -chmod 551 $HOMEDIR/$user/web/$domain/stats $HOMEDIR/$user/web/$domain/logs -chmod 644 $HOMEDIR/$user/web/$domain/public_*html/*.* +sudo -u $user chmod 640 /var/log/$WEB_SYSTEM/domains/$domain.* +sudo -u $user chmod 751 $HOMEDIR/$user/web/$domain $HOMEDIR/$user/web/$domain/* +sudo -u $user chmod 551 $HOMEDIR/$user/web/$domain/stats $HOMEDIR/$user/web/$domain/logs +sudo -u $user chmod 644 $HOMEDIR/$user/web/$domain/public_*html/*.* # Addding PHP-FPM backend if [ ! -z "$WEB_BACKEND" ]; then diff --git a/func/main.sh b/func/main.sh index 5c622b58..264b267d 100644 --- a/func/main.sh +++ b/func/main.sh @@ -1085,3 +1085,15 @@ vesta_generate_pass() { done echo "$PASS" } + +# Simple chmod wrapper that skips symlink files after glob expand +# Taken from HestiaCP +no_symlink_chmod() { + local filemode=$1; shift; + + for i in "$@"; do + [[ -L ${i} ]] && continue + + chmod "${filemode}" "${i}" + done +} diff --git a/func/rebuild.sh b/func/rebuild.sh index cf743d65..b4df3d20 100644 --- a/func/rebuild.sh +++ b/func/rebuild.sh @@ -51,7 +51,7 @@ rebuild_user_conf() { mkdir -p $HOMEDIR/$user/conf chmod a+x $HOMEDIR/$user chmod a+x $HOMEDIR/$user/conf - chown $user:$user $HOMEDIR/$user + chown --no-dereference $user:$user $HOMEDIR/$user chown root:root $HOMEDIR/$user/conf # Update disk pipe @@ -80,7 +80,7 @@ rebuild_user_conf() { chmod 751 $HOMEDIR/$user/conf/web chmod 751 $HOMEDIR/$user/web chmod 771 $HOMEDIR/$user/tmp - chown $user:$user $HOMEDIR/$user/web + chown --no-dereference $user:$user $HOMEDIR/$user/web if [ -z "$create_user" ]; then $BIN/v-rebuild-web-domains $user $restart fi @@ -183,10 +183,10 @@ rebuild_web_domain_conf() { fi # Set folder permissions - chmod 551 $HOMEDIR/$user/web/$domain \ + no_symlink_chmod 551 $HOMEDIR/$user/web/$domain \ $HOMEDIR/$user/web/$domain/stats \ $HOMEDIR/$user/web/$domain/logs - chmod 751 $HOMEDIR/$user/web/$domain/private \ + no_symlink_chmod 751 $HOMEDIR/$user/web/$domain/private \ $HOMEDIR/$user/web/$domain/cgi-bin \ $HOMEDIR/$user/web/$domain/public_html \ $HOMEDIR/$user/web/$domain/public_shtml \ @@ -194,7 +194,7 @@ rebuild_web_domain_conf() { chmod 640 /var/log/$WEB_SYSTEM/domains/$domain.* # Set ownership - chown $user:$user $HOMEDIR/$user/web/$domain \ + chown --no-dereference $user:$user $HOMEDIR/$user/web/$domain \ $HOMEDIR/$user/web/$domain/private \ $HOMEDIR/$user/web/$domain/cgi-bin \ $HOMEDIR/$user/web/$domain/public_html \ From 16b33262af46ad95b6ebd6ebb9a514b5b09838a2 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 14 Mar 2021 01:46:58 +0100 Subject: [PATCH 081/984] Validate user input on domain Thanks to @hestiacp and @jaapmarcus --- bin/v-generate-ssl-cert | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-generate-ssl-cert b/bin/v-generate-ssl-cert index 9f75f9d8..394c6625 100755 --- a/bin/v-generate-ssl-cert +++ b/bin/v-generate-ssl-cert @@ -67,7 +67,7 @@ fi args_usage='DOMAIN EMAIL COUNTRY STATE CITY ORG UNIT [ALIASES] [FORMAT]' check_args '7' "$#" "$args_usage" -is_format_valid 'domain_alias' 'format' +is_format_valid 'domain' 'alias' 'format' #----------------------------------------------------------# From fdc6e191c270146c9e035f3687fae8506857f214 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 14 Mar 2021 19:09:10 +0100 Subject: [PATCH 082/984] Restrict v-make-tmp-file to tmp folder Thanks to @hestiacp and @jaapmarcus --- web/api/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/api/index.php b/web/api/index.php index 08f51fc9..949ac689 100644 --- a/web/api/index.php +++ b/web/api/index.php @@ -116,7 +116,7 @@ if (isset($_POST['user']) || isset($_POST['hash'])) { // Check command if ($cmd == "'v-make-tmp-file'") { // Used in DNS Cluster - $fp = fopen($_POST['arg2'], 'w'); + $fp = fopen('/tmp/'.basename($_POST['arg2']), 'w'); fwrite($fp, $_POST['arg1']."\n"); fclose($fp); $return_var = 0; From 3402071e950e76b79fa8672a1e09b70d3860f355 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 14 Mar 2021 20:49:14 +0100 Subject: [PATCH 083/984] Preventing uploads from other origin Credits to: Fady Othman, Security Consultant # ZINAD IT --- web/upload/UploadHandler.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/web/upload/UploadHandler.php b/web/upload/UploadHandler.php index 64004c91..b77749ab 100755 --- a/web/upload/UploadHandler.php +++ b/web/upload/UploadHandler.php @@ -2,6 +2,13 @@ //session_start(); +$hostname = exec('hostname'); +$port = $_SERVER['SERVER_PORT']; +$expected_http_origin="https://".$hostname.":".$port; +if ($_SERVER['HTTP_ORIGIN'] != $expected_http_origin) { + die ("Nope."); +} + include($_SERVER['DOCUMENT_ROOT']."/inc/main.php"); // Check login_as feature From c9b238a495413d58cc4ab456d0f4c66cd2047b64 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 14 Mar 2021 23:22:33 +0100 Subject: [PATCH 084/984] Ensure HTML will not be displayed in list log page --- web/templates/admin/list_log.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/templates/admin/list_log.html b/web/templates/admin/list_log.html index 34a676c6..23548421 100644 --- a/web/templates/admin/list_log.html +++ b/web/templates/admin/list_log.html @@ -53,7 +53,7 @@
- +
-
.
+
.

From f5cc2bb7f24e9bdb4cdb3be425383967fb4fdc53 Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Sun, 4 Apr 2021 18:36:27 +0200
Subject: [PATCH 094/984] Check if it's vesta package
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Credits to: Numan Türle @numanturle
---
 bin/v-update-sys-vesta | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/bin/v-update-sys-vesta b/bin/v-update-sys-vesta
index f3373823..8db9242d 100755
--- a/bin/v-update-sys-vesta
+++ b/bin/v-update-sys-vesta
@@ -28,6 +28,23 @@ source $VESTA/conf/vesta.conf
 # Checking arg number
 check_args '1' "$#" 'PACKAGE'
 
+valid=0
+if [ "$package" = "vesta" ]; then
+    valid=1
+fi
+if [ "$package" = "vesta-nginx" ]; then
+    valid=1
+fi
+if [ "$package" = "vesta-php" ]; then
+    valid=1
+fi
+if [ "$package" = "vesta-softaculous" ]; then
+    valid=1
+fi
+if [ $valid -eq 0 ]; then
+    echo "Package $package is not valid"
+    exit 1
+fi
 
 #----------------------------------------------------------#
 #                       Action                             #

From d20f1aebd0a189de7dd485ab820b9f835da1e8b0 Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Sun, 4 Apr 2021 18:48:41 +0200
Subject: [PATCH 095/984] Preventing multiple execution of v-backup-users

---
 bin/v-backup-users | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/bin/v-backup-users b/bin/v-backup-users
index 640c1916..5b9f75f4 100755
--- a/bin/v-backup-users
+++ b/bin/v-backup-users
@@ -4,6 +4,14 @@
 #
 # The function backups all system users.
 
+scriptname="v-backup-users"
+pidof -x "$scriptname"
+for pid in $(pidof -x "$scriptname"); do
+    if [ $pid != $$ ]; then
+        echo "[$(date)] : $scriptname : Process is already running with PID $pid"
+        exit 1
+    fi
+done
 
 #----------------------------------------------------------#
 #                    Variable&Function                     #

From 75209618a0f45c9dd67b785be090d5fabe270c51 Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Sun, 4 Apr 2021 18:55:49 +0200
Subject: [PATCH 096/984] Update v-backup-users

---
 bin/v-backup-users | 1 -
 1 file changed, 1 deletion(-)

diff --git a/bin/v-backup-users b/bin/v-backup-users
index 5b9f75f4..9671c9e8 100755
--- a/bin/v-backup-users
+++ b/bin/v-backup-users
@@ -5,7 +5,6 @@
 # The function backups all system users.
 
 scriptname="v-backup-users"
-pidof -x "$scriptname"
 for pid in $(pidof -x "$scriptname"); do
     if [ $pid != $$ ]; then
         echo "[$(date)] : $scriptname : Process is already running with PID $pid"

From 6ac6f50598d8de41b9f77a5819d293e0cc5888e7 Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Sun, 4 Apr 2021 19:05:47 +0200
Subject: [PATCH 097/984] Update vesta_compile.sh

---
 src/deb/vesta_compile.sh | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/deb/vesta_compile.sh b/src/deb/vesta_compile.sh
index d266d228..389781c9 100644
--- a/src/deb/vesta_compile.sh
+++ b/src/deb/vesta_compile.sh
@@ -58,9 +58,9 @@ BUILD_DATE=$(date +"%d-%b-%Y")
 
 # Set Version for compiling
 VESTA_V=$VESTA_VER"_amd64"
-NGINX_V='1.17.7'
-OPENSSL_V='1.1.1d'
-PCRE_V='8.43'
+NGINX_V='1.19.9'
+OPENSSL_V='1.1.1k'
+PCRE_V='8.44'
 ZLIB_V='1.2.11'
 PHP_V='5.6.40'
 

From 23d02598a1829a893766677175fded191eb9dd37 Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Sun, 4 Apr 2021 19:13:17 +0200
Subject: [PATCH 098/984] Update control

---
 src/deb/nginx/control | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/deb/nginx/control b/src/deb/nginx/control
index a263250f..54cada5d 100644
--- a/src/deb/nginx/control
+++ b/src/deb/nginx/control
@@ -1,7 +1,7 @@
 Source: vesta-nginx
 Package: vesta-nginx
 Priority: optional
-Version: 0.9.8-26
+Version: 0.9.8-26-44
 Section: admin
 Maintainer: Predrag Damnjanovic 
 Homepage: http://myvestacp.com

From 7d05689ca9cb42ab90f7c60c19e4215a3d6d9eda Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Sun, 4 Apr 2021 19:17:58 +0200
Subject: [PATCH 099/984] Update copyright

---
 src/deb/nginx/copyright | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/deb/nginx/copyright b/src/deb/nginx/copyright
index 5f58e6bd..3feceb98 100644
--- a/src/deb/nginx/copyright
+++ b/src/deb/nginx/copyright
@@ -3,7 +3,7 @@ Upstream-Name: vesta-nginx
 Source: http://myvestacp.com
 
 Files: *
-Copyright: 2019 MyVesta 
+Copyright: 2021 MyVesta 
 License: GPL-3.0+
 Remarks: MyVesta is a fork from VestaCP, special thanks to vestacp.com and Serghey Rodin
 

From 801395c2b1b2b8f544dcd90f9e5e643a3a1ee280 Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Sun, 4 Apr 2021 19:30:23 +0200
Subject: [PATCH 100/984] vesta-0.9.8-26-44

---
 src/deb/latest.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/deb/latest.txt b/src/deb/latest.txt
index c9ff1cd0..56430e65 100644
--- a/src/deb/latest.txt
+++ b/src/deb/latest.txt
@@ -1 +1 @@
-vesta-0.9.8-26-43
+vesta-0.9.8-26-44

From 5f8579697c187e8621f0191cfd1600e45c9638ad Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Sun, 4 Apr 2021 19:39:04 +0200
Subject: [PATCH 101/984] Update Changelog.md

---
 Changelog.md | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/Changelog.md b/Changelog.md
index a9f65487..250fbb89 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,3 +1,10 @@
+Version 0.9.8-26-44 [04-Apr-2021]
+==================================================
+* [Security] Preventing denial-of-service in openssl library in vesta-nginx service (CVE-2021-3449)
+* [Security] Preventing admin to install non-vesta packages from vesta admin user interface (Credits to: Numan Türle @numanturle)
+* [Bugfix] Preventing multiple execution of v-backup-users
+* [UserInterface] CSS fix for Apache status table (Credits to: Milos Spasic)
+
 Version 0.9.8-26-43 [15-Mar-2021]
 ==================================================
 * [Security] fix for: CSRF remote code execution in UploadHandler.php - CVE-2021-28379 (Credits to: Fady Osman @fady_othman)

From 78f8c0cb110c4e8efb5f0a610d80b34fc994485c Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Sun, 4 Apr 2021 19:41:16 +0200
Subject: [PATCH 102/984] Update Changelog.md

---
 Changelog.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Changelog.md b/Changelog.md
index 250fbb89..d4db2e5c 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,7 +1,7 @@
 Version 0.9.8-26-44 [04-Apr-2021]
 ==================================================
 * [Security] Preventing denial-of-service in openssl library in vesta-nginx service (CVE-2021-3449)
-* [Security] Preventing admin to install non-vesta packages from vesta admin user interface (Credits to: Numan Türle @numanturle)
+* [Security] Preventing admin to install non-vesta packages from vesta admin panel user interface (Credits to: Numan Türle @numanturle)
 * [Bugfix] Preventing multiple execution of v-backup-users
 * [UserInterface] CSS fix for Apache status table (Credits to: Milos Spasic)
 

From 39318bafef7079c02d2bac0a1bd960785ba8491f Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Sun, 11 Apr 2021 16:58:35 +0200
Subject: [PATCH 103/984] Logging LetsEncrypt process

---
 bin/v-add-letsencrypt-domain | 101 ++++++++++++++++++++++++++++++++---
 1 file changed, 93 insertions(+), 8 deletions(-)

diff --git a/bin/v-add-letsencrypt-domain b/bin/v-add-letsencrypt-domain
index 15361ffb..9dbc335f 100755
--- a/bin/v-add-letsencrypt-domain
+++ b/bin/v-add-letsencrypt-domain
@@ -73,11 +73,16 @@ is_object_unsuspended 'user' 'USER' "$user"
 is_object_valid 'web' 'DOMAIN' "$domain"
 is_object_unsuspended 'web' 'DOMAIN' "$domain"
 get_domain_values 'web'
+
+echo "-----------------------------------------------------------------------------------" >> /usr/local/vesta/log/letsencrypt.log
+echo "[$(date)] : v-add-letsencrypt-domain $domain [$aliases]" >> /usr/local/vesta/log/letsencrypt.log
+
 # check if alias is the letsencrypt wildcard domain, if not, make the normal checks
 if [[ "$aliases" != "*.$domain" ]]; then
     for alias in $(echo "$aliases" |tr ',' '\n' |sort -u); do
         check_alias="$(echo $ALIAS |tr ',' '\n' |grep ^$alias$)"
         if [ -z "$check_alias" ]; then
+            echo "[$(date)] : EXIT=domain alias $alias doesn't exist" >> /usr/local/vesta/log/letsencrypt.log
             check_result $E_NOTEXIST "domain alias $alias doesn't exist"
         fi
     done
@@ -88,11 +93,14 @@ fi;
 #----------------------------------------------------------#
 
 # Registering LetsEncrypt user account
+echo "[$(date)] : v-add-letsencrypt-user $user" >> /usr/local/vesta/log/letsencrypt.log
 $BIN/v-add-letsencrypt-user $user
+echo "[$(date)] : result: $?" >> /usr/local/vesta/log/letsencrypt.log
 if [ "$?" -ne 0  ]; then
     touch $VESTA/data/queue/letsencrypt.pipe
     sed -i "/ $domain /d" $VESTA/data/queue/letsencrypt.pipe
     send_notice "LETSENCRYPT" "Account registration failed"
+    echo "[$(date)] : EXIT=LE account registration" >> /usr/local/vesta/log/letsencrypt.log
     check_result $E_CONNECT "LE account registration" >/dev/null
 fi
 
@@ -101,9 +109,11 @@ source $USER_DATA/ssl/le.conf
 
 # Checking wildcard alias
 if [ "$aliases" = "*.$domain" ]; then
+    echo "[$(date)] : Checking wildcard alias" >> /usr/local/vesta/log/letsencrypt.log
     wildcard='yes'
     proto="dns-01"
     if [ ! -e "$VESTA/data/users/$user/dns/$domain.conf" ]; then
+        echo "[$(date)] : EXIT=DNS domain $domain doesn't exist" >> /usr/local/vesta/log/letsencrypt.log
         check_result $E_NOTEXIST "DNS domain $domain doesn't exist"
     fi
 else
@@ -111,14 +121,21 @@ else
 fi
 
 # Requesting nonce / STEP 1
+echo "[$(date)] : --- Requesting nonce / STEP 1 ---" >> /usr/local/vesta/log/letsencrypt.log
+echo "[$(date)] : curl -s -I \"$API/directory\"" >> /usr/local/vesta/log/letsencrypt.log
 answer=$(curl -s -I "$API/directory")
+echo "[$(date)] : answer=$answer" >> /usr/local/vesta/log/letsencrypt.log
 nonce=$(echo "$answer" |grep -i nonce |cut -f2 -d \ |tr -d '\r\n')
+echo "[$(date)] : nonce=$nonce" >> /usr/local/vesta/log/letsencrypt.log
 status=$(echo "$answer"|grep HTTP/ |tail -n1 |cut -f 2 -d ' ')
+echo "[$(date)] : status=$status" >> /usr/local/vesta/log/letsencrypt.log
 if [[ "$status" -ne 200 ]]; then
+    echo "[$(date)] : EXIT=Let's Encrypt nonce request status $status" >> /usr/local/vesta/log/letsencrypt.log
     check_result $E_CONNECT "Let's Encrypt nonce request status $status"
 fi
 
 # Placing new order / STEP 2
+echo "[$(date)] : --- Placing new order / STEP 2 ---" >> /usr/local/vesta/log/letsencrypt.log
 url="$API/acme/new-order"
 payload='{"identifiers":['
 for identifier in $(echo $domain,$aliases |tr ',' '\n' |sort -u); do
@@ -127,38 +144,62 @@ for identifier in $(echo $domain,$aliases |tr ',' '\n' |sort -u); do
 done
 payload=$(echo "$payload"|sed "s/,$//")
 payload=$payload']}'
+echo "[$(date)] : payload=$payload" >> /usr/local/vesta/log/letsencrypt.log
+echo "[$(date)] : query_le_v2 \"$url\" \"$payload\" \"$nonce\"" >> /usr/local/vesta/log/letsencrypt.log
 answer=$(query_le_v2 "$url" "$payload" "$nonce")
+echo "[$(date)] : answer=$answer" >> /usr/local/vesta/log/letsencrypt.log
 nonce=$(echo "$answer" |grep -i nonce |cut -f2 -d \ |tr -d '\r\n')
+echo "[$(date)] : nonce=$nonce" >> /usr/local/vesta/log/letsencrypt.log
 authz=$(echo "$answer" |grep "acme/authz" |cut -f2 -d '"')
+echo "[$(date)] : authz=$authz" >> /usr/local/vesta/log/letsencrypt.log
 finalize=$(echo "$answer" |grep 'finalize":' |cut -f4 -d '"')
+echo "[$(date)] : finalize=$finalize" >> /usr/local/vesta/log/letsencrypt.log
 status=$(echo "$answer" |grep HTTP/ |tail -n1 |cut -f2 -d ' ')
+echo "[$(date)] : status=$status" >> /usr/local/vesta/log/letsencrypt.log
 if [[ "$status" -ne 201 ]]; then
+    echo "[$(date)] : EXIT=Let's Encrypt new auth status $status" >> /usr/local/vesta/log/letsencrypt.log
     check_result $E_CONNECT "Let's Encrypt new auth status $status"
 fi
 
 # Requesting authorization token / STEP 3
+echo "[$(date)] : --- Requesting authorization token / STEP 3 ---" >> /usr/local/vesta/log/letsencrypt.log
 for auth in $authz; do
     payload=''
+    echo "[$(date)] : for auth=$auth" >> /usr/local/vesta/log/letsencrypt.log
+    echo "[$(date)] : query_le_v2 \"$auth\" \"$payload\" \"$nonce\"" >> /usr/local/vesta/log/letsencrypt.log
     answer=$(query_le_v2 "$auth" "$payload" "$nonce")
+    echo "[$(date)] : answer=$answer" >> /usr/local/vesta/log/letsencrypt.log
     url=$(echo "$answer" |grep -A3 $proto |grep url |cut -f 4 -d \")
+    echo "[$(date)] : url=$url" >> /usr/local/vesta/log/letsencrypt.log
     token=$(echo "$answer" |grep -A3 $proto |grep token |cut -f 4 -d \")
+    echo "[$(date)] : token=$token" >> /usr/local/vesta/log/letsencrypt.log
     nonce=$(echo "$answer" |grep -i nonce |cut -f2 -d \ |tr -d '\r\n')
+    echo "[$(date)] : nonce=$nonce" >> /usr/local/vesta/log/letsencrypt.log
     status=$(echo "$answer"|grep HTTP/ |tail -n1 |cut -f 2 -d ' ')
+    echo "[$(date)] : status=$status" >> /usr/local/vesta/log/letsencrypt.log
     if [[ "$status" -ne 200 ]]; then
+        echo "[$(date)] : EXIT=Let's Encrypt acme/authz bad status $status" >> /usr/local/vesta/log/letsencrypt.log
         check_result $E_CONNECT "Let's Encrypt acme/authz bad status $status"
     fi
 
-    # Accepting challenge / STEP 4
+    # Configuring challenge / STEP 4
+    echo "[$(date)] : --- Configuring challenge / STEP 4 ---" >> /usr/local/vesta/log/letsencrypt.log
+    echo "[$(date)] : wildcard=$wildcard" >> /usr/local/vesta/log/letsencrypt.log
     if [ "$wildcard" = 'yes'  ]; then
         record=$(printf "%s" "$token.$THUMB" |\
             openssl dgst -sha256 -binary |encode_base64)
         old_records=$($BIN/v-list-dns-records $user $domain plain|grep 'TXT')
         old_records=$(echo "$old_records" |grep _acme-challenge |cut -f 1)
         for old_record in $old_records; do
-            $BIN/v-delete-dns-record $user $domain $old_record
+            $BIN/v-delete-dns-record "$user" "$domain" "$old_record"
         done
-        $BIN/v-add-dns-record $user $domain "_acme-challenge" "TXT" $record
-        check_result $? "DNS _acme-challenge record wasn't created"
+        $BIN/v-add-dns-record "$user" "$domain" "_acme-challenge" "TXT" "$record"
+        exitstatus=$?
+        echo "[$(date)] : v-add-dns-record \"$user\" \"$domain\" \"_acme-challenge\" \"TXT\" \"$record\"" >> /usr/local/vesta/log/letsencrypt.log
+        if [ "$exitstatus" -ne 0  ]; then
+            echo "[$(date)] : EXIT=DNS _acme-challenge record wasn't created" >> /usr/local/vesta/log/letsencrypt.log
+        fi
+        check_result $exitstatus "DNS _acme-challenge record wasn't created"
     else
         if [ "$WEB_SYSTEM" = 'nginx' ] || [ ! -z "$PROXY_SYSTEM" ]; then
             if [ -f "/usr/local/vesta/web/inc/nginx_proxy" ]; then
@@ -167,6 +208,7 @@ for auth in $authz; do
                 acme_challenge="$well_known/acme-challenge"
                 mkdir -p $acme_challenge
                 echo "$token.$THUMB" > $acme_challenge/$token
+                echo "[$(date)] : in $acme_challenge/$token we put: $token.$THUMB" >> /usr/local/vesta/log/letsencrypt.log
                 chown -R $user:$user $well_known
             else
                 # default nginx method
@@ -179,15 +221,22 @@ for auth in $authz; do
                     echo '    return 200 "$1.'$THUMB'";' >> $conf
                     echo '}' >> $conf
                 fi
+                echo "[$(date)] : in $conf we put: $THUMB" >> /usr/local/vesta/log/letsencrypt.log
                 if [ ! -e "$sconf" ]; then
                     ln -s "$conf" "$sconf"
                 fi
+                echo "[$(date)] : v-restart-proxy" >> /usr/local/vesta/log/letsencrypt.log 
                 $BIN/v-restart-proxy
                 if [ -z "$PROXY_SYSTEM" ]; then
                     # apache-less variant
+                    echo "[$(date)] : v-restart-web" >> /usr/local/vesta/log/letsencrypt.log 
                     $BIN/v-restart-web
                 fi
-                check_result $? "Proxy restart failed" >/dev/null
+                exitstatus=$?
+                if [ "$exitstatus" -ne 0  ]; then
+                    echo "[$(date)] : EXIT=Proxy restart failed = $exitstatus" >> /usr/local/vesta/log/letsencrypt.log
+                fi
+                check_result $exitstatus "Proxy restart failed" >/dev/null
             fi
         else
             well_known="$HOMEDIR/$user/web/$domain/public_html/.well-known"
@@ -195,13 +244,16 @@ for auth in $authz; do
             mkdir -p $acme_challenge
             echo "$token.$THUMB" > $acme_challenge/$token
             chown -R $user:$user $well_known
+            echo "[$(date)] : in $acme_challenge/$token we put: $token.$THUMB" >> /usr/local/vesta/log/letsencrypt.log
             # $BIN/v-restart-web
             # check_result $? "Web restart failed" >/dev/null
         fi
     fi
 
     # Requesting ACME validation / STEP 5
+    echo "[$(date)] : --- Requesting ACME validation / STEP 5 ---" >> /usr/local/vesta/log/letsencrypt.log
     validation_check=$(echo "$answer" |grep '"valid"')
+    echo "[$(date)] : validation_check=$validation_check" >> /usr/local/vesta/log/letsencrypt.log
     if [[ ! -z "$validation_check" ]]; then
         validation='valid'
     else
@@ -211,22 +263,33 @@ for auth in $authz; do
     # Doing pol check on status
     i=1
     while [ "$validation" = 'pending' ]; do
+        echo "[$(date)] : - Doing pol check on status" >> /usr/local/vesta/log/letsencrypt.log
         payload='{}'
+        echo "[$(date)] : query_le_v2 \"$url\" \"$payload\" \"$nonce\"" >> /usr/local/vesta/log/letsencrypt.log
         answer=$(query_le_v2 "$url" "$payload" "$nonce")
+        echo "[$(date)] : answer=$answer" >> /usr/local/vesta/log/letsencrypt.log
         validation=$(echo "$answer"|grep -A1 $proto |tail -n1|cut -f4 -d \")
+        echo "[$(date)] : validation=$validation" >> /usr/local/vesta/log/letsencrypt.log
         nonce=$(echo "$answer" |grep -i nonce |cut -f2 -d \ |tr -d '\r\n')
+        echo "[$(date)] : nonce=$nonce" >> /usr/local/vesta/log/letsencrypt.log
         status=$(echo "$answer"|grep HTTP/ |tail -n1 |cut -f 2 -d ' ')
+        echo "[$(date)] : status=$status" >> /usr/local/vesta/log/letsencrypt.log
         if [[ "$status" -ne 200 ]]; then
+            echo "[$(date)] : EXIT=Let's Encrypt validation status $status" >> /usr/local/vesta/log/letsencrypt.log
             check_result $E_CONNECT "Let's Encrypt validation status $status"
         fi
 
         i=$((i + 1))
         if [ "$i" -gt 10 ]; then
+            echo "[$(date)] : EXIT=Let's Encrypt domain validation timeout" >> /usr/local/vesta/log/letsencrypt.log
             check_result $E_CONNECT "Let's Encrypt domain validation timeout"
         fi
-        sleep $((i*2))
+        sleeping=$((i*2))
+        echo "[$(date)] : sleep $sleeping (i=$i)" >> /usr/local/vesta/log/letsencrypt.log
+        sleep $sleeping
     done
     if [ "$validation" = 'invalid' ]; then
+        echo "[$(date)] : EXIT=Let's Encrypt domain verification failed" >> /usr/local/vesta/log/letsencrypt.log
         check_result $E_CONNECT "Let's Encrypt domain verification failed"
     fi
 done
@@ -237,40 +300,62 @@ ssl_dir=$($BIN/v-generate-ssl-cert "$domain" "info@$domain" "US" "California"\
     "San Francisco" "Vesta" "IT" "$aliases" |tail -n1 |awk '{print $2}')
 
 # Sending CSR to finalize order / STEP 6
+echo "[$(date)] : --- Sending CSR to finalize order / STEP 6 ---" >> /usr/local/vesta/log/letsencrypt.log
+
 csr=$(openssl req -in $ssl_dir/$domain.csr -outform DER |encode_base64)
 payload='{"csr":"'$csr'"}'
+echo "[$(date)] : query_le_v2 \"$finalize\" \"$payload\" \"$nonce\"" >> /usr/local/vesta/log/letsencrypt.log
 answer=$(query_le_v2 "$finalize" "$payload" "$nonce")
+echo "[$(date)] : answer=$answer" >> /usr/local/vesta/log/letsencrypt.log
 nonce=$(echo "$answer" |grep -i nonce |cut -f2 -d \ |tr -d '\r\n')
+echo "[$(date)] : nonce=$nonce" >> /usr/local/vesta/log/letsencrypt.log
 status=$(echo "$answer"|grep HTTP/ |tail -n1 |cut -f 2 -d ' ')
+echo "[$(date)] : status=$status" >> /usr/local/vesta/log/letsencrypt.log
 certificate=$(echo "$answer"|grep 'certificate":' |cut -f4 -d '"')
+echo "[$(date)] : certificate=$certificate" >> /usr/local/vesta/log/letsencrypt.log
 if [[ "$status" -ne 200 ]]; then
+    echo "[$(date)] : EXIT=Let's Encrypt finalize bad status $status" >> /usr/local/vesta/log/letsencrypt.log
     check_result $E_CONNECT "Let's Encrypt finalize bad status $status"
 fi
 
 # Downloading signed certificate / STEP 7
+echo "[$(date)] : --- Downloading signed certificate / STEP 7 ---" >> /usr/local/vesta/log/letsencrypt.log
+echo "[$(date)] : query_le_v2 \"$certificate\" \"\" \"$nonce\"" >> /usr/local/vesta/log/letsencrypt.log
 answer=$(query_le_v2 "$certificate" "" "$nonce" "$ssl_dir/$domain.pem")
+echo "[$(date)] : answer=$answer" >> /usr/local/vesta/log/letsencrypt.log
 status=$(echo "$answer"|grep HTTP/ |tail -n1 |cut -f 2 -d ' ')
+echo "[$(date)] : status=$status" >> /usr/local/vesta/log/letsencrypt.log
 if [[ "$status" -ne 200 ]]; then
     [ -d "$ssl_dir" ] && rm -rf "$ssl_dir"
+    echo "[$(date)] : EXIT=Let's Encrypt downloading signed cert failed status: $status" >> /usr/local/vesta/log/letsencrypt.log
     check_result $E_NOTEXIST "Let's Encrypt downloading signed cert failed status: $status"
 fi
 
 # Splitting up downloaded pem
+echo "[$(date)] : - Splitting up downloaded pem" >> /usr/local/vesta/log/letsencrypt.log
 crt_end=$(grep -n END $ssl_dir/$domain.pem |head -n1 |cut -f1 -d:)
+echo "[$(date)] : crt_end=$crt_end" >> /usr/local/vesta/log/letsencrypt.log
 head -n $crt_end $ssl_dir/$domain.pem > $ssl_dir/$domain.crt
 
 pem_lines=$(wc -l $ssl_dir/$domain.pem |cut -f 1 -d ' ')
+echo "[$(date)] : pem_lines=$pem_lines" >> /usr/local/vesta/log/letsencrypt.log
 ca_end=$(grep -n  "BEGIN" $ssl_dir/$domain.pem |tail -n1 |cut -f 1 -d :)
+echo "[$(date)] : ca_end=$ca_end" >> /usr/local/vesta/log/letsencrypt.log
 ca_end=$(( pem_lines - crt_end + 1 ))
+echo "[$(date)] : ca_end=$ca_end" >> /usr/local/vesta/log/letsencrypt.log
 tail -n $ca_end $ssl_dir/$domain.pem > $ssl_dir/$domain.ca
 
 # Adding SSL
 ssl_home=$(search_objects 'web' 'LETSENCRYPT' 'yes' 'SSL_HOME')
 $BIN/v-delete-web-domain-ssl $user $domain >/dev/null 2>&1
+echo "[$(date)] : v-add-web-domain-ssl $user $domain $ssl_dir $ssl_home" >> /usr/local/vesta/log/letsencrypt.log
 $BIN/v-add-web-domain-ssl $user $domain $ssl_dir $ssl_home
-if [ "$?" -ne '0' ]; then
+$exitstatus=$?
+echo "[$(date)] : v-add-web-domain-ssl status: $exitstatus" >> /usr/local/vesta/log/letsencrypt.log
+if [ "$exitstatus" -ne '0' ]; then
     touch $VESTA/data/queue/letsencrypt.pipe
     sed -i "/ $domain /d" $VESTA/data/queue/letsencrypt.pipe
+    echo "[$(date)] : EXIT=$domain certificate installation failed" >> /usr/local/vesta/log/letsencrypt.log
     send_notice 'LETSENCRYPT' "$domain certificate installation failed"
     check_result $? "SSL install" >/dev/null
 fi
@@ -301,7 +386,7 @@ sed -i "/ $domain /d" $VESTA/data/queue/letsencrypt.pipe
 
 # Notifying user
 send_notice 'LETSENCRYPT' "$domain SSL has been installed successfully"
-
+echo "[$(date)] : EXIT=***** $domain SSL has been installed successfully *****" >> /usr/local/vesta/log/letsencrypt.log
 
 # Logging
 log_event "$OK" "$ARGUMENTS"

From e9b6cd6d0928fe8b5767ae440fdd91e4c2dd328b Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Sun, 11 Apr 2021 18:12:07 +0200
Subject: [PATCH 104/984] Update v-add-letsencrypt-domain

---
 bin/v-add-letsencrypt-domain | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bin/v-add-letsencrypt-domain b/bin/v-add-letsencrypt-domain
index 9dbc335f..a87d7618 100755
--- a/bin/v-add-letsencrypt-domain
+++ b/bin/v-add-letsencrypt-domain
@@ -357,7 +357,7 @@ if [ "$exitstatus" -ne '0' ]; then
     sed -i "/ $domain /d" $VESTA/data/queue/letsencrypt.pipe
     echo "[$(date)] : EXIT=$domain certificate installation failed" >> /usr/local/vesta/log/letsencrypt.log
     send_notice 'LETSENCRYPT' "$domain certificate installation failed"
-    check_result $? "SSL install" >/dev/null
+    check_result $exitstatus "SSL install" >/dev/null
 fi
 
 # Adding LE autorenew cronjob

From f1acff47effc1da5d0013d97d40af4b2121b18dc Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Sun, 11 Apr 2021 18:15:06 +0200
Subject: [PATCH 105/984] Temporary fix for double "END CERTIFICATE"

Credits to HestiaCP @hestiacp
---
 bin/v-add-letsencrypt-domain | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/bin/v-add-letsencrypt-domain b/bin/v-add-letsencrypt-domain
index a87d7618..94ccb9be 100755
--- a/bin/v-add-letsencrypt-domain
+++ b/bin/v-add-letsencrypt-domain
@@ -345,6 +345,11 @@ ca_end=$(( pem_lines - crt_end + 1 ))
 echo "[$(date)] : ca_end=$ca_end" >> /usr/local/vesta/log/letsencrypt.log
 tail -n $ca_end $ssl_dir/$domain.pem > $ssl_dir/$domain.ca
 
+# Temporary fix for double "END CERTIFICATE"
+if [[ $(head -n 1 $ssl_dir/$domain.ca) = "-----END CERTIFICATE-----" ]]; then
+    sed -i '1,2d' $ssl_dir/$domain.ca
+fi
+
 # Adding SSL
 ssl_home=$(search_objects 'web' 'LETSENCRYPT' 'yes' 'SSL_HOME')
 $BIN/v-delete-web-domain-ssl $user $domain >/dev/null 2>&1

From a7b209ff3f65e7e2741a214caee9650b65662a0a Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Sun, 11 Apr 2021 19:39:19 +0200
Subject: [PATCH 106/984] Update v-add-letsencrypt-domain

---
 bin/v-add-letsencrypt-domain | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/bin/v-add-letsencrypt-domain b/bin/v-add-letsencrypt-domain
index 94ccb9be..3f666f67 100755
--- a/bin/v-add-letsencrypt-domain
+++ b/bin/v-add-letsencrypt-domain
@@ -332,17 +332,17 @@ if [[ "$status" -ne 200 ]]; then
 fi
 
 # Splitting up downloaded pem
-echo "[$(date)] : - Splitting up downloaded pem" >> /usr/local/vesta/log/letsencrypt.log
+# echo "[$(date)] : - Splitting up downloaded pem" >> /usr/local/vesta/log/letsencrypt.log
 crt_end=$(grep -n END $ssl_dir/$domain.pem |head -n1 |cut -f1 -d:)
-echo "[$(date)] : crt_end=$crt_end" >> /usr/local/vesta/log/letsencrypt.log
+# echo "[$(date)] : crt_end=$crt_end" >> /usr/local/vesta/log/letsencrypt.log
 head -n $crt_end $ssl_dir/$domain.pem > $ssl_dir/$domain.crt
 
 pem_lines=$(wc -l $ssl_dir/$domain.pem |cut -f 1 -d ' ')
-echo "[$(date)] : pem_lines=$pem_lines" >> /usr/local/vesta/log/letsencrypt.log
+# echo "[$(date)] : pem_lines=$pem_lines" >> /usr/local/vesta/log/letsencrypt.log
 ca_end=$(grep -n  "BEGIN" $ssl_dir/$domain.pem |tail -n1 |cut -f 1 -d :)
-echo "[$(date)] : ca_end=$ca_end" >> /usr/local/vesta/log/letsencrypt.log
+# echo "[$(date)] : ca_end=$ca_end" >> /usr/local/vesta/log/letsencrypt.log
 ca_end=$(( pem_lines - crt_end + 1 ))
-echo "[$(date)] : ca_end=$ca_end" >> /usr/local/vesta/log/letsencrypt.log
+# echo "[$(date)] : ca_end=$ca_end" >> /usr/local/vesta/log/letsencrypt.log
 tail -n $ca_end $ssl_dir/$domain.pem > $ssl_dir/$domain.ca
 
 # Temporary fix for double "END CERTIFICATE"

From 74209ee7dbb393e70271af8c9547c31f52a840bf Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Mon, 12 Apr 2021 00:12:04 +0200
Subject: [PATCH 107/984] Warn admin if LE renewing failed for hostname

---
 bin/v-update-letsencrypt-ssl | 25 +++++++++++++++++++++----
 1 file changed, 21 insertions(+), 4 deletions(-)

diff --git a/bin/v-update-letsencrypt-ssl b/bin/v-update-letsencrypt-ssl
index 36d7a1e9..3105c86c 100755
--- a/bin/v-update-letsencrypt-ssl
+++ b/bin/v-update-letsencrypt-ssl
@@ -23,6 +23,9 @@ source $VESTA/conf/vesta.conf
 #----------------------------------------------------------#
 
 lecounter=0
+hostname=$(hostname)
+
+echo "[$(date)] : -----------------------------------------------------------------------------------" >> /usr/local/vesta/log/letsencrypt_cron.log
 
 # Checking user certificates
 for user in $($BIN/v-list-users plain |cut -f 1); do
@@ -31,8 +34,20 @@ for user in $($BIN/v-list-users plain |cut -f 1); do
     for domain in $(search_objects 'web' 'LETSENCRYPT' 'yes' 'DOMAIN'); do
     
         fail_counter=$(get_web_counter "$user" "$domain" 'LETSENCRYPT_FAIL_COUNT')
-        if [[ "$fail_counter" -ge 7 ]]; then
-            echo "$domain failed $fail_counter times for LetsEncrypt renewing, skipping"
+
+        if [[ "$fail_counter" -ge 8 ]]; then
+            if [ "$hostname" = "$domain" ]; then
+                if [ -z "$SKIP_HOSTNAME_LETSENCRIPT_RENEWING_WARNING" ]; then
+                    email=$(grep CONTACT $VESTA/data/users/admin/user.conf)
+                    email=$(echo "$email" | cut -f 2 -d "'")
+                    echo "hostname $domain failed for LetsEncrypt renewing" | $SENDMAIL -s "LetsEncrypt renewing hostname $hostname" "$email" 'yes'
+                fi
+            fi
+        fi
+
+        if [[ "$fail_counter" -ge 8 ]]; then
+            # echo "$domain failed $fail_counter times for LetsEncrypt renewing, skipping"
+            echo "[$(date)] : $domain failed $fail_counter times for LetsEncrypt renewing, skipping" >> /usr/local/vesta/log/letsencrypt_cron.log
             continue;
         fi
         crt_data=$(openssl x509 -text -in $USER_DATA/ssl/$domain.crt)
@@ -53,11 +68,13 @@ for user in $($BIN/v-list-users plain |cut -f 1); do
             aliases=$(echo "$aliases" |sed -e ':a;N;$!ba;s/\n/,/g')
             msg=$($BIN/v-add-letsencrypt-domain $user $domain $aliases)
             if [ $? -ne 0 ]; then
-                echo "$domain $msg"
                 if [[ $msg == *"is suspended" ]]; then
-                    echo "OK, it's suspended"
+                    echo "[$(date)] : SUSPENDED: $domain $msg" >> /usr/local/vesta/log/letsencrypt_cron.log
                 else
+                    echo "[$(date)] : $domain $msg" >> /usr/local/vesta/log/letsencrypt_cron.log
+                    echo "$domain $msg"
                     fail_counter=$(alter_web_counter "$user" "$domain" 'LETSENCRYPT_FAIL_COUNT')
+                    echo "[$(date)] : fail_counter = $fail_counter" >> /usr/local/vesta/log/letsencrypt_cron.log
                     echo "fail_counter = $fail_counter"
                 fi
             fi

From dba978b2007549097b4f29958b6bea9e488c0378 Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Mon, 12 Apr 2021 00:13:33 +0200
Subject: [PATCH 108/984] Update v-update-letsencrypt-ssl

---
 bin/v-update-letsencrypt-ssl | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/bin/v-update-letsencrypt-ssl b/bin/v-update-letsencrypt-ssl
index 3105c86c..be61c6c9 100755
--- a/bin/v-update-letsencrypt-ssl
+++ b/bin/v-update-letsencrypt-ssl
@@ -35,7 +35,7 @@ for user in $($BIN/v-list-users plain |cut -f 1); do
     
         fail_counter=$(get_web_counter "$user" "$domain" 'LETSENCRYPT_FAIL_COUNT')
 
-        if [[ "$fail_counter" -ge 8 ]]; then
+        if [[ "$fail_counter" -ge 7 ]]; then
             if [ "$hostname" = "$domain" ]; then
                 if [ -z "$SKIP_HOSTNAME_LETSENCRIPT_RENEWING_WARNING" ]; then
                     email=$(grep CONTACT $VESTA/data/users/admin/user.conf)
@@ -45,7 +45,7 @@ for user in $($BIN/v-list-users plain |cut -f 1); do
             fi
         fi
 
-        if [[ "$fail_counter" -ge 8 ]]; then
+        if [[ "$fail_counter" -ge 7 ]]; then
             # echo "$domain failed $fail_counter times for LetsEncrypt renewing, skipping"
             echo "[$(date)] : $domain failed $fail_counter times for LetsEncrypt renewing, skipping" >> /usr/local/vesta/log/letsencrypt_cron.log
             continue;

From 1f56c826e3f2cb0bc5a1052bc57540a44c6de6f7 Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Mon, 12 Apr 2021 10:01:38 +0200
Subject: [PATCH 109/984] Update v-add-letsencrypt-domain

---
 bin/v-add-letsencrypt-domain | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bin/v-add-letsencrypt-domain b/bin/v-add-letsencrypt-domain
index 3f666f67..edd2c8d5 100755
--- a/bin/v-add-letsencrypt-domain
+++ b/bin/v-add-letsencrypt-domain
@@ -355,7 +355,7 @@ ssl_home=$(search_objects 'web' 'LETSENCRYPT' 'yes' 'SSL_HOME')
 $BIN/v-delete-web-domain-ssl $user $domain >/dev/null 2>&1
 echo "[$(date)] : v-add-web-domain-ssl $user $domain $ssl_dir $ssl_home" >> /usr/local/vesta/log/letsencrypt.log
 $BIN/v-add-web-domain-ssl $user $domain $ssl_dir $ssl_home
-$exitstatus=$?
+exitstatus=$?
 echo "[$(date)] : v-add-web-domain-ssl status: $exitstatus" >> /usr/local/vesta/log/letsencrypt.log
 if [ "$exitstatus" -ne '0' ]; then
     touch $VESTA/data/queue/letsencrypt.pipe

From e1d962e60b6025b404f6428824807b5e8baf877c Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Tue, 13 Apr 2021 10:50:53 +0200
Subject: [PATCH 110/984] Introducing UPDATE_SSL_SCRIPT2 callback

---
 bin/v-add-web-domain-ssl | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/bin/v-add-web-domain-ssl b/bin/v-add-web-domain-ssl
index 2c0f78ae..6d9deb9b 100755
--- a/bin/v-add-web-domain-ssl
+++ b/bin/v-add-web-domain-ssl
@@ -149,6 +149,13 @@ if [ ! -z "$UPDATE_SSL_SCRIPT" ]; then
     eval "$UPDATE_SSL_SCRIPT $user $domain"
 fi
 
+UPDATE_SSL_SCRIPT2=''
+source $VESTA/conf/vesta.conf
+if [ ! -z "$UPDATE_SSL_SCRIPT2" ]; then
+    eval "$UPDATE_SSL_SCRIPT2 $user $domain"
+fi
+
+
 # Logging
 log_history "enabled ssl support for $domain"
 log_event "$OK" "$ARGUMENTS"

From d40424eb4d5af632b39d3183d6928184da787eb8 Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Tue, 13 Apr 2021 12:44:27 +0200
Subject: [PATCH 111/984] Create node-app-3000.tpl

---
 .../tools/nodejs-nginx-templates/node-app-3000.tpl        | 8 ++++++++
 1 file changed, 8 insertions(+)
 create mode 100644 src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000.tpl

diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000.tpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000.tpl
new file mode 100644
index 00000000..851ac0dc
--- /dev/null
+++ b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000.tpl
@@ -0,0 +1,8 @@
+server {
+    listen      %ip%:%proxy_port%;
+    server_name %domain_idn% %alias_idn%;
+    location / {
+        rewrite ^(.*) https://%domain_idn%$1 permanent;
+    }
+include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt;
+}

From dd9c8cf1f6f1aca23582c71fafdd78f8df7f591c Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Tue, 13 Apr 2021 12:45:32 +0200
Subject: [PATCH 112/984] nodejs nginx templates

---
 .../node-app-3000-no-https-force.stpl         | 52 +++++++++++++++++++
 .../node-app-3000-no-https-force.tpl          | 45 ++++++++++++++++
 .../node-app-3000-pass-to-https.stpl          | 52 +++++++++++++++++++
 .../node-app-3000-pass-to-https.tpl           |  8 +++
 .../nodejs-nginx-templates/node-app-3000.stpl | 52 +++++++++++++++++++
 .../node-app-nextjs-3000.stpl                 | 37 +++++++++++++
 .../node-app-nextjs-3000.tpl                  |  8 +++
 7 files changed, 254 insertions(+)
 create mode 100644 src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-no-https-force.stpl
 create mode 100644 src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-no-https-force.tpl
 create mode 100644 src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-pass-to-https.stpl
 create mode 100644 src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-pass-to-https.tpl
 create mode 100644 src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000.stpl
 create mode 100644 src/deb/for-download/tools/nodejs-nginx-templates/node-app-nextjs-3000.stpl
 create mode 100644 src/deb/for-download/tools/nodejs-nginx-templates/node-app-nextjs-3000.tpl

diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-no-https-force.stpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-no-https-force.stpl
new file mode 100644
index 00000000..85fb4a95
--- /dev/null
+++ b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-no-https-force.stpl
@@ -0,0 +1,52 @@
+server {
+    listen      %ip%:%proxy_ssl_port%;
+    server_name %domain_idn% %alias_idn%;
+    ssl         on;
+    ssl_certificate      %ssl_pem%;
+    ssl_certificate_key  %ssl_key%;
+    error_log  /var/log/%web_system%/domains/%domain%.error.log error;
+    
+    # test %port_num%
+    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
+    ssl_prefer_server_ciphers on;
+    ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
+
+    root %sdocroot%/public;
+    index index.html;
+
+    location / {
+        proxy_pass      http://localhost:3000;
+        proxy_http_version 1.1;
+        proxy_set_header Upgrade $http_upgrade;
+        proxy_set_header Connection 'upgrade';
+        proxy_set_header Host $host;
+        proxy_cache_bypass $http_upgrade;
+
+
+        # try_files $uri $uri/ @rewrites;
+
+        location ~* ^.+\.(%proxy_extentions%)$ {
+            access_log     /var/log/%web_system%/domains/%domain%.log combined;
+            access_log     /var/log/%web_system%/domains/%domain%.bytes bytes;
+            expires        max;
+        }
+    }
+
+    location @rewrites {
+      rewrite ^(.+)$ /index.html last;
+    }
+
+    location /error/ {
+        alias   %home%/%user%/web/%domain%/document_errors/;
+    }
+
+
+    location ~ /\.ht    {return 404;}
+    location ~ /\.svn/  {return 404;}
+    location ~ /\.git/  {return 404;}
+    location ~ /\.hg/   {return 404;}
+    location ~ /\.bzr/  {return 404;}
+
+    include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt;
+    include %home%/%user%/conf/web/s%proxy_system%.%domain%.conf*;
+}
\ No newline at end of file
diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-no-https-force.tpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-no-https-force.tpl
new file mode 100644
index 00000000..fff0aebb
--- /dev/null
+++ b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-no-https-force.tpl
@@ -0,0 +1,45 @@
+server {
+    listen      %ip%:%proxy_port%;
+    server_name %domain_idn% %alias_idn%;
+    error_log  /var/log/%web_system%/domains/%domain%.error.log error;
+
+    root %sdocroot%/public;
+    index index.html;
+
+    location / {
+        proxy_pass      http://localhost:3000;
+        proxy_http_version 1.1;
+        proxy_set_header Upgrade $http_upgrade;
+        proxy_set_header Connection 'upgrade';
+        proxy_set_header Host $host;
+        proxy_cache_bypass $http_upgrade;
+
+
+        # try_files $uri $uri/ @rewrites;
+
+        location ~* ^.+\.(%proxy_extentions%)$ {
+            access_log     /var/log/%web_system%/domains/%domain%.log combined;
+            access_log     /var/log/%web_system%/domains/%domain%.bytes bytes;
+            expires        max;
+        }
+    }
+
+    location @rewrites {
+      rewrite ^(.+)$ /index.html last;
+    }
+
+    location /error/ {
+        alias   %home%/%user%/web/%domain%/document_errors/;
+    }
+
+    location ~ /\.ht    {return 404;}
+    location ~ /\.svn/  {return 404;}
+    location ~ /\.git/  {return 404;}
+    location ~ /\.hg/   {return 404;}
+    location ~ /\.bzr/  {return 404;}
+
+    disable_symlinks if_not_owner from=%docroot%;
+
+    include %home%/%user%/conf/web/nginx.%domain%.conf*;
+}
+
diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-pass-to-https.stpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-pass-to-https.stpl
new file mode 100644
index 00000000..a392afef
--- /dev/null
+++ b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-pass-to-https.stpl
@@ -0,0 +1,52 @@
+server {
+    listen      %ip%:%proxy_ssl_port%;
+    server_name %domain_idn% %alias_idn%;
+    ssl         on;
+    ssl_certificate      %ssl_pem%;
+    ssl_certificate_key  %ssl_key%;
+    error_log  /var/log/%web_system%/domains/%domain%.error.log error;
+    
+    # test %port_num%
+    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
+    ssl_prefer_server_ciphers on;
+    ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
+
+    root %sdocroot%/public;
+    index index.html;
+
+    location / {
+        proxy_pass      https://localhost:3000;
+        proxy_http_version 1.1;
+        proxy_set_header Upgrade $http_upgrade;
+        proxy_set_header Connection 'upgrade';
+        proxy_set_header Host $host;
+        proxy_cache_bypass $http_upgrade;
+
+
+        # try_files $uri $uri/ @rewrites;
+
+        location ~* ^.+\.(%proxy_extentions%)$ {
+            access_log     /var/log/%web_system%/domains/%domain%.log combined;
+            access_log     /var/log/%web_system%/domains/%domain%.bytes bytes;
+            expires        max;
+        }
+    }
+
+    location @rewrites {
+      rewrite ^(.+)$ /index.html last;
+    }
+
+    location /error/ {
+        alias   %home%/%user%/web/%domain%/document_errors/;
+    }
+
+
+    location ~ /\.ht    {return 404;}
+    location ~ /\.svn/  {return 404;}
+    location ~ /\.git/  {return 404;}
+    location ~ /\.hg/   {return 404;}
+    location ~ /\.bzr/  {return 404;}
+
+    include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt;
+    include %home%/%user%/conf/web/s%proxy_system%.%domain%.conf*;
+}
\ No newline at end of file
diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-pass-to-https.tpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-pass-to-https.tpl
new file mode 100644
index 00000000..851ac0dc
--- /dev/null
+++ b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-pass-to-https.tpl
@@ -0,0 +1,8 @@
+server {
+    listen      %ip%:%proxy_port%;
+    server_name %domain_idn% %alias_idn%;
+    location / {
+        rewrite ^(.*) https://%domain_idn%$1 permanent;
+    }
+include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt;
+}
diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000.stpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000.stpl
new file mode 100644
index 00000000..85fb4a95
--- /dev/null
+++ b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000.stpl
@@ -0,0 +1,52 @@
+server {
+    listen      %ip%:%proxy_ssl_port%;
+    server_name %domain_idn% %alias_idn%;
+    ssl         on;
+    ssl_certificate      %ssl_pem%;
+    ssl_certificate_key  %ssl_key%;
+    error_log  /var/log/%web_system%/domains/%domain%.error.log error;
+    
+    # test %port_num%
+    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
+    ssl_prefer_server_ciphers on;
+    ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
+
+    root %sdocroot%/public;
+    index index.html;
+
+    location / {
+        proxy_pass      http://localhost:3000;
+        proxy_http_version 1.1;
+        proxy_set_header Upgrade $http_upgrade;
+        proxy_set_header Connection 'upgrade';
+        proxy_set_header Host $host;
+        proxy_cache_bypass $http_upgrade;
+
+
+        # try_files $uri $uri/ @rewrites;
+
+        location ~* ^.+\.(%proxy_extentions%)$ {
+            access_log     /var/log/%web_system%/domains/%domain%.log combined;
+            access_log     /var/log/%web_system%/domains/%domain%.bytes bytes;
+            expires        max;
+        }
+    }
+
+    location @rewrites {
+      rewrite ^(.+)$ /index.html last;
+    }
+
+    location /error/ {
+        alias   %home%/%user%/web/%domain%/document_errors/;
+    }
+
+
+    location ~ /\.ht    {return 404;}
+    location ~ /\.svn/  {return 404;}
+    location ~ /\.git/  {return 404;}
+    location ~ /\.hg/   {return 404;}
+    location ~ /\.bzr/  {return 404;}
+
+    include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt;
+    include %home%/%user%/conf/web/s%proxy_system%.%domain%.conf*;
+}
\ No newline at end of file
diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-nextjs-3000.stpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-nextjs-3000.stpl
new file mode 100644
index 00000000..1d8dcffe
--- /dev/null
+++ b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-nextjs-3000.stpl
@@ -0,0 +1,37 @@
+server {
+    listen      %ip%:%proxy_ssl_port%;
+    server_name %domain_idn% %alias_idn%;
+    ssl         on;
+    ssl_certificate      %ssl_pem%;
+    ssl_certificate_key  %ssl_key%;
+    error_log  /var/log/%web_system%/domains/%domain%.error.log error;
+    
+    # test %port_num%
+    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
+    ssl_prefer_server_ciphers on;
+    ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
+
+    location / {
+        # reverse proxy for next server
+        proxy_pass http://localhost:3000;
+        proxy_http_version 1.1;
+        proxy_set_header Upgrade $http_upgrade;
+        proxy_set_header Connection 'upgrade';
+        proxy_set_header Host $host;
+        proxy_cache_bypass $http_upgrade;
+      
+        # we need to remove this 404 handling
+        # because next's _next folder and own handling
+        # try_files $uri $uri/ =404;
+    }
+
+
+    location ~ /\.ht    {return 404;}
+    location ~ /\.svn/  {return 404;}
+    location ~ /\.git/  {return 404;}
+    location ~ /\.hg/   {return 404;}
+    location ~ /\.bzr/  {return 404;}
+
+    include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt;
+    include %home%/%user%/conf/web/s%proxy_system%.%domain%.conf*;
+}
\ No newline at end of file
diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-nextjs-3000.tpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-nextjs-3000.tpl
new file mode 100644
index 00000000..851ac0dc
--- /dev/null
+++ b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-nextjs-3000.tpl
@@ -0,0 +1,8 @@
+server {
+    listen      %ip%:%proxy_port%;
+    server_name %domain_idn% %alias_idn%;
+    location / {
+        rewrite ^(.*) https://%domain_idn%$1 permanent;
+    }
+include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt;
+}

From d03d8e95371f9599b29ac7708e29b99549f3983c Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Tue, 13 Apr 2021 18:07:03 +0200
Subject: [PATCH 113/984] send_email_to_admin function

---
 func/main.sh | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/func/main.sh b/func/main.sh
index c128202b..5f71bb1f 100644
--- a/func/main.sh
+++ b/func/main.sh
@@ -1098,3 +1098,19 @@ no_symlink_chmod() {
         chmod "${filemode}" "${i}"
     done
 }
+
+# $1 = subject
+# $2 = body
+send_email_to_admin() {
+    email=$(grep CONTACT /usr/local/vesta/data/users/admin/user.conf)
+    email=$(echo "$email" | cut -f 2 -d "'")
+    if [ -z "$email" ]; then
+        if [ ! -z "$NOTIFY_ADMIN_FULL_BACKUP" ]; then
+            email=$NOTIFY_ADMIN_FULL_BACKUP
+        fi
+    fi
+    if [ -z "$email" ]; then
+        return;
+    fi
+    echo "$2" | $SENDMAIL -s "$1" "$email" 'yes'
+}

From 6b30357f9a3997917f9ea4d1cb8765e940e5515a Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Tue, 13 Apr 2021 18:09:33 +0200
Subject: [PATCH 114/984] Update v-update-letsencrypt-ssl

---
 bin/v-update-letsencrypt-ssl | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/bin/v-update-letsencrypt-ssl b/bin/v-update-letsencrypt-ssl
index be61c6c9..aa1f8167 100755
--- a/bin/v-update-letsencrypt-ssl
+++ b/bin/v-update-letsencrypt-ssl
@@ -38,9 +38,7 @@ for user in $($BIN/v-list-users plain |cut -f 1); do
         if [[ "$fail_counter" -ge 7 ]]; then
             if [ "$hostname" = "$domain" ]; then
                 if [ -z "$SKIP_HOSTNAME_LETSENCRIPT_RENEWING_WARNING" ]; then
-                    email=$(grep CONTACT $VESTA/data/users/admin/user.conf)
-                    email=$(echo "$email" | cut -f 2 -d "'")
-                    echo "hostname $domain failed for LetsEncrypt renewing" | $SENDMAIL -s "LetsEncrypt renewing hostname $hostname" "$email" 'yes'
+                    send_email_to_admin "LetsEncrypt renewing hostname $hostname" "Warning: hostname $domain failed for LetsEncrypt renewing"
                 fi
             fi
         fi

From be9710f9ead3ce8142d7cff8b76399c4bf04fcc1 Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Tue, 13 Apr 2021 18:25:56 +0200
Subject: [PATCH 115/984] Update v-update-letsencrypt-ssl

---
 bin/v-update-letsencrypt-ssl | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/bin/v-update-letsencrypt-ssl b/bin/v-update-letsencrypt-ssl
index aa1f8167..80b07159 100755
--- a/bin/v-update-letsencrypt-ssl
+++ b/bin/v-update-letsencrypt-ssl
@@ -35,11 +35,10 @@ for user in $($BIN/v-list-users plain |cut -f 1); do
     
         fail_counter=$(get_web_counter "$user" "$domain" 'LETSENCRYPT_FAIL_COUNT')
 
-        if [[ "$fail_counter" -ge 7 ]]; then
+        if [[ "$fail_counter" -eq 7 ]]; then
             if [ "$hostname" = "$domain" ]; then
-                if [ -z "$SKIP_HOSTNAME_LETSENCRIPT_RENEWING_WARNING" ]; then
-                    send_email_to_admin "LetsEncrypt renewing hostname $hostname" "Warning: hostname $domain failed for LetsEncrypt renewing"
-                fi
+                fail_counter=$(alter_web_counter "$user" "$domain" 'LETSENCRYPT_FAIL_COUNT')
+                send_email_to_admin "LetsEncrypt renewing hostname $hostname" "Warning: hostname $domain failed for LetsEncrypt renewing"
             fi
         fi
 

From 3611b888e572257eb0b6a18b4627452452686c20 Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Tue, 13 Apr 2021 18:55:22 +0200
Subject: [PATCH 116/984] Update v-update-letsencrypt-ssl

---
 bin/v-update-letsencrypt-ssl | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/bin/v-update-letsencrypt-ssl b/bin/v-update-letsencrypt-ssl
index 80b07159..ac3e2eda 100755
--- a/bin/v-update-letsencrypt-ssl
+++ b/bin/v-update-letsencrypt-ssl
@@ -33,16 +33,20 @@ for user in $($BIN/v-list-users plain |cut -f 1); do
 
     for domain in $(search_objects 'web' 'LETSENCRYPT' 'yes' 'DOMAIN'); do
     
+        limit_check=1
         fail_counter=$(get_web_counter "$user" "$domain" 'LETSENCRYPT_FAIL_COUNT')
 
-        if [[ "$fail_counter" -eq 7 ]]; then
-            if [ "$hostname" = "$domain" ]; then
+        if [[ "$hostname" = "$domain" ]]; then
+            if [[ "$fail_counter" -eq 7 ]]; then
+                limit_check=0
+            fi
+            if [[ "$fail_counter" -eq 8 ]]; then
                 fail_counter=$(alter_web_counter "$user" "$domain" 'LETSENCRYPT_FAIL_COUNT')
                 send_email_to_admin "LetsEncrypt renewing hostname $hostname" "Warning: hostname $domain failed for LetsEncrypt renewing"
             fi
         fi
 
-        if [[ "$fail_counter" -ge 7 ]]; then
+        if [[ "$fail_counter" -ge 7 ]] && [[ "$limit_check" -eq 1 ]]; then
             # echo "$domain failed $fail_counter times for LetsEncrypt renewing, skipping"
             echo "[$(date)] : $domain failed $fail_counter times for LetsEncrypt renewing, skipping" >> /usr/local/vesta/log/letsencrypt_cron.log
             continue;

From 76efd9a1cd14bd5eb05d1a6ab3606596168d34a2 Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Tue, 13 Apr 2021 19:05:07 +0200
Subject: [PATCH 117/984] Version 0.9.8-26-45

---
 src/deb/latest.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/deb/latest.txt b/src/deb/latest.txt
index 56430e65..c95b3f55 100644
--- a/src/deb/latest.txt
+++ b/src/deb/latest.txt
@@ -1 +1 @@
-vesta-0.9.8-26-44
+vesta-0.9.8-26-45

From 7c5948b579df8e7944c0183c1807d5ddd69e131f Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Tue, 13 Apr 2021 19:12:17 +0200
Subject: [PATCH 118/984] Update Changelog.md

---
 Changelog.md | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/Changelog.md b/Changelog.md
index d4db2e5c..cedb6cc7 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,4 +1,10 @@
-Version 0.9.8-26-44 [04-Apr-2021]
+Version 0.9.8-26-45 [13-Apr-2021]
+==================================================
+* [Feature] Logging whole LetsEncrypt process to /usr/local/vesta/log/letsencrypt.log and /usr/local/vesta/log/letsencrypt_cron.log
+* [Feature] Warn admin once (by sending email) if LetsEncrypt renewing failed for server hostname
+* [Bugfix] Correct truncating of CA LetsEncrypt certificate (thanks to HestiaCP @hestiacp for fix)
+
+* Version 0.9.8-26-44 [04-Apr-2021]
 ==================================================
 * [Security] Preventing denial-of-service in openssl library in vesta-nginx service (CVE-2021-3449)
 * [Security] Preventing admin to install non-vesta packages from vesta admin panel user interface (Credits to: Numan Türle @numanturle)

From 7293dd9f7b9de9310b97db0e5a2348a3dab39671 Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Tue, 13 Apr 2021 19:12:41 +0200
Subject: [PATCH 119/984] Update Changelog.md

---
 Changelog.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Changelog.md b/Changelog.md
index cedb6cc7..78567100 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -4,7 +4,7 @@ Version 0.9.8-26-45 [13-Apr-2021]
 * [Feature] Warn admin once (by sending email) if LetsEncrypt renewing failed for server hostname
 * [Bugfix] Correct truncating of CA LetsEncrypt certificate (thanks to HestiaCP @hestiacp for fix)
 
-* Version 0.9.8-26-44 [04-Apr-2021]
+Version 0.9.8-26-44 [04-Apr-2021]
 ==================================================
 * [Security] Preventing denial-of-service in openssl library in vesta-nginx service (CVE-2021-3449)
 * [Security] Preventing admin to install non-vesta packages from vesta admin panel user interface (Credits to: Numan Türle @numanturle)

From e6067fa57be7528ff224aa2015a4ba19936544f7 Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Tue, 13 Apr 2021 21:16:22 +0200
Subject: [PATCH 120/984] Rename node-app-nextjs-3000.stpl to
 node-app-that-also-handle-static files-3000.stpl

---
 ...00.stpl => node-app-that-also-handle-static files-3000.stpl} | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
 rename src/deb/for-download/tools/nodejs-nginx-templates/{node-app-nextjs-3000.stpl => node-app-that-also-handle-static files-3000.stpl} (99%)

diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-nextjs-3000.stpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-that-also-handle-static files-3000.stpl
similarity index 99%
rename from src/deb/for-download/tools/nodejs-nginx-templates/node-app-nextjs-3000.stpl
rename to src/deb/for-download/tools/nodejs-nginx-templates/node-app-that-also-handle-static files-3000.stpl
index 1d8dcffe..9b0a5853 100644
--- a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-nextjs-3000.stpl
+++ b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-that-also-handle-static files-3000.stpl	
@@ -34,4 +34,4 @@ server {
 
     include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt;
     include %home%/%user%/conf/web/s%proxy_system%.%domain%.conf*;
-}
\ No newline at end of file
+}

From 2a4832abf53a1bbad8b066a245ecad38e933d22c Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Tue, 13 Apr 2021 21:19:57 +0200
Subject: [PATCH 121/984] Update and rename node-app-nextjs-3000.tpl to
 node-app-that-also-handle-static files-3000tpl

---
 .../node-app-nextjs-3000.tpl                  |  8 -----
 ...-app-that-also-handle-static files-3000tpl | 29 +++++++++++++++++++
 2 files changed, 29 insertions(+), 8 deletions(-)
 delete mode 100644 src/deb/for-download/tools/nodejs-nginx-templates/node-app-nextjs-3000.tpl
 create mode 100644 src/deb/for-download/tools/nodejs-nginx-templates/node-app-that-also-handle-static files-3000tpl

diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-nextjs-3000.tpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-nextjs-3000.tpl
deleted file mode 100644
index 851ac0dc..00000000
--- a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-nextjs-3000.tpl
+++ /dev/null
@@ -1,8 +0,0 @@
-server {
-    listen      %ip%:%proxy_port%;
-    server_name %domain_idn% %alias_idn%;
-    location / {
-        rewrite ^(.*) https://%domain_idn%$1 permanent;
-    }
-include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt;
-}
diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-that-also-handle-static files-3000tpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-that-also-handle-static files-3000tpl
new file mode 100644
index 00000000..93267737
--- /dev/null
+++ b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-that-also-handle-static files-3000tpl	
@@ -0,0 +1,29 @@
+server {
+    listen      %ip%:%proxy_port%;
+    server_name %domain_idn% %alias_idn%;
+    error_log  /var/log/%web_system%/domains/%domain%.error.log error;
+
+    location / {
+        # reverse proxy for next server
+        proxy_pass http://localhost:3000;
+        proxy_http_version 1.1;
+        proxy_set_header Upgrade $http_upgrade;
+        proxy_set_header Connection 'upgrade';
+        proxy_set_header Host $host;
+        proxy_cache_bypass $http_upgrade;
+      
+        # we need to remove this 404 handling
+        # because next's _next folder and own handling
+        # try_files $uri $uri/ =404;
+    }
+
+    location ~ /\.ht    {return 404;}
+    location ~ /\.svn/  {return 404;}
+    location ~ /\.git/  {return 404;}
+    location ~ /\.hg/   {return 404;}
+    location ~ /\.bzr/  {return 404;}
+
+    disable_symlinks if_not_owner from=%docroot%;
+
+    include %home%/%user%/conf/web/nginx.%domain%.conf*;
+}

From a4732472084c5959a008ad87a38932ddac3aa62b Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Tue, 13 Apr 2021 21:24:34 +0200
Subject: [PATCH 122/984] Rename node-app-that-also-handle-static
 files-3000.stpl to node-app-also-handle-static files-3000.stpl

---
 ...iles-3000.stpl => node-app-also-handle-static files-3000.stpl} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename src/deb/for-download/tools/nodejs-nginx-templates/{node-app-that-also-handle-static files-3000.stpl => node-app-also-handle-static files-3000.stpl} (100%)

diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-that-also-handle-static files-3000.stpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-also-handle-static files-3000.stpl
similarity index 100%
rename from src/deb/for-download/tools/nodejs-nginx-templates/node-app-that-also-handle-static files-3000.stpl
rename to src/deb/for-download/tools/nodejs-nginx-templates/node-app-also-handle-static files-3000.stpl

From 3bc6bcd9ab96039b7a782d21c53c39b5821b0dc5 Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Tue, 13 Apr 2021 21:24:59 +0200
Subject: [PATCH 123/984] Rename node-app-that-also-handle-static files-3000tpl
 to node-app-also-handle-static files-3000tpl

---
 ...ic files-3000tpl => node-app-also-handle-static files-3000tpl} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename src/deb/for-download/tools/nodejs-nginx-templates/{node-app-that-also-handle-static files-3000tpl => node-app-also-handle-static files-3000tpl} (100%)

diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-that-also-handle-static files-3000tpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-also-handle-static files-3000tpl
similarity index 100%
rename from src/deb/for-download/tools/nodejs-nginx-templates/node-app-that-also-handle-static files-3000tpl
rename to src/deb/for-download/tools/nodejs-nginx-templates/node-app-also-handle-static files-3000tpl

From c5e4a069fa345520ced3ad5a08e105d13399e326 Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Tue, 13 Apr 2021 21:27:51 +0200
Subject: [PATCH 124/984] Rename node-app-also-handle-static files-3000.stpl to
 node-app-also-handle-static-files-3000.stpl

---
 ...iles-3000.stpl => node-app-also-handle-static-files-3000.stpl} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename src/deb/for-download/tools/nodejs-nginx-templates/{node-app-also-handle-static files-3000.stpl => node-app-also-handle-static-files-3000.stpl} (100%)

diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-also-handle-static files-3000.stpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-also-handle-static-files-3000.stpl
similarity index 100%
rename from src/deb/for-download/tools/nodejs-nginx-templates/node-app-also-handle-static files-3000.stpl
rename to src/deb/for-download/tools/nodejs-nginx-templates/node-app-also-handle-static-files-3000.stpl

From 74823ca988ed552eac4797c7de6b02018548ad00 Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Tue, 13 Apr 2021 21:28:21 +0200
Subject: [PATCH 125/984] Rename node-app-also-handle-static files-3000tpl to
 node-app-also-handle-static-files-3000tpl

---
 ...ic files-3000tpl => node-app-also-handle-static-files-3000tpl} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename src/deb/for-download/tools/nodejs-nginx-templates/{node-app-also-handle-static files-3000tpl => node-app-also-handle-static-files-3000tpl} (100%)

diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-also-handle-static files-3000tpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-also-handle-static-files-3000tpl
similarity index 100%
rename from src/deb/for-download/tools/nodejs-nginx-templates/node-app-also-handle-static files-3000tpl
rename to src/deb/for-download/tools/nodejs-nginx-templates/node-app-also-handle-static-files-3000tpl

From 543e6b5bc9c9796a287d876318311970d262bc33 Mon Sep 17 00:00:00 2001
From: myvesta <38690722+myvesta@users.noreply.github.com>
Date: Thu, 15 Apr 2021 20:24:33 +0200
Subject: [PATCH 126/984] Sorting issue fix

Closing https://github.com/myvesta/vesta/issues/116
Thanks to @jaapmarcus and @hestiacp
---
 web/templates/admin/list_user.html | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/web/templates/admin/list_user.html b/web/templates/admin/list_user.html
index 4685d183..7dd47577 100644
--- a/web/templates/admin/list_user.html
+++ b/web/templates/admin/list_user.html
@@ -81,7 +81,7 @@
       ?>
 
       
From b7c6eba7a54f935465d48455ca43c9b396a49e27 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 17 Apr 2021 18:24:17 +0200 Subject: [PATCH 127/984] New cloudflare IP addresses --- install/debian/10/nginx/nginx.conf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/install/debian/10/nginx/nginx.conf b/install/debian/10/nginx/nginx.conf index ccf657de..6d5e36ba 100644 --- a/install/debian/10/nginx/nginx.conf +++ b/install/debian/10/nginx/nginx.conf @@ -77,6 +77,8 @@ http { set_real_ip_from 103.21.244.0/22; set_real_ip_from 103.22.200.0/22; set_real_ip_from 103.31.4.0/22; + set_real_ip_from 104.16.0.0/13; + set_real_ip_from 104.24.0.0/14; set_real_ip_from 141.101.64.0/18; set_real_ip_from 108.162.192.0/18; set_real_ip_from 190.93.240.0/20; @@ -84,7 +86,6 @@ http { set_real_ip_from 197.234.240.0/22; set_real_ip_from 198.41.128.0/17; set_real_ip_from 162.158.0.0/15; - set_real_ip_from 104.16.0.0/12; set_real_ip_from 172.64.0.0/13; set_real_ip_from 131.0.72.0/22; set_real_ip_from 2400:cb00::/32; From b207d508d87f1971d9d96a3e3ba287cf4f7dd373 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 17 Apr 2021 18:27:47 +0200 Subject: [PATCH 128/984] New cloudflare IP adresses --- install/debian/9/nginx/nginx.conf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/install/debian/9/nginx/nginx.conf b/install/debian/9/nginx/nginx.conf index 745e1082..989c6b63 100644 --- a/install/debian/9/nginx/nginx.conf +++ b/install/debian/9/nginx/nginx.conf @@ -76,6 +76,8 @@ http { set_real_ip_from 103.21.244.0/22; set_real_ip_from 103.22.200.0/22; set_real_ip_from 103.31.4.0/22; + set_real_ip_from 104.16.0.0/13; + set_real_ip_from 104.24.0.0/14; set_real_ip_from 141.101.64.0/18; set_real_ip_from 108.162.192.0/18; set_real_ip_from 190.93.240.0/20; @@ -83,7 +85,6 @@ http { set_real_ip_from 197.234.240.0/22; set_real_ip_from 198.41.128.0/17; set_real_ip_from 162.158.0.0/15; - set_real_ip_from 104.16.0.0/12; set_real_ip_from 172.64.0.0/13; set_real_ip_from 131.0.72.0/22; set_real_ip_from 2400:cb00::/32; From 0ad91de3a35249be529f88c6409a5b95e54fba91 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 17 Apr 2021 18:29:19 +0200 Subject: [PATCH 129/984] New cloudflare IP adresses --- install/debian/8/nginx/nginx.conf | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/install/debian/8/nginx/nginx.conf b/install/debian/8/nginx/nginx.conf index 65520501..989c6b63 100644 --- a/install/debian/8/nginx/nginx.conf +++ b/install/debian/8/nginx/nginx.conf @@ -72,27 +72,28 @@ http { # Cloudflare https://www.cloudflare.com/ips + set_real_ip_from 173.245.48.0/20; set_real_ip_from 103.21.244.0/22; set_real_ip_from 103.22.200.0/22; set_real_ip_from 103.31.4.0/22; - set_real_ip_from 104.16.0.0/12; - set_real_ip_from 108.162.192.0/18; - set_real_ip_from 131.0.72.0/22; + set_real_ip_from 104.16.0.0/13; + set_real_ip_from 104.24.0.0/14; set_real_ip_from 141.101.64.0/18; - set_real_ip_from 162.158.0.0/15; - set_real_ip_from 172.64.0.0/13; - set_real_ip_from 173.245.48.0/20; - set_real_ip_from 188.114.96.0/20; + set_real_ip_from 108.162.192.0/18; set_real_ip_from 190.93.240.0/20; + set_real_ip_from 188.114.96.0/20; set_real_ip_from 197.234.240.0/22; set_real_ip_from 198.41.128.0/17; + set_real_ip_from 162.158.0.0/15; + set_real_ip_from 172.64.0.0/13; + set_real_ip_from 131.0.72.0/22; set_real_ip_from 2400:cb00::/32; set_real_ip_from 2606:4700::/32; set_real_ip_from 2803:f800::/32; set_real_ip_from 2405:b500::/32; set_real_ip_from 2405:8100::/32; - set_real_ip_from 2c0f:f248::/32; set_real_ip_from 2a06:98c0::/29; + set_real_ip_from 2c0f:f248::/32; real_ip_header CF-Connecting-IP; From 79402b233604615eb3b281dc2b787448977bb582 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 17 Apr 2021 18:46:49 +0200 Subject: [PATCH 130/984] Updating CloudFlare IP addresses --- src/deb/vesta/postinst | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/deb/vesta/postinst b/src/deb/vesta/postinst index acf13709..c9154edc 100755 --- a/src/deb/vesta/postinst +++ b/src/deb/vesta/postinst @@ -23,6 +23,16 @@ fi echo "1" > /usr/local/vesta/data/upgrades/show_changelog chmod a=rw /usr/local/vesta/data/upgrades/show_changelog +# Updating CloudFlare IP addresses +if [ ! -f "/usr/local/vesta/data/upgrades/update-cloudflare-ips" ]; then + if [ -f "/etc/nginx/nginx.conf" ]; then + touch /usr/local/vesta/data/upgrades/update-cloudflare-ips + echo "== Updating CloudFlare IP addresses" + sed -i 's/ set_real_ip_from 104.16.0.0/12;/ set_real_ip_from 104.16.0.0/13;\n set_real_ip_from 104.24.0.0/14;/g' /etc/nginx/nginx.conf + systemctl restart nginx + fi +fi + # Tuning of php-fpm pool.d config files (perfomances and limits) if [ ! -f "/usr/local/vesta/data/upgrades/tune-fpm-config-files-v2" ]; then touch /usr/local/vesta/data/upgrades/tune-fpm-config-files-v2 From 92fa49bd6cb1623ccbf3e6032e19466491fdc6a6 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 17 Apr 2021 18:50:33 +0200 Subject: [PATCH 131/984] Update vst-install-debian.sh --- install/vst-install-debian.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index ec1928e0..d433af05 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -1630,6 +1630,7 @@ touch /usr/local/vesta/data/upgrades/clearing-letsencrypt-pipe touch /usr/local/vesta/data/upgrades/limit_max_recipients touch /usr/local/vesta/data/upgrades/roundcube_smtp_auth touch /usr/local/vesta/data/upgrades/apache_status_public_access +touch /usr/local/vesta/data/upgrades/update-cloudflare-ips # Secret URL secretquery='' From c7a089b37e24f67b20e24dd44f901e711cb82737 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 17 Apr 2021 19:09:01 +0200 Subject: [PATCH 132/984] Updating CloudFlare IP addresses --- src/deb/vesta/postinst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/vesta/postinst b/src/deb/vesta/postinst index c9154edc..35194389 100755 --- a/src/deb/vesta/postinst +++ b/src/deb/vesta/postinst @@ -28,7 +28,7 @@ if [ ! -f "/usr/local/vesta/data/upgrades/update-cloudflare-ips" ]; then if [ -f "/etc/nginx/nginx.conf" ]; then touch /usr/local/vesta/data/upgrades/update-cloudflare-ips echo "== Updating CloudFlare IP addresses" - sed -i 's/ set_real_ip_from 104.16.0.0/12;/ set_real_ip_from 104.16.0.0/13;\n set_real_ip_from 104.24.0.0/14;/g' /etc/nginx/nginx.conf + sed -i "s| set_real_ip_from 104.16.0.0\/12;| set_real_ip_from 104.16.0.0/13;\n set_real_ip_from 104.24.0.0/14;|g" /etc/nginx/nginx.conf systemctl restart nginx fi fi From 693ad5cff270c9af6fc24d7d4a39af4b690922a5 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 17 Apr 2021 19:30:07 +0200 Subject: [PATCH 133/984] Version 0.9.8-26-46 --- src/deb/latest.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/latest.txt b/src/deb/latest.txt index c95b3f55..82624a72 100644 --- a/src/deb/latest.txt +++ b/src/deb/latest.txt @@ -1 +1 @@ -vesta-0.9.8-26-45 +vesta-0.9.8-26-46 From 54fbba596b96472b48a3327df50dae7dcfe2fe5a Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 17 Apr 2021 19:32:17 +0200 Subject: [PATCH 134/984] Update Changelog.md --- Changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Changelog.md b/Changelog.md index 78567100..dc9ff804 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,7 @@ +Version 0.9.8-26-46 [17-Apr-2021] +================================================== +* [Feature] Updating CloudFlare IP addresses + Version 0.9.8-26-45 [13-Apr-2021] ================================================== * [Feature] Logging whole LetsEncrypt process to /usr/local/vesta/log/letsencrypt.log and /usr/local/vesta/log/letsencrypt_cron.log From 5b7c04a8f218a3d9691a6cf965d720868d8ab0c3 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Wed, 21 Apr 2021 21:47:30 +0200 Subject: [PATCH 135/984] Rename node-app-also-handle-static-files-3000tpl to node-app-also-handle-static-files-3000.tpl --- ...c-files-3000tpl => node-app-also-handle-static-files-3000.tpl} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/deb/for-download/tools/nodejs-nginx-templates/{node-app-also-handle-static-files-3000tpl => node-app-also-handle-static-files-3000.tpl} (100%) diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-also-handle-static-files-3000tpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-also-handle-static-files-3000.tpl similarity index 100% rename from src/deb/for-download/tools/nodejs-nginx-templates/node-app-also-handle-static-files-3000tpl rename to src/deb/for-download/tools/nodejs-nginx-templates/node-app-also-handle-static-files-3000.tpl From fe1f5f91f299417f9e3fdde64ce705ab95f59f88 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 30 Apr 2021 03:49:41 +0200 Subject: [PATCH 136/984] proftpd tls.conf --- install/debian/10/proftpd/tls.conf | 63 ++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 install/debian/10/proftpd/tls.conf diff --git a/install/debian/10/proftpd/tls.conf b/install/debian/10/proftpd/tls.conf new file mode 100644 index 00000000..9da0017b --- /dev/null +++ b/install/debian/10/proftpd/tls.conf @@ -0,0 +1,63 @@ +# +# Proftpd sample configuration for FTPS connections. +# +# Note that FTPS impose some limitations in NAT traversing. +# See http://www.castaglia.org/proftpd/doc/contrib/ProFTPD-mini-HOWTO-TLS.html +# for more information. +# + + # If mod_tls was built as a shared/DSO module, load it + LoadModule mod_tls.c + + +TLSEngine on +TLSLog /var/log/proftpd/tls.log +# this is an example of protocols, proftp works witl all, but use only the most secure ones like TLSv1.1 and TLSv1.2 +TLSProtocol TLSv1.1 TLSv1.2 +# +# Server SSL certificate. You can generate a self-signed certificate using +# a command like: +# +# openssl req -x509 -newkey rsa:1024 \ +# -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt \ +# -nodes -days 365 +# +# The proftpd.key file must be readable by root only. The other file can be +# readable by anyone. +# +# chmod 0600 /etc/ssl/private/proftpd.key +# chmod 0640 /etc/ssl/private/proftpd.key +# +TLSRSACertificateFile /usr/local/vesta/ssl/certificate.crt +TLSRSACertificateKeyFile /usr/local/vesta/ssl/certificate.key +# +# CA the server trusts... +#TLSCACertificateFile /etc/ssl/certs/CA.pem +# ...or avoid CA cert and be verbose +#TLSOptions NoCertRequest EnableDiags +# ... or the same with relaxed session use for some clients (e.g. FireFtp) +#TLSOptions NoCertRequest EnableDiags NoSessionReuseRequired +# +# +# Per default drop connection if client tries to start a renegotiate +# This is a fix for CVE-2009-3555 but could break some clients. +# +#TLSOptions AllowClientRenegotiations +# +TLSOptions NoSessionReuseRequired AllowClientRenegotiations +# Authenticate clients that want to use FTP over TLS? +# +#TLSVerifyClient off +# +# Are clients required to use FTP over TLS when talking to this server? +# +TLSRequired off +# +# Allow SSL/TLS renegotiations when the client requests them, but +# do not force the renegotations. Some clients do not support +# SSL/TLS renegotiations; when mod_tls forces a renegotiation, these +# clients will close the data connection, or there will be a timeout +# on an idle data connection. +# +TLSRenegotiate required off + From 91961383d9b05d6305b2117718bc5d105a586cf4 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 30 Apr 2021 03:51:04 +0200 Subject: [PATCH 137/984] Include /etc/proftpd/tls.conf --- install/debian/10/proftpd/proftpd.conf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/install/debian/10/proftpd/proftpd.conf b/install/debian/10/proftpd/proftpd.conf index 3eb0ec2c..b144b8a5 100644 --- a/install/debian/10/proftpd/proftpd.conf +++ b/install/debian/10/proftpd/proftpd.conf @@ -4,6 +4,8 @@ ServerAdmin root@localhost DefaultServer on DefaultRoot ~ !adm +Include /etc/proftpd/tls.conf + VRootEngine on VRootAlias /etc/security/pam_env.conf etc/security/pam_env.conf From 139f864b5471ca4e0ff1104ccc25999f0c167289 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 30 Apr 2021 04:03:43 +0200 Subject: [PATCH 138/984] Proftpd tls.conf --- install/debian/9/proftpd/tls.conf | 63 +++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 install/debian/9/proftpd/tls.conf diff --git a/install/debian/9/proftpd/tls.conf b/install/debian/9/proftpd/tls.conf new file mode 100644 index 00000000..9da0017b --- /dev/null +++ b/install/debian/9/proftpd/tls.conf @@ -0,0 +1,63 @@ +# +# Proftpd sample configuration for FTPS connections. +# +# Note that FTPS impose some limitations in NAT traversing. +# See http://www.castaglia.org/proftpd/doc/contrib/ProFTPD-mini-HOWTO-TLS.html +# for more information. +# + + # If mod_tls was built as a shared/DSO module, load it + LoadModule mod_tls.c + + +TLSEngine on +TLSLog /var/log/proftpd/tls.log +# this is an example of protocols, proftp works witl all, but use only the most secure ones like TLSv1.1 and TLSv1.2 +TLSProtocol TLSv1.1 TLSv1.2 +# +# Server SSL certificate. You can generate a self-signed certificate using +# a command like: +# +# openssl req -x509 -newkey rsa:1024 \ +# -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt \ +# -nodes -days 365 +# +# The proftpd.key file must be readable by root only. The other file can be +# readable by anyone. +# +# chmod 0600 /etc/ssl/private/proftpd.key +# chmod 0640 /etc/ssl/private/proftpd.key +# +TLSRSACertificateFile /usr/local/vesta/ssl/certificate.crt +TLSRSACertificateKeyFile /usr/local/vesta/ssl/certificate.key +# +# CA the server trusts... +#TLSCACertificateFile /etc/ssl/certs/CA.pem +# ...or avoid CA cert and be verbose +#TLSOptions NoCertRequest EnableDiags +# ... or the same with relaxed session use for some clients (e.g. FireFtp) +#TLSOptions NoCertRequest EnableDiags NoSessionReuseRequired +# +# +# Per default drop connection if client tries to start a renegotiate +# This is a fix for CVE-2009-3555 but could break some clients. +# +#TLSOptions AllowClientRenegotiations +# +TLSOptions NoSessionReuseRequired AllowClientRenegotiations +# Authenticate clients that want to use FTP over TLS? +# +#TLSVerifyClient off +# +# Are clients required to use FTP over TLS when talking to this server? +# +TLSRequired off +# +# Allow SSL/TLS renegotiations when the client requests them, but +# do not force the renegotations. Some clients do not support +# SSL/TLS renegotiations; when mod_tls forces a renegotiation, these +# clients will close the data connection, or there will be a timeout +# on an idle data connection. +# +TLSRenegotiate required off + From 2ac32032a8e0fdcbabe59969dadca3e36b0edfb0 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 30 Apr 2021 04:04:30 +0200 Subject: [PATCH 139/984] Include /etc/proftpd/tls.conf --- install/debian/9/proftpd/proftpd.conf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/install/debian/9/proftpd/proftpd.conf b/install/debian/9/proftpd/proftpd.conf index 69ec6b2e..d2bd8667 100644 --- a/install/debian/9/proftpd/proftpd.conf +++ b/install/debian/9/proftpd/proftpd.conf @@ -4,6 +4,8 @@ ServerAdmin root@localhost DefaultServer on DefaultRoot ~ !adm +Include /etc/proftpd/tls.conf + VRootEngine on VRootAlias /etc/security/pam_env.conf etc/security/pam_env.conf From 39af1bd5017cfb9da415c7ddbfca08195996ba39 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 30 Apr 2021 04:05:33 +0200 Subject: [PATCH 140/984] Proftpd tls.conf --- install/debian/8/proftpd/tls.conf | 63 +++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 install/debian/8/proftpd/tls.conf diff --git a/install/debian/8/proftpd/tls.conf b/install/debian/8/proftpd/tls.conf new file mode 100644 index 00000000..9da0017b --- /dev/null +++ b/install/debian/8/proftpd/tls.conf @@ -0,0 +1,63 @@ +# +# Proftpd sample configuration for FTPS connections. +# +# Note that FTPS impose some limitations in NAT traversing. +# See http://www.castaglia.org/proftpd/doc/contrib/ProFTPD-mini-HOWTO-TLS.html +# for more information. +# + + # If mod_tls was built as a shared/DSO module, load it + LoadModule mod_tls.c + + +TLSEngine on +TLSLog /var/log/proftpd/tls.log +# this is an example of protocols, proftp works witl all, but use only the most secure ones like TLSv1.1 and TLSv1.2 +TLSProtocol TLSv1.1 TLSv1.2 +# +# Server SSL certificate. You can generate a self-signed certificate using +# a command like: +# +# openssl req -x509 -newkey rsa:1024 \ +# -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt \ +# -nodes -days 365 +# +# The proftpd.key file must be readable by root only. The other file can be +# readable by anyone. +# +# chmod 0600 /etc/ssl/private/proftpd.key +# chmod 0640 /etc/ssl/private/proftpd.key +# +TLSRSACertificateFile /usr/local/vesta/ssl/certificate.crt +TLSRSACertificateKeyFile /usr/local/vesta/ssl/certificate.key +# +# CA the server trusts... +#TLSCACertificateFile /etc/ssl/certs/CA.pem +# ...or avoid CA cert and be verbose +#TLSOptions NoCertRequest EnableDiags +# ... or the same with relaxed session use for some clients (e.g. FireFtp) +#TLSOptions NoCertRequest EnableDiags NoSessionReuseRequired +# +# +# Per default drop connection if client tries to start a renegotiate +# This is a fix for CVE-2009-3555 but could break some clients. +# +#TLSOptions AllowClientRenegotiations +# +TLSOptions NoSessionReuseRequired AllowClientRenegotiations +# Authenticate clients that want to use FTP over TLS? +# +#TLSVerifyClient off +# +# Are clients required to use FTP over TLS when talking to this server? +# +TLSRequired off +# +# Allow SSL/TLS renegotiations when the client requests them, but +# do not force the renegotations. Some clients do not support +# SSL/TLS renegotiations; when mod_tls forces a renegotiation, these +# clients will close the data connection, or there will be a timeout +# on an idle data connection. +# +TLSRenegotiate required off + From 108cb3dfdb9337edd6945729f4caa7ca3c5d40f0 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 30 Apr 2021 04:06:09 +0200 Subject: [PATCH 141/984] Include /etc/proftpd/tls.conf --- install/debian/8/proftpd/proftpd.conf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/install/debian/8/proftpd/proftpd.conf b/install/debian/8/proftpd/proftpd.conf index 69ec6b2e..d2bd8667 100644 --- a/install/debian/8/proftpd/proftpd.conf +++ b/install/debian/8/proftpd/proftpd.conf @@ -4,6 +4,8 @@ ServerAdmin root@localhost DefaultServer on DefaultRoot ~ !adm +Include /etc/proftpd/tls.conf + VRootEngine on VRootAlias /etc/security/pam_env.conf etc/security/pam_env.conf From 0a0d3a4649df03d1e2b9521d7f6e0c2fd3cb5b9b Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 30 Apr 2021 04:08:42 +0200 Subject: [PATCH 142/984] Copy Proftpd tls.conf in installer --- install/vst-install-debian.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index d433af05..8921a4d7 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -1040,6 +1040,7 @@ fi if [ "$proftpd" = 'yes' ]; then echo "127.0.0.1 $servername" >> /etc/hosts cp -f $vestacp/proftpd/proftpd.conf /etc/proftpd/ + cp -f $vestacp/proftpd/tls.conf /etc/proftpd/ update-rc.d proftpd defaults service proftpd start check_result $? "proftpd start failed" From 17b4b25f97534e224ecf82d27cec0ba3343d6bd5 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 16 May 2021 11:46:40 +0200 Subject: [PATCH 143/984] Add files via upload --- .../node-app-4000-and-websocket-6001.stpl | 68 +++++++++++++++++++ .../node-app-4000-and-websocket-6001.tpl | 25 +++++++ 2 files changed, 93 insertions(+) create mode 100644 src/deb/for-download/tools/nodejs-nginx-templates/node-app-4000-and-websocket-6001.stpl create mode 100644 src/deb/for-download/tools/nodejs-nginx-templates/node-app-4000-and-websocket-6001.tpl diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-4000-and-websocket-6001.stpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-4000-and-websocket-6001.stpl new file mode 100644 index 00000000..0def9f53 --- /dev/null +++ b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-4000-and-websocket-6001.stpl @@ -0,0 +1,68 @@ +server { + listen %ip%:%proxy_ssl_port%; + server_name %domain_idn% %alias_idn%; + ssl on; + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + # test %port_num% + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_prefer_server_ciphers on; + ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH'; + + root %sdocroot%/public; + index index.html; + + location / { + proxy_pass http://localhost:4000; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header Host $host; + proxy_cache_bypass $http_upgrade; + + + # try_files $uri $uri/ @rewrites; + + location ~* ^.+\.(%proxy_extentions%)$ { + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + } + } + + + location /app { + proxy_pass http://127.0.0.1:6001; + proxy_set_header Host $host; + proxy_read_timeout 60; + proxy_connect_timeout 60; + proxy_redirect off; + + # Allow the use of websockets + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header Host $host; + proxy_cache_bypass $http_upgrade; + } + + location @rewrites { + rewrite ^(.+)$ /index.html last; + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + + location ~ /\.ht {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; + include %home%/%user%/conf/web/s%proxy_system%.%domain%.conf*; +} \ No newline at end of file diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-4000-and-websocket-6001.tpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-4000-and-websocket-6001.tpl new file mode 100644 index 00000000..958b2594 --- /dev/null +++ b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-4000-and-websocket-6001.tpl @@ -0,0 +1,25 @@ +server { + listen %ip%:%proxy_port%; + server_name %domain_idn% %alias_idn%; + location / { + rewrite ^(.*) https://%domain_idn%$1 permanent; + } + + location /app { + proxy_pass http://127.0.0.1:6001; + proxy_set_header Host $host; + proxy_read_timeout 60; + proxy_connect_timeout 60; + proxy_redirect off; + + # Allow the use of websockets + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header Host $host; + proxy_cache_bypass $http_upgrade; + } + + +include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; +} From d368a7e6d46fae3924accbf2ba4c16a1c741b5e1 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 30 May 2021 19:21:06 +0200 Subject: [PATCH 144/984] More logical restore backup template --- web/templates/admin/list_backup_detail.html | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/web/templates/admin/list_backup_detail.html b/web/templates/admin/list_backup_detail.html index 39790652..137d0099 100644 --- a/web/templates/admin/list_backup_detail.html +++ b/web/templates/admin/list_backup_detail.html @@ -4,13 +4,6 @@
-
@@ -19,13 +12,13 @@
-
+
- +
@@ -40,7 +33,8 @@
-
+
+
Date: Sun, 30 May 2021 20:17:27 +0200 Subject: [PATCH 145/984] Update list_backup_detail.html --- web/templates/admin/list_backup_detail.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/templates/admin/list_backup_detail.html b/web/templates/admin/list_backup_detail.html index 137d0099..cc1a9f0e 100644 --- a/web/templates/admin/list_backup_detail.html +++ b/web/templates/admin/list_backup_detail.html @@ -18,7 +18,7 @@
- + From 8fe06a215397936b4c7901f8e852bde553affaee Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 30 May 2021 20:23:23 +0200 Subject: [PATCH 146/984] Update sr.php --- web/inc/i18n/sr.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/web/inc/i18n/sr.php b/web/inc/i18n/sr.php index 2b91b293..a83aeb32 100644 --- a/web/inc/i18n/sr.php +++ b/web/inc/i18n/sr.php @@ -755,4 +755,7 @@ $LANG['sr'] = array( 'maximum characters length, including prefix' => 'maksimalna dužina sme biti %s karaktera, uključujući i prefix', 'Email Credentials' => 'Email lozinka i podešavanja', + + 'selected' => 'selektovano', + 'First select what to restore' => 'Prvo selektujte šta tačno želite da vratite' ); From f1da73a7bd77101ce46703b466104f3366a8e727 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 30 May 2021 20:25:21 +0200 Subject: [PATCH 147/984] Update list_backup_detail.html --- web/templates/admin/list_backup_detail.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/templates/admin/list_backup_detail.html b/web/templates/admin/list_backup_detail.html index cc1a9f0e..6c2812cf 100644 --- a/web/templates/admin/list_backup_detail.html +++ b/web/templates/admin/list_backup_detail.html @@ -18,7 +18,7 @@
- + @@ -34,7 +34,7 @@
-
+
:
Date: Sun, 30 May 2021 20:26:48 +0200 Subject: [PATCH 148/984] Update sr.php --- web/inc/i18n/sr.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/inc/i18n/sr.php b/web/inc/i18n/sr.php index a83aeb32..4cb8db27 100644 --- a/web/inc/i18n/sr.php +++ b/web/inc/i18n/sr.php @@ -756,6 +756,6 @@ $LANG['sr'] = array( 'Email Credentials' => 'Email lozinka i podešavanja', - 'selected' => 'selektovano', + 'restore selected' => 'vrati selektovano', 'First select what to restore' => 'Prvo selektujte šta tačno želite da vratite' ); From cf75660818a422dfa5a3a813f51acbc40e0c0585 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 30 May 2021 20:28:35 +0200 Subject: [PATCH 149/984] Update list_backup_detail.html --- web/templates/admin/list_backup_detail.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/templates/admin/list_backup_detail.html b/web/templates/admin/list_backup_detail.html index 6c2812cf..096f5198 100644 --- a/web/templates/admin/list_backup_detail.html +++ b/web/templates/admin/list_backup_detail.html @@ -18,7 +18,7 @@
- + From e1f32c04706ce7b1f2b8cf3cbf041fc24a2d4b4f Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 30 May 2021 20:46:34 +0200 Subject: [PATCH 150/984] Enabling TLS for ProFTPD FTPS --- src/deb/vesta/postinst | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/deb/vesta/postinst b/src/deb/vesta/postinst index 35194389..fe80212f 100755 --- a/src/deb/vesta/postinst +++ b/src/deb/vesta/postinst @@ -23,6 +23,20 @@ fi echo "1" > /usr/local/vesta/data/upgrades/show_changelog chmod a=rw /usr/local/vesta/data/upgrades/show_changelog +# Enabling TLS for ProFTPD FTPS +if [ ! -f "/usr/local/vesta/data/upgrades/enable-tls-in-proftpd" ]; then + if [ -f "/etc/proftpd/proftpd.conf" ]; then + touch /usr/local/vesta/data/upgrades/enable-tls-in-proftpd + check_grep=$(grep -c 'tls' /etc/proftpd/proftpd.conf) + if [ "$check_grep" -eq 0 ]; then + echo "== Enabling TLS for ProFTPD FTPS" + wget -nv https://c.myvestacp.com/debian/10/proftpd/tls.conf -O /etc/proftpd/tls.conf + sed -i "s|AuthPAMConfig|Include /etc/proftpd/tls.conf\n\nAuthPAMConfig|g" /etc/proftpd/proftpd.conf + systemctl restart proftpd + fi + fi +fi + # Updating CloudFlare IP addresses if [ ! -f "/usr/local/vesta/data/upgrades/update-cloudflare-ips" ]; then if [ -f "/etc/nginx/nginx.conf" ]; then From 77d1da1359abccb3573132738066a197fe8d5c42 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 30 May 2021 20:49:02 +0200 Subject: [PATCH 151/984] Update Changelog.md --- Changelog.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Changelog.md b/Changelog.md index dc9ff804..82f5bc60 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,8 @@ +Version 0.9.8-26-47 [30-May-2021] +================================================== +* Enabling TLS for ProFTPD FTPS +* More logical "Restore backup" template + Version 0.9.8-26-46 [17-Apr-2021] ================================================== * [Feature] Updating CloudFlare IP addresses From a2792f8ebd392f043bca34f3caa8d9cebdd154e9 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 30 May 2021 20:50:29 +0200 Subject: [PATCH 152/984] Update vst-install-debian.sh --- install/vst-install-debian.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index 8921a4d7..bfab2778 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -1632,6 +1632,7 @@ touch /usr/local/vesta/data/upgrades/limit_max_recipients touch /usr/local/vesta/data/upgrades/roundcube_smtp_auth touch /usr/local/vesta/data/upgrades/apache_status_public_access touch /usr/local/vesta/data/upgrades/update-cloudflare-ips +touch /usr/local/vesta/data/upgrades/enable-tls-in-proftpd # Secret URL secretquery='' From 2d10c646ff61ca2ebed8d80f279e31dbf2287347 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 30 May 2021 20:52:11 +0200 Subject: [PATCH 153/984] Version 0.9.8-26-47 --- src/deb/latest.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/latest.txt b/src/deb/latest.txt index 82624a72..5acd4ac4 100644 --- a/src/deb/latest.txt +++ b/src/deb/latest.txt @@ -1 +1 @@ -vesta-0.9.8-26-46 +vesta-0.9.8-26-47 From 8301436be6ba6d3768c44bc23f81e0ae5af22d8c Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Wed, 9 Jun 2021 09:50:12 +0200 Subject: [PATCH 154/984] Update README.md --- README.md | 102 ++---------------------------------------------------- 1 file changed, 3 insertions(+), 99 deletions(-) diff --git a/README.md b/README.md index 7a3e5866..c34d496b 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -News +myVesta ================================================== -We finally have normal homepage: -- https://myvestacp.com/ +Visit our homepage: +- https://www.myvestacp.com/ Forum: - https://forum.myvestacp.com/ @@ -12,99 +12,3 @@ Knowledge base: Changelog: - https://github.com/myvesta/vesta/blob/master/Changelog.md - -myVesta Control Panel -================================================== - -* myVesta is a fork of [VestaCP](https://vestacp.com/) -* Focused on security and stability -* Therefore, only Debian is supported - keeping focus on only one eco-system - not wasting energy on compatibility with other Linux distributions -* However, it will be always synchronized with official VestaCP commits -* VestaCP commercial plugins will be only available for purchase on official [vestacp.com](https://vestacp.com/) website - we will NOT take their earnings, since we are not making this fork for monetary reasons. Instead, we are doing this with open source in mind - to enhance security and to build new features, without being interlocked with official VestaCP release cycles, and without affecting or heavily diverting from the VestaCP's planned development milestones -* With previous in mind, all features that are built for this fork (myVesta), will be offered to official VestaCP, via pull requests - -Features of myVesta -================================================== - -+ Support for Debian 10 (previous Debian releases are also supported, but Debian 10 is recommended) - -+ [nginx templates](https://github.com/myvesta/vesta/blob/master/src/deb/for-download/tools/rate-limit-tpl/install_rate_limit_tpl.sh) that can prevent denial-of-service on your server - -+ [Support for multi-PHP versions](https://github.com/myvesta/vesta/blob/master/src/deb/for-download/tools/multi-php-install.sh) - -+ You can limit the maximum number of sent emails (per hour) [per mail account](https://github.com/myvesta/vesta/blob/master/install/debian/10/exim/exim4.conf.template#L109-L110) and [per hosting account](https://github.com/myvesta/vesta/blob/master/install/debian/10/exim/exim4.conf.template#L72-L73), preventing hijacking of email accounts and preventing PHP malware scripts to send spam. - -+ You can see [what PHP scripts are sending emails](https://github.com/myvesta/vesta/blob/master/install/debian/10/php/php7.3-dedi.patch#L50), when and to whom - -+ You can completely "lock" myVesta so it can be accessed only via **secret URL**, for example https://serverhost:8083/?MY-SECRET-URL - + During installation you will be asked to choose a secret URL for your hosting panel - + Literally no PHP scripts will be alive on your hosting panel (won't be able to get executed), unless you access the hosting panel with secret URL parameter. Thus, when it happens that, let's say, some zero-day exploit pops up - attackers won't be able to access it without knowing your secret URL - PHP scripts from VestaCP will be simply dead - no one will be able to interact with your panel unless they have the secret URL. - + You can see for yourself how this mechanism was built by looking at: - + https://github.com/myvesta/vesta/blob/master/src/deb/for-download/php/php.ini#L496 - + https://github.com/myvesta/vesta/blob/master/web/inc/secure_login.php - + If you didn't set the secret URL during installation, you can do it anytime. Just execute in shell: - + `echo " /usr/local/vesta/web/inc/login_url.php` - -+ We [disabled dangerous PHP functions](https://github.com/myvesta/vesta/blob/master/install/debian/10/php/php7.3-dedi.patch#L9) in php.ini, so even if, for example, your customer's CMS gets compromised, hacker will not be able to execute shell scripts from within PHP. - -+ Apache is fully switched to mpm_event mode, while PHP is running in PHP-FPM mode, which is the most stable PHP-stack solution - + OPCache is turned on by default - -+ Auto-generating LetsEncrypt SSL for server hostname (signed SSL for Vesta 8083 port, for dovecot (IMAP & POP3) and for Exim (SMTP)) - -+ You can change Vesta port during installation or later using one command line: **v-change-vesta-port [number]** - -+ ClamAV is configured to block zip/rar/7z archives that contains executable files (just like GMail) - -+ Backup will run with lowest priority (to avoid load on server), and can be configured to run only by night (and to stop on the morning and continue next night) - -+ You can compile Vesta binaries by yourself - https://github.com/myvesta/vesta/blob/master/src/deb/vesta_compile.sh - + You can even create your own APT repository in a minute - + We are using latest nginx version for vesta-nginx package - + With your own APT infrastructure you can take security of Vesta-installer infrastructure in your own hands. You will have full control of your Vesta code (this way you can rest assured that there's 0% chance that you'll install malicious packages from repositories that may get hacked) - + Binaries that you compile are 100% compatible with official VestaCP from vestacp.com, so you can run official VestaCP code with your own binaries (in case you don't want the source code from this fork) - -Useful tools -================================================== - -+ [Script that will convert Vesta to myVesta](https://github.com/myvesta/vesta/blob/master/src/deb/for-download/tools/convert-vesta-to-myvesta.sh) - -+ [Wordpress installer in one second](https://github.com/myvesta/vesta/blob/master/bin/v-install-wordpress) - -+ [Script for importing cPanel backups to Vesta](https://forum.myvestacp.com/viewtopic.php?f=24&t=63) - -+ [Cloning script that will copy the whole site from one domain to another (sub)domain](https://github.com/myvesta/vesta/blob/master/bin/v-clone-website) - -+ [Script that will migrate your site from http to https, replacing http to https URLs in database](https://github.com/myvesta/vesta/blob/master/bin/v-migrate-site-to-https) - -+ [Script that will install multiple PHP versions on your server](https://github.com/myvesta/vesta/blob/master/src/deb/for-download/tools/multi-php-install.sh) - -+ [Script that will install nginx templates that can prevent denial-of-service on your server](https://github.com/myvesta/vesta/blob/master/src/deb/for-download/tools/rate-limit-tpl/install_rate_limit_tpl.sh) - -+ [Official Vesta Softaculous installer](https://github.com/myvesta/vesta/blob/master/src/deb/for-download/tools/install-softaculous.sh) - - -How to install ----------------------------- -Download the installation script: -```bash -curl -O http://c.myvestacp.com/vst-install-debian.sh -``` -Then run it: -```bash -bash vst-install-debian.sh -``` - -About VestaCP -================================================== - -* [Vesta](https://vestacp.com/) is an open source hosting control panel. -* Vesta has a clean and focused interface without clutter. -* Vesta has the latest of very innovative technologies. - -Special thanks to vestacp.com and Serghey Rodin for open-source VestaCP project - -License ----------------------------- -Vesta is licensed under [GPL v3 ](https://github.com/serghey-rodin/vesta/blob/master/LICENSE) license - From 7f9f1c0253bf590a7d562370858662404aad4167 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 11 Jul 2021 15:00:25 +0200 Subject: [PATCH 155/984] update acme-challenge always --- bin/v-add-letsencrypt-domain | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/v-add-letsencrypt-domain b/bin/v-add-letsencrypt-domain index edd2c8d5..b8188d2b 100755 --- a/bin/v-add-letsencrypt-domain +++ b/bin/v-add-letsencrypt-domain @@ -214,13 +214,13 @@ for auth in $authz; do # default nginx method conf="$HOMEDIR/$user/conf/web/nginx.$domain.conf_letsencrypt" sconf="$HOMEDIR/$user/conf/web/snginx.$domain.conf_letsencrypt" - if [ ! -e "$conf" ]; then + # if [ ! -e "$conf" ]; then echo 'location ~ "^/\.well-known/acme-challenge/(.*)$" {' \ > $conf echo ' default_type text/plain;' >> $conf echo ' return 200 "$1.'$THUMB'";' >> $conf echo '}' >> $conf - fi + # fi echo "[$(date)] : in $conf we put: $THUMB" >> /usr/local/vesta/log/letsencrypt.log if [ ! -e "$sconf" ]; then ln -s "$conf" "$sconf" From d6b6599709ad44b48de87faa92c30db167305406 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 11 Jul 2021 15:39:46 +0200 Subject: [PATCH 156/984] Grep carefully for 'END CERTIFICATE' --- bin/v-add-letsencrypt-domain | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/v-add-letsencrypt-domain b/bin/v-add-letsencrypt-domain index b8188d2b..ed6e5e90 100755 --- a/bin/v-add-letsencrypt-domain +++ b/bin/v-add-letsencrypt-domain @@ -333,13 +333,13 @@ fi # Splitting up downloaded pem # echo "[$(date)] : - Splitting up downloaded pem" >> /usr/local/vesta/log/letsencrypt.log -crt_end=$(grep -n END $ssl_dir/$domain.pem |head -n1 |cut -f1 -d:) +crt_end=$(grep -n 'END CERTIFICATE' $ssl_dir/$domain.pem |head -n1 |cut -f1 -d:) # echo "[$(date)] : crt_end=$crt_end" >> /usr/local/vesta/log/letsencrypt.log head -n $crt_end $ssl_dir/$domain.pem > $ssl_dir/$domain.crt pem_lines=$(wc -l $ssl_dir/$domain.pem |cut -f 1 -d ' ') # echo "[$(date)] : pem_lines=$pem_lines" >> /usr/local/vesta/log/letsencrypt.log -ca_end=$(grep -n "BEGIN" $ssl_dir/$domain.pem |tail -n1 |cut -f 1 -d :) +ca_end=$(grep -n 'BEGIN CERTIFICATE' $ssl_dir/$domain.pem |tail -n1 |cut -f 1 -d :) # echo "[$(date)] : ca_end=$ca_end" >> /usr/local/vesta/log/letsencrypt.log ca_end=$(( pem_lines - crt_end + 1 )) # echo "[$(date)] : ca_end=$ca_end" >> /usr/local/vesta/log/letsencrypt.log From 96dd1287642ec7115421d8687dac544d0317cd6c Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 11 Jul 2021 15:53:40 +0200 Subject: [PATCH 157/984] Update Changelog.md --- Changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Changelog.md b/Changelog.md index 82f5bc60..0605428d 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,7 @@ +Version 0.9.8-26-48 [11-Jul-2021] +================================================== +* Fixed two bugs in LetsEncrypt generating process + Version 0.9.8-26-47 [30-May-2021] ================================================== * Enabling TLS for ProFTPD FTPS From 71ac6f2a570d628f014efbb0d6a0f4d7f6e2831f Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 11 Jul 2021 15:54:48 +0200 Subject: [PATCH 158/984] Version 0.9.8-26-48 --- src/deb/latest.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/latest.txt b/src/deb/latest.txt index 5acd4ac4..fa6171f7 100644 --- a/src/deb/latest.txt +++ b/src/deb/latest.txt @@ -1 +1 @@ -vesta-0.9.8-26-47 +vesta-0.9.8-26-48 From 23ae0227c0680f748a1779f3de2e9b56a19ed2d8 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 12 Jul 2021 14:09:16 +0200 Subject: [PATCH 159/984] Update control --- src/deb/vesta/control | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/deb/vesta/control b/src/deb/vesta/control index 0cb5f67d..534e200a 100644 --- a/src/deb/vesta/control +++ b/src/deb/vesta/control @@ -3,8 +3,8 @@ Package: vesta Priority: optional Version: 0.9.8-26 Section: admin -Maintainer: Predrag Damnjanovic -Homepage: http://myvestacp.com +Maintainer: myVesta +Homepage: https://www.myvestacp.com Architecture: amd64 Depends: bash, awk, sed Description: Vesta From 1ebe164b15d8320a801b2b70b28ce18ab9023697 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 12 Jul 2021 14:10:40 +0200 Subject: [PATCH 160/984] Update control --- src/deb/php/control | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/deb/php/control b/src/deb/php/control index fa32b0d5..d4298780 100644 --- a/src/deb/php/control +++ b/src/deb/php/control @@ -3,8 +3,8 @@ Package: vesta-php Priority: optional Version: 0.9.8-26 Section: admin -Maintainer: Predrag Damnjanovic -Homepage: http://myvestacp.com +Maintainer: myVesta +Homepage: https://www.myvestacp.com Architecture: amd64 Depends: vesta Description: Vesta php-fpm From 0729152f72d8cf3d69e0c6d783bdbc3c2dad498b Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 12 Jul 2021 14:11:55 +0200 Subject: [PATCH 161/984] Update control --- src/deb/nginx/control | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/deb/nginx/control b/src/deb/nginx/control index 54cada5d..86ae383a 100644 --- a/src/deb/nginx/control +++ b/src/deb/nginx/control @@ -3,8 +3,8 @@ Package: vesta-nginx Priority: optional Version: 0.9.8-26-44 Section: admin -Maintainer: Predrag Damnjanovic -Homepage: http://myvestacp.com +Maintainer: myVesta +Homepage: https://www.myvestacp.com Architecture: amd64 Depends: vesta Description: Vesta Nginx From b69f6221bb6d6347bef56bc7ce041a3f017f7134 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 12 Jul 2021 14:13:07 +0200 Subject: [PATCH 162/984] Update copyright --- src/deb/php/copyright | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/php/copyright b/src/deb/php/copyright index af8b3c23..2b3c513e 100644 --- a/src/deb/php/copyright +++ b/src/deb/php/copyright @@ -1,6 +1,6 @@ Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: vesta-php -Source: http://myvestacp.com +Source: https://www.myvestacp.com Files: * Copyright: 2019 MyVesta From d605a80d7d7b29b61ea24ca5c2d3769858b939f7 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 12 Jul 2021 14:13:53 +0200 Subject: [PATCH 163/984] Update copyright --- src/deb/nginx/copyright | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/deb/nginx/copyright b/src/deb/nginx/copyright index 3feceb98..d6604bdf 100644 --- a/src/deb/nginx/copyright +++ b/src/deb/nginx/copyright @@ -1,9 +1,9 @@ Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: vesta-nginx -Source: http://myvestacp.com +Source: https://www.myvestacp.com Files: * -Copyright: 2021 MyVesta +Copyright: 2021 myVesta License: GPL-3.0+ Remarks: MyVesta is a fork from VestaCP, special thanks to vestacp.com and Serghey Rodin From 191f1565f6000b944f3fa61310d4c97e7ae2924e Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 12 Jul 2021 14:14:33 +0200 Subject: [PATCH 164/984] Update copyright --- src/deb/php/copyright | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/php/copyright b/src/deb/php/copyright index 2b3c513e..65ee43e2 100644 --- a/src/deb/php/copyright +++ b/src/deb/php/copyright @@ -3,7 +3,7 @@ Upstream-Name: vesta-php Source: https://www.myvestacp.com Files: * -Copyright: 2019 MyVesta +Copyright: 2021 myVesta License: GPL-3.0+ Remarks: MyVesta is a fork from VestaCP, special thanks to vestacp.com and Serghey Rodin From 2e7c03b4ccd26478f7138d440ee0aee2032afadd Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 12 Jul 2021 14:16:08 +0200 Subject: [PATCH 165/984] Update copyright --- src/deb/vesta/copyright | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/deb/vesta/copyright b/src/deb/vesta/copyright index 8845a756..8930fb15 100644 --- a/src/deb/vesta/copyright +++ b/src/deb/vesta/copyright @@ -1,9 +1,9 @@ Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: vesta -Source: http://myvestacp.com +Source: https://www.myvestacp.com Files: * -Copyright: 2019 MyVesta +Copyright: 2021 myVesta License: GPL-3.0+ Remarks: MyVesta is a fork from VestaCP, special thanks to vestacp.com and Serghey Rodin From fa8321686fae680ab19787704f51a44b7abb0a28 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 12 Jul 2021 14:55:08 +0200 Subject: [PATCH 166/984] Update vesta_compile.sh --- src/deb/vesta_compile.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/deb/vesta_compile.sh b/src/deb/vesta_compile.sh index 389781c9..3e9663bd 100644 --- a/src/deb/vesta_compile.sh +++ b/src/deb/vesta_compile.sh @@ -29,7 +29,7 @@ if [ $# -gt 4 ]; then add_deb_to_apt_repo=$5 fi -MAINTAINER_EMAIL='predrag@myvestacp.com' +MAINTAINER_EMAIL='info@myvestacp.com' TARGET_DEB_NAME_MAIN='buster' TARGET_DEB_VER_MAIN='10' @@ -248,6 +248,10 @@ EOF press_enter "*** please copy above generated key to your clipboard and then paste it after pressing enter now ***" vi $PATH_OF_APT_REPO_ROOT/deb_signing.key cp $PATH_OF_APT_REPO_ROOT/deb_signing.key $PATH_OF_C_WEB_FOLDER_ROOT/deb_signing.key + cp $PATH_OF_APT_REPO_ROOT/deb_signing.key $PATH_OF_C_WEB_FOLDER_ROOT/debian/10/deb_signing.key + cp $PATH_OF_APT_REPO_ROOT/deb_signing.key $PATH_OF_C_WEB_FOLDER_ROOT/debian/9/deb_signing.key + cp $PATH_OF_APT_REPO_ROOT/deb_signing.key $PATH_OF_C_WEB_FOLDER_ROOT/debian/8/deb_signing.key + cp $PATH_OF_APT_REPO_ROOT/deb_signing.key $PATH_OF_C_WEB_FOLDER_ROOT/debian/7/deb_signing.key fi echo "=== All done" From de1f566d14e679c31d90ff4c1154019b4e598c08 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 12 Jul 2021 14:58:30 +0200 Subject: [PATCH 167/984] Update deb_signing.key --- install/debian/10/deb_signing.key | 76 +++++++++++++++---------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/install/debian/10/deb_signing.key b/install/debian/10/deb_signing.key index 9debc008..14faf4f8 100644 --- a/install/debian/10/deb_signing.key +++ b/install/debian/10/deb_signing.key @@ -1,41 +1,41 @@ -----BEGIN PGP PUBLIC KEY BLOCK----- -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 -=mMOx +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 +lRP4w0e42TCozCmH3fx/Ya0a2jdTm2f79Q== +=RFAO -----END PGP PUBLIC KEY BLOCK----- From 23a01d2625617f7ab76e09e54f00aec6f576aaca Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 12 Jul 2021 14:59:06 +0200 Subject: [PATCH 168/984] Update deb_signing.key --- install/debian/9/deb_signing.key | 65 +++++++++++++++++++------------- 1 file changed, 38 insertions(+), 27 deletions(-) diff --git a/install/debian/9/deb_signing.key b/install/debian/9/deb_signing.key index 2ad2db8b..14faf4f8 100644 --- a/install/debian/9/deb_signing.key +++ b/install/debian/9/deb_signing.key @@ -1,30 +1,41 @@ -----BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.4.12 (GNU/Linux) -mQENBFJIGbEBCAC8SHOOFo7iDTbnC2GhNZ+uBGCh226Dn1QPoFZNFM/DNakHZ6rD -G3wzr8++eKz4fJual/VLllE2N9XDPuxbozb3LLkcyY1WzJqtIXbXhFGQ/SuIeT+x -QY90XU6t2Ckze2c+zUniAWmJ8GSyVmXOoc9JxAQ1u47wvGXLzrjWXc8u8PNRYXuf -fZplTL+dFu9P0d6lP8FGsV+r9wXvvazpRTz3+H8PKrGCYT55ZQIEdG9Jgamylto2 -oVPFXkwGML+TLw6oeCIBuz2y2vtivphW4MJ3ifQjDj7k3n+DTIxfDFs8lB6VRhhY -2nMHCrcZC6U2mhmXmr6O4s1fu6irBVx05ejPABEBAAG0IFNlcmdoZXkgUm9kaW4g -PHNraWRAdmVzdGFjcC5jb20+iQE4BBMBAgAiBQJSSBmxAhsDBgsJCAcDAgYVCAIJ -CgsEFgIDAQIeAQIXgAAKCRBCxbITCh93FPdqB/93GjV9g+wBfeZYLHQK9MDU2wBb -VloYOJJae6IvYKYQVAJayD3PbHdpxrF8s9e23vdnmb9jKu6jX6oV54EIyqP2HPiN -QYc8wcea+eSHerznBixCtoQh8mtdWGFeN71zU/ig7L5qlOVF/EmxDVZTFUeivFxh -IV6qyBnktQKktE45585yKZyyLtfGoXA54DGK69OtJFh+wdkKEMmUXocMl7wUrxW6 -Cx2CuKeEXEgvwu8mRHQi3S3T9XP456qWEn5dWyMVcP660IzEuZfSJApZusNK7zG3 -WMy0/EuX7xHNY3mcNxTOUN1LsO7iHnhHD9+iKWJo9parGkMZzc92MpjDK/g7uQEN -BFJIGbEBCAC7k5QEA9WQM7E3ceNaeLMrA9lXfuzaNCcySq7ONdVAa5PxzbSKdHvz -QFoL1VFqBTYQ038lbil1XqnoM0zvIfAI3LcpS8sq92El/vPxp6jZh2Ari9Uw7x95 -k2cZMgI67g+zQMGdjVRA155nFQRCgg000xU4F7JA6+WsuLlVUmccsDv7YWJExMtC -YPxiuz5DFu8RALnw4Ckts+dbwsrcvUHhkm9b6RAsdCKjjRpUZjLgdltjH83gUVvt -i1YmdjjsVpt95dtsaG+ad852g/Rk8EdxNMkjPF6HLA67CLADP9wYaj80yPcPtylS -ycvPtcclVeHkFBRVM8xZpQd4iD19MWI1ABEBAAGJAR8EGAECAAkFAlJIGbECGwwA -CgkQQsWyEwofdxQ7tQgAhB0FwTs7L8Qr63DHC2yAnXVxgtTAY1/36CccNXVculyR -+EkLcwahms9AKhz7eQb+Mud+5vH0GRohLp2npgO38CjVUfIP5d+Y6dsthmrkF6p8 -XdV1dVK9vWX+i/YZSw/Mded30Cq4P2Yhq9EaemMT0rtli8lz2NnkZ9dFJZk1lzJC -CZmRpbjSNWqRU4f7qyh21lYk/OC/0XE8fh8CaO23TZ+6gBionoCztwb7NyC9OArN -qYlNnbmh9iNqdblykPS3bkjf34n2xyMgnIehNrM89tk8PY4UfNPhgT1TMD9W3Svq -ynNZvLuF/FIDwDeC1qcfjGbfDn9fXO/lMIIRooQYKQ== -=J2HJ +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 +lRP4w0e42TCozCmH3fx/Ya0a2jdTm2f79Q== +=RFAO -----END PGP PUBLIC KEY BLOCK----- From ff72f12fe2dcff3361368796b966c16968148866 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 12 Jul 2021 14:59:42 +0200 Subject: [PATCH 169/984] Update deb_signing.key --- install/debian/8/deb_signing.key | 65 +++++++++++++++++++------------- 1 file changed, 38 insertions(+), 27 deletions(-) diff --git a/install/debian/8/deb_signing.key b/install/debian/8/deb_signing.key index 2ad2db8b..14faf4f8 100644 --- a/install/debian/8/deb_signing.key +++ b/install/debian/8/deb_signing.key @@ -1,30 +1,41 @@ -----BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.4.12 (GNU/Linux) -mQENBFJIGbEBCAC8SHOOFo7iDTbnC2GhNZ+uBGCh226Dn1QPoFZNFM/DNakHZ6rD -G3wzr8++eKz4fJual/VLllE2N9XDPuxbozb3LLkcyY1WzJqtIXbXhFGQ/SuIeT+x -QY90XU6t2Ckze2c+zUniAWmJ8GSyVmXOoc9JxAQ1u47wvGXLzrjWXc8u8PNRYXuf -fZplTL+dFu9P0d6lP8FGsV+r9wXvvazpRTz3+H8PKrGCYT55ZQIEdG9Jgamylto2 -oVPFXkwGML+TLw6oeCIBuz2y2vtivphW4MJ3ifQjDj7k3n+DTIxfDFs8lB6VRhhY -2nMHCrcZC6U2mhmXmr6O4s1fu6irBVx05ejPABEBAAG0IFNlcmdoZXkgUm9kaW4g -PHNraWRAdmVzdGFjcC5jb20+iQE4BBMBAgAiBQJSSBmxAhsDBgsJCAcDAgYVCAIJ -CgsEFgIDAQIeAQIXgAAKCRBCxbITCh93FPdqB/93GjV9g+wBfeZYLHQK9MDU2wBb -VloYOJJae6IvYKYQVAJayD3PbHdpxrF8s9e23vdnmb9jKu6jX6oV54EIyqP2HPiN -QYc8wcea+eSHerznBixCtoQh8mtdWGFeN71zU/ig7L5qlOVF/EmxDVZTFUeivFxh -IV6qyBnktQKktE45585yKZyyLtfGoXA54DGK69OtJFh+wdkKEMmUXocMl7wUrxW6 -Cx2CuKeEXEgvwu8mRHQi3S3T9XP456qWEn5dWyMVcP660IzEuZfSJApZusNK7zG3 -WMy0/EuX7xHNY3mcNxTOUN1LsO7iHnhHD9+iKWJo9parGkMZzc92MpjDK/g7uQEN -BFJIGbEBCAC7k5QEA9WQM7E3ceNaeLMrA9lXfuzaNCcySq7ONdVAa5PxzbSKdHvz -QFoL1VFqBTYQ038lbil1XqnoM0zvIfAI3LcpS8sq92El/vPxp6jZh2Ari9Uw7x95 -k2cZMgI67g+zQMGdjVRA155nFQRCgg000xU4F7JA6+WsuLlVUmccsDv7YWJExMtC -YPxiuz5DFu8RALnw4Ckts+dbwsrcvUHhkm9b6RAsdCKjjRpUZjLgdltjH83gUVvt -i1YmdjjsVpt95dtsaG+ad852g/Rk8EdxNMkjPF6HLA67CLADP9wYaj80yPcPtylS -ycvPtcclVeHkFBRVM8xZpQd4iD19MWI1ABEBAAGJAR8EGAECAAkFAlJIGbECGwwA -CgkQQsWyEwofdxQ7tQgAhB0FwTs7L8Qr63DHC2yAnXVxgtTAY1/36CccNXVculyR -+EkLcwahms9AKhz7eQb+Mud+5vH0GRohLp2npgO38CjVUfIP5d+Y6dsthmrkF6p8 -XdV1dVK9vWX+i/YZSw/Mded30Cq4P2Yhq9EaemMT0rtli8lz2NnkZ9dFJZk1lzJC -CZmRpbjSNWqRU4f7qyh21lYk/OC/0XE8fh8CaO23TZ+6gBionoCztwb7NyC9OArN -qYlNnbmh9iNqdblykPS3bkjf34n2xyMgnIehNrM89tk8PY4UfNPhgT1TMD9W3Svq -ynNZvLuF/FIDwDeC1qcfjGbfDn9fXO/lMIIRooQYKQ== -=J2HJ +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 +lRP4w0e42TCozCmH3fx/Ya0a2jdTm2f79Q== +=RFAO -----END PGP PUBLIC KEY BLOCK----- From 4bb0ad5ffb192d752129c1f49c804a448763c904 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 12 Jul 2021 15:00:13 +0200 Subject: [PATCH 170/984] Update deb_signing.key --- install/debian/7/deb_signing.key | 65 +++++++++++++++++++------------- 1 file changed, 38 insertions(+), 27 deletions(-) diff --git a/install/debian/7/deb_signing.key b/install/debian/7/deb_signing.key index 2ad2db8b..14faf4f8 100644 --- a/install/debian/7/deb_signing.key +++ b/install/debian/7/deb_signing.key @@ -1,30 +1,41 @@ -----BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.4.12 (GNU/Linux) -mQENBFJIGbEBCAC8SHOOFo7iDTbnC2GhNZ+uBGCh226Dn1QPoFZNFM/DNakHZ6rD -G3wzr8++eKz4fJual/VLllE2N9XDPuxbozb3LLkcyY1WzJqtIXbXhFGQ/SuIeT+x -QY90XU6t2Ckze2c+zUniAWmJ8GSyVmXOoc9JxAQ1u47wvGXLzrjWXc8u8PNRYXuf -fZplTL+dFu9P0d6lP8FGsV+r9wXvvazpRTz3+H8PKrGCYT55ZQIEdG9Jgamylto2 -oVPFXkwGML+TLw6oeCIBuz2y2vtivphW4MJ3ifQjDj7k3n+DTIxfDFs8lB6VRhhY -2nMHCrcZC6U2mhmXmr6O4s1fu6irBVx05ejPABEBAAG0IFNlcmdoZXkgUm9kaW4g -PHNraWRAdmVzdGFjcC5jb20+iQE4BBMBAgAiBQJSSBmxAhsDBgsJCAcDAgYVCAIJ -CgsEFgIDAQIeAQIXgAAKCRBCxbITCh93FPdqB/93GjV9g+wBfeZYLHQK9MDU2wBb -VloYOJJae6IvYKYQVAJayD3PbHdpxrF8s9e23vdnmb9jKu6jX6oV54EIyqP2HPiN -QYc8wcea+eSHerznBixCtoQh8mtdWGFeN71zU/ig7L5qlOVF/EmxDVZTFUeivFxh -IV6qyBnktQKktE45585yKZyyLtfGoXA54DGK69OtJFh+wdkKEMmUXocMl7wUrxW6 -Cx2CuKeEXEgvwu8mRHQi3S3T9XP456qWEn5dWyMVcP660IzEuZfSJApZusNK7zG3 -WMy0/EuX7xHNY3mcNxTOUN1LsO7iHnhHD9+iKWJo9parGkMZzc92MpjDK/g7uQEN -BFJIGbEBCAC7k5QEA9WQM7E3ceNaeLMrA9lXfuzaNCcySq7ONdVAa5PxzbSKdHvz -QFoL1VFqBTYQ038lbil1XqnoM0zvIfAI3LcpS8sq92El/vPxp6jZh2Ari9Uw7x95 -k2cZMgI67g+zQMGdjVRA155nFQRCgg000xU4F7JA6+WsuLlVUmccsDv7YWJExMtC -YPxiuz5DFu8RALnw4Ckts+dbwsrcvUHhkm9b6RAsdCKjjRpUZjLgdltjH83gUVvt -i1YmdjjsVpt95dtsaG+ad852g/Rk8EdxNMkjPF6HLA67CLADP9wYaj80yPcPtylS -ycvPtcclVeHkFBRVM8xZpQd4iD19MWI1ABEBAAGJAR8EGAECAAkFAlJIGbECGwwA -CgkQQsWyEwofdxQ7tQgAhB0FwTs7L8Qr63DHC2yAnXVxgtTAY1/36CccNXVculyR -+EkLcwahms9AKhz7eQb+Mud+5vH0GRohLp2npgO38CjVUfIP5d+Y6dsthmrkF6p8 -XdV1dVK9vWX+i/YZSw/Mded30Cq4P2Yhq9EaemMT0rtli8lz2NnkZ9dFJZk1lzJC -CZmRpbjSNWqRU4f7qyh21lYk/OC/0XE8fh8CaO23TZ+6gBionoCztwb7NyC9OArN -qYlNnbmh9iNqdblykPS3bkjf34n2xyMgnIehNrM89tk8PY4UfNPhgT1TMD9W3Svq -ynNZvLuF/FIDwDeC1qcfjGbfDn9fXO/lMIIRooQYKQ== -=J2HJ +mQGNBGDsNnsBDADJzQDPd4pTSrF6OTN8BmRGcHYNBIMV3iJqXGEcITizqUtooFaz +9x2ewHKREHssjFB4FcEduPabKmEgUDX+XQHRq99w8npD4eyzNzhVUv50GCFfk8Ab +4M479gO0fbu039hvepmKTs+x0wtvjC/3Wyt1IT/+nmfVgWpFWH5t0O2spMxj1Eca +un5Qy1+NAn+zI3GFx5OVXmKK9vaneDX9ztKSia3NqLGsBDS+hluSJKlyOGYkDptb +4o8vnx/jhpf921q0vKrQ4ZzzTZaBQk5fmgX8Je0SKdGULTfXGPWFBLCYiFSJVqMP +emz1yfrpPiWGrD/KJFiDetGC1KPuM9uzjGjpx3V0ZILrmX+U86peSI08cqbdz408 +QKX+fbTp56vITw37wTrVKvR4Y8CA0eQQjM6qDzbJGnRXkM+8+JqfjGCxg2oxcLn7 +NIIqyrMCDAOkwthrXX0qa8UD3zKqxnYmLzLnEJxOYBk+ccjQaH3ddj8NhMx1iEfl +Lw1tDg+ra7XceZUAEQEAAbQhbXlWZXN0YSB0ZWFtIDxpbmZvQG15dmVzdGFjcC5j +b20+iQHUBBMBCgA+FiEEJnm7CzymmC3hqXmE3RveHvHBiEcFAmDsNnsCGwMFCQPC +ZwAFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AACgkQ3RveHvHBiEdC/Av/buI0U5BR +juCRBerCKeB7AJ8Yei2q0DAyFV1+UjGkT1G12jvnOv+GnJWHTCwzJjwxmHfBQKMz +7EK0gHPV7v34agfhDl/yJAttRBbrwpxC2mu2EFEN7zl90g2/714Rd46Tjtmi1z+h +k7OXM1TR6AzOglzKoR3H1tbzRiFy7kS7sAJaeWoyxQMN0O5hQz+6NYpkUHt+5xzY +1TTvS5FJdIL4m4AGtIZsMTeNrnfWulOhpYFJrTm9hRikfuFH0ttY8cuy+hCiCc8J +fcdKA7HPr5IVTIj7V+TCwnQaV7cSVVfenE4Ia960RlqN0x4gUufBKs6ySCUGxkQS +8knAQNdN9a2lbmBlpotx7HoDoAuhB3tFhsXwzSBVxya6MxTYbrzf3aEWynufXZqs +sJ5qqWBYEvVNOTB9E8Bh5eqAVMqrJNugoq/yCqJKGLJ3fnnSYpR7bHfrSxxidymX +lmqP8uuz809xqEd/bYciKoEwFAdiMPE1Tdd7RL6T/qcLeT9yymNypqI1uQGNBGDs +NnsBDADQcj+pPa2Qq1n2jZnVlV9ULhXNB3bVpgrRUQyvIEtda0aHbAjvumXQdJlA +DB3jPPoDglIotOXsyxW8Ni4+dJ+P1zggHUZfFmcbIp1cwC2gRMoz6lWPz/N2YLIr +BbXah5cIGv8hnIo1uFzihAdEXwYQNzP/giysCKNQBZrfi3NxNQLFEITTeMGH0G44 +4oEeVih3KIgbfEdO6qu3fTlO/tHa6tB2z6q2qDiT0/sqs4lgM38Z2udR1vsCi1e/ +aHIVxcBanTTdGrv27hrlHY5GT/K8mVKD+PVTuQk0lCiI5SlXvDeCQiMkyUSNr+fV +4d6214WLh6xv7TN7Op1XZVXLZLf2g7DMuaOs4ZL1oVwqwXZXbnEosyFaJdIPJMvm +mggbO7g52WABAo6U3rY33N+Dy1JbAA8R7wF3MFK6zrt0tyoK9DkpOEjo4GRjPDzG +Q/6ajOQjRIPYruRTa94PE7IyqPGDA+MvOsTsHGw/W0wDIsacWXhJsRTNDZLiWDaK +T1VOIE8AEQEAAYkBvAQYAQoAJhYhBCZ5uws8ppgt4al5hN0b3h7xwYhHBQJg7DZ7 +AhsMBQkDwmcAAAoJEN0b3h7xwYhHf+0L/36hcdqZjMawSUjWRw3g2BxcXmyfqhYq +bVeIQc7hOFSY62BcHYb5dk0ChtGefSSdE3sOtYxsLd3jBcU+32mDV74/iJfW/r3+ +9ZtFTHJ/AiybgjI6WysYNnlCuXHi/FMrByDRrZR7CkpGQ8PYZzsy8WZDaOJd2HqN +SjkSeMesuwNGB5e76ngyP++OdLn83nN2N4C7dubssN229mBg8F0zrFFroNtRGf/j +EDh30dkXt8uSsiv1Btz5uNfzLzDaMmPjITuROqCsGJVR4OwWVtYYgDKXaW7INa+E +N0sl8SGclA5/evlS+BIQMgAfKS138JDgTHc4l+eJuKQTWSyPhEoVqVM1e/C2idnK +B/j698LFBfvfhQ8UX5eZd9IyKIV/FYX2Hk7zDGaKokDdtWx82lcmSG+hXgYfWgMK +t362nvwEJVR5Qo8syYdyZKUk6E31qFPCU77RHJhTyUqbEhFOhBUg9o2xoynjYnd1 +lRP4w0e42TCozCmH3fx/Ya0a2jdTm2f79Q== +=RFAO -----END PGP PUBLIC KEY BLOCK----- From c174cc8dca5940d4436fe634124e3f3995ba84fb Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 12 Jul 2021 15:09:46 +0200 Subject: [PATCH 171/984] Update deb_signing.key --- install/debian/10/deb_signing.key | 76 +++++++++++++++---------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/install/debian/10/deb_signing.key b/install/debian/10/deb_signing.key index 14faf4f8..d279abbd 100644 --- a/install/debian/10/deb_signing.key +++ b/install/debian/10/deb_signing.key @@ -1,41 +1,41 @@ -----BEGIN PGP PUBLIC KEY BLOCK----- -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 -lRP4w0e42TCozCmH3fx/Ya0a2jdTm2f79Q== -=RFAO +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 +qiC8NLvRaE3PVkma9Q== +=RAbI -----END PGP PUBLIC KEY BLOCK----- From f6eafa7a6f929dfcd4d2f1c5d40aba5d9fe5b437 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 12 Jul 2021 15:10:08 +0200 Subject: [PATCH 172/984] Update deb_signing.key --- install/debian/9/deb_signing.key | 76 ++++++++++++++++---------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/install/debian/9/deb_signing.key b/install/debian/9/deb_signing.key index 14faf4f8..d279abbd 100644 --- a/install/debian/9/deb_signing.key +++ b/install/debian/9/deb_signing.key @@ -1,41 +1,41 @@ -----BEGIN PGP PUBLIC KEY BLOCK----- -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 -lRP4w0e42TCozCmH3fx/Ya0a2jdTm2f79Q== -=RFAO +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 +qiC8NLvRaE3PVkma9Q== +=RAbI -----END PGP PUBLIC KEY BLOCK----- From b19ea501836ef7280e3c22cf64e86001e2172a94 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 12 Jul 2021 15:10:31 +0200 Subject: [PATCH 173/984] Update deb_signing.key --- install/debian/8/deb_signing.key | 76 ++++++++++++++++---------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/install/debian/8/deb_signing.key b/install/debian/8/deb_signing.key index 14faf4f8..d279abbd 100644 --- a/install/debian/8/deb_signing.key +++ b/install/debian/8/deb_signing.key @@ -1,41 +1,41 @@ -----BEGIN PGP PUBLIC KEY BLOCK----- -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 -lRP4w0e42TCozCmH3fx/Ya0a2jdTm2f79Q== -=RFAO +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 +qiC8NLvRaE3PVkma9Q== +=RAbI -----END PGP PUBLIC KEY BLOCK----- From ac416b15ab6a7a7304ce8a1f96b46abc08e1dbfd Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 12 Jul 2021 15:11:02 +0200 Subject: [PATCH 174/984] Update deb_signing.key --- install/debian/7/deb_signing.key | 76 ++++++++++++++++---------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/install/debian/7/deb_signing.key b/install/debian/7/deb_signing.key index 14faf4f8..d279abbd 100644 --- a/install/debian/7/deb_signing.key +++ b/install/debian/7/deb_signing.key @@ -1,41 +1,41 @@ -----BEGIN PGP PUBLIC KEY BLOCK----- -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 -lRP4w0e42TCozCmH3fx/Ya0a2jdTm2f79Q== -=RFAO +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 +qiC8NLvRaE3PVkma9Q== +=RAbI -----END PGP PUBLIC KEY BLOCK----- From efcd74ce9263a8622d32b503d1be35521ee01b34 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 12 Jul 2021 15:30:44 +0200 Subject: [PATCH 175/984] Update vesta_compile.sh --- src/deb/vesta_compile.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/vesta_compile.sh b/src/deb/vesta_compile.sh index 3e9663bd..c21bdc90 100644 --- a/src/deb/vesta_compile.sh +++ b/src/deb/vesta_compile.sh @@ -243,7 +243,7 @@ Pull: $TARGET_DEB_NAME EOF if [ ! -d "/root/.gnupg" ]; then - gpg --gen-key + gpg --full-gen-key gpg --armor --export $MAINTAINER_EMAIL --output $MAINTAINER_EMAIL.gpg.key press_enter "*** please copy above generated key to your clipboard and then paste it after pressing enter now ***" vi $PATH_OF_APT_REPO_ROOT/deb_signing.key From 3b114ee25be0065d8d7f8672b6e2d9bc9fb5f765 Mon Sep 17 00:00:00 2001 From: Sofonov Evgeniy <1279489+oldgin@users.noreply.github.com> Date: Tue, 13 Jul 2021 02:12:12 +0500 Subject: [PATCH 176/984] Create default_host.tpl we determine the default host that requests for an IP or an unassigned domain were sent to this host --- .../web/nginx/php-fpm/default_host.tpl | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 install/debian/10/templates/web/nginx/php-fpm/default_host.tpl diff --git a/install/debian/10/templates/web/nginx/php-fpm/default_host.tpl b/install/debian/10/templates/web/nginx/php-fpm/default_host.tpl new file mode 100644 index 00000000..45b8476e --- /dev/null +++ b/install/debian/10/templates/web/nginx/php-fpm/default_host.tpl @@ -0,0 +1,77 @@ +# +# this file directory: /usr/local/vesta/data/templates/web/nginx/php-fpm/ +# +server { + listen %ip%:%web_port% default_server; + server_name %domain_idn% %alias_idn%; + # redirect http > httpS (www cut) + return 301 https://%domain_idn%$request_uri; + root %docroot%; + index index.php index.html; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location / { + + # запрещаем всем доступ + # access is denied to everyone + deny all; + # не засоряем лог отказом в доступе + # we do not clog the blog with access denial + access_log off; + log_not_found off; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; + + gzip on; + gzip_static on; + gzip_proxied any; + gzip_min_length 512; + gzip_buffers 16 8k; + gzip_comp_level 3; + gzip_vary on; + gzip_types + application/atom+xml + application/javascript + application/json + application/ld+json + application/manifest+json + application/rss+xml + application/vnd.geo+json + application/vnd.ms-fontobject + application/x-font-ttf + application/x-web-app-manifest+json + application/xhtml+xml + application/xml + font/opentype + image/bmp + image/svg+xml + image/x-icon + text/cache-manifest + text/css + text/plain + text/vcard + text/vnd.rim.location.xloc + text/vtt + text/x-component + text/x-cross-domain-policy; +} From 1fae6fda46708704ed23e6b53c41eef367697cd7 Mon Sep 17 00:00:00 2001 From: Sofonov Evgeniy <1279489+oldgin@users.noreply.github.com> Date: Tue, 13 Jul 2021 02:20:34 +0500 Subject: [PATCH 177/984] Create default_host.stpl this template is for httpS (http2). we determine the default host that requests for an IP or an unassigned domain were sent to this host. --- .../web/nginx/php-fpm/default_host.stpl | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 install/debian/10/templates/web/nginx/php-fpm/default_host.stpl diff --git a/install/debian/10/templates/web/nginx/php-fpm/default_host.stpl b/install/debian/10/templates/web/nginx/php-fpm/default_host.stpl new file mode 100644 index 00000000..005705ce --- /dev/null +++ b/install/debian/10/templates/web/nginx/php-fpm/default_host.stpl @@ -0,0 +1,62 @@ +### +# this file directory: +# /usr/local/vesta/data/templates/web/nginx/php-fpm/default_host.stpl +# +# +### +server { + listen %ip%:%web_ssl_port% ssl http2 default_server; + server_name %domain_idn% %alias_idn%; + root %sdocroot%; + index index.php index.html; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location / { + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires 1d; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + access_log off; + log_not_found off; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} From 3fdf72082ed197d379db344ac9b9821253e3c54f Mon Sep 17 00:00:00 2001 From: myvesta Date: Fri, 16 Jul 2021 11:30:57 +0200 Subject: [PATCH 178/984] Debian11 configs tree --- install/debian/11/apache2/apache2.conf | 95 ++ install/debian/11/apache2/status.conf | 8 + install/debian/11/bind/named.conf | 12 + install/debian/11/clamav/clamd.conf | 61 ++ install/debian/11/deb_signing.key | 41 + install/debian/11/dovecot/conf.d/10-auth.conf | 4 + .../debian/11/dovecot/conf.d/10-logging.conf | 1 + install/debian/11/dovecot/conf.d/10-mail.conf | 4 + .../debian/11/dovecot/conf.d/10-master.conf | 29 + install/debian/11/dovecot/conf.d/10-ssl.conf | 3 + .../11/dovecot/conf.d/15-mailboxes.conf | 30 + install/debian/11/dovecot/conf.d/20-imap.conf | 58 ++ install/debian/11/dovecot/conf.d/20-pop3.conf | 91 ++ .../dovecot/conf.d/auth-passwdfile.conf.ext | 9 + install/debian/11/dovecot/dovecot.conf | 4 + install/debian/11/exim/deny_senders | 1 + install/debian/11/exim/dnsbl.conf | 2 + install/debian/11/exim/exim4.conf.template | 412 +++++++++ install/debian/11/exim/spam-blocks.conf | 0 .../debian/11/fail2ban/action.d/vesta.conf | 9 + .../debian/11/fail2ban/filter.d/vesta.conf | 10 + install/debian/11/fail2ban/jail.local | 39 + install/debian/11/firewall/ports.conf | 17 + install/debian/11/firewall/rules.conf | 11 + install/debian/11/logrotate/apache2 | 19 + install/debian/11/logrotate/dovecot | 12 + install/debian/11/logrotate/nginx | 13 + install/debian/11/logrotate/vesta | 7 + install/debian/11/mysql/my-large.cnf | 44 + install/debian/11/mysql/my-medium.cnf | 42 + install/debian/11/mysql/my-small.cnf | 42 + install/debian/11/nginx/nginx.conf | 140 +++ install/debian/11/nginx/phpmyadmin.inc | 18 + install/debian/11/nginx/phppgadmin.inc | 11 + install/debian/11/nginx/status.conf | 9 + install/debian/11/nginx/webmail.inc | 15 + install/debian/11/packages/default.pkg | 18 + install/debian/11/pga/config.inc.php | 159 ++++ install/debian/11/pga/phppgadmin.conf | 31 + install/debian/11/php-fpm/www.conf | 11 + install/debian/11/php/php7.3-dedi.patch | 78 ++ install/debian/11/php/php7.3-vps.patch | 78 ++ install/debian/11/pma/apache.conf | 42 + install/debian/11/pma/config.inc.php | 146 +++ install/debian/11/pma/create_tables.sql | 385 ++++++++ install/debian/11/pma/pma.sh | 157 ++++ install/debian/11/postgresql/pg_hba.conf | 11 + install/debian/11/proftpd/proftpd.conf | 36 + install/debian/11/proftpd/tls.conf | 63 ++ install/debian/11/roundcube/apache.conf | 40 + install/debian/11/roundcube/config.inc.php | 33 + install/debian/11/roundcube/db.inc.php | 66 ++ install/debian/11/roundcube/main.inc.php | 850 ++++++++++++++++++ install/debian/11/roundcube/vesta.php | 73 ++ install/debian/11/sudo/admin | 8 + install/debian/11/templates/dns/child-ns.tpl | 14 + install/debian/11/templates/dns/default.tpl | 18 + install/debian/11/templates/dns/gmail.tpl | 12 + install/debian/11/templates/dns/office365.tpl | 22 + install/debian/11/templates/dns/yandex.tpl | 16 + .../web/apache2/PHP-FPM-73-public.sh | 88 ++ .../web/apache2/PHP-FPM-73-public.stpl | 44 + .../web/apache2/PHP-FPM-73-public.tpl | 38 + .../11/templates/web/apache2/PHP-FPM-73.sh | 92 ++ .../11/templates/web/apache2/PHP-FPM-73.stpl | 44 + .../11/templates/web/apache2/PHP-FPM-73.tpl | 38 + .../11/templates/web/awstats/awstats.tpl | 133 +++ .../debian/11/templates/web/awstats/index.tpl | 10 + .../debian/11/templates/web/awstats/nav.tpl | 23 + .../debian/11/templates/web/nginx/caching.sh | 19 + .../11/templates/web/nginx/caching.stpl | 43 + .../debian/11/templates/web/nginx/caching.tpl | 41 + .../web/nginx/force-https-legacy.stpl | 38 + .../web/nginx/force-https-legacy.tpl | 8 + .../web/nginx/force-https-public.stpl | 38 + .../web/nginx/force-https-public.tpl | 8 + .../nginx/force-https-webmail-phpmyadmin.stpl | 62 ++ .../nginx/force-https-webmail-phpmyadmin.tpl | 8 + .../11/templates/web/nginx/force-https.stpl | 38 + .../11/templates/web/nginx/force-https.tpl | 8 + .../11/templates/web/nginx/hosting-legacy.sh | 11 + .../templates/web/nginx/hosting-legacy.stpl | 38 + .../11/templates/web/nginx/hosting-legacy.tpl | 35 + .../templates/web/nginx/hosting-public.stpl | 38 + .../11/templates/web/nginx/hosting-public.tpl | 35 + .../web/nginx/hosting-webmail-phpmyadmin.stpl | 62 ++ .../web/nginx/hosting-webmail-phpmyadmin.tpl | 59 ++ .../debian/11/templates/web/nginx/hosting.sh | 11 + .../11/templates/web/nginx/hosting.stpl | 38 + .../debian/11/templates/web/nginx/hosting.tpl | 35 + .../web/nginx/php-fpm/cms_made_simple.stpl | 55 ++ .../web/nginx/php-fpm/cms_made_simple.tpl | 52 ++ .../web/nginx/php-fpm/codeigniter2.stpl | 60 ++ .../web/nginx/php-fpm/codeigniter2.tpl | 57 ++ .../web/nginx/php-fpm/codeigniter3.stpl | 55 ++ .../web/nginx/php-fpm/codeigniter3.tpl | 52 ++ .../web/nginx/php-fpm/datalife_engine.stpl | 126 +++ .../web/nginx/php-fpm/datalife_engine.tpl | 123 +++ .../templates/web/nginx/php-fpm/default.stpl | 54 ++ .../templates/web/nginx/php-fpm/default.tpl | 51 ++ .../templates/web/nginx/php-fpm/dokuwiki.stpl | 71 ++ .../templates/web/nginx/php-fpm/dokuwiki.tpl | 67 ++ .../templates/web/nginx/php-fpm/drupal6.stpl | 94 ++ .../templates/web/nginx/php-fpm/drupal6.tpl | 91 ++ .../templates/web/nginx/php-fpm/drupal7.stpl | 94 ++ .../templates/web/nginx/php-fpm/drupal7.tpl | 91 ++ .../templates/web/nginx/php-fpm/drupal8.stpl | 94 ++ .../templates/web/nginx/php-fpm/drupal8.tpl | 91 ++ .../templates/web/nginx/php-fpm/joomla.stpl | 62 ++ .../11/templates/web/nginx/php-fpm/joomla.tpl | 59 ++ .../templates/web/nginx/php-fpm/laravel.stpl | 54 ++ .../templates/web/nginx/php-fpm/laravel.tpl | 50 ++ .../templates/web/nginx/php-fpm/magento.stpl | 197 ++++ .../templates/web/nginx/php-fpm/magento.tpl | 194 ++++ .../11/templates/web/nginx/php-fpm/modx.stpl | 68 ++ .../11/templates/web/nginx/php-fpm/modx.tpl | 65 ++ .../templates/web/nginx/php-fpm/moodle.stpl | 89 ++ .../11/templates/web/nginx/php-fpm/moodle.tpl | 87 ++ .../templates/web/nginx/php-fpm/no-php.stpl | 46 + .../11/templates/web/nginx/php-fpm/no-php.tpl | 43 + .../11/templates/web/nginx/php-fpm/odoo.stpl | 69 ++ .../11/templates/web/nginx/php-fpm/odoo.tpl | 66 ++ .../templates/web/nginx/php-fpm/opencart.stpl | 58 ++ .../templates/web/nginx/php-fpm/opencart.tpl | 54 ++ .../templates/web/nginx/php-fpm/owncloud.stpl | 84 ++ .../templates/web/nginx/php-fpm/owncloud.tpl | 81 ++ .../11/templates/web/nginx/php-fpm/piwik.stpl | 72 ++ .../11/templates/web/nginx/php-fpm/piwik.tpl | 69 ++ .../templates/web/nginx/php-fpm/pyrocms.stpl | 65 ++ .../templates/web/nginx/php-fpm/pyrocms.tpl | 62 ++ .../11/templates/web/nginx/php-fpm/sendy.stpl | 88 ++ .../11/templates/web/nginx/php-fpm/sendy.tpl | 86 ++ .../web/nginx/php-fpm/wordpress.stpl | 54 ++ .../templates/web/nginx/php-fpm/wordpress.tpl | 51 ++ .../web/nginx/php-fpm/wordpress2.stpl | 66 ++ .../web/nginx/php-fpm/wordpress2.tpl | 63 ++ .../web/nginx/php-fpm/wordpress2_rewrite.stpl | 71 ++ .../web/nginx/php-fpm/wordpress2_rewrite.tpl | 67 ++ .../web/nginx/private-force-https.stpl | 38 + .../web/nginx/private-force-https.tpl | 8 + .../11/templates/web/nginx/private-hosting.sh | 11 + .../templates/web/nginx/private-hosting.stpl | 40 + .../templates/web/nginx/private-hosting.tpl | 37 + .../11/templates/web/nginx/proxy_ip.tpl | 9 + .../11/templates/web/php-fpm/default.tpl | 21 + .../11/templates/web/php-fpm/no-php.tpl | 20 + .../11/templates/web/php-fpm/socket.tpl | 24 + .../web/skel/document_errors/403.html | 29 + .../web/skel/document_errors/404.html | 28 + .../web/skel/document_errors/50x.html | 29 + .../templates/web/skel/public_html/index.html | 26 + .../templates/web/skel/public_html/robots.txt | 3 + .../web/skel/public_shtml/index.html | 26 + .../web/skel/public_shtml/robots.txt | 3 + .../debian/11/templates/web/suspend/.htaccess | 2 + .../11/templates/web/suspend/index.html | 25 + .../11/templates/web/webalizer/webalizer.tpl | 110 +++ install/debian/11/vsftpd/vsftpd.conf | 26 + 158 files changed, 9006 insertions(+) create mode 100644 install/debian/11/apache2/apache2.conf create mode 100644 install/debian/11/apache2/status.conf create mode 100644 install/debian/11/bind/named.conf create mode 100644 install/debian/11/clamav/clamd.conf create mode 100644 install/debian/11/deb_signing.key create mode 100644 install/debian/11/dovecot/conf.d/10-auth.conf create mode 100644 install/debian/11/dovecot/conf.d/10-logging.conf create mode 100644 install/debian/11/dovecot/conf.d/10-mail.conf create mode 100644 install/debian/11/dovecot/conf.d/10-master.conf create mode 100644 install/debian/11/dovecot/conf.d/10-ssl.conf create mode 100644 install/debian/11/dovecot/conf.d/15-mailboxes.conf create mode 100644 install/debian/11/dovecot/conf.d/20-imap.conf create mode 100644 install/debian/11/dovecot/conf.d/20-pop3.conf create mode 100644 install/debian/11/dovecot/conf.d/auth-passwdfile.conf.ext create mode 100644 install/debian/11/dovecot/dovecot.conf create mode 100644 install/debian/11/exim/deny_senders create mode 100644 install/debian/11/exim/dnsbl.conf create mode 100644 install/debian/11/exim/exim4.conf.template create mode 100644 install/debian/11/exim/spam-blocks.conf create mode 100644 install/debian/11/fail2ban/action.d/vesta.conf create mode 100644 install/debian/11/fail2ban/filter.d/vesta.conf create mode 100644 install/debian/11/fail2ban/jail.local create mode 100644 install/debian/11/firewall/ports.conf create mode 100644 install/debian/11/firewall/rules.conf create mode 100644 install/debian/11/logrotate/apache2 create mode 100644 install/debian/11/logrotate/dovecot create mode 100644 install/debian/11/logrotate/nginx create mode 100644 install/debian/11/logrotate/vesta create mode 100644 install/debian/11/mysql/my-large.cnf create mode 100644 install/debian/11/mysql/my-medium.cnf create mode 100644 install/debian/11/mysql/my-small.cnf create mode 100644 install/debian/11/nginx/nginx.conf create mode 100644 install/debian/11/nginx/phpmyadmin.inc create mode 100644 install/debian/11/nginx/phppgadmin.inc create mode 100644 install/debian/11/nginx/status.conf create mode 100644 install/debian/11/nginx/webmail.inc create mode 100644 install/debian/11/packages/default.pkg create mode 100644 install/debian/11/pga/config.inc.php create mode 100644 install/debian/11/pga/phppgadmin.conf create mode 100644 install/debian/11/php-fpm/www.conf create mode 100644 install/debian/11/php/php7.3-dedi.patch create mode 100644 install/debian/11/php/php7.3-vps.patch create mode 100644 install/debian/11/pma/apache.conf create mode 100644 install/debian/11/pma/config.inc.php create mode 100644 install/debian/11/pma/create_tables.sql create mode 100644 install/debian/11/pma/pma.sh create mode 100644 install/debian/11/postgresql/pg_hba.conf create mode 100644 install/debian/11/proftpd/proftpd.conf create mode 100644 install/debian/11/proftpd/tls.conf create mode 100644 install/debian/11/roundcube/apache.conf create mode 100644 install/debian/11/roundcube/config.inc.php create mode 100644 install/debian/11/roundcube/db.inc.php create mode 100644 install/debian/11/roundcube/main.inc.php create mode 100644 install/debian/11/roundcube/vesta.php create mode 100644 install/debian/11/sudo/admin create mode 100755 install/debian/11/templates/dns/child-ns.tpl create mode 100755 install/debian/11/templates/dns/default.tpl create mode 100755 install/debian/11/templates/dns/gmail.tpl create mode 100644 install/debian/11/templates/dns/office365.tpl create mode 100644 install/debian/11/templates/dns/yandex.tpl create mode 100755 install/debian/11/templates/web/apache2/PHP-FPM-73-public.sh create mode 100644 install/debian/11/templates/web/apache2/PHP-FPM-73-public.stpl create mode 100644 install/debian/11/templates/web/apache2/PHP-FPM-73-public.tpl create mode 100755 install/debian/11/templates/web/apache2/PHP-FPM-73.sh create mode 100644 install/debian/11/templates/web/apache2/PHP-FPM-73.stpl create mode 100644 install/debian/11/templates/web/apache2/PHP-FPM-73.tpl create mode 100755 install/debian/11/templates/web/awstats/awstats.tpl create mode 100755 install/debian/11/templates/web/awstats/index.tpl create mode 100755 install/debian/11/templates/web/awstats/nav.tpl create mode 100755 install/debian/11/templates/web/nginx/caching.sh create mode 100644 install/debian/11/templates/web/nginx/caching.stpl create mode 100644 install/debian/11/templates/web/nginx/caching.tpl create mode 100644 install/debian/11/templates/web/nginx/force-https-legacy.stpl create mode 100644 install/debian/11/templates/web/nginx/force-https-legacy.tpl create mode 100644 install/debian/11/templates/web/nginx/force-https-public.stpl create mode 100644 install/debian/11/templates/web/nginx/force-https-public.tpl create mode 100644 install/debian/11/templates/web/nginx/force-https-webmail-phpmyadmin.stpl create mode 100644 install/debian/11/templates/web/nginx/force-https-webmail-phpmyadmin.tpl create mode 100644 install/debian/11/templates/web/nginx/force-https.stpl create mode 100644 install/debian/11/templates/web/nginx/force-https.tpl create mode 100755 install/debian/11/templates/web/nginx/hosting-legacy.sh create mode 100644 install/debian/11/templates/web/nginx/hosting-legacy.stpl create mode 100644 install/debian/11/templates/web/nginx/hosting-legacy.tpl create mode 100644 install/debian/11/templates/web/nginx/hosting-public.stpl create mode 100644 install/debian/11/templates/web/nginx/hosting-public.tpl create mode 100644 install/debian/11/templates/web/nginx/hosting-webmail-phpmyadmin.stpl create mode 100644 install/debian/11/templates/web/nginx/hosting-webmail-phpmyadmin.tpl create mode 100755 install/debian/11/templates/web/nginx/hosting.sh create mode 100644 install/debian/11/templates/web/nginx/hosting.stpl create mode 100644 install/debian/11/templates/web/nginx/hosting.tpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/cms_made_simple.stpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/cms_made_simple.tpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/codeigniter2.stpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/codeigniter2.tpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/codeigniter3.stpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/codeigniter3.tpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/datalife_engine.stpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/datalife_engine.tpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/default.stpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/default.tpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/dokuwiki.stpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/dokuwiki.tpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/drupal6.stpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/drupal6.tpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/drupal7.stpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/drupal7.tpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/drupal8.stpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/drupal8.tpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/joomla.stpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/joomla.tpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/laravel.stpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/laravel.tpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/magento.stpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/magento.tpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/modx.stpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/modx.tpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/moodle.stpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/moodle.tpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/no-php.stpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/no-php.tpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/odoo.stpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/odoo.tpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/opencart.stpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/opencart.tpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/owncloud.stpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/owncloud.tpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/piwik.stpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/piwik.tpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/pyrocms.stpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/pyrocms.tpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/sendy.stpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/sendy.tpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/wordpress.stpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/wordpress.tpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/wordpress2.stpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/wordpress2.tpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/wordpress2_rewrite.stpl create mode 100644 install/debian/11/templates/web/nginx/php-fpm/wordpress2_rewrite.tpl create mode 100644 install/debian/11/templates/web/nginx/private-force-https.stpl create mode 100644 install/debian/11/templates/web/nginx/private-force-https.tpl create mode 100755 install/debian/11/templates/web/nginx/private-hosting.sh create mode 100644 install/debian/11/templates/web/nginx/private-hosting.stpl create mode 100644 install/debian/11/templates/web/nginx/private-hosting.tpl create mode 100644 install/debian/11/templates/web/nginx/proxy_ip.tpl create mode 100644 install/debian/11/templates/web/php-fpm/default.tpl create mode 100644 install/debian/11/templates/web/php-fpm/no-php.tpl create mode 100644 install/debian/11/templates/web/php-fpm/socket.tpl create mode 100755 install/debian/11/templates/web/skel/document_errors/403.html create mode 100755 install/debian/11/templates/web/skel/document_errors/404.html create mode 100755 install/debian/11/templates/web/skel/document_errors/50x.html create mode 100755 install/debian/11/templates/web/skel/public_html/index.html create mode 100755 install/debian/11/templates/web/skel/public_html/robots.txt create mode 100755 install/debian/11/templates/web/skel/public_shtml/index.html create mode 100755 install/debian/11/templates/web/skel/public_shtml/robots.txt create mode 100755 install/debian/11/templates/web/suspend/.htaccess create mode 100755 install/debian/11/templates/web/suspend/index.html create mode 100755 install/debian/11/templates/web/webalizer/webalizer.tpl create mode 100644 install/debian/11/vsftpd/vsftpd.conf diff --git a/install/debian/11/apache2/apache2.conf b/install/debian/11/apache2/apache2.conf new file mode 100644 index 00000000..2be3e50d --- /dev/null +++ b/install/debian/11/apache2/apache2.conf @@ -0,0 +1,95 @@ +# It is split into several files forming the configuration hierarchy outlined +# below, all located in the /etc/apache2/ directory: +# +# /etc/apache2/ +# |-- apache2.conf +# | `-- ports.conf +# |-- mods-enabled +# | |-- *.load +# | `-- *.conf +# |-- conf.d +# | `-- * + +# Global configuration +PidFile ${APACHE_PID_FILE} +Timeout 900 +ProxyTimeout 900 +KeepAlive Off +MaxKeepAliveRequests 100 +KeepAliveTimeout 10 + + + StartServers 8 + MinSpareServers 5 + MaxSpareServers 20 + ServerLimit 256 + MaxClients 200 + MaxRequestsPerChild 4000 + + + + StartServers 2 + MinSpareThreads 25 + MaxSpareThreads 75 + ThreadLimit 64 + ThreadsPerChild 25 + MaxClients 200 + MaxRequestsPerChild 4000 + + + + StartServers 2 + MinSpareThreads 25 + MaxSpareThreads 75 + ThreadLimit 64 + ThreadsPerChild 25 + MaxClients 200 + MaxRequestsPerChild 4000 + + +# These need to be set in /etc/apache2/envvars +User ${APACHE_RUN_USER} +Group ${APACHE_RUN_GROUP} +#User www-data +#Group www-data + +AccessFileName .htaccess + + + Order allow,deny + Deny from all + Satisfy all + + +DefaultType None +HostnameLookups Off + +ErrorLog ${APACHE_LOG_DIR}/error.log +LogLevel warn + +# Include module configuration: +Include mods-enabled/*.load +Include mods-enabled/*.conf + +# Include list of ports to listen on and which to use for name based vhosts +Include ports.conf + +LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined +LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined +LogFormat "%h %l %u %t \"%r\" %>s %O" common +LogFormat "%{Referer}i -> %U" referer +LogFormat "%{User-agent}i" agent +LogFormat "%b" bytes + +Include conf.d/ + +# Include the virtual host configurations: +#Include sites-enabled/ + +ErrorDocument 403 /error/403.html +ErrorDocument 404 /error/404.html +ErrorDocument 500 /error/50x.html +ErrorDocument 501 /error/50x.html +ErrorDocument 502 /error/50x.html +ErrorDocument 503 /error/50x.html +ErrorDocument 506 /error/50x.html diff --git a/install/debian/11/apache2/status.conf b/install/debian/11/apache2/status.conf new file mode 100644 index 00000000..0d82a356 --- /dev/null +++ b/install/debian/11/apache2/status.conf @@ -0,0 +1,8 @@ +Listen 127.0.0.1:8081 + + SetHandler server-status + Order deny,allow + Deny from all + Allow from 127.0.0.1 + # Allow from all + diff --git a/install/debian/11/bind/named.conf b/install/debian/11/bind/named.conf new file mode 100644 index 00000000..ed6ece88 --- /dev/null +++ b/install/debian/11/bind/named.conf @@ -0,0 +1,12 @@ +// This is the primary configuration file for the BIND DNS server named. +// +// Please read /usr/share/doc/bind9/README.Debian.gz for information on the +// structure of BIND configuration files in Debian, *BEFORE* you customize +// this configuration file. +// +// If you are just adding zones, please do that in /etc/bind/named.conf.local + +include "/etc/bind/named.conf.options"; +include "/etc/bind/named.conf.local"; +include "/etc/bind/named.conf.default-zones"; + diff --git a/install/debian/11/clamav/clamd.conf b/install/debian/11/clamav/clamd.conf new file mode 100644 index 00000000..c636b6d3 --- /dev/null +++ b/install/debian/11/clamav/clamd.conf @@ -0,0 +1,61 @@ +#Automatically Generated by clamav-base postinst +#To reconfigure clamd run #dpkg-reconfigure clamav-base +#Please read /usr/share/doc/clamav-base/README.Debian.gz for details +LocalSocket /var/run/clamav/clamd.ctl +FixStaleSocket true +LocalSocketGroup clamav +LocalSocketMode 666 +# TemporaryDirectory is not set to its default /tmp here to make overriding +# the default with environment variables TMPDIR/TMP/TEMP possible +User clamav +# AllowSupplementaryGroups true +ScanMail true +ScanArchive true +ArchiveBlockEncrypted false +MaxDirectoryRecursion 15 +FollowDirectorySymlinks false +FollowFileSymlinks false +ReadTimeout 180 +MaxThreads 12 +MaxConnectionQueueLength 15 +LogSyslog false +LogFacility LOG_LOCAL6 +LogClean true +LogVerbose true +PidFile /var/run/clamav/clamd.pid +DatabaseDirectory /var/lib/clamav +SelfCheck 3600 +Foreground false +Debug false +ScanPE true +ScanOLE2 true +ScanHTML true +ExitOnOOM false +LeaveTemporaryFiles false +AlgorithmicDetection true +ScanELF true +IdleTimeout 30 +PhishingSignatures true +PhishingScanURLs true +PhishingAlwaysBlockSSLMismatch false +PhishingAlwaysBlockCloak false +DetectPUA false +ScanPartialMessages false +HeuristicScanPrecedence false +StructuredDataDetection false +CommandReadTimeout 5 +SendBufTimeout 200 +MaxQueue 100 +ExtendedDetectionInfo true +OLE2BlockMacros false +StreamMaxLength 2M +MaxFileSize 2M +LogFile /var/log/clamav/clamav.log +LogTime true +LogFileUnlock false +LogFileMaxSize 0 +Bytecode true +BytecodeSecurity TrustSigned +BytecodeTimeout 60000 +OfficialDatabaseOnly false +CrossFilesystems true diff --git a/install/debian/11/deb_signing.key b/install/debian/11/deb_signing.key new file mode 100644 index 00000000..d279abbd --- /dev/null +++ b/install/debian/11/deb_signing.key @@ -0,0 +1,41 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQGNBGDsPogBDADT7jiPewIuavqJZJMZ18c+kEC8N+/EK15k9zdBvcluxZ7gb5D6 +sKT3fVmLWD49mux+OoFs8DJH1LkpFe2Ax58NVMgDwCNUtcqeR8eB6nEWpZLjzJhZ +RD5+ZpUaX/emXrr7mxJ1SvT8PgWWerl2ZuPSlpPm4Ls6JO53AvPAsUVgMTHkfHNj +4/GqKtORkanzBwimC0bcB3BBRLH/kiW/TNi3hQnR5GYIaKWrc8oGpHHqX5BNw72O +JTSqTj8OZXKG7US6cXgBQuLN68sKd9TIy2HZdTKlqR1yQyc2BiPwVYDrJemM72VT +kuW0qbsOwji7rG2B6Pg1yggWXpB8Znczzi8AfzoFgXeOTi/hzcaf3YnAxfeL1Ofq +aOW+ReqsF1wxpgVwNj0DVquPTqzd4uCIGNNGGHhlIR434FyA4YNfxK63YxZS5SAR +leQGTUtBRdh1SOKPDZMcSlJ3wEfHKbp72qmnLdqUkGl//FZsCDdPFxx3wDCPPS2e +++g3ImqeaQ553nUAEQEAAbQhbXlWZXN0YSB0ZWFtIDxpbmZvQG15dmVzdGFjcC5j +b20+iQHOBBMBCgA4FiEEDcdTLoRXCPbKaPuqiIB9SyIhM4wFAmDsPogCGwMFCwkI +BwIGFQoJCAsCBBYCAwECHgECF4AACgkQiIB9SyIhM4yADAv+M62/6N+uFx9Izbj5 +HxZCzLEgvlQzdQcLJPDwFWYByVRiQRkRJWt5kqwNpndWoDo5zEtyKn3Yulbj6zyy +UqYhN0ctXyaFjKFIHIqrrz9P9AF2uGr17rTWbnRpjlMSkDSmUGXNEKO7gMtKiTo3 +olWldDELuM0MQddwMGgnqZPb3/Z+om68U1/6NS8A5hAHL+HuwcKGFZpFRJYXSOLY +lIpHyicifvkRAMkPp025Y3Who3EZMWq3Bpo78djtxfA4CoUn+OH64Hn0llkJ3vU6 +bM+KuC2ZrkHrzcqZbPbYnmEmVD1rkxVoOgzqE76fAY2I6YFY09uhdg0FbZeeMjA+ +DReBwINRFYsk6/maY7Zc82clfc7+vr3xmR+f+KEiUCU4mI72PnlU9LT9RuoCkKbo +znUZo+Xj6ezM6lCKGnOmqhvQmWR+hdsn1zX1ufxPA5uQyeFfR5VpAjvDOFykPA93 +3Et0ZdrKB2U6jjlGzWhsCkYphF7M0DVIRPOm1xLUJvLx+zB+uQGNBGDsPogBDADG +rJuQBsLJ6MWAGLydwaIBttwG3GOysSsQ1P09mbeOqiyCaWfEladePorTpKsbOHA/ +USAfjN8Eik81Un1Kik6rYU8ieGERKpCMiBkcNLQH/DnYyCNT5oaGqXtIQ+5GNn71 +mt7sLmf0yL3C320RJa8KSP+rAaey4ttLyl7rM1q8RPmlsRSxVjeiMw01i6cXmA1G +EJDuRbXdzDuo5utHDBMHgN0T0g8kgoTX9G2uwUTnJm9qzW2Lg3d4xoe2+H5/86Qm +0lVl5vLSMEPl01NcoTVgQpGO/yR3nJ4ubMkkbzCM0e0MByHqOKJ2LfW77BcvcoXg +coa7tF+6DZBB4UGyb1VuSZJoVOYN2tnSj2/taPk0yHJf/tLvNm/hVHEvXNXk09hy +fne0FZmHKwwp0TGSC8tzsHPRSbIOazifIC8pdN4fPTQyfI9tKxi26opCIAHHkcTr +7VOUvUNyAGVB9TU/nmzpvkv8BLCKSQM1FxUQ0owgFtrtIoMVxkYG5hb6EjAHyUcA +EQEAAYkBtgQYAQoAIBYhBA3HUy6EVwj2ymj7qoiAfUsiITOMBQJg7D6IAhsMAAoJ +EIiAfUsiITOMR40MALn5sqKFZ9FMe7982XMamanjPqO3Odi5/9rUXYKbJGjsaSof +lSC3OtqnRTVGE6KEuYErCKCpAk2ZvEf5eQHi264fC255zuxWihdcEQpiPK1DdlN3 +m9JNp/4Pns38Nn/zG3cFQuDEvDsC75xmxN7pi+ZkokodwA0PgaiMVh5mSos+Mc/G +fLcEes21xVk2DQ3Vw6p1P/39uujBPZ3J2unWBqv0rCFEpwgXm/d80Y0x31tq0ToZ +hf1r/GcoB6rC3sSAtUykrTZUaRv57BouvnAP9zfFlFSrYpJZ5L9/IawBH+O9yUu2 +N1jGq9eJ/RwHG1lKUBJd6wCWz1ZKzxnaoH9CfRC/aG9vRQWLSjiHCl2cnNDxElKx +JOT7RUjxlri4zvxdum49Vr8iEpjUFXzhRYq79SsmqkLuXZYQnccNFAdde8ZcPpKA +zhfavTutAPNJRyg9hbwxQYUH6N1i5J7ZZsqHB/GIBaSReXroacHjFYcU6uiBt/da +qiC8NLvRaE3PVkma9Q== +=RAbI +-----END PGP PUBLIC KEY BLOCK----- diff --git a/install/debian/11/dovecot/conf.d/10-auth.conf b/install/debian/11/dovecot/conf.d/10-auth.conf new file mode 100644 index 00000000..dfcc8311 --- /dev/null +++ b/install/debian/11/dovecot/conf.d/10-auth.conf @@ -0,0 +1,4 @@ +disable_plaintext_auth = no +auth_verbose = yes +auth_mechanisms = plain login +!include auth-passwdfile.conf.ext diff --git a/install/debian/11/dovecot/conf.d/10-logging.conf b/install/debian/11/dovecot/conf.d/10-logging.conf new file mode 100644 index 00000000..a5f207d5 --- /dev/null +++ b/install/debian/11/dovecot/conf.d/10-logging.conf @@ -0,0 +1 @@ +log_path = /var/log/dovecot.log diff --git a/install/debian/11/dovecot/conf.d/10-mail.conf b/install/debian/11/dovecot/conf.d/10-mail.conf new file mode 100644 index 00000000..55313419 --- /dev/null +++ b/install/debian/11/dovecot/conf.d/10-mail.conf @@ -0,0 +1,4 @@ +mail_privileged_group = mail +mail_access_groups = mail +mail_location = maildir:%h/mail/%d/%n +pop3_uidl_format = %08Xu%08Xv diff --git a/install/debian/11/dovecot/conf.d/10-master.conf b/install/debian/11/dovecot/conf.d/10-master.conf new file mode 100644 index 00000000..a75a9aaa --- /dev/null +++ b/install/debian/11/dovecot/conf.d/10-master.conf @@ -0,0 +1,29 @@ +service imap-login { + inet_listener imap { + } + inet_listener imaps { + } +} + +service pop3-login { + inet_listener pop3 { + } + inet_listener pop3s { + } +} + + +service imap { +} + +service pop3 { +} + +service auth { + unix_listener auth-client { + group = mail + mode = 0660 + user = dovecot + } + user = dovecot +} diff --git a/install/debian/11/dovecot/conf.d/10-ssl.conf b/install/debian/11/dovecot/conf.d/10-ssl.conf new file mode 100644 index 00000000..3aaff6ee --- /dev/null +++ b/install/debian/11/dovecot/conf.d/10-ssl.conf @@ -0,0 +1,3 @@ +ssl = yes +ssl_cert = = 2.1.4) : %v.%u + # Dovecot v0.99.x : %v.%u + # tpop3d : %Mf + # + # Note that Outlook 2003 seems to have problems with %v.%u format which was + # Dovecot's default, so if you're building a new server it would be a good + # idea to change this. %08Xu%08Xv should be pretty fail-safe. + # + #pop3_uidl_format = %08Xu%08Xv + + # Permanently save UIDLs sent to POP3 clients, so pop3_uidl_format changes + # won't change those UIDLs. Currently this works only with Maildir. + #pop3_save_uidl = no + + # What to do about duplicate UIDLs if they exist? + # allow: Show duplicates to clients. + # rename: Append a temporary -2, -3, etc. counter after the UIDL. + #pop3_uidl_duplicates = allow + + # POP3 logout format string: + # %i - total number of bytes read from client + # %o - total number of bytes sent to client + # %t - number of TOP commands + # %p - number of bytes sent to client as a result of TOP command + # %r - number of RETR commands + # %b - number of bytes sent to client as a result of RETR command + # %d - number of deleted messages + # %m - number of messages (before deletion) + # %s - mailbox size in bytes (before deletion) + # %u - old/new UIDL hash. may help finding out if UIDLs changed unexpectedly + #pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s + + # Maximum number of POP3 connections allowed for a user from each IP address. + # NOTE: The username is compared case-sensitively. + mail_max_userip_connections = 50 + + # Space separated list of plugins to load (default is global mail_plugins). + #mail_plugins = $mail_plugins + + # Workarounds for various client bugs: + # outlook-no-nuls: + # Outlook and Outlook Express hang if mails contain NUL characters. + # This setting replaces them with 0x80 character. + # oe-ns-eoh: + # Outlook Express and Netscape Mail breaks if end of headers-line is + # missing. This option simply sends it if it's missing. + # The list is space-separated. + #pop3_client_workarounds = +} diff --git a/install/debian/11/dovecot/conf.d/auth-passwdfile.conf.ext b/install/debian/11/dovecot/conf.d/auth-passwdfile.conf.ext new file mode 100644 index 00000000..75e6e115 --- /dev/null +++ b/install/debian/11/dovecot/conf.d/auth-passwdfile.conf.ext @@ -0,0 +1,9 @@ +passdb { + driver = passwd-file + args = scheme=MD5-CRYPT username_format=%n /etc/exim4/domains/%d/passwd +} + +userdb { + driver = passwd-file + args = username_format=%n /etc/exim4/domains/%d/passwd +} diff --git a/install/debian/11/dovecot/dovecot.conf b/install/debian/11/dovecot/dovecot.conf new file mode 100644 index 00000000..0a855351 --- /dev/null +++ b/install/debian/11/dovecot/dovecot.conf @@ -0,0 +1,4 @@ +protocols = imap pop3 +listen = *, :: +base_dir = /var/run/dovecot/ +!include conf.d/*.conf diff --git a/install/debian/11/exim/deny_senders b/install/debian/11/exim/deny_senders new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/install/debian/11/exim/deny_senders @@ -0,0 +1 @@ + diff --git a/install/debian/11/exim/dnsbl.conf b/install/debian/11/exim/dnsbl.conf new file mode 100644 index 00000000..5166b255 --- /dev/null +++ b/install/debian/11/exim/dnsbl.conf @@ -0,0 +1,2 @@ +bl.spamcop.net +zen.spamhaus.org diff --git a/install/debian/11/exim/exim4.conf.template b/install/debian/11/exim/exim4.conf.template new file mode 100644 index 00000000..7cc13c36 --- /dev/null +++ b/install/debian/11/exim/exim4.conf.template @@ -0,0 +1,412 @@ +###################################################################### +# # +# Exim configuration file for Vesta Control Panel # +# # +###################################################################### + +#SPAMASSASSIN = yes +#SPAM_SCORE = 50 +#CLAMD = yes + +disable_ipv6=true +add_environment=<; PATH=/bin:/usr/bin +keep_environment= + +domainlist local_domains = dsearch;/etc/exim4/domains/ +domainlist relay_to_domains = dsearch;/etc/exim4/domains/ +hostlist relay_from_hosts = 127.0.0.1 +hostlist whitelist = net-iplsearch;/etc/exim4/white-blocks.conf +hostlist spammers = net-iplsearch;/etc/exim4/spam-blocks.conf +no_local_from_check +untrusted_set_sender = * +acl_smtp_connect = acl_check_spammers +acl_smtp_mail = acl_check_mail +acl_smtp_rcpt = acl_check_rcpt +acl_smtp_data = acl_check_data +acl_smtp_mime = acl_check_mime + +recipients_max = 15 +recipients_max_reject = true + +# log_selector = +smtp_connection +smtp_accept_max = 50 +smtp_accept_max_per_host = 4 + +.ifdef SPAMASSASSIN +spamd_address = 127.0.0.1 783 +.endif + +.ifdef CLAMD +av_scanner = clamd: /var/run/clamav/clamd.ctl +.endif + +tls_advertise_hosts = * +tls_certificate = /usr/local/vesta/ssl/certificate.crt +tls_privatekey = /usr/local/vesta/ssl/certificate.key + +daemon_smtp_ports = 25 : 465 : 587 : 2525 +tls_on_connect_ports = 465 +never_users = root +host_lookup = * +rfc1413_hosts = * +rfc1413_query_timeout = 0s +ignore_bounce_errors_after = 2d +timeout_frozen_after = 7d + +DKIM_DOMAIN = ${lc:${domain:$h_from:}} +DKIM_FILE = /etc/exim4/domains/${lc:${domain:$h_from:}}/dkim.pem +DKIM_PRIVATE_KEY = ${if exists{DKIM_FILE}{DKIM_FILE}{0}} + + + +###################################################################### +# ACL CONFIGURATION # +# Specifies access control lists for incoming SMTP mail # +###################################################################### + +acl_not_smtp = acl_not_smtp + +begin acl + +acl_not_smtp: + deny message = Web site is sending too much emails [limitlog]: deny / account / $authenticated_id / $sender_rate / $sender_rate_period + ratelimit = 40 / 1h / $authenticated_id + + warn ratelimit = 0 / 1h / strict / $authenticated_id + log_message = Sender rate [limitlog]: log / account / $authenticated_id / $sender_rate / $sender_rate_period + + accept + +acl_check_spammers: + accept hosts = +whitelist + + drop message = Your host in blacklist on this server. + log_message = Host in blacklist + hosts = +spammers + + accept + + +acl_check_mail: + deny condition = ${if eq{$sender_helo_name}{}} + message = HELO required before MAIL + + drop message = Helo name contains a ip address (HELO was $sender_helo_name) and not is valid + condition = ${if match{$sender_helo_name}{\N((\d{1,3}[.-]\d{1,3}[.-]\d{1,3}[.-]\d{1,3})|([0-9a-f]{8})|([0-9A-F]{8}))\N}{yes}{no}} + condition = ${if match{${lc:$sender_host_name}}{.telenor.rs}{false}{true}} + condition = ${if match {${lookup dnsdb{>: defer_never,ptr=$sender_host_address}}\}{$sender_helo_name}{no}{yes}} + delay = 45s + + drop condition = ${if isip{$sender_helo_name}} + message = Access denied - Invalid HELO name (See RFC2821 4.1.3) + + drop condition = ${if eq{[$interface_address]}{$sender_helo_name}} + message = $interface_address is _my_ address + + accept + + +acl_check_rcpt: + accept hosts = : + + deny message = Email account is sending too much emails [limitlog]: deny / email / $authenticated_id / $sender_rate / $sender_rate_period + ratelimit = 40 / 1h / $authenticated_id + + warn ratelimit = 0 / 1h / strict / $authenticated_id + log_message = Sender rate [limitlog]: log / email / $authenticated_id / $sender_rate / $sender_rate_period + + deny message = Restricted characters in address + domains = +local_domains + local_parts = ^[.] : ^.*[@%!/|] + + deny message = Restricted characters in address + domains = !+local_domains + local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./ + + require verify = sender + + accept hosts = +relay_from_hosts + control = submission + + accept authenticated = * + control = submission/domain= + + deny message = Rejected because $sender_host_address is in a black list at $dnslist_domain\n$dnslist_text + hosts = !+whitelist + dnslists = ${readfile {/etc/exim4/dnsbl.conf}{:}} + + require message = relay not permitted + domains = +local_domains : +relay_to_domains + + deny message = smtp auth requried + sender_domains = +local_domains + !authenticated = * + + require verify = recipient + +.ifdef CLAMD + warn set acl_m0 = no + + warn condition = ${if exists {/etc/exim4/domains/$domain/antivirus}{yes}{no}} + set acl_m0 = yes +.endif + +.ifdef SPAMASSASSIN + warn set acl_m1 = no + + warn condition = ${if exists {/etc/exim4/domains/$domain/antispam}{yes}{no}} + set acl_m1 = yes +.endif + + accept + + +acl_check_data: + + deny senders = /etc/exim4/deny_senders + +.ifdef CLAMD + deny message = Message contains a virus ($malware_name) and has been rejected + malware = */defer_ok + condition = ${if eq{$acl_m0}{yes}{yes}{no}} +.endif + +.ifdef SPAMASSASSIN + warn !authenticated = * + hosts = !+relay_from_hosts + condition = ${if < {$message_size}{100K}} + condition = ${if eq{$acl_m1}{yes}{yes}{no}} + spam = nobody:true/defer_ok + add_header = X-Spam-Score: $spam_score_int + add_header = X-Spam-Bar: $spam_bar + add_header = X-Spam-Report: $spam_report + set acl_m2 = $spam_score_int + + warn condition = ${if !eq{$acl_m2}{} {yes}{no}} + condition = ${if >{$acl_m2}{SPAM_SCORE} {yes}{no}} + add_header = X-Spam-Status: Yes + message = SpamAssassin detected spam (from $sender_address to $recipients). +.endif + + accept + + +acl_check_mime: + deny message = Blacklisted file extension detected + condition = ${if match {${lc:$mime_filename}}{\N(\.ade|\.adp|\.bat|\.chm|\.cmd|\.com|\.cpl|\.exe|\.hta|\.ins|\.isp|\.jse|\.lib|\.lnk|\.mde|\.msc|\.msp|\.mst|\.pif|\.scr|\.sct|\.shb|\.sys|\.vb|\.vbe|\.vbs|\.vxd|\.wsc|\.wsf|\.wsh|\.jar)$\N}{1}{0}} + + accept + + + +###################################################################### +# AUTHENTICATION CONFIGURATION # +###################################################################### +begin authenticators + +dovecot_plain: + driver = dovecot + public_name = PLAIN + server_socket = /var/run/dovecot/auth-client + server_set_id = $auth1 + +dovecot_login: + driver = dovecot + public_name = LOGIN + server_socket = /var/run/dovecot/auth-client + server_set_id = $auth1 + + + +###################################################################### +# ROUTERS CONFIGURATION # +# Specifies how addresses are handled # +###################################################################### +begin routers + +#smarthost: +# driver = manualroute +# domains = ! +local_domains +# transport = remote_smtp +# route_list = * smartrelay.vestacp.com +# no_more +# no_verify + +dnslookup: + driver = dnslookup + domains = !+local_domains + transport = remote_smtp + no_more + +localuser_spam: + driver = accept + transport = local_spam_delivery + condition = ${if eq {${if match{$h_X-Spam-Status:}{\N^Yes\N}{yes}{no}}} {${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}{yes}{no_such_user}}}} + +userforward: + driver = redirect + check_local_user + file = $home/.forward + allow_filter + no_verify + no_expn + check_ancestor + file_transport = address_file + pipe_transport = address_pipe + reply_transport = address_reply + +procmail: + driver = accept + check_local_user + require_files = ${local_part}:+${home}/.procmailrc:/usr/bin/procmail + transport = procmail + no_verify + +autoreplay: + driver = accept + require_files = /etc/exim4/domains/$domain/autoreply.${local_part}.msg + condition = ${if exists{/etc/exim4/domains/$domain/autoreply.${local_part}.msg}{yes}{no}} + retry_use_local_part + transport = userautoreply + unseen + +aliases: + driver = redirect + headers_add = X-redirected: yes + data = ${extract{1}{:}{${lookup{$local_part@$domain}lsearch{/etc/exim4/domains/$domain/aliases}}}} + require_files = /etc/exim4/domains/$domain/aliases + redirect_router = dnslookup + pipe_transport = address_pipe + unseen + +localuser_fwd_only: + driver = accept + transport = devnull + condition = ${if exists{/etc/exim4/domains/$domain/fwd_only}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/fwd_only}{true}{false}}}} + +localuser: + driver = accept + transport = local_delivery + condition = ${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}{true}{false}} + +catchall: + driver = redirect + headers_add = X-redirected: yes + require_files = /etc/exim4/domains/$domain/aliases + data = ${extract{1}{:}{${lookup{*@$domain}lsearch{/etc/exim4/domains/$domain/aliases}}}} + file_transport = local_delivery + redirect_router = dnslookup + +terminate_alias: + driver = accept + transport = devnull + condition = ${lookup{$local_part@$domain}lsearch{/etc/exim4/domains/$domain/aliases}{true}{false}} + + + +###################################################################### +# TRANSPORTS CONFIGURATION # +###################################################################### +begin transports + +remote_smtp: + driver = smtp + #helo_data = $sender_address_domain + dkim_domain = DKIM_DOMAIN + dkim_selector = mail + dkim_private_key = DKIM_PRIVATE_KEY + dkim_canon = relaxed + dkim_strict = 0 + hosts_try_chunking = !93.188.3.0/24 + +procmail: + driver = pipe + command = "/usr/bin/procmail -d $local_part" + return_path_add + delivery_date_add + envelope_to_add + user = $local_part + initgroups + return_output + +local_delivery: + driver = appendfile + maildir_format + maildir_use_size_file + user = ${extract{2}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}}}} + group = mail + create_directory + directory_mode = 770 + mode = 660 + use_lockfile = no + delivery_date_add + envelope_to_add + return_path_add + directory = "${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}}}}/mail/$domain/$local_part" + quota = ${extract{6}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}}}}M + quota_warn_threshold = 75% + +local_spam_delivery: + driver = appendfile + maildir_format + maildir_use_size_file + user = ${extract{2}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}}}} + group = mail + create_directory + directory_mode = 770 + mode = 660 + use_lockfile = no + delivery_date_add + envelope_to_add + return_path_add + directory = "${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}}}}/mail/$domain/$local_part/.Spam" + quota = ${extract{6}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}}}}M + quota_directory = "${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}}}}/mail/$domain/$local_part" + quota_warn_threshold = 75% + +address_pipe: + driver = pipe + return_output + +address_file: + driver = appendfile + delivery_date_add + envelope_to_add + return_path_add + +address_reply: + driver = autoreply + +userautoreply: + driver = autoreply + file = /etc/exim4/domains/$domain/autoreply.${local_part}.msg + from = "${local_part}@${domain}" + headers = Content-Type: text/plain; charset=utf-8;\nContent-Transfer-Encoding: 8bit + subject = "${if def:h_Subject: {Autoreply: \"${rfc2047:$h_Subject:}\"} {Autoreply Message}}" + to = "${sender_address}" + +devnull: + driver = appendfile + file = /dev/null + + + +###################################################################### +# RETRY CONFIGURATION # +###################################################################### +begin retry + +# Address or Domain Error Retries +# ----------------- ----- ------- +* * F,2h,15m; G,16h,1h,1.5; F,4d,6h + + + +###################################################################### +# REWRITE CONFIGURATION # +###################################################################### +begin rewrite + + + +###################################################################### diff --git a/install/debian/11/exim/spam-blocks.conf b/install/debian/11/exim/spam-blocks.conf new file mode 100644 index 00000000..e69de29b diff --git a/install/debian/11/fail2ban/action.d/vesta.conf b/install/debian/11/fail2ban/action.d/vesta.conf new file mode 100644 index 00000000..0edfc349 --- /dev/null +++ b/install/debian/11/fail2ban/action.d/vesta.conf @@ -0,0 +1,9 @@ +# Fail2Ban configuration file for vesta + +[Definition] + +actionstart = /usr/local/vesta/bin/v-add-firewall-chain +actionstop = /usr/local/vesta/bin/v-delete-firewall-chain +actioncheck = iptables -n -L INPUT | grep -q 'fail2ban-[ \t]' +actionban = /usr/local/vesta/bin/v-add-firewall-ban +actionunban = /usr/local/vesta/bin/v-delete-firewall-ban diff --git a/install/debian/11/fail2ban/filter.d/vesta.conf b/install/debian/11/fail2ban/filter.d/vesta.conf new file mode 100644 index 00000000..36ec1001 --- /dev/null +++ b/install/debian/11/fail2ban/filter.d/vesta.conf @@ -0,0 +1,10 @@ +# Fail2Ban filter for unsuccessful Vesta authentication attempts +# + +[INCLUDES] +before = common.conf + +[Definition] +failregex = .* failed to login +ignoreregex = + diff --git a/install/debian/11/fail2ban/jail.local b/install/debian/11/fail2ban/jail.local new file mode 100644 index 00000000..eccea068 --- /dev/null +++ b/install/debian/11/fail2ban/jail.local @@ -0,0 +1,39 @@ +[ssh-iptables] +enabled = true +filter = sshd +action = vesta[name=SSH] +logpath = /var/log/auth.log +maxretry = 5 + +[vsftpd-iptables] +enabled = false +filter = vsftpd +action = vesta[name=FTP] +logpath = /var/log/vsftpd.log +maxretry = 5 + +[exim-iptables] +enabled = true +filter = exim +action = vesta[name=MAIL] +logpath = /var/log/exim4/mainlog + +[dovecot-iptables] +enabled = true +filter = dovecot +action = vesta[name=MAIL] +logpath = /var/log/dovecot.log + +[mysqld-iptables] +enabled = false +filter = mysqld-auth +action = vesta[name=DB] +logpath = /var/log/mysql.log +maxretry = 5 + +[vesta-iptables] +enabled = true +filter = vesta +action = vesta[name=VESTA] +logpath = /var/log/vesta/auth.log +maxretry = 5 diff --git a/install/debian/11/firewall/ports.conf b/install/debian/11/firewall/ports.conf new file mode 100644 index 00000000..b730d012 --- /dev/null +++ b/install/debian/11/firewall/ports.conf @@ -0,0 +1,17 @@ +PROTOCOL='TCP' PORT='20' +PROTOCOL='TCP' PORT='21' +PROTOCOL='TCP' PORT='22' +PROTOCOL='TCP' PORT='25' +PROTOCOL='TCP' PORT='53' +PROTOCOL='UDP' PORT='53' +PROTOCOL='TCP' PORT='80' +PROTOCOL='TCP' PORT='443' +PROTOCOL='TCP' PORT='110' +PROTOCOL='UDP' PORT='123' +PROTOCOL='TCP' PORT='143' +PROTOCOL='TCP' PORT='3306' +PROTOCOL='TCP' PORT='5432' +PROTOCOL='TCP' PORT='8080' +PROTOCOL='TCP' PORT='8433' +PROTOCOL='TCP' PORT='8083' +PROTOCOL='TCP' PORT='12000:12100' diff --git a/install/debian/11/firewall/rules.conf b/install/debian/11/firewall/rules.conf new file mode 100644 index 00000000..6da5a1c4 --- /dev/null +++ b/install/debian/11/firewall/rules.conf @@ -0,0 +1,11 @@ +RULE='1' ACTION='ACCEPT' PROTOCOL='ICMP' PORT='0' IP='0.0.0.0/0' COMMENT='PING' SUSPENDED='no' TIME='17:13:48' DATE='2014-09-16' +RULE='2' ACTION='ACCEPT' PROTOCOL='TCP' PORT='8083' IP='0.0.0.0/0' COMMENT='VESTA' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25' +RULE='3' ACTION='ACCEPT' PROTOCOL='TCP' PORT='3306,5432' IP='0.0.0.0/0' COMMENT='DB' SUSPENDED='yes' TIME='07:40:16' DATE='2014-05-25' +RULE='4' ACTION='ACCEPT' PROTOCOL='TCP' PORT='143,993' IP='0.0.0.0/0' COMMENT='IMAP' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25' +RULE='5' ACTION='ACCEPT' PROTOCOL='TCP' PORT='110,995' IP='0.0.0.0/0' COMMENT='POP3' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25' +RULE='6' ACTION='ACCEPT' PROTOCOL='TCP' PORT='25,465,587,2525' IP='0.0.0.0/0' COMMENT='SMTP' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25' +RULE='7' ACTION='ACCEPT' PROTOCOL='TCP' PORT='53' IP='0.0.0.0/0' COMMENT='DNS' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25' +RULE='8' ACTION='ACCEPT' PROTOCOL='UDP' PORT='53' IP='0.0.0.0/0' COMMENT='DNS' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25' +RULE='9' ACTION='ACCEPT' PROTOCOL='TCP' PORT='21,12000-12100' IP='0.0.0.0/0' COMMENT='FTP' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25' +RULE='10' ACTION='ACCEPT' PROTOCOL='TCP' PORT='80,443' IP='0.0.0.0/0' COMMENT='WEB' SUSPENDED='no' TIME='17:04:27' DATE='2014-09-24' +RULE='11' ACTION='ACCEPT' PROTOCOL='TCP' PORT='22' IP='0.0.0.0/0' COMMENT='SSH' SUSPENDED='no' TIME='17:14:41' DATE='2014-09-16' diff --git a/install/debian/11/logrotate/apache2 b/install/debian/11/logrotate/apache2 new file mode 100644 index 00000000..27629d0d --- /dev/null +++ b/install/debian/11/logrotate/apache2 @@ -0,0 +1,19 @@ +/var/log/apache2/*.log /var/log/apache2/domains/*log { + weekly + missingok + rotate 52 + compress + delaycompress + notifempty + create 640 root adm + sharedscripts + postrotate + /etc/init.d/apache2 reload > /dev/null || true + [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid` + endscript + prerotate + if [ -d /etc/logrotate.d/httpd-prerotate ]; then \ + run-parts /etc/logrotate.d/httpd-prerotate; \ + fi; \ + endscript +} diff --git a/install/debian/11/logrotate/dovecot b/install/debian/11/logrotate/dovecot new file mode 100644 index 00000000..ac4fd6e9 --- /dev/null +++ b/install/debian/11/logrotate/dovecot @@ -0,0 +1,12 @@ +/var/log/dovecot*.log { + weekly + rotate 4 + missingok + notifempty + compress + delaycompress + sharedscripts + postrotate + doveadm log reopen + endscript +} diff --git a/install/debian/11/logrotate/nginx b/install/debian/11/logrotate/nginx new file mode 100644 index 00000000..d667f213 --- /dev/null +++ b/install/debian/11/logrotate/nginx @@ -0,0 +1,13 @@ +/var/log/nginx/*log /var/log/nginx/domains/*log { + daily + missingok + rotate 52 + compress + delaycompress + notifempty + create 640 nginx adm + sharedscripts + postrotate + [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` + endscript +} diff --git a/install/debian/11/logrotate/vesta b/install/debian/11/logrotate/vesta new file mode 100644 index 00000000..027a3439 --- /dev/null +++ b/install/debian/11/logrotate/vesta @@ -0,0 +1,7 @@ +/usr/local/vesta/log/*.log { + missingok + notifempty + size 30k + yearly + create 0600 root root +} diff --git a/install/debian/11/mysql/my-large.cnf b/install/debian/11/mysql/my-large.cnf new file mode 100644 index 00000000..febfda66 --- /dev/null +++ b/install/debian/11/mysql/my-large.cnf @@ -0,0 +1,44 @@ +[client] +port=3306 +socket=/var/run/mysqld/mysqld.sock + +[mysqld_safe] +socket=/var/run/mysqld/mysqld.sock + +[mysqld] +user=mysql +pid-file=/var/run/mysqld/mysqld.pid +socket=/var/run/mysqld/mysqld.sock +port=3306 +basedir=/usr +datadir=/var/lib/mysql +tmpdir=/tmp +lc-messages-dir=/usr/share/mysql +log_error=/var/log/mysql/error.log + +symbolic-links=0 + +skip-external-locking +key_buffer_size = 256M +max_allowed_packet = 32M +table_open_cache = 256 +sort_buffer_size = 1M +read_buffer_size = 1M +read_rnd_buffer_size = 4M +myisam_sort_buffer_size = 64M +thread_cache_size = 8 +query_cache_size= 16M +thread_concurrency = 8 + +#innodb_use_native_aio = 0 +innodb_file_per_table + +max_connections=200 +max_user_connections=50 +wait_timeout=10 +interactive_timeout=50 +long_query_time=5 + +sql_mode=ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION + +!includedir /etc/mysql/conf.d/ diff --git a/install/debian/11/mysql/my-medium.cnf b/install/debian/11/mysql/my-medium.cnf new file mode 100644 index 00000000..3aa8fe22 --- /dev/null +++ b/install/debian/11/mysql/my-medium.cnf @@ -0,0 +1,42 @@ +[client] +port=3306 +socket=/var/run/mysqld/mysqld.sock + +[mysqld_safe] +socket=/var/run/mysqld/mysqld.sock + +[mysqld] +user=mysql +pid-file=/var/run/mysqld/mysqld.pid +socket=/var/run/mysqld/mysqld.sock +port=3306 +basedir=/usr +datadir=/var/lib/mysql +tmpdir=/tmp +lc-messages-dir=/usr/share/mysql +log_error=/var/log/mysql/error.log + +symbolic-links=0 + +skip-external-locking +key_buffer_size = 16M +max_allowed_packet = 16M +table_open_cache = 64 +sort_buffer_size = 512K +net_buffer_length = 8K +read_buffer_size = 256K +read_rnd_buffer_size = 512K +myisam_sort_buffer_size = 8M + +#innodb_use_native_aio = 0 +innodb_file_per_table + +max_connections=70 +max_user_connections=30 +wait_timeout=10 +interactive_timeout=50 +long_query_time=5 + +sql_mode=ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION + +!includedir /etc/mysql/conf.d/ diff --git a/install/debian/11/mysql/my-small.cnf b/install/debian/11/mysql/my-small.cnf new file mode 100644 index 00000000..bd53770b --- /dev/null +++ b/install/debian/11/mysql/my-small.cnf @@ -0,0 +1,42 @@ +[client] +port=3306 +socket=/var/run/mysqld/mysqld.sock + +[mysqld_safe] +socket=/var/run/mysqld/mysqld.sock + +[mysqld] +user=mysql +pid-file=/var/run/mysqld/mysqld.pid +socket=/var/run/mysqld/mysqld.sock +port=3306 +basedir=/usr +datadir=/var/lib/mysql +tmpdir=/tmp +lc-messages-dir=/usr/share/mysql +log_error=/var/log/mysql/error.log + +symbolic-links=0 + +skip-external-locking +key_buffer_size = 16K +max_allowed_packet = 1M +table_open_cache = 4 +sort_buffer_size = 64K +read_buffer_size = 256K +read_rnd_buffer_size = 256K +net_buffer_length = 2K +thread_stack = 240K + +#innodb_use_native_aio = 0 +innodb_file_per_table + +max_connections=30 +max_user_connections=20 +wait_timeout=10 +interactive_timeout=50 +long_query_time=5 + +sql_mode=ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION + +!includedir /etc/mysql/conf.d/ diff --git a/install/debian/11/nginx/nginx.conf b/install/debian/11/nginx/nginx.conf new file mode 100644 index 00000000..6d5e36ba --- /dev/null +++ b/install/debian/11/nginx/nginx.conf @@ -0,0 +1,140 @@ +# Server globals +user www-data; +worker_processes auto; +worker_rlimit_nofile 65535; +timer_resolution 50ms; #In order to free some CPU cycles +error_log /var/log/nginx/error.log crit; +pid /var/run/nginx.pid; + + +# Worker config +events { + worker_connections 1024; + use epoll; + multi_accept on; +} + + +http { + # Main settings + sendfile on; + tcp_nopush on; + tcp_nodelay on; + client_header_timeout 1m; + client_body_timeout 1m; + client_header_buffer_size 2k; + client_body_buffer_size 256k; + client_max_body_size 256m; + large_client_header_buffers 4 8k; + send_timeout 30; + keepalive_timeout 60 60; + reset_timedout_connection on; + server_tokens off; + server_name_in_redirect off; + server_names_hash_max_size 512; + server_names_hash_bucket_size 512; + + + # Log format + log_format main '$remote_addr - $remote_user [$time_local] $request ' + '"$status" $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + log_format bytes '$body_bytes_sent'; + #access_log /var/log/nginx/access.log main; + access_log off; + + + # Mime settings + include /etc/nginx/mime.types; + default_type application/octet-stream; + + + # Compression + gzip on; + gzip_comp_level 9; + gzip_min_length 512; + gzip_buffers 8 64k; + gzip_types text/plain text/css text/javascript text/js text/xml application/json application/javascript application/x-javascript application/xml application/xml+rss application/x-font-ttf image/svg+xml font/opentype; + gzip_proxied any; + gzip_disable "MSIE [1-6]\."; + + # Proxy settings + proxy_redirect off; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_pass_header Set-Cookie; + proxy_connect_timeout 900; + proxy_send_timeout 900; + proxy_read_timeout 900; + proxy_buffer_size 128k; + proxy_buffers 4 256k; + proxy_busy_buffers_size 256k; + + + # Cloudflare https://www.cloudflare.com/ips + set_real_ip_from 173.245.48.0/20; + set_real_ip_from 103.21.244.0/22; + set_real_ip_from 103.22.200.0/22; + set_real_ip_from 103.31.4.0/22; + set_real_ip_from 104.16.0.0/13; + set_real_ip_from 104.24.0.0/14; + set_real_ip_from 141.101.64.0/18; + set_real_ip_from 108.162.192.0/18; + set_real_ip_from 190.93.240.0/20; + set_real_ip_from 188.114.96.0/20; + set_real_ip_from 197.234.240.0/22; + set_real_ip_from 198.41.128.0/17; + set_real_ip_from 162.158.0.0/15; + set_real_ip_from 172.64.0.0/13; + set_real_ip_from 131.0.72.0/22; + set_real_ip_from 2400:cb00::/32; + set_real_ip_from 2606:4700::/32; + set_real_ip_from 2803:f800::/32; + set_real_ip_from 2405:b500::/32; + set_real_ip_from 2405:8100::/32; + set_real_ip_from 2a06:98c0::/29; + set_real_ip_from 2c0f:f248::/32; + real_ip_header CF-Connecting-IP; + + + # SSL PCI Compliance + ssl_session_cache shared:SSL:10m; + ssl_protocols TLSv1.1 TLSv1.2; + ssl_prefer_server_ciphers on; + ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"; + + + # Error pages + error_page 403 /error/403.html; + error_page 404 /error/404.html; + error_page 502 503 504 /error/50x.html; + + + # Cache settings + proxy_cache_path /var/cache/nginx levels=2 keys_zone=cache:10m inactive=60m max_size=1024m; + proxy_cache_key "$host$request_uri $cookie_user"; + proxy_temp_path /var/cache/nginx/temp; + proxy_ignore_headers Expires Cache-Control; + proxy_cache_use_stale error timeout invalid_header http_502; + proxy_cache_valid any 1d; + + + # Cache bypass + map $http_cookie $no_cache { + default 0; + ~SESS 1; + ~wordpress_logged_in 1; + } + + + # File cache settings + open_file_cache max=10000 inactive=30s; + open_file_cache_valid 60s; + open_file_cache_min_uses 2; + open_file_cache_errors off; + + + # Wildcard include + include /etc/nginx/conf.d/*.conf; +} diff --git a/install/debian/11/nginx/phpmyadmin.inc b/install/debian/11/nginx/phpmyadmin.inc new file mode 100644 index 00000000..cdfc93c4 --- /dev/null +++ b/install/debian/11/nginx/phpmyadmin.inc @@ -0,0 +1,18 @@ +location /phpmyadmin { + alias /usr/share/phpmyadmin; + + location ~ /(libraries|setup) { + return 404; + } + + location ~ ^/phpmyadmin/(.*\.php)$ { + alias /usr/share/phpmyadmin/$1; + fastcgi_pass 127.0.0.1:9000; + fastcgi_index index.php; + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $request_filename; + } + location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { + root /usr/share/; + } +} diff --git a/install/debian/11/nginx/phppgadmin.inc b/install/debian/11/nginx/phppgadmin.inc new file mode 100644 index 00000000..47cfcf4e --- /dev/null +++ b/install/debian/11/nginx/phppgadmin.inc @@ -0,0 +1,11 @@ +location /phppgadmin { + alias /usr/share/phppgadmin; + + location ~ ^/phppgadmin/(.*\.php)$ { + alias /usr/share/phppgadmin/$1; + fastcgi_pass 127.0.0.1:9000; + fastcgi_index index.php; + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $request_filename; + } +} diff --git a/install/debian/11/nginx/status.conf b/install/debian/11/nginx/status.conf new file mode 100644 index 00000000..c0bcd069 --- /dev/null +++ b/install/debian/11/nginx/status.conf @@ -0,0 +1,9 @@ +server { + listen 127.0.0.1:8084 default; + server_name _; + server_name_in_redirect off; + location / { + stub_status on; + access_log off; + } +} diff --git a/install/debian/11/nginx/webmail.inc b/install/debian/11/nginx/webmail.inc new file mode 100644 index 00000000..768c9049 --- /dev/null +++ b/install/debian/11/nginx/webmail.inc @@ -0,0 +1,15 @@ +location /webmail { + alias /var/lib/roundcube; + + location ~ /(config|temp|logs) { + return 404; + } + + location ~ ^/webmail/(.*\.php)$ { + alias /var/lib/roundcube/$1; + fastcgi_pass 127.0.0.1:9000; + fastcgi_index index.php; + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $request_filename; + } +} diff --git a/install/debian/11/packages/default.pkg b/install/debian/11/packages/default.pkg new file mode 100644 index 00000000..de293236 --- /dev/null +++ b/install/debian/11/packages/default.pkg @@ -0,0 +1,18 @@ +WEB_TEMPLATE='PHP-FPM-73' +PROXY_TEMPLATE='hosting' +DNS_TEMPLATE='default' +WEB_DOMAINS='unlimited' +WEB_ALIASES='unlimited' +DNS_DOMAINS='unlimited' +DNS_RECORDS='unlimited' +MAIL_DOMAINS='unlimited' +MAIL_ACCOUNTS='unlimited' +DATABASES='unlimited' +CRON_JOBS='unlimited' +DISK_QUOTA='unlimited' +BANDWIDTH='unlimited' +NS='YOURHOSTNAME1,YOURHOSTNAME2' +SHELL='nologin' +BACKUPS='2' +TIME='18:00:00' +DATE='2017-12-28' diff --git a/install/debian/11/pga/config.inc.php b/install/debian/11/pga/config.inc.php new file mode 100644 index 00000000..1eec9776 --- /dev/null +++ b/install/debian/11/pga/config.inc.php @@ -0,0 +1,159 @@ + diff --git a/install/debian/11/pga/phppgadmin.conf b/install/debian/11/pga/phppgadmin.conf new file mode 100644 index 00000000..f39247d6 --- /dev/null +++ b/install/debian/11/pga/phppgadmin.conf @@ -0,0 +1,31 @@ +Alias /phppgadmin /usr/share/phppgadmin + + + +DirectoryIndex index.php +AllowOverride None + +order deny,allow +deny from all +allow from 127.0.0.0/255.0.0.0 ::1/128 +allow from all + + + php_flag magic_quotes_gpc Off + php_flag track_vars On + php_value include_path . + + + + + AddType application/x-httpd-php .php + Action application/x-httpd-php /cgi-bin/php + + + AddType application/x-httpd-php .php + Action application/x-httpd-php /cgi-bin/php + + + + + diff --git a/install/debian/11/php-fpm/www.conf b/install/debian/11/php-fpm/www.conf new file mode 100644 index 00000000..3c87f33c --- /dev/null +++ b/install/debian/11/php-fpm/www.conf @@ -0,0 +1,11 @@ +[www] +listen = 127.0.0.1:9000 +listen.allowed_clients = 127.0.0.1 + +user = www-data +group = www-data + +pm = ondemand +pm.max_children = 2 +pm.max_requests = 4000 +pm.process_idle_timeout = 10s diff --git a/install/debian/11/php/php7.3-dedi.patch b/install/debian/11/php/php7.3-dedi.patch new file mode 100644 index 00000000..c044e002 --- /dev/null +++ b/install/debian/11/php/php7.3-dedi.patch @@ -0,0 +1,78 @@ +--- /etc/php/7.3/fpm/php.ini.orig 2019-07-18 16:11:18.856589963 +0200 ++++ /etc/php/7.3/fpm/php.ini 2019-07-18 17:45:51.000000000 +0200 +@@ -312,7 +312,8 @@ + ; This directive allows you to disable certain functions for security reasons. + ; It receives a comma-delimited list of function names. + ; http://php.net/disable-functions +-disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, ++; disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, ++disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,exec,system,passthru,shell_exec,proc_open,popen + + ; This directive allows you to disable certain classes for security reasons. + ; It receives a comma-delimited list of class names. +@@ -399,11 +400,11 @@ + ;max_input_nesting_level = 64 + + ; How many GET/POST/COOKIE input variables may be accepted +-;max_input_vars = 1000 ++max_input_vars = 6000 + + ; Maximum amount of memory a script may consume (128MB) + ; http://php.net/memory-limit +-memory_limit = 128M ++memory_limit = 256M + + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ; Error handling and logging ; +@@ -690,7 +691,7 @@ + ; Its value may be 0 to disable the limit. It is ignored if POST data reading + ; is disabled through enable_post_data_reading. + ; http://php.net/post-max-size +-post_max_size = 8M ++post_max_size = 60M + + ; Automatically add files before PHP document. + ; http://php.net/auto-prepend-file +@@ -842,7 +843,7 @@ + + ; Maximum allowed size for uploaded files. + ; http://php.net/upload-max-filesize +-upload_max_filesize = 2M ++upload_max_filesize = 50M + + ; Maximum number of files that can be uploaded via a single request + max_file_uploads = 20 +@@ -1087,7 +1088,7 @@ + + ; The path to a log file that will log all mail() calls. Log entries include + ; the full path of the script, line number, To address and headers. +-;mail.log = ++mail.log = /var/log/php-mail.log + ; Log mail to syslog (Event Log on Windows). + ;mail.log = syslog + +@@ -1791,20 +1792,20 @@ + + [opcache] + ; Determines if Zend OPCache is enabled +-;opcache.enable=1 ++opcache.enable=1 + + ; Determines if Zend OPCache is enabled for the CLI version of PHP +-;opcache.enable_cli=0 ++opcache.enable_cli=0 + + ; The OPcache shared memory storage size. +-;opcache.memory_consumption=128 ++opcache.memory_consumption=2048 + + ; The amount of memory for interned strings in Mbytes. + ;opcache.interned_strings_buffer=8 + + ; The maximum number of keys (scripts) in the OPcache hash table. + ; Only numbers between 200 and 1000000 are allowed. +-;opcache.max_accelerated_files=10000 ++opcache.max_accelerated_files=100000 + + ; The maximum percentage of "wasted" memory until a restart is scheduled. + ;opcache.max_wasted_percentage=5 diff --git a/install/debian/11/php/php7.3-vps.patch b/install/debian/11/php/php7.3-vps.patch new file mode 100644 index 00000000..803b93e8 --- /dev/null +++ b/install/debian/11/php/php7.3-vps.patch @@ -0,0 +1,78 @@ +--- /etc/php/7.3/fpm/php.ini.orig 2019-07-18 16:11:18.856589963 +0200 ++++ /etc/php/7.3/fpm/php.ini 2019-07-18 17:45:51.000000000 +0200 +@@ -312,7 +312,8 @@ + ; This directive allows you to disable certain functions for security reasons. + ; It receives a comma-delimited list of function names. + ; http://php.net/disable-functions +-disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, ++; disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, ++disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,exec,system,passthru,shell_exec,proc_open,popen + + ; This directive allows you to disable certain classes for security reasons. + ; It receives a comma-delimited list of class names. +@@ -399,11 +400,11 @@ + ;max_input_nesting_level = 64 + + ; How many GET/POST/COOKIE input variables may be accepted +-;max_input_vars = 1000 ++max_input_vars = 6000 + + ; Maximum amount of memory a script may consume (128MB) + ; http://php.net/memory-limit +-memory_limit = 128M ++memory_limit = 256M + + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ; Error handling and logging ; +@@ -690,7 +691,7 @@ + ; Its value may be 0 to disable the limit. It is ignored if POST data reading + ; is disabled through enable_post_data_reading. + ; http://php.net/post-max-size +-post_max_size = 8M ++post_max_size = 60M + + ; Automatically add files before PHP document. + ; http://php.net/auto-prepend-file +@@ -842,7 +843,7 @@ + + ; Maximum allowed size for uploaded files. + ; http://php.net/upload-max-filesize +-upload_max_filesize = 2M ++upload_max_filesize = 50M + + ; Maximum number of files that can be uploaded via a single request + max_file_uploads = 20 +@@ -1087,7 +1088,7 @@ + + ; The path to a log file that will log all mail() calls. Log entries include + ; the full path of the script, line number, To address and headers. +-;mail.log = ++mail.log = /var/log/php-mail.log + ; Log mail to syslog (Event Log on Windows). + ;mail.log = syslog + +@@ -1791,20 +1792,20 @@ + + [opcache] + ; Determines if Zend OPCache is enabled +-;opcache.enable=1 ++opcache.enable=1 + + ; Determines if Zend OPCache is enabled for the CLI version of PHP +-;opcache.enable_cli=0 ++opcache.enable_cli=0 + + ; The OPcache shared memory storage size. +-;opcache.memory_consumption=128 ++opcache.memory_consumption=512 + + ; The amount of memory for interned strings in Mbytes. + ;opcache.interned_strings_buffer=8 + + ; The maximum number of keys (scripts) in the OPcache hash table. + ; Only numbers between 200 and 1000000 are allowed. +-;opcache.max_accelerated_files=10000 ++opcache.max_accelerated_files=100000 + + ; The maximum percentage of "wasted" memory until a restart is scheduled. + ;opcache.max_wasted_percentage=5 diff --git a/install/debian/11/pma/apache.conf b/install/debian/11/pma/apache.conf new file mode 100644 index 00000000..2a8f69e2 --- /dev/null +++ b/install/debian/11/pma/apache.conf @@ -0,0 +1,42 @@ +# phpMyAdmin default Apache configuration + +Alias /phpmyadmin /usr/share/phpmyadmin + + + Options FollowSymLinks + DirectoryIndex index.php + + + AddType application/x-httpd-php .php + + php_flag magic_quotes_gpc Off + php_flag track_vars On + php_flag register_globals Off + php_admin_flag allow_url_fopen Off + php_value include_path . + php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp + php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext + + + + +# Authorize for setup + + + AuthType Basic + AuthName "phpMyAdmin Setup" + AuthUserFile /etc/phpmyadmin/htpasswd.setup + + Require valid-user + + +# Disallow web access to directories that don't need it + + Order Deny,Allow + Deny from All + + + Order Deny,Allow + Deny from All + + diff --git a/install/debian/11/pma/config.inc.php b/install/debian/11/pma/config.inc.php new file mode 100644 index 00000000..eafc6d67 --- /dev/null +++ b/install/debian/11/pma/config.inc.php @@ -0,0 +1,146 @@ +> $pmapath1 +sed -i '/savedsearches/d' $pmapath1 +sed -i '/navigationhiding/d' $pmapath1 +sed -i '/users/d' $pmapath1 +sed -i '/controlpass/d' $pmapath1 +sed -i '/favorite/d' $pmapath1 +sed -i '/usergroups/d' $pmapath1 +sed -i '/central_columns/d' $pmapath1 +sed -i '/designer_settings/d' $pmapath1 +sed -i '/export_templates/d' $pmapath1 +echo "\$cfg['Servers'][\$i]['favorite'] = 'pma__favorite';" >> $pmapath1 +echo "\$cfg['Servers'][\$i]['usergroups'] = 'pma__usergroups';" >> $pmapath1 +echo "\$cfg['Servers'][\$i]['central_columns'] = 'pma__central_columns';" >> $pmapath1 +echo "\$cfg['Servers'][\$i]['designer_settings'] = 'pma__designer_settings';" >> $pmapath1 +echo "\$cfg['Servers'][\$i]['export_templates'] = 'pma__export_templates';" >> $pmapath1 +echo "\$cfg['Servers'][\$i]['savedsearches'] = 'pma__savedsearches';" >> $pmapath1 +echo "\$cfg['Servers'][\$i]['navigationhiding'] = 'pma__navigationhiding';" >> $pmapath1 +echo "\$cfg['Servers'][\$i]['users'] = 'pma__users';" >> $pmapath1 +echo "\$cfg['Servers'][\$i]['usergroups'] = 'pma__usergroups';" >> $pmapath1 +echo "\$cfg['Servers'][\$i]['pmadb'] = 'phpmyadmin';" >> $pmapath1 +echo "\$cfg['Servers'][\$i]['controluser'] = 'pma';" >> $pmapath1 +echo "\$cfg['Servers'][\$i]['controlpass'] = '$PASS';" >> $pmapath1 +echo "\$cfg['Servers'][\$i]['bookmarktable'] = 'pma__bookmark';" >> $pmapath1 +echo "\$cfg['Servers'][\$i]['relation'] = 'pma__relation';" >> $pmapath1 +echo "\$cfg['Servers'][\$i]['userconfig'] = 'pma__userconfig';" >> $pmapath1 +echo "\$cfg['Servers'][\$i]['table_info'] = 'pma__table_info';" >> $pmapath1 +echo "\$cfg['Servers'][\$i]['column_info'] = 'pma__column_info';" >> $pmapath1 +echo "\$cfg['Servers'][\$i]['history'] = 'pma__history';" >> $pmapath1 +echo "\$cfg['Servers'][\$i]['recent'] = 'pma__recent';" >> $pmapath1 +echo "\$cfg['Servers'][\$i]['table_uiprefs'] = 'pma__table_uiprefs';" >> $pmapath1 +echo "\$cfg['Servers'][\$i]['tracking'] = 'pma__tracking';" >> $pmapath1 +echo "\$cfg['Servers'][\$i]['table_coords'] = 'pma__table_coords';" >> $pmapath1 +echo "\$cfg['Servers'][\$i]['pdf_pages'] = 'pma__pdf_pages';" >> $pmapath1 +echo "\$cfg['Servers'][\$i]['designer_coords'] = 'pma__designer_coords';" >> $pmapath1 + +sed -i '/pmadb/d' $pmapath2 +sed -i '/controluser/d' $pmapath2 +sed -i '/bookmarktable/d' $pmapath2 +sed -i '/relation/d' $pmapath2 +sed -i '/userconfig/d' $pmapath2 +sed -i '/table_info/d' $pmapath2 +sed -i '/column_info/d' $pmapath2 +sed -i '/history/d' $pmapath2 +sed -i '/recent/d' $pmapath2 +sed -i '/table_uiprefs/d' $pmapath2 +sed -i '/tracking/d' $pmapath2 +sed -i '/table_coords/d' $pmapath2 +sed -i '/pdf_pages/d' $pmapath2 +sed -i '/designer_coords/d' $pmapath2 +sed -i '/controlpass/d' $pmapath2 +sed -i '/savedsearches/d' $pmapath2 +sed -i '/navigationhiding/d' $pmapath2 +sed -i '/users/d' $pmapath2 +sed -i '/controlpass/d' $pmapath2 +sed -i '/favorite/d' $pmapath2 +sed -i '/usergroups/d' $pmapath2 +sed -i '/central_columns/d' $pmapath2 +sed -i '/designer_settings/d' $pmapath2 +sed -i '/export_templates/d' $pmapath2 +echo "\$cfg['Servers'][\$i]['favorite'] = 'pma__favorite';" >> $pmapath2 +echo "\$cfg['Servers'][\$i]['usergroups'] = 'pma__usergroups';" >> $pmapath2 +echo "\$cfg['Servers'][\$i]['central_columns'] = 'pma__central_columns';" >> $pmapath2 +echo "\$cfg['Servers'][\$i]['designer_settings'] = 'pma__designer_settings';" >> $pmapath2 +echo "\$cfg['Servers'][\$i]['export_templates'] = 'pma__export_templates';" >> $pmapath2 +echo "\$cfg['Servers'][\$i]['savedsearches'] = 'pma__savedsearches';" >> $pmapath2 +echo "\$cfg['Servers'][\$i]['navigationhiding'] = 'pma__navigationhiding';" >> $pmapath2 +echo "\$cfg['Servers'][\$i]['users'] = 'pma__users';" >> $pmapath2 +echo "\$cfg['Servers'][\$i]['usergroups'] = 'pma__usergroups';" >> $pmapath2 +echo "\$cfg['Servers'][\$i]['pmadb'] = 'phpmyadmin';" >> $pmapath2 +echo "\$cfg['Servers'][\$i]['controluser'] = 'pma';" >> $pmapath2 +echo "\$cfg['Servers'][\$i]['controlpass'] = '$PASS';" >> $pmapath2 +echo "\$cfg['Servers'][\$i]['bookmarktable'] = 'pma__bookmark';" >> $pmapath2 +echo "\$cfg['Servers'][\$i]['relation'] = 'pma__relation';" >> $pmapath2 +echo "\$cfg['Servers'][\$i]['userconfig'] = 'pma__userconfig';" >> $pmapath2 +echo "\$cfg['Servers'][\$i]['table_info'] = 'pma__table_info';" >> $pmapath2 +echo "\$cfg['Servers'][\$i]['column_info'] = 'pma__column_info';" >> $pmapath2 +echo "\$cfg['Servers'][\$i]['history'] = 'pma__history';" >> $pmapath2 +echo "\$cfg['Servers'][\$i]['recent'] = 'pma__recent';" >> $pmapath2 +echo "\$cfg['Servers'][\$i]['table_uiprefs'] = 'pma__table_uiprefs';" >> $pmapath2 +echo "\$cfg['Servers'][\$i]['tracking'] = 'pma__tracking';" >> $pmapath2 +echo "\$cfg['Servers'][\$i]['table_coords'] = 'pma__table_coords';" >> $pmapath2 +echo "\$cfg['Servers'][\$i]['pdf_pages'] = 'pma__pdf_pages';" >> $pmapath2 +echo "\$cfg['Servers'][\$i]['designer_coords'] = 'pma__designer_coords';" >> $pmapath2 + +#SOME WORK with DATABASE (table / user) +PMADB=phpmyadmin +PMAUSER=pma + +#DROP USER and TABLE +mysql -uroot < + VRootEngine on + VRootAlias /etc/security/pam_env.conf etc/security/pam_env.conf +
+ +AuthPAMConfig proftpd +AuthOrder mod_auth_pam.c* mod_auth_unix.c +UseReverseDNS off +User proftpd +Group nogroup +MaxInstances 100 +UseSendfile off +LogFormat default "%h %l %u %t \"%r\" %s %b" +LogFormat auth "%v [%P] %h %t \"%r\" %s" +ListOptions -a +RequireValidShell off +PassivePorts 12000 12100 +TransferLog /var/log/proftpd/xferlog +SystemLog /var/log/proftpd/proftpd.log + + + Umask 002 + IdentLookups off + AllowOverwrite yes + + AllowAll + + diff --git a/install/debian/11/proftpd/tls.conf b/install/debian/11/proftpd/tls.conf new file mode 100644 index 00000000..9da0017b --- /dev/null +++ b/install/debian/11/proftpd/tls.conf @@ -0,0 +1,63 @@ +# +# Proftpd sample configuration for FTPS connections. +# +# Note that FTPS impose some limitations in NAT traversing. +# See http://www.castaglia.org/proftpd/doc/contrib/ProFTPD-mini-HOWTO-TLS.html +# for more information. +# + + # If mod_tls was built as a shared/DSO module, load it + LoadModule mod_tls.c + + +TLSEngine on +TLSLog /var/log/proftpd/tls.log +# this is an example of protocols, proftp works witl all, but use only the most secure ones like TLSv1.1 and TLSv1.2 +TLSProtocol TLSv1.1 TLSv1.2 +# +# Server SSL certificate. You can generate a self-signed certificate using +# a command like: +# +# openssl req -x509 -newkey rsa:1024 \ +# -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt \ +# -nodes -days 365 +# +# The proftpd.key file must be readable by root only. The other file can be +# readable by anyone. +# +# chmod 0600 /etc/ssl/private/proftpd.key +# chmod 0640 /etc/ssl/private/proftpd.key +# +TLSRSACertificateFile /usr/local/vesta/ssl/certificate.crt +TLSRSACertificateKeyFile /usr/local/vesta/ssl/certificate.key +# +# CA the server trusts... +#TLSCACertificateFile /etc/ssl/certs/CA.pem +# ...or avoid CA cert and be verbose +#TLSOptions NoCertRequest EnableDiags +# ... or the same with relaxed session use for some clients (e.g. FireFtp) +#TLSOptions NoCertRequest EnableDiags NoSessionReuseRequired +# +# +# Per default drop connection if client tries to start a renegotiate +# This is a fix for CVE-2009-3555 but could break some clients. +# +#TLSOptions AllowClientRenegotiations +# +TLSOptions NoSessionReuseRequired AllowClientRenegotiations +# Authenticate clients that want to use FTP over TLS? +# +#TLSVerifyClient off +# +# Are clients required to use FTP over TLS when talking to this server? +# +TLSRequired off +# +# Allow SSL/TLS renegotiations when the client requests them, but +# do not force the renegotations. Some clients do not support +# SSL/TLS renegotiations; when mod_tls forces a renegotiation, these +# clients will close the data connection, or there will be a timeout +# on an idle data connection. +# +TLSRenegotiate required off + diff --git a/install/debian/11/roundcube/apache.conf b/install/debian/11/roundcube/apache.conf new file mode 100644 index 00000000..a0c87bcc --- /dev/null +++ b/install/debian/11/roundcube/apache.conf @@ -0,0 +1,40 @@ +Alias /roundcube/program/js/tiny_mce/ /usr/share/tinymce/www/ +Alias /roundcube /var/lib/roundcube +Alias /webmail /var/lib/roundcube + +# Access to tinymce files + + Options Indexes MultiViews FollowSymLinks + AllowOverride None + Order allow,deny + allow from all + + + + Options +FollowSymLinks + # This is needed to parse /var/lib/roundcube/.htaccess. See its + # content before setting AllowOverride to None. + AllowOverride All + order allow,deny + allow from all + + +# Protecting basic directories: + + Options -FollowSymLinks + AllowOverride None + + + + Options -FollowSymLinks + AllowOverride None + Order allow,deny + Deny from all + + + + Options -FollowSymLinks + AllowOverride None + Order allow,deny + Deny from all + diff --git a/install/debian/11/roundcube/config.inc.php b/install/debian/11/roundcube/config.inc.php new file mode 100644 index 00000000..0c82b1bc --- /dev/null +++ b/install/debian/11/roundcube/config.inc.php @@ -0,0 +1,33 @@ + diff --git a/install/debian/11/roundcube/main.inc.php b/install/debian/11/roundcube/main.inc.php new file mode 100644 index 00000000..55a4e082 --- /dev/null +++ b/install/debian/11/roundcube/main.inc.php @@ -0,0 +1,850 @@ +/sendmail or to syslog +$rcmail_config['smtp_log'] = true; + +// Log successful logins to /userlogins or to syslog +$rcmail_config['log_logins'] = false; + +// Log session authentication errors to /session or to syslog +$rcmail_config['log_session'] = false; + +// Log SQL queries to /sql or to syslog +$rcmail_config['sql_debug'] = false; + +// Log IMAP conversation to /imap or to syslog +$rcmail_config['imap_debug'] = false; + +// Log LDAP conversation to /ldap or to syslog +$rcmail_config['ldap_debug'] = false; + +// Log SMTP conversation to /smtp or to syslog +$rcmail_config['smtp_debug'] = false; + +// ---------------------------------- +// IMAP +// ---------------------------------- + +// the mail host chosen to perform the log-in +// leave blank to show a textbox at login, give a list of hosts +// to display a pulldown menu or set one host as string. +// To use SSL/TLS connection, enter hostname with prefix ssl:// or tls:// +// Supported replacement variables: +// %n - http hostname ($_SERVER['SERVER_NAME']) +// %d - domain (http hostname without the first part) +// %s - domain name after the '@' from e-mail address provided at login screen +// For example %n = mail.domain.tld, %d = domain.tld +$rcmail_config['default_host'] = 'localhost'; + +// TCP port used for IMAP connections +$rcmail_config['default_port'] = 143; + +// IMAP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or empty to use +// best server supported one) +$rcmail_config['imap_auth_type'] = null; + +// If you know your imap's folder delimiter, you can specify it here. +// Otherwise it will be determined automatically +$rcmail_config['imap_delimiter'] = null; + +// If IMAP server doesn't support NAMESPACE extension, but you're +// using shared folders or personal root folder is non-empty, you'll need to +// set these options. All can be strings or arrays of strings. +// Folders need to be ended with directory separator, e.g. "INBOX." +// (special directory "~" is an exception to this rule) +// These can be used also to overwrite server's namespaces +$rcmail_config['imap_ns_personal'] = null; +$rcmail_config['imap_ns_other'] = null; +$rcmail_config['imap_ns_shared'] = null; + +// By default IMAP capabilities are readed after connection to IMAP server +// In some cases, e.g. when using IMAP proxy, there's a need to refresh the list +// after login. Set to True if you've got this case. +$rcmail_config['imap_force_caps'] = false; + +// By default list of subscribed folders is determined using LIST-EXTENDED +// extension if available. Some servers (dovecot 1.x) returns wrong results +// for shared namespaces in this case. http://trac.roundcube.net/ticket/1486225 +// Enable this option to force LSUB command usage instead. +$rcmail_config['imap_force_lsub'] = false; + +// Some server configurations (e.g. Courier) doesn't list folders in all namespaces +// Enable this option to force listing of folders in all namespaces +$rcmail_config['imap_force_ns'] = false; + +// IMAP connection timeout, in seconds. Default: 0 (no limit) +$rcmail_config['imap_timeout'] = 0; + +// Optional IMAP authentication identifier to be used as authorization proxy +$rcmail_config['imap_auth_cid'] = null; + +// Optional IMAP authentication password to be used for imap_auth_cid +$rcmail_config['imap_auth_pw'] = null; + +// Type of IMAP indexes cache. Supported values: 'db', 'apc' and 'memcache'. +$rcmail_config['imap_cache'] = null; + +// Enables messages cache. Only 'db' cache is supported. +$rcmail_config['messages_cache'] = false; + + +// ---------------------------------- +// SMTP +// ---------------------------------- + +// SMTP server host (for sending mails). +// To use SSL/TLS connection, enter hostname with prefix ssl:// or tls:// +// If left blank, the PHP mail() function is used +// Supported replacement variables: +// %h - user's IMAP hostname +// %n - http hostname ($_SERVER['SERVER_NAME']) +// %d - domain (http hostname without the first part) +// %z - IMAP domain (IMAP hostname without the first part) +// For example %n = mail.domain.tld, %d = domain.tld +$rcmail_config['smtp_server'] = ''; + +// SMTP port (default is 25; use 587 for STARTTLS or 465 for the +// deprecated SSL over SMTP (aka SMTPS)) +$rcmail_config['smtp_port'] = 25; + +// SMTP username (if required) if you use %u as the username Roundcube +// will use the current username for login +$rcmail_config['smtp_user'] = ''; + +// SMTP password (if required) if you use %p as the password Roundcube +// will use the current user's password for login +$rcmail_config['smtp_pass'] = ''; + +// SMTP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or empty to use +// best server supported one) +$rcmail_config['smtp_auth_type'] = ''; + +// Optional SMTP authentication identifier to be used as authorization proxy +$rcmail_config['smtp_auth_cid'] = null; + +// Optional SMTP authentication password to be used for smtp_auth_cid +$rcmail_config['smtp_auth_pw'] = null; + +// SMTP HELO host +// Hostname to give to the remote server for SMTP 'HELO' or 'EHLO' messages +// Leave this blank and you will get the server variable 'server_name' or +// localhost if that isn't defined. +$rcmail_config['smtp_helo_host'] = ''; + +// SMTP connection timeout, in seconds. Default: 0 (no limit) +$rcmail_config['smtp_timeout'] = 0; + +// ---------------------------------- +// SYSTEM +// ---------------------------------- +include_once("/etc/roundcube/debian-db-roundcube.php"); + + +// THIS OPTION WILL ALLOW THE INSTALLER TO RUN AND CAN EXPOSE SENSITIVE CONFIG DATA. +// ONLY ENABLE IT IF YOU'RE REALLY SURE WHAT YOU'RE DOING! +$rcmail_config['enable_installer'] = false; + +// provide an URL where a user can get support for this Roundcube installation +// PLEASE DO NOT LINK TO THE ROUNDCUBE.NET WEBSITE HERE! +$rcmail_config['support_url'] = ''; + +// replace Roundcube logo with this image +// specify an URL relative to the document root of this Roundcube installation +$rcmail_config['skin_logo'] = null; + +// automatically create a new Roundcube user when log-in the first time. +// a new user will be created once the IMAP login succeeds. +// set to false if only registered users can use this service +$rcmail_config['auto_create_user'] = true; + +// use this folder to store log files (must be writeable for apache user) +// This is used by the 'file' log driver. +$rcmail_config['log_dir'] = '/var/log/roundcubemail/'; + +// use this folder to store temp files (must be writeable for apache user) +$rcmail_config['temp_dir'] = '/tmp'; + +// lifetime of message cache +// possible units: s, m, h, d, w +$rcmail_config['message_cache_lifetime'] = '10d'; + +// enforce connections over https +// with this option enabled, all non-secure connections will be redirected. +// set the port for the ssl connection as value of this option if it differs from the default 443 +$rcmail_config['force_https'] = true; + +// tell PHP that it should work as under secure connection +// even if it doesn't recognize it as secure ($_SERVER['HTTPS'] is not set) +// e.g. when you're running Roundcube behind a https proxy +// this option is mutually exclusive to 'force_https' and only either one of them should be set to true. +$rcmail_config['use_https'] = false; + +// Allow browser-autocompletion on login form. +// 0 - disabled, 1 - username and host only, 2 - username, host, password +$rcmail_config['login_autocomplete'] = 0; + +// Forces conversion of logins to lower case. +// 0 - disabled, 1 - only domain part, 2 - domain and local part. +// If users authentication is not case-sensitive this must be enabled. +// After enabling it all user records need to be updated, e.g. with query: +// UPDATE users SET username = LOWER(username); +$rcmail_config['login_lc'] = 0; + +// Includes should be interpreted as PHP files +$rcmail_config['skin_include_php'] = false; + +// display software version on login screen +$rcmail_config['display_version'] = false; + +// Session lifetime in minutes +// must be greater than 'keep_alive'/60 +$rcmail_config['session_lifetime'] = 10; + +// session domain: .example.org +$rcmail_config['session_domain'] = ''; + +// session name. Default: 'roundcube_sessid' +$rcmail_config['session_name'] = null; + +// Backend to use for session storage. Can either be 'db' (default) or 'memcache' +// If set to memcache, a list of servers need to be specified in 'memcache_hosts' +// Make sure the Memcache extension (http://pecl.php.net/package/memcache) version >= 2.0.0 is installed +$rcmail_config['session_storage'] = 'db'; + +// Use these hosts for accessing memcached +// Define any number of hosts in the form of hostname:port or unix:///path/to/sock.file +$rcmail_config['memcache_hosts'] = null; // e.g. array( 'localhost:11211', '192.168.1.12:11211', 'unix:///var/tmp/memcached.sock' ); + +// check client IP in session athorization +$rcmail_config['ip_check'] = false; + +// check referer of incoming requests +$rcmail_config['referer_check'] = false; + +// X-Frame-Options HTTP header value sent to prevent from Clickjacking. +// Possible values: sameorigin|deny. Set to false in order to disable sending them +$rcmail_config['x_frame_options'] = 'sameorigin'; + +// this key is used to encrypt the users imap password which is stored +// in the session record (and the client cookie if remember password is enabled). +// please provide a string of exactly 24 chars. +$rcmail_config['des_key'] = 'vtIOjLZo9kffJoqzpSbm5r1r'; + +// Automatically add this domain to user names for login +// Only for IMAP servers that require full e-mail addresses for login +// Specify an array with 'host' => 'domain' values to support multiple hosts +// Supported replacement variables: +// %h - user's IMAP hostname +// %n - http hostname ($_SERVER['SERVER_NAME']) +// %d - domain (http hostname without the first part) +// %z - IMAP domain (IMAP hostname without the first part) +// For example %n = mail.domain.tld, %d = domain.tld +$rcmail_config['username_domain'] = ''; + +// This domain will be used to form e-mail addresses of new users +// Specify an array with 'host' => 'domain' values to support multiple hosts +// Supported replacement variables: +// %h - user's IMAP hostname +// %n - http hostname ($_SERVER['SERVER_NAME']) +// %d - domain (http hostname without the first part) +// %z - IMAP domain (IMAP hostname without the first part) +// For example %n = mail.domain.tld, %d = domain.tld +$rcmail_config['mail_domain'] = ''; + +// Password charset. +// Use it if your authentication backend doesn't support UTF-8. +// Defaults to ISO-8859-1 for backward compatibility +$rcmail_config['password_charset'] = 'ISO-8859-1'; + +// How many seconds must pass between emails sent by a user +$rcmail_config['sendmail_delay'] = 0; + +// Maximum number of recipients per message. Default: 0 (no limit) +$rcmail_config['max_recipients'] = 0; + +// Maximum allowednumber of members of an address group. Default: 0 (no limit) +// If 'max_recipients' is set this value should be less or equal +$rcmail_config['max_group_members'] = 0; + +// add this user-agent to message headers when sending +$rcmail_config['useragent'] = 'Roundcube Webmail/'.RCMAIL_VERSION; + +// use this name to compose page titles +$rcmail_config['product_name'] = 'Roundcube Webmail'; + +// try to load host-specific configuration +// see http://trac.roundcube.net/wiki/Howto_Config for more details +$rcmail_config['include_host_config'] = false; + +// path to a text file which will be added to each sent message +// paths are relative to the Roundcube root folder +$rcmail_config['generic_message_footer'] = ''; + +// path to a text file which will be added to each sent HTML message +// paths are relative to the Roundcube root folder +$rcmail_config['generic_message_footer_html'] = ''; + +// add a received header to outgoing mails containing the creators IP and hostname +$rcmail_config['http_received_header'] = false; + +// Whether or not to encrypt the IP address and the host name +// these could, in some circles, be considered as sensitive information; +// however, for the administrator, these could be invaluable help +// when tracking down issues. +$rcmail_config['http_received_header_encrypt'] = false; + +// This string is used as a delimiter for message headers when sending +// a message via mail() function. Leave empty for auto-detection +$rcmail_config['mail_header_delimiter'] = NULL; + +// number of chars allowed for line when wrapping text. +// text wrapping is done when composing/sending messages +$rcmail_config['line_length'] = 72; + +// send plaintext messages as format=flowed +$rcmail_config['send_format_flowed'] = true; + +// don't allow these settings to be overriden by the user +$rcmail_config['dont_override'] = array(); + +// Set identities access level: +// 0 - many identities with possibility to edit all params +// 1 - many identities with possibility to edit all params but not email address +// 2 - one identity with possibility to edit all params +// 3 - one identity with possibility to edit all params but not email address +$rcmail_config['identities_level'] = 0; + +// Mimetypes supported by the browser. +// attachments of these types will open in a preview window +// either a comma-separated list or an array: 'text/plain,text/html,text/xml,image/jpeg,image/gif,image/png,application/pdf' +$rcmail_config['client_mimetypes'] = null; # null == default + +// mime magic database +$rcmail_config['mime_magic'] = null; + +// path to imagemagick identify binary +$rcmail_config['im_identify_path'] = null; + +// path to imagemagick convert binary +$rcmail_config['im_convert_path'] = null; + +// maximum size of uploaded contact photos in pixel +$rcmail_config['contact_photo_size'] = 160; + +// Enable DNS checking for e-mail address validation +$rcmail_config['email_dns_check'] = false; + +// ---------------------------------- +// PLUGINS +// ---------------------------------- + +// List of active plugins (in plugins/ directory) +$rcmail_config['plugins'] = array('password'); + +// ---------------------------------- +// USER INTERFACE +// ---------------------------------- + +// default messages sort column. Use empty value for default server's sorting, +// or 'arrival', 'date', 'subject', 'from', 'to', 'fromto', 'size', 'cc' +$rcmail_config['message_sort_col'] = ''; + +// default messages sort order +$rcmail_config['message_sort_order'] = 'DESC'; + +// These cols are shown in the message list. Available cols are: +// subject, from, to, fromto, cc, replyto, date, size, status, flag, attachment, 'priority' +$rcmail_config['list_cols'] = array('subject', 'status', 'fromto', 'date', 'size', 'flag', 'attachment'); + +// the default locale setting (leave empty for auto-detection) +// RFC1766 formatted language name like en_US, de_DE, de_CH, fr_FR, pt_BR +$rcmail_config['language'] = null; + +// use this format for date display (date or strftime format) +$rcmail_config['date_format'] = 'Y-m-d'; + +// give this choice of date formats to the user to select from +$rcmail_config['date_formats'] = array('Y-m-d', 'd-m-Y', 'Y/m/d', 'm/d/Y', 'd/m/Y', 'd.m.Y', 'j.n.Y'); + +// use this format for time display (date or strftime format) +$rcmail_config['time_format'] = 'H:i'; + +// give this choice of time formats to the user to select from +$rcmail_config['time_formats'] = array('G:i', 'H:i', 'g:i a', 'h:i A'); + +// use this format for short date display (derived from date_format and time_format) +$rcmail_config['date_short'] = 'D H:i'; + +// use this format for detailed date/time formatting (derived from date_format and time_format) +$rcmail_config['date_long'] = 'Y-m-d H:i'; + +// store draft message is this mailbox +// leave blank if draft messages should not be stored +// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) +$rcmail_config['drafts_mbox'] = 'Drafts'; + +// store spam messages in this mailbox +// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) +$rcmail_config['junk_mbox'] = 'Spam'; + +// store sent message is this mailbox +// leave blank if sent messages should not be stored +// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) +$rcmail_config['sent_mbox'] = 'Sent'; + +// move messages to this folder when deleting them +// leave blank if they should be deleted directly +// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) +$rcmail_config['trash_mbox'] = 'Trash'; + +// display these folders separately in the mailbox list. +// these folders will also be displayed with localized names +// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) +$rcmail_config['default_folders'] = array('INBOX', 'Drafts', 'Sent', 'Spam', 'Trash'); +$rcmail_config['default_imap_folders'] = array('INBOX', 'Drafts', 'Sent', 'Spam', 'Trash'); + +// automatically create the above listed default folders on first login +$rcmail_config['create_default_folders'] = true; + +// protect the default folders from renames, deletes, and subscription changes +$rcmail_config['protect_default_folders'] = true; + +// if in your system 0 quota means no limit set this option to true +$rcmail_config['quota_zero_as_unlimited'] = false; + +// Make use of the built-in spell checker. It is based on GoogieSpell. +// Since Google only accepts connections over https your PHP installatation +// requires to be compiled with Open SSL support +$rcmail_config['enable_spellcheck'] = true; + +// Enables spellchecker exceptions dictionary. +// Setting it to 'shared' will make the dictionary shared by all users. +$rcmail_config['spellcheck_dictionary'] = false; + +// Set the spell checking engine. 'googie' is the default. 'pspell' is also available, +// but requires the Pspell extensions. When using Nox Spell Server, also set 'googie' here. +$rcmail_config['spellcheck_engine'] = 'googie'; + +// For a locally installed Nox Spell Server, please specify the URI to call it. +// Get Nox Spell Server from http://orangoo.com/labs/?page_id=72 +// Leave empty to use the Google spell checking service, what means +// that the message content will be sent to Google in order to check spelling +$rcmail_config['spellcheck_uri'] = ''; + +// These languages can be selected for spell checking. +// Configure as a PHP style hash array: array('en'=>'English', 'de'=>'Deutsch'); +// Leave empty for default set of available language. +$rcmail_config['spellcheck_languages'] = NULL; + +// Makes that words with all letters capitalized will be ignored (e.g. GOOGLE) +$rcmail_config['spellcheck_ignore_caps'] = false; + +// Makes that words with numbers will be ignored (e.g. g00gle) +$rcmail_config['spellcheck_ignore_nums'] = false; + +// Makes that words with symbols will be ignored (e.g. g@@gle) +$rcmail_config['spellcheck_ignore_syms'] = false; + +// Use this char/string to separate recipients when composing a new message +$rcmail_config['recipients_separator'] = ','; + +// don't let users set pagesize to more than this value if set +$rcmail_config['max_pagesize'] = 200; + +// Minimal value of user's 'keep_alive' setting (in seconds) +// Must be less than 'session_lifetime' +$rcmail_config['min_keep_alive'] = 60; + +// Enables files upload indicator. Requires APC installed and enabled apc.rfc1867 option. +// By default refresh time is set to 1 second. You can set this value to true +// or any integer value indicating number of seconds. +$rcmail_config['upload_progress'] = false; + +// Specifies for how many seconds the Undo button will be available +// after object delete action. Currently used with supporting address book sources. +// Setting it to 0, disables the feature. +$rcmail_config['undo_timeout'] = 0; + +// ---------------------------------- +// ADDRESSBOOK SETTINGS +// ---------------------------------- + +// This indicates which type of address book to use. Possible choises: +// 'sql' (default) and 'ldap'. +// If set to 'ldap' then it will look at using the first writable LDAP +// address book as the primary address book and it will not display the +// SQL address book in the 'Address Book' view. +$rcmail_config['address_book_type'] = 'sql'; + +// In order to enable public ldap search, configure an array like the Verisign +// example further below. if you would like to test, simply uncomment the example. +// Array key must contain only safe characters, ie. a-zA-Z0-9_ +$rcmail_config['ldap_public'] = array(); + +// If you are going to use LDAP for individual address books, you will need to +// set 'user_specific' to true and use the variables to generate the appropriate DNs to access it. +// +// The recommended directory structure for LDAP is to store all the address book entries +// under the users main entry, e.g.: +// +// o=root +// ou=people +// uid=user@domain +// mail=contact@contactdomain +// +// So the base_dn would be uid=%fu,ou=people,o=root +// The bind_dn would be the same as based_dn or some super user login. +/* + * example config for Verisign directory + * +$rcmail_config['ldap_public']['Verisign'] = array( + 'name' => 'Verisign.com', + // Replacement variables supported in host names: + // %h - user's IMAP hostname + // %n - http hostname ($_SERVER['SERVER_NAME']) + // %d - domain (http hostname without the first part) + // %z - IMAP domain (IMAP hostname without the first part) + // For example %n = mail.domain.tld, %d = domain.tld + 'hosts' => array('directory.verisign.com'), + 'port' => 389, + 'use_tls' => false, + 'ldap_version' => 3, // using LDAPv3 + 'user_specific' => false, // If true the base_dn, bind_dn and bind_pass default to the user's IMAP login. + // %fu - The full username provided, assumes the username is an email + // address, uses the username_domain value if not an email address. + // %u - The username prior to the '@'. + // %d - The domain name after the '@'. + // %dc - The domain name hierarchal string e.g. "dc=test,dc=domain,dc=com" + // %dn - DN found by ldap search when search_filter/search_base_dn are used + 'base_dn' => '', + 'bind_dn' => '', + 'bind_pass' => '', + // It's possible to bind for an individual address book + // The login name is used to search for the DN to bind with + 'search_base_dn' => '', + 'search_filter' => '', // e.g. '(&(objectClass=posixAccount)(uid=%u))' + // DN and password to bind as before searching for bind DN, if anonymous search is not allowed + 'search_bind_dn' => '', + 'search_bind_pw' => '', + // Default for %dn variable if search doesn't return DN value + 'search_dn_default' => '', + // Optional authentication identifier to be used as SASL authorization proxy + // bind_dn need to be empty + 'auth_cid' => '', + // SASL authentication method (for proxy auth), e.g. DIGEST-MD5 + 'auth_method' => '', + // Indicates if the addressbook shall be hidden from the list. + // With this option enabled you can still search/view contacts. + 'hidden' => false, + // Indicates if the addressbook shall not list contacts but only allows searching. + 'searchonly' => false, + // Indicates if we can write to the LDAP directory or not. + // If writable is true then these fields need to be populated: + // LDAP_Object_Classes, required_fields, LDAP_rdn + 'writable' => false, + // To create a new contact these are the object classes to specify + // (or any other classes you wish to use). + 'LDAP_Object_Classes' => array('top', 'inetOrgPerson'), + // The RDN field that is used for new entries, this field needs + // to be one of the search_fields, the base of base_dn is appended + // to the RDN to insert into the LDAP directory. + 'LDAP_rdn' => 'cn', + // The required fields needed to build a new contact as required by + // the object classes (can include additional fields not required by the object classes). + 'required_fields' => array('cn', 'sn', 'mail'), + 'search_fields' => array('mail', 'cn'), // fields to search in + // mapping of contact fields to directory attributes + // for every attribute one can specify the number of values (limit) allowed. + // default is 1, a wildcard * means unlimited + 'fieldmap' => array( + // Roundcube => LDAP:limit + 'name' => 'cn', + 'surname' => 'sn', + 'firstname' => 'givenName', + 'title' => 'title', + 'email' => 'mail:*', + 'phone:home' => 'homePhone', + 'phone:work' => 'telephoneNumber', + 'phone:mobile' => 'mobile', + 'phone:pager' => 'pager', + 'street' => 'street', + 'zipcode' => 'postalCode', + 'region' => 'st', + 'locality' => 'l', +// if you uncomment country, you need to modify 'sub_fields' above +// 'country' => 'c', + 'department' => 'departmentNumber', + 'notes' => 'description', +// these currently don't work: +// 'phone:workfax' => 'facsimileTelephoneNumber', +// 'photo' => 'jpegPhoto', +// 'organization' => 'o', +// 'manager' => 'manager', +// 'assistant' => 'secretary', + ), + // Map of contact sub-objects (attribute name => objectClass(es)), e.g. 'c' => 'country' + 'sub_fields' => array(), + 'sort' => 'cn', // The field to sort the listing by. + 'scope' => 'sub', // search mode: sub|base|list + 'filter' => '(objectClass=inetOrgPerson)', // used for basic listing (if not empty) and will be &'d with search queries. example: status=act + 'fuzzy_search' => true, // server allows wildcard search + 'vlv' => false, // Enable Virtual List View to more efficiently fetch paginated data (if server supports it) + 'numsub_filter' => '(objectClass=organizationalUnit)', // with VLV, we also use numSubOrdinates to query the total number of records. Set this filter to get all numSubOrdinates attributes for counting + 'sizelimit' => '0', // Enables you to limit the count of entries fetched. Setting this to 0 means no limit. + 'timelimit' => '0', // Sets the number of seconds how long is spend on the search. Setting this to 0 means no limit. + 'referrals' => true|false, // Sets the LDAP_OPT_REFERRALS option. Mostly used in multi-domain Active Directory setups + + // definition for contact groups (uncomment if no groups are supported) + // for the groups base_dn, the user replacements %fu, %u, $d and %dc work as for base_dn (see above) + // if the groups base_dn is empty, the contact base_dn is used for the groups as well + // -> in this case, assure that groups and contacts are separated due to the concernig filters! + 'groups' => array( + 'base_dn' => '', + 'scope' => 'sub', // search mode: sub|base|list + 'filter' => '(objectClass=groupOfNames)', + 'object_classes' => array("top", "groupOfNames"), + 'member_attr' => 'member', // name of the member attribute, e.g. uniqueMember + 'name_attr' => 'cn', // attribute to be used as group name + ), +); +*/ + +// An ordered array of the ids of the addressbooks that should be searched +// when populating address autocomplete fields server-side. ex: array('sql','Verisign'); +$rcmail_config['autocomplete_addressbooks'] = array('sql'); + +// The minimum number of characters required to be typed in an autocomplete field +// before address books will be searched. Most useful for LDAP directories that +// may need to do lengthy results building given overly-broad searches +$rcmail_config['autocomplete_min_length'] = 1; + +// Number of parallel autocomplete requests. +// If there's more than one address book, n parallel (async) requests will be created, +// where each request will search in one address book. By default (0), all address +// books are searched in one request. +$rcmail_config['autocomplete_threads'] = 0; + +// Max. numer of entries in autocomplete popup. Default: 15. +$rcmail_config['autocomplete_max'] = 15; + +// show address fields in this order +// available placeholders: {street}, {locality}, {zipcode}, {country}, {region} +$rcmail_config['address_template'] = '{street}
{locality} {zipcode}
{country} {region}'; + +// Matching mode for addressbook search (including autocompletion) +// 0 - partial (*abc*), default +// 1 - strict (abc) +// 2 - prefix (abc*) +// Note: For LDAP sources fuzzy_search must be enabled to use 'partial' or 'prefix' mode +$rcmail_config['addressbook_search_mode'] = 0; + +// ---------------------------------- +// USER PREFERENCES +// ---------------------------------- + +// Use this charset as fallback for message decoding +//$rcmail_config['default_charset'] = 'ISO-8859-1'; +$rcmail_config['default_charset'] = 'UTF-8'; + +// skin name: folder from skins/ +$rcmail_config['skin'] = 'larry'; + +// show up to X items in messages list view +$rcmail_config['mail_pagesize'] = 50; + +// show up to X items in contacts list view +$rcmail_config['addressbook_pagesize'] = 50; + +// sort contacts by this col (preferably either one of name, firstname, surname) +$rcmail_config['addressbook_sort_col'] = 'surname'; + +// the way how contact names are displayed in the list +// 0: display name +// 1: (prefix) firstname middlename surname (suffix) +// 2: (prefix) surname firstname middlename (suffix) +// 3: (prefix) surname, firstname middlename (suffix) +$rcmail_config['addressbook_name_listing'] = 0; + +// use this timezone to display date/time +// valid timezone identifers are listed here: php.net/manual/en/timezones.php +// 'auto' will use the browser's timezone settings +$rcmail_config['timezone'] = 'auto'; + +// prefer displaying HTML messages +$rcmail_config['prefer_html'] = true; + +// display remote inline images +// 0 - Never, always ask +// 1 - Ask if sender is not in address book +// 2 - Always show inline images +$rcmail_config['show_images'] = 0; + +// compose html formatted messages by default +// 0 - never, 1 - always, 2 - on reply to HTML message only +$rcmail_config['htmleditor'] = 0; + +// show pretty dates as standard +$rcmail_config['prettydate'] = true; + +// save compose message every 300 seconds (5min) +$rcmail_config['draft_autosave'] = 300; + +// default setting if preview pane is enabled +$rcmail_config['preview_pane'] = false; + +// Mark as read when viewed in preview pane (delay in seconds) +// Set to -1 if messages in preview pane should not be marked as read +$rcmail_config['preview_pane_mark_read'] = 0; + +// Clear Trash on logout +$rcmail_config['logout_purge'] = false; + +// Compact INBOX on logout +$rcmail_config['logout_expunge'] = false; + +// Display attached images below the message body +$rcmail_config['inline_images'] = true; + +// Encoding of long/non-ascii attachment names: +// 0 - Full RFC 2231 compatible +// 1 - RFC 2047 for 'name' and RFC 2231 for 'filename' parameter (Thunderbird's default) +// 2 - Full 2047 compatible +$rcmail_config['mime_param_folding'] = 1; + +// Set true if deleted messages should not be displayed +// This will make the application run slower +$rcmail_config['skip_deleted'] = false; + +// Set true to Mark deleted messages as read as well as deleted +// False means that a message's read status is not affected by marking it as deleted +$rcmail_config['read_when_deleted'] = true; + +// Set to true to never delete messages immediately +// Use 'Purge' to remove messages marked as deleted +$rcmail_config['flag_for_deletion'] = false; + +// Default interval for keep-alive/check-recent requests (in seconds) +// Must be greater than or equal to 'min_keep_alive' and less than 'session_lifetime' +$rcmail_config['keep_alive'] = 60; + +// If true all folders will be checked for recent messages +$rcmail_config['check_all_folders'] = false; + +// If true, after message delete/move, the next message will be displayed +$rcmail_config['display_next'] = false; + +// 0 - Do not expand threads +// 1 - Expand all threads automatically +// 2 - Expand only threads with unread messages +$rcmail_config['autoexpand_threads'] = 0; + +// When replying place cursor above original message (top posting) +$rcmail_config['top_posting'] = false; + +// When replying strip original signature from message +$rcmail_config['strip_existing_sig'] = true; + +// Show signature: +// 0 - Never +// 1 - Always +// 2 - New messages only +// 3 - Forwards and Replies only +$rcmail_config['show_sig'] = 1; + +// When replying or forwarding place sender's signature above existing message +$rcmail_config['sig_above'] = false; + +// Use MIME encoding (quoted-printable) for 8bit characters in message body +$rcmail_config['force_7bit'] = false; + +// Defaults of the search field configuration. +// The array can contain a per-folder list of header fields which should be considered when searching +// The entry with key '*' stands for all folders which do not have a specific list set. +// Please note that folder names should to be in sync with $rcmail_config['default_folders'] +$rcmail_config['search_mods'] = null; // Example: array('*' => array('subject'=>1, 'from'=>1), 'Sent' => array('subject'=>1, 'to'=>1)); + +// Defaults of the addressbook search field configuration. +$rcmail_config['addressbook_search_mods'] = null; // Example: array('name'=>1, 'firstname'=>1, 'surname'=>1, 'email'=>1, '*'=>1); + +// 'Delete always' +// This setting reflects if mail should be always deleted +// when moving to Trash fails. This is necessary in some setups +// when user is over quota and Trash is included in the quota. +$rcmail_config['delete_always'] = false; + +// Directly delete messages in Junk instead of moving to Trash +$rcmail_config['delete_junk'] = true; + +// Behavior if a received message requests a message delivery notification (read receipt) +// 0 = ask the user, 1 = send automatically, 2 = ignore (never send or ask) +// 3 = send automatically if sender is in addressbook, otherwise ask the user +// 4 = send automatically if sender is in addressbook, otherwise ignore +$rcmail_config['mdn_requests'] = 0; + +// Return receipt checkbox default state +$rcmail_config['mdn_default'] = 0; + +// Delivery Status Notification checkbox default state +$rcmail_config['dsn_default'] = 0; + +// Place replies in the folder of the message being replied to +$rcmail_config['reply_same_folder'] = false; + +// Sets default mode of Forward feature to "forward as attachment" +$rcmail_config['forward_attachment'] = false; + +// Defines address book (internal index) to which new contacts will be added +// By default it is the first writeable addressbook. +// Note: Use '0' for built-in address book. +$rcmail_config['default_addressbook'] = null; + +// Enables spell checking before sending a message. +$rcmail_config['spellcheck_before_send'] = false; + +// Skip alternative email addresses in autocompletion (show one address per contact) +$rcmail_config['autocomplete_single'] = false; + +// Default font for composed HTML message. +// Supported values: Andale Mono, Arial, Arial Black, Book Antiqua, Courier New, +// Georgia, Helvetica, Impact, Tahoma, Terminal, Times New Roman, Trebuchet MS, Verdana +$rcmail_config['default_font'] = ''; + +// end of config file diff --git a/install/debian/11/roundcube/vesta.php b/install/debian/11/roundcube/vesta.php new file mode 100644 index 00000000..b3dd167f --- /dev/null +++ b/install/debian/11/roundcube/vesta.php @@ -0,0 +1,73 @@ + + */ +class rcube_vesta_password { + function save($curpass, $passwd) + { + $rcmail = rcmail::get_instance(); + $vesta_host = $rcmail->config->get('password_vesta_host'); + + if (empty($vesta_host)) + { + $vesta_host = 'localhost'; + } + + $vesta_port = $rcmail->config->get('password_vesta_port'); + if (empty($vesta_port)) + { + $vesta_port = '8083'; + } + + $postvars = array( + 'email' => $_SESSION['username'], + 'password' => $curpass, + 'new' => $passwd + ); + + $postdata = http_build_query($postvars); + + $send = 'POST /reset/mail/ HTTP/1.1' . PHP_EOL; + $send .= 'Host: ' . $vesta_host . PHP_EOL; + $send .= 'User-Agent: PHP Script' . PHP_EOL; + $send .= 'Content-length: ' . strlen($postdata) . PHP_EOL; + $send .= 'Content-type: application/x-www-form-urlencoded' . PHP_EOL; + $send .= 'Connection: close' . PHP_EOL; + $send .= PHP_EOL; + $send .= $postdata . PHP_EOL . PHP_EOL; + + //$fp = fsockopen('ssl://' . $vesta_host, $vesta_port); + $errno = ""; + $errstr = ""; + $context = stream_context_create(); + + $result = stream_context_set_option($context, 'ssl', 'verify_peer', false); + $result = stream_context_set_option($context, 'ssl', 'verify_peer_name', false); + $result = stream_context_set_option($context, 'ssl', 'verify_host', false); + $result = stream_context_set_option($context, 'ssl', 'allow_self_signed', true); + + $fp = stream_socket_client('ssl://' . $vesta_host . ':'.$vesta_port, $errno, $errstr, 60, STREAM_CLIENT_CONNECT, $context); + fputs($fp, $send); + $result = fread($fp, 2048); + fclose($fp); + + $fp = fopen("/tmp/roundcube.log", 'w'); + fwrite($fp, "test ok"); + fwrite($fp, "\n"); + fclose($fp); + + + if(strpos($result, 'ok') && !strpos($result, 'error')) + { + return PASSWORD_SUCCESS; + } + else { + return PASSWORD_ERROR; + } + + } +} diff --git a/install/debian/11/sudo/admin b/install/debian/11/sudo/admin new file mode 100644 index 00000000..331fa1f2 --- /dev/null +++ b/install/debian/11/sudo/admin @@ -0,0 +1,8 @@ +# Created by vesta installer +Defaults env_keep="VESTA" +Defaults:admin !syslog +Defaults:admin !requiretty +Defaults:root !requiretty + +# sudo is limited to vesta scripts +admin ALL=NOPASSWD:/usr/local/vesta/bin/* diff --git a/install/debian/11/templates/dns/child-ns.tpl b/install/debian/11/templates/dns/child-ns.tpl new file mode 100755 index 00000000..42c046e4 --- /dev/null +++ b/install/debian/11/templates/dns/child-ns.tpl @@ -0,0 +1,14 @@ +ID='1' RECORD='@' TYPE='NS' PRIORITY='' VALUE='ns1.%domain%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='2' RECORD='@' TYPE='NS' PRIORITY='' VALUE='ns2.%domain%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='3' RECORD='@' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='4' RECORD='ns1' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='5' RECORD='ns2' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='6' RECORD='www' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='7' RECORD='ftp' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='8' RECORD='mail' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='9' RECORD='smtp' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='10' RECORD='pop' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='11' RECORD='imap' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='12' RECORD='@' TYPE='MX' PRIORITY='10' VALUE='mail.%domain%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='13' RECORD='@' TYPE='TXT' PRIORITY='' VALUE='"v=spf1 a mx ip4:%ip% ~all"' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='14' RECORD='_dmarc' TYPE='TXT' PRIORITY='' VALUE='"v=DMARC1; p=none"' SUSPENDED='no' TIME='%time%' DATE='%date%' diff --git a/install/debian/11/templates/dns/default.tpl b/install/debian/11/templates/dns/default.tpl new file mode 100755 index 00000000..e0a37e62 --- /dev/null +++ b/install/debian/11/templates/dns/default.tpl @@ -0,0 +1,18 @@ +ID='1' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns1%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='2' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns2%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='3' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns3%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='4' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns4%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='5' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns5%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='6' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns6%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='7' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns7%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='8' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns8%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='9' RECORD='@' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='10' RECORD='www' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='11' RECORD='ftp' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='12' RECORD='mail' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='13' RECORD='smtp' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='14' RECORD='pop' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='15' RECORD='imap' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='16' RECORD='@' TYPE='MX' PRIORITY='10' VALUE='mail.%domain%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='17' RECORD='@' TYPE='TXT' PRIORITY='' VALUE='"v=spf1 a mx ip4:%ip% ~all"' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='18' RECORD='_dmarc' TYPE='TXT' PRIORITY='' VALUE='"v=DMARC1; p=none"' SUSPENDED='no' TIME='%time%' DATE='%date%' diff --git a/install/debian/11/templates/dns/gmail.tpl b/install/debian/11/templates/dns/gmail.tpl new file mode 100755 index 00000000..219c9d24 --- /dev/null +++ b/install/debian/11/templates/dns/gmail.tpl @@ -0,0 +1,12 @@ +ID='1' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns1%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='2' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns2%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='3' RECORD='@' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='4' RECORD='ftp' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='5' RECORD='localhost' TYPE='A' PRIORITY='' VALUE='127.0.0.1' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='6' RECORD='www' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='7' RECORD='@' TYPE='MX' PRIORITY='1' VALUE='ASPMX.L.GOOGLE.COM.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='8' RECORD='@' TYPE='MX' PRIORITY='5' VALUE='ALT1.ASPMX.L.GOOGLE.COM.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='9' RECORD='@' TYPE='MX' PRIORITY='5' VALUE='ALT2.ASPMX.L.GOOGLE.COM.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='10' RECORD='@' TYPE='MX' PRIORITY='10' VALUE='ALT3.ASPMX.L.GOOGLE.COM.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='11' RECORD='@' TYPE='MX' PRIORITY='10' VALUE='ALT4.ASPMX.L.GOOGLE.COM.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='12' RECORD='@' TYPE='TXT' PRIORITY='' VALUE='"v=spf1 a mx ip4:%ip% include:_spf.google.com ~all"' SUSPENDED='no' TIME='%time%' DATE='%date%' diff --git a/install/debian/11/templates/dns/office365.tpl b/install/debian/11/templates/dns/office365.tpl new file mode 100644 index 00000000..dcf556e1 --- /dev/null +++ b/install/debian/11/templates/dns/office365.tpl @@ -0,0 +1,22 @@ +ID='1' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns1%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='2' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns2%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='3' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns3%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='4' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns4%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='5' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns5%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='6' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns6%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='7' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns7%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='8' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns8%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='9' RECORD='@' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='10' RECORD='www' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='11' RECORD='ftp' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='12' RECORD='@' TYPE='TXT' PRIORITY='' VALUE='"v=spf1 a mx ip4:%ip% include:spf.protection.outlook.com -all"' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='13' RECORD='_dmarc' TYPE='TXT' PRIORITY='' VALUE='"v=DMARC1; p=none"' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='14' RECORD='@' TYPE='MX' PRIORITY='0' VALUE='XXXXXXX.mail.protection.outlook.com.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='15' RECORD='@' TYPE='TXT' PRIORITY='' VALUE='"MS=msXXXX"' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='16' RECORD='autodiscover' TYPE='CNAME' PRIORITY='' VALUE='autodiscover.outlook.com.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='17' RECORD='sip' TYPE='CNAME' PRIORITY='' VALUE='sipdir.online.lync.com.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='18' RECORD='lyncdiscover' TYPE='CNAME' PRIORITY='' VALUE='webdir.online.lync.com.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='19' RECORD='enterpriseregistration' TYPE='CNAME' PRIORITY='' VALUE='enterpriseregistration.windows.net.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='20' RECORD='enterpriseenrollment' TYPE='CNAME' PRIORITY='' VALUE='enterpriseenrollment.manage.microsoft.com.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='21' RECORD='_sip._tls' TYPE='SRV' PRIORITY='100 1 443' VALUE='sipdir.online.lync.com.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='22' RECORD='_sipfederationtls._tcp' TYPE='SRV' PRIORITY='100 1 5061' VALUE='sipfed.online.lync.com.' SUSPENDED='no' TIME='%time%' DATE='%date%' diff --git a/install/debian/11/templates/dns/yandex.tpl b/install/debian/11/templates/dns/yandex.tpl new file mode 100644 index 00000000..4ce768fe --- /dev/null +++ b/install/debian/11/templates/dns/yandex.tpl @@ -0,0 +1,16 @@ +ID='1' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns1%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='2' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns2%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='3' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns3%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='4' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns4%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='5' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns5%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='6' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns6%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='7' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns7%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='8' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns8%.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='9' RECORD='@' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='10' RECORD='www' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='11' RECORD='ftp' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='12' RECORD='mail' TYPE='CNAME' PRIORITY='' VALUE='domain.mail.yandex.net.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='13' RECORD='@' TYPE='MX' PRIORITY='10' VALUE='mx.yandex.net.' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='14' RECORD='@' TYPE='TXT' PRIORITY='' VALUE='"v=spf1 a mx ip4:%ip% include:_spf.yandex.net ~all"' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='15' RECORD='_dmarc' TYPE='TXT' PRIORITY='' VALUE='"v=DMARC1; p=none"' SUSPENDED='no' TIME='%time%' DATE='%date%' +ID='16' RECORD='@' TYPE='TXT' PRIORITY='' VALUE='"yandex-verification: XXXXXXXXXXXXXXX"' SUSPENDED='no' TIME='%time%' DATE='%date%' diff --git a/install/debian/11/templates/web/apache2/PHP-FPM-73-public.sh b/install/debian/11/templates/web/apache2/PHP-FPM-73-public.sh new file mode 100755 index 00000000..cc55b61e --- /dev/null +++ b/install/debian/11/templates/web/apache2/PHP-FPM-73-public.sh @@ -0,0 +1,88 @@ +#!/bin/bash +# Adding php pool conf +user="$1" +domain="$2" +ip="$3" +home_dir="$4" +docroot="$5" + +pool_conf="[$2] + +listen = /run/php/php7.3-fpm-$2.sock +listen.owner = $1 +listen.group = $1 +listen.mode = 0666 + +user = $1 +group = $1 + +pm = ondemand +pm.max_children = 16 +request_terminate_timeout = 30s +pm.max_requests = 4000 +pm.process_idle_timeout = 10s +pm.status_path = /status + +php_admin_value[upload_tmp_dir] = /home/$1/tmp +php_admin_value[session.save_path] = /home/$1/tmp +php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube +php_admin_value[upload_max_filesize] = 80M +php_admin_value[max_execution_time] = 20 +php_admin_value[post_max_size] = 80M +php_admin_value[memory_limit] = 256M +php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" +php_admin_flag[mysql.allow_persistent] = off +php_admin_flag[safe_mode] = off + +env[PATH] = /usr/local/bin:/usr/bin:/bin +env[TMP] = /home/$1/tmp +env[TMPDIR] = /home/$1/tmp +env[TEMP] = /home/$1/tmp +" + +pool_file_56="/etc/php/5.6/fpm/pool.d/$2.conf" +pool_file_70="/etc/php/7.0/fpm/pool.d/$2.conf" +pool_file_71="/etc/php/7.1/fpm/pool.d/$2.conf" +pool_file_72="/etc/php/7.2/fpm/pool.d/$2.conf" +pool_file_73="/etc/php/7.3/fpm/pool.d/$2.conf" + +if [ -f "$pool_file_56" ]; then + rm $pool_file_56 + service php5.6-fpm restart +fi + +if [ -f "$pool_file_70" ]; then + rm $pool_file_70 + service php7.0-fpm restart +fi + +if [ -f "$pool_file_71" ]; then + rm $pool_file_71 + service php7.1-fpm restart +fi + +if [ -f "$pool_file_72" ]; then + rm $pool_file_72 + service php7.2-fpm restart +fi + +write_file=0 +if [ ! -f "$pool_file_73" ]; then + write_file=1 +else + user_count=$(grep -c "/home/$1/" $pool_file_73) + if [ $user_count -eq 0 ]; then + write_file=1 + fi +fi + +if [ $write_file -eq 1 ]; then + echo "$pool_conf" > $pool_file_73 + service php7.3-fpm restart +fi + +if [ -f "/etc/php/7.3/fpm/pool.d/www.conf" ]; then + rm /etc/php/7.3/fpm/pool.d/www.conf +fi + +exit 0 diff --git a/install/debian/11/templates/web/apache2/PHP-FPM-73-public.stpl b/install/debian/11/templates/web/apache2/PHP-FPM-73-public.stpl new file mode 100644 index 00000000..9660c234 --- /dev/null +++ b/install/debian/11/templates/web/apache2/PHP-FPM-73-public.stpl @@ -0,0 +1,44 @@ + + + ServerName %domain_idn% + %alias_string% + ServerAdmin %email% + DocumentRoot %sdocroot%/public + ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ + Alias /vstats/ %home%/%user%/web/%domain%/stats/ + Alias /error/ %home%/%user%/web/%domain%/document_errors/ + #SuexecUserGroup %user% %group% + CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes + CustomLog /var/log/%web_system%/domains/%domain%.log combined + ErrorLog /var/log/%web_system%/domains/%domain%.error.log + + AllowOverride All + + + AllowOverride All + SSLRequireSSL + Options +Includes -Indexes +ExecCGI + + SSLEngine on + SSLVerifyClient none + SSLCertificateFile %ssl_crt% + SSLCertificateKeyFile %ssl_key% + %ssl_ca_str%SSLCertificateChainFile %ssl_ca% +# +# RMode config +# RUidGid %user% %group% +# RGroups www-data +# +# +# AssignUserID %user% %group% +# + + + SetHandler "proxy:unix:/run/php/php7.3-fpm-%domain%.sock|fcgi://localhost/" + + SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0 + + IncludeOptional %home%/%user%/conf/web/s%web_system%.%domain%.conf* + + + diff --git a/install/debian/11/templates/web/apache2/PHP-FPM-73-public.tpl b/install/debian/11/templates/web/apache2/PHP-FPM-73-public.tpl new file mode 100644 index 00000000..892c0d1f --- /dev/null +++ b/install/debian/11/templates/web/apache2/PHP-FPM-73-public.tpl @@ -0,0 +1,38 @@ + + + ServerName %domain_idn% + %alias_string% + ServerAdmin %email% + DocumentRoot %docroot%/public + ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ + Alias /vstats/ %home%/%user%/web/%domain%/stats/ + Alias /error/ %home%/%user%/web/%domain%/document_errors/ + #SuexecUserGroup %user% %group% + CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes + CustomLog /var/log/%web_system%/domains/%domain%.log combined + ErrorLog /var/log/%web_system%/domains/%domain%.error.log + + AllowOverride All + + + AllowOverride All + Options +Includes -Indexes +ExecCGI + +# +# RMode config +# RUidGid %user% %group% +# RGroups www-data +# +# +# AssignUserID %user% %group% +# + + + SetHandler "proxy:unix:/run/php/php7.3-fpm-%domain%.sock|fcgi://localhost/" + + SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0 + + IncludeOptional %home%/%user%/conf/web/%web_system%.%domain%.conf* + + + diff --git a/install/debian/11/templates/web/apache2/PHP-FPM-73.sh b/install/debian/11/templates/web/apache2/PHP-FPM-73.sh new file mode 100755 index 00000000..72f9cec6 --- /dev/null +++ b/install/debian/11/templates/web/apache2/PHP-FPM-73.sh @@ -0,0 +1,92 @@ +#!/bin/bash +# Adding php pool conf +user="$1" +domain="$2" +ip="$3" +home_dir="$4" +docroot="$5" + +pool_conf="[$2] + +listen = /run/php/php7.3-fpm-$2.sock +listen.owner = $1 +listen.group = $1 +listen.mode = 0666 + +user = $1 +group = $1 + +pm = ondemand +pm.max_children = 8 +request_terminate_timeout = 90s +pm.max_requests = 4000 +pm.process_idle_timeout = 10s +pm.status_path = /status + +php_admin_value[upload_tmp_dir] = /home/$1/tmp +php_admin_value[session.save_path] = /home/$1/tmp +php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube +php_admin_value[upload_max_filesize] = 80M +php_admin_value[max_execution_time] = 30 +php_admin_value[post_max_size] = 80M +php_admin_value[memory_limit] = 256M +php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" +php_admin_flag[mysql.allow_persistent] = off +php_admin_flag[safe_mode] = off + +env[PATH] = /usr/local/bin:/usr/bin:/bin +env[TMP] = /home/$1/tmp +env[TMPDIR] = /home/$1/tmp +env[TEMP] = /home/$1/tmp +" + +pool_file_56="/etc/php/5.6/fpm/pool.d/$2.conf" +pool_file_70="/etc/php/7.0/fpm/pool.d/$2.conf" +pool_file_71="/etc/php/7.1/fpm/pool.d/$2.conf" +pool_file_72="/etc/php/7.2/fpm/pool.d/$2.conf" +pool_file_73="/etc/php/7.3/fpm/pool.d/$2.conf" +pool_file_74="/etc/php/7.4/fpm/pool.d/$2.conf" + +if [ -f "$pool_file_56" ]; then + rm $pool_file_56 + service php5.6-fpm restart +fi + +if [ -f "$pool_file_70" ]; then + rm $pool_file_70 + service php7.0-fpm restart +fi + +if [ -f "$pool_file_71" ]; then + rm $pool_file_71 + service php7.1-fpm restart +fi + +if [ -f "$pool_file_72" ]; then + rm $pool_file_72 + service php7.2-fpm restart +fi + +write_file=0 +if [ ! -f "$pool_file_73" ]; then + write_file=1 +else + user_count=$(grep -c "/home/$1/" $pool_file_73) + if [ $user_count -eq 0 ]; then + write_file=1 + fi +fi +if [ $write_file -eq 1 ]; then + echo "$pool_conf" > $pool_file_73 + service php7.3-fpm restart +fi +if [ -f "/etc/php/7.3/fpm/pool.d/www.conf" ]; then + rm /etc/php/7.3/fpm/pool.d/www.conf +fi + +if [ -f "$pool_file_74" ]; then + rm $pool_file_74 + service php7.4-fpm restart +fi + +exit 0 diff --git a/install/debian/11/templates/web/apache2/PHP-FPM-73.stpl b/install/debian/11/templates/web/apache2/PHP-FPM-73.stpl new file mode 100644 index 00000000..28224413 --- /dev/null +++ b/install/debian/11/templates/web/apache2/PHP-FPM-73.stpl @@ -0,0 +1,44 @@ + + + ServerName %domain_idn% + %alias_string% + ServerAdmin %email% + DocumentRoot %sdocroot% + ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ + Alias /vstats/ %home%/%user%/web/%domain%/stats/ + Alias /error/ %home%/%user%/web/%domain%/document_errors/ + #SuexecUserGroup %user% %group% + CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes + CustomLog /var/log/%web_system%/domains/%domain%.log combined + ErrorLog /var/log/%web_system%/domains/%domain%.error.log + + AllowOverride All + + + AllowOverride All + SSLRequireSSL + Options +Includes -Indexes +ExecCGI + + SSLEngine on + SSLVerifyClient none + SSLCertificateFile %ssl_crt% + SSLCertificateKeyFile %ssl_key% + %ssl_ca_str%SSLCertificateChainFile %ssl_ca% +# +# RMode config +# RUidGid %user% %group% +# RGroups www-data +# +# +# AssignUserID %user% %group% +# + + + SetHandler "proxy:unix:/run/php/php7.3-fpm-%domain%.sock|fcgi://localhost/" + + SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0 + + IncludeOptional %home%/%user%/conf/web/s%web_system%.%domain%.conf* + + + diff --git a/install/debian/11/templates/web/apache2/PHP-FPM-73.tpl b/install/debian/11/templates/web/apache2/PHP-FPM-73.tpl new file mode 100644 index 00000000..7bec5e73 --- /dev/null +++ b/install/debian/11/templates/web/apache2/PHP-FPM-73.tpl @@ -0,0 +1,38 @@ + + + ServerName %domain_idn% + %alias_string% + ServerAdmin %email% + DocumentRoot %docroot% + ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ + Alias /vstats/ %home%/%user%/web/%domain%/stats/ + Alias /error/ %home%/%user%/web/%domain%/document_errors/ + #SuexecUserGroup %user% %group% + CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes + CustomLog /var/log/%web_system%/domains/%domain%.log combined + ErrorLog /var/log/%web_system%/domains/%domain%.error.log + + AllowOverride All + + + AllowOverride All + Options +Includes -Indexes +ExecCGI + +# +# RMode config +# RUidGid %user% %group% +# RGroups www-data +# +# +# AssignUserID %user% %group% +# + + + SetHandler "proxy:unix:/run/php/php7.3-fpm-%domain%.sock|fcgi://localhost/" + + SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0 + + IncludeOptional %home%/%user%/conf/web/%web_system%.%domain%.conf* + + + diff --git a/install/debian/11/templates/web/awstats/awstats.tpl b/install/debian/11/templates/web/awstats/awstats.tpl new file mode 100755 index 00000000..9a92e0fd --- /dev/null +++ b/install/debian/11/templates/web/awstats/awstats.tpl @@ -0,0 +1,133 @@ +LogFile="/var/log/%web_system%/domains/%domain%.log" +LogType=W +LogFormat=1 +LogSeparator=" " +SiteDomain="%domain_idn%" +HostAliases="%alias_idn%" +DirData="%home%/%user%/web/%domain%/stats" +DirCgi="/vstats" +DirIcons="/vstats/icon" +AllowToUpdateStatsFromBrowser=0 +AllowFullYearView=2 +EnableLockForUpdate=1 +DNSStaticCacheFile="dnscache.txt" +DNSLastUpdateCacheFile="dnscachelastupdate.txt" +SkipDNSLookupFor="" +AllowAccessFromWebToAuthenticatedUsersOnly=0 +AllowAccessFromWebToFollowingAuthenticatedUsers="" +AllowAccessFromWebToFollowingIPAddresses="" +CreateDirDataIfNotExists=0 +BuildHistoryFormat=text +BuildReportFormat=html +SaveDatabaseFilesWithPermissionsForEveryone=0 +PurgeLogFile=0 +ArchiveLogRecords=0 +KeepBackupOfHistoricFiles=1 +DefaultFile="index.php index.html" +SkipHosts="127.0.0.1 +SkipUserAgents="" +SkipFiles="" +SkipReferrersBlackList="" +OnlyHosts="" +OnlyUserAgents="" +OnlyUsers="" +OnlyFiles="" +NotPageList="css js class gif jpg jpeg png bmp ico rss xml swf" +ValidHTTPCodes="200 304" +ValidSMTPCodes="1 250" +AuthenticatedUsersNotCaseSensitive=0 +URLNotCaseSensitive=0 +URLWithAnchor=0 +URLQuerySeparators="?;" +URLWithQuery=0 +URLWithQueryWithOnlyFollowingParameters="" +URLWithQueryWithoutFollowingParameters="" +URLReferrerWithQuery=0 +WarningMessages=1 +ErrorMessages="" +DebugMessages=0 +NbOfLinesForCorruptedLog=50 +WrapperScript="" +DecodeUA=0 +MiscTrackerUrl="/js/awstats_misc_tracker.js" +UseFramesWhenCGI=1 +DetailedReportsOnNewWindows=1 +Expires=3600 +MaxRowsInHTMLOutput=1000 +Lang="auto" +DirLang="./lang" +ShowMenu=1 +ShowSummary=UVPHB +ShowMonthStats=UVPHB +ShowDaysOfMonthStats=VPHB +ShowDaysOfWeekStats=PHB +ShowHoursStats=PHB +ShowDomainsStats=PHB +ShowHostsStats=PHBL +ShowAuthenticatedUsers=0 +ShowRobotsStats=HBL +ShowWormsStats=0 +ShowEMailSenders=0 +ShowEMailReceivers=0 +ShowSessionsStats=1 +ShowPagesStats=PBEX +ShowFileTypesStats=HB +ShowFileSizesStats=0 +ShowDownloadsStats=HB +ShowOSStats=1 +ShowBrowsersStats=1 +ShowScreenSizeStats=0 +ShowOriginStats=PH +ShowKeyphrasesStats=1 +ShowKeywordsStats=1 +ShowMiscStats=a +ShowHTTPErrorsStats=1 +ShowSMTPErrorsStats=0 +ShowClusterStats=0 +AddDataArrayMonthStats=1 +AddDataArrayShowDaysOfMonthStats=1 +AddDataArrayShowDaysOfWeekStats=1 +AddDataArrayShowHoursStats=1 +IncludeInternalLinksInOriginSection=0 +MaxNbOfDomain = 10 +MinHitDomain = 1 +MaxNbOfHostsShown = 10 +MinHitHost = 1 +MaxNbOfLoginShown = 10 +MinHitLogin = 1 +MaxNbOfRobotShown = 10 +MinHitRobot = 1 +MaxNbOfDownloadsShown = 10 +MinHitDownloads = 1 +MaxNbOfPageShown = 10 +MinHitFile = 1 +MaxNbOfOsShown = 10 +MinHitOs = 1 +MaxNbOfBrowsersShown = 10 +MinHitBrowser = 1 +MaxNbOfScreenSizesShown = 5 +MinHitScreenSize = 1 +MaxNbOfWindowSizesShown = 5 +MinHitWindowSize = 1 +MaxNbOfRefererShown = 10 +MinHitRefer = 1 +MaxNbOfKeyphrasesShown = 10 +MinHitKeyphrase = 1 +MaxNbOfKeywordsShown = 10 +MinHitKeyword = 1 +MaxNbOfEMailsShown = 20 +MinHitEMail = 1 +FirstDayOfWeek=0 +ShowFlagLinks="" +ShowLinksOnUrl=1 +UseHTTPSLinkForUrl="" +MaxLengthOfShownURL=64 +HTMLHeadSection="" +HTMLEndSection="" +MetaRobot=0 +Logo="awstats_logo6.png" +LogoLink="http://awstats.sourceforge.net" +BarWidth = 260 +BarHeight = 90 +StyleSheet="" +ExtraTrackedRowsLimit=500 diff --git a/install/debian/11/templates/web/awstats/index.tpl b/install/debian/11/templates/web/awstats/index.tpl new file mode 100755 index 00000000..9df9bb5c --- /dev/null +++ b/install/debian/11/templates/web/awstats/index.tpl @@ -0,0 +1,10 @@ + + + + Awstats log analyzer + + + + + + diff --git a/install/debian/11/templates/web/awstats/nav.tpl b/install/debian/11/templates/web/awstats/nav.tpl new file mode 100755 index 00000000..f29bed68 --- /dev/null +++ b/install/debian/11/templates/web/awstats/nav.tpl @@ -0,0 +1,23 @@ + + + Awstats navigation + + + + + + + + +
vesta + + +
+ + diff --git a/install/debian/11/templates/web/nginx/caching.sh b/install/debian/11/templates/web/nginx/caching.sh new file mode 100755 index 00000000..09d8efe7 --- /dev/null +++ b/install/debian/11/templates/web/nginx/caching.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +user=$1 +domain=$2 +ip=$3 +home=$4 +docroot=$5 + +str="proxy_cache_path /var/cache/nginx/$domain levels=2" +str="$str keys_zone=$domain:10m inactive=60m max_size=512m;" +conf='/etc/nginx/conf.d/01_caching_pool.conf' +if [ -e "$conf" ]; then + if [ -z "$(grep "=${domain}:" $conf)" ]; then + echo "$str" >> $conf + fi +else + echo "$str" >> $conf +fi + diff --git a/install/debian/11/templates/web/nginx/caching.stpl b/install/debian/11/templates/web/nginx/caching.stpl new file mode 100644 index 00000000..868e2fe9 --- /dev/null +++ b/install/debian/11/templates/web/nginx/caching.stpl @@ -0,0 +1,43 @@ +server { + listen %ip%:%proxy_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + proxy_pass https://%ip%:%web_ssl_port%; + + proxy_cache cache; + proxy_cache_valid 15m; + proxy_cache_valid 404 1m; + proxy_no_cache $no_cache; + proxy_cache_bypass $no_cache; + proxy_cache_bypass $cookie_session $http_x_update; + + location ~* ^.+\.(%proxy_extentions%)$ { + proxy_cache off; + root %sdocroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass https://%ip%:%web_ssl_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/caching.tpl b/install/debian/11/templates/web/nginx/caching.tpl new file mode 100644 index 00000000..36761b65 --- /dev/null +++ b/install/debian/11/templates/web/nginx/caching.tpl @@ -0,0 +1,41 @@ +server { + listen %ip%:%proxy_port%; + server_name %domain_idn% %alias_idn%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + proxy_pass http://%ip%:%web_port%; + + proxy_cache cache; + proxy_cache_valid 15m; + proxy_cache_valid 404 1m; + proxy_no_cache $no_cache; + proxy_cache_bypass $no_cache; + proxy_cache_bypass $cookie_session $http_x_update; + + location ~* ^.+\.(%proxy_extentions%)$ { + proxy_cache off; + root %docroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass http://%ip%:%web_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/force-https-legacy.stpl b/install/debian/11/templates/web/nginx/force-https-legacy.stpl new file mode 100644 index 00000000..01a4eea3 --- /dev/null +++ b/install/debian/11/templates/web/nginx/force-https-legacy.stpl @@ -0,0 +1,38 @@ +server { + listen %ip%:%proxy_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %sdocroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass https://%ip%:%web_ssl_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + disable_symlinks if_not_owner from=%docroot%; + + include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; + include %home%/%user%/conf/web/s%proxy_system%.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/force-https-legacy.tpl b/install/debian/11/templates/web/nginx/force-https-legacy.tpl new file mode 100644 index 00000000..851ac0dc --- /dev/null +++ b/install/debian/11/templates/web/nginx/force-https-legacy.tpl @@ -0,0 +1,8 @@ +server { + listen %ip%:%proxy_port%; + server_name %domain_idn% %alias_idn%; + location / { + rewrite ^(.*) https://%domain_idn%$1 permanent; + } +include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; +} diff --git a/install/debian/11/templates/web/nginx/force-https-public.stpl b/install/debian/11/templates/web/nginx/force-https-public.stpl new file mode 100644 index 00000000..22951ae5 --- /dev/null +++ b/install/debian/11/templates/web/nginx/force-https-public.stpl @@ -0,0 +1,38 @@ +server { + listen %ip%:%proxy_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %sdocroot%/public; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass https://%ip%:%web_ssl_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + disable_symlinks if_not_owner from=%docroot%/public; + + include %home%/%user%/conf/web/snginx.%domain_idn%.conf*; +} + diff --git a/install/debian/11/templates/web/nginx/force-https-public.tpl b/install/debian/11/templates/web/nginx/force-https-public.tpl new file mode 100644 index 00000000..851ac0dc --- /dev/null +++ b/install/debian/11/templates/web/nginx/force-https-public.tpl @@ -0,0 +1,8 @@ +server { + listen %ip%:%proxy_port%; + server_name %domain_idn% %alias_idn%; + location / { + rewrite ^(.*) https://%domain_idn%$1 permanent; + } +include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; +} diff --git a/install/debian/11/templates/web/nginx/force-https-webmail-phpmyadmin.stpl b/install/debian/11/templates/web/nginx/force-https-webmail-phpmyadmin.stpl new file mode 100644 index 00000000..dac7adaf --- /dev/null +++ b/install/debian/11/templates/web/nginx/force-https-webmail-phpmyadmin.stpl @@ -0,0 +1,62 @@ +server { + listen %ip%:%proxy_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %sdocroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /webmail { + disable_symlinks off; + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root /var/lib/roundcube; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /phpmyadmin { + disable_symlinks off; + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root /usr/share; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass https://%ip%:%web_ssl_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + disable_symlinks if_not_owner from=%docroot%; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} + diff --git a/install/debian/11/templates/web/nginx/force-https-webmail-phpmyadmin.tpl b/install/debian/11/templates/web/nginx/force-https-webmail-phpmyadmin.tpl new file mode 100644 index 00000000..851ac0dc --- /dev/null +++ b/install/debian/11/templates/web/nginx/force-https-webmail-phpmyadmin.tpl @@ -0,0 +1,8 @@ +server { + listen %ip%:%proxy_port%; + server_name %domain_idn% %alias_idn%; + location / { + rewrite ^(.*) https://%domain_idn%$1 permanent; + } +include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; +} diff --git a/install/debian/11/templates/web/nginx/force-https.stpl b/install/debian/11/templates/web/nginx/force-https.stpl new file mode 100644 index 00000000..4a8185c8 --- /dev/null +++ b/install/debian/11/templates/web/nginx/force-https.stpl @@ -0,0 +1,38 @@ +server { + listen %ip%:%proxy_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %sdocroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass https://%ip%:%web_ssl_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + disable_symlinks if_not_owner from=%docroot%; + + include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; + include %home%/%user%/conf/web/s%proxy_system%.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/force-https.tpl b/install/debian/11/templates/web/nginx/force-https.tpl new file mode 100644 index 00000000..851ac0dc --- /dev/null +++ b/install/debian/11/templates/web/nginx/force-https.tpl @@ -0,0 +1,8 @@ +server { + listen %ip%:%proxy_port%; + server_name %domain_idn% %alias_idn%; + location / { + rewrite ^(.*) https://%domain_idn%$1 permanent; + } +include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; +} diff --git a/install/debian/11/templates/web/nginx/hosting-legacy.sh b/install/debian/11/templates/web/nginx/hosting-legacy.sh new file mode 100755 index 00000000..eeed37ef --- /dev/null +++ b/install/debian/11/templates/web/nginx/hosting-legacy.sh @@ -0,0 +1,11 @@ +#!/bin/bash +# Changing public_html permission +user="$1" +domain="$2" +ip="$3" +home_dir="$4" +docroot="$5" + +chmod 755 $docroot + +exit 0 diff --git a/install/debian/11/templates/web/nginx/hosting-legacy.stpl b/install/debian/11/templates/web/nginx/hosting-legacy.stpl new file mode 100644 index 00000000..cc0370c6 --- /dev/null +++ b/install/debian/11/templates/web/nginx/hosting-legacy.stpl @@ -0,0 +1,38 @@ +server { + listen %ip%:%proxy_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %sdocroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass https://%ip%:%web_ssl_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + disable_symlinks if_not_owner from=%docroot%; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} + diff --git a/install/debian/11/templates/web/nginx/hosting-legacy.tpl b/install/debian/11/templates/web/nginx/hosting-legacy.tpl new file mode 100644 index 00000000..15961c95 --- /dev/null +++ b/install/debian/11/templates/web/nginx/hosting-legacy.tpl @@ -0,0 +1,35 @@ +server { + listen %ip%:%proxy_port%; + server_name %domain_idn% %alias_idn%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + proxy_pass http://%ip%:%web_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %docroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass http://%ip%:%web_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + disable_symlinks if_not_owner from=%docroot%; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} + diff --git a/install/debian/11/templates/web/nginx/hosting-public.stpl b/install/debian/11/templates/web/nginx/hosting-public.stpl new file mode 100644 index 00000000..22951ae5 --- /dev/null +++ b/install/debian/11/templates/web/nginx/hosting-public.stpl @@ -0,0 +1,38 @@ +server { + listen %ip%:%proxy_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %sdocroot%/public; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass https://%ip%:%web_ssl_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + disable_symlinks if_not_owner from=%docroot%/public; + + include %home%/%user%/conf/web/snginx.%domain_idn%.conf*; +} + diff --git a/install/debian/11/templates/web/nginx/hosting-public.tpl b/install/debian/11/templates/web/nginx/hosting-public.tpl new file mode 100644 index 00000000..9ff417ba --- /dev/null +++ b/install/debian/11/templates/web/nginx/hosting-public.tpl @@ -0,0 +1,35 @@ +server { + listen %ip%:%proxy_port%; + server_name %domain_idn% %alias_idn%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + proxy_pass http://%ip%:%web_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %docroot%/public; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass http://%ip%:%web_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + disable_symlinks if_not_owner from=%docroot%/public; + + include %home%/%user%/conf/web/nginx.%domain_idn%.conf*; +} + diff --git a/install/debian/11/templates/web/nginx/hosting-webmail-phpmyadmin.stpl b/install/debian/11/templates/web/nginx/hosting-webmail-phpmyadmin.stpl new file mode 100644 index 00000000..dac7adaf --- /dev/null +++ b/install/debian/11/templates/web/nginx/hosting-webmail-phpmyadmin.stpl @@ -0,0 +1,62 @@ +server { + listen %ip%:%proxy_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %sdocroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /webmail { + disable_symlinks off; + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root /var/lib/roundcube; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /phpmyadmin { + disable_symlinks off; + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root /usr/share; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass https://%ip%:%web_ssl_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + disable_symlinks if_not_owner from=%docroot%; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} + diff --git a/install/debian/11/templates/web/nginx/hosting-webmail-phpmyadmin.tpl b/install/debian/11/templates/web/nginx/hosting-webmail-phpmyadmin.tpl new file mode 100644 index 00000000..5f601672 --- /dev/null +++ b/install/debian/11/templates/web/nginx/hosting-webmail-phpmyadmin.tpl @@ -0,0 +1,59 @@ +server { + listen %ip%:%proxy_port%; + server_name %domain_idn% %alias_idn%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + proxy_pass http://%ip%:%web_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %docroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /webmail { + disable_symlinks off; + proxy_pass http://%ip%:%web_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root /var/lib/roundcube; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /phpmyadmin { + disable_symlinks off; + proxy_pass http://%ip%:%web_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root /usr/share; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass http://%ip%:%web_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + disable_symlinks if_not_owner from=%docroot%; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} + diff --git a/install/debian/11/templates/web/nginx/hosting.sh b/install/debian/11/templates/web/nginx/hosting.sh new file mode 100755 index 00000000..eeed37ef --- /dev/null +++ b/install/debian/11/templates/web/nginx/hosting.sh @@ -0,0 +1,11 @@ +#!/bin/bash +# Changing public_html permission +user="$1" +domain="$2" +ip="$3" +home_dir="$4" +docroot="$5" + +chmod 755 $docroot + +exit 0 diff --git a/install/debian/11/templates/web/nginx/hosting.stpl b/install/debian/11/templates/web/nginx/hosting.stpl new file mode 100644 index 00000000..30fe0f74 --- /dev/null +++ b/install/debian/11/templates/web/nginx/hosting.stpl @@ -0,0 +1,38 @@ +server { + listen %ip%:%proxy_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %sdocroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass https://%ip%:%web_ssl_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + disable_symlinks if_not_owner from=%docroot%; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} + diff --git a/install/debian/11/templates/web/nginx/hosting.tpl b/install/debian/11/templates/web/nginx/hosting.tpl new file mode 100644 index 00000000..262417b1 --- /dev/null +++ b/install/debian/11/templates/web/nginx/hosting.tpl @@ -0,0 +1,35 @@ +server { + listen %ip%:%proxy_port%; + server_name %domain_idn% %alias_idn%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + proxy_pass http://%ip%:%web_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %docroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass http://%ip%:%web_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + disable_symlinks if_not_owner from=%docroot%; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} + diff --git a/install/debian/11/templates/web/nginx/php-fpm/cms_made_simple.stpl b/install/debian/11/templates/web/nginx/php-fpm/cms_made_simple.stpl new file mode 100644 index 00000000..cf8fad56 --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/cms_made_simple.stpl @@ -0,0 +1,55 @@ +server { + listen %ip%:%web_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + root %sdocroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location / { + try_files $uri $uri/ /index.php?page=$request_uri; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/cms_made_simple.tpl b/install/debian/11/templates/web/nginx/php-fpm/cms_made_simple.tpl new file mode 100644 index 00000000..f9e90393 --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/cms_made_simple.tpl @@ -0,0 +1,52 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location / { + try_files $uri $uri/ /index.php?page=$request_uri; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/codeigniter2.stpl b/install/debian/11/templates/web/nginx/php-fpm/codeigniter2.stpl new file mode 100644 index 00000000..5931f617 --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/codeigniter2.stpl @@ -0,0 +1,60 @@ +server { + listen %ip%:%web_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + root %sdocroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location / { + try_files $uri $uri/ /index.php; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location = /index.php { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME /var/www/html/ci$fastcgi_script_name; + include /etc/nginx/fastcgi_params; + } + } + + location ~ \.php$ { + return 444; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/codeigniter2.tpl b/install/debian/11/templates/web/nginx/php-fpm/codeigniter2.tpl new file mode 100644 index 00000000..d2422be2 --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/codeigniter2.tpl @@ -0,0 +1,57 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location / { + try_files $uri $uri/ /index.php; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location = /index.php { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME /var/www/html/ci$fastcgi_script_name; + include /etc/nginx/fastcgi_params; + } + } + + location ~ \.php$ { + return 444; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/codeigniter3.stpl b/install/debian/11/templates/web/nginx/php-fpm/codeigniter3.stpl new file mode 100644 index 00000000..3c2793d1 --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/codeigniter3.stpl @@ -0,0 +1,55 @@ +server { + listen %ip%:%web_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + root %sdocroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location / { + try_files $uri $uri/ /index.php; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/codeigniter3.tpl b/install/debian/11/templates/web/nginx/php-fpm/codeigniter3.tpl new file mode 100644 index 00000000..54f81b99 --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/codeigniter3.tpl @@ -0,0 +1,52 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location / { + try_files $uri $uri/ /index.php; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/datalife_engine.stpl b/install/debian/11/templates/web/nginx/php-fpm/datalife_engine.stpl new file mode 100644 index 00000000..bb9a727b --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/datalife_engine.stpl @@ -0,0 +1,126 @@ +server { + listen %ip%:%web_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + root %sdocroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location / { + rewrite "^/page/([0-9]+)(/?)$" /index.php?cstart=$1 last; + + rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),([0-9]+),(.*).html(/?)+$" /index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&cstart=$5&news_name=$6&seourl=$6 last; + rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),(.*).html(/?)+$" /index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5&seourl=$5 last; + rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/print:page,([0-9]+),(.*).html(/?)+$" /engine/print.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5&seourl=$5 last; + rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*).html(/?)+$" /index.php?subaction=showfull&year=$1&month=$2&day=$3&news_name=$4&seourl=$4 last; + + rewrite "^/([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$4&news_page=$2&cstart=$3&seourl=$5&seocat=$1 last; + rewrite "^/([^.]+)/page,([0-9]+),([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$3&news_page=$2&seourl=$4&seocat=$1 last; + rewrite "^/([^.]+)/print:page,([0-9]+),([0-9]+)-(.*).html(/?)+$" /engine/print.php?news_page=$2&newsid=$3&seourl=$4&seocat=$1 last; + rewrite "^/([^.]+)/([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$2&seourl=$3&seocat=$1 last; + + rewrite "^/page,([0-9]+),([0-9]+),([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$3&news_page=$1&cstart=$2&seourl=$4 last; + rewrite "^/page,([0-9]+),([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$2&news_page=$1&seourl=$3 last; + rewrite "^/print:page,([0-9]+),([0-9]+)-(.*).html(/?)+$" /engine/print.php?news_page=$1&newsid=$2&seourl=$3 last; + rewrite "^/([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$1&seourl=$2 last; + + rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})(/?)+$" /index.php?year=$1&month=$2&day=$3 last; + rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/page/([0-9]+)(/?)+$" /index.php?year=$1&month=$2&day=$3&cstart=$4 last; + + rewrite "^/([0-9]{4})/([0-9]{2})(/?)+$" /index.php?year=$1&month=$2 last; + rewrite "^/([0-9]{4})/([0-9]{2})/page/([0-9]+)(/?)+$" /index.php?year=$1&month=$2&cstart=$3 last; + + rewrite "^/([0-9]{4})(/?)+$" /index.php?year=$1 last; + rewrite "^/([0-9]{4})/page/([0-9]+)(/?)+$" /index.php?year=$1&cstart=$2 last; + + rewrite "^/tags/([^/]*)(/?)+$" /index.php?do=tags&tag=$1 last; + rewrite "^/tags/([^/]*)/page/([0-9]+)(/?)+$" /index.php?do=tags&tag=$1&cstart=$2 last; + + rewrite "^/xfsearch/([^/]*)(/?)+$" /index.php?do=xfsearch&xf=$1 last; + rewrite "^/xfsearch/([^/]*)/page/([0-9]+)(/?)+$" /index.php?do=xfsearch&xf=$1&cstart=$2 last; + + rewrite "^/user/([^/]*)/rss.xml$" /engine/rss.php?subaction=allnews&user=$1 last; + rewrite "^/user/([^/]*)(/?)+$" /index.php?subaction=userinfo&user=$1 last; + rewrite "^/user/([^/]*)/page/([0-9]+)(/?)+$" /index.php?subaction=userinfo&user=$1&cstart=$2 last; + rewrite "^/user/([^/]*)/news(/?)+$" /index.php?subaction=allnews&user=$1 last; + rewrite "^/user/([^/]*)/news/page/([0-9]+)(/?)+$" /index.php?subaction=allnews&user=$1&cstart=$2 last; + rewrite "^/user/([^/]*)/news/rss.xml(/?)+$" /engine/rss.php?subaction=allnews&user=$1 last; + + rewrite "^/lastnews(/?)+$" /index.php?do=lastnews last; + rewrite "^/lastnews/page/([0-9]+)(/?)+$" /index.php?do=lastnews&cstart=$1 last; + + rewrite "^/catalog/([^/]*)/rss.xml$" /engine/rss.php?catalog=$1 last; + rewrite "^/catalog/([^/]*)(/?)+$" /index.php?catalog=$1 last; + rewrite "^/catalog/([^/]*)/page/([0-9]+)(/?)+$" /index.php?catalog=$1&cstart=$2 last; + + rewrite "^/newposts(/?)+$" /index.php?subaction=newposts last; + rewrite "^/newposts/page/([0-9]+)(/?)+$" /index.php?subaction=newposts&cstart=$1 last; + + rewrite "^/favorites(/?)+$" /index.php?do=favorites last; + rewrite "^/favorites/page/([0-9]+)(/?)+$" /index.php?do=favorites&cstart=$1 last; + + rewrite "^/rules.html$" /index.php?do=rules last; + rewrite "^/statistics.html$" /index.php?do=stats last; + rewrite "^/addnews.html$" /index.php?do=addnews last; + rewrite "^/rss.xml$" /engine/rss.php last; + rewrite "^/sitemap.xml$" /uploads/sitemap.xml last; + + if (!-d $request_filename) { + rewrite "^/([^.]+)/page/([0-9]+)(/?)+$" /index.php?do=cat&category=$1&cstart=$2 last; + rewrite "^/([^.]+)/?$" /index.php?do=cat&category=$1 last; + } + + if (!-f $request_filename) { + rewrite "^/([^.]+)/rss.xml$" /engine/rss.php?do=cat&category=$1 last; + rewrite "^/page,([0-9]+),([^/]+).html$" /index.php?do=static&page=$2&news_page=$1 last; + rewrite "^/print:([^/]+).html$" /engine/print.php?do=static&page=$1 last; + } + + if (!-f $request_filename) { + rewrite "^/([^/]+).html$" /index.php?do=static&page=$1 last; + } + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/datalife_engine.tpl b/install/debian/11/templates/web/nginx/php-fpm/datalife_engine.tpl new file mode 100644 index 00000000..3ea45347 --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/datalife_engine.tpl @@ -0,0 +1,123 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location / { + rewrite "^/page/([0-9]+)(/?)$" /index.php?cstart=$1 last; + + rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),([0-9]+),(.*).html(/?)+$" /index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&cstart=$5&news_name=$6&seourl=$6 last; + rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),(.*).html(/?)+$" /index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5&seourl=$5 last; + rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/print:page,([0-9]+),(.*).html(/?)+$" /engine/print.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5&seourl=$5 last; + rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*).html(/?)+$" /index.php?subaction=showfull&year=$1&month=$2&day=$3&news_name=$4&seourl=$4 last; + + rewrite "^/([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$4&news_page=$2&cstart=$3&seourl=$5&seocat=$1 last; + rewrite "^/([^.]+)/page,([0-9]+),([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$3&news_page=$2&seourl=$4&seocat=$1 last; + rewrite "^/([^.]+)/print:page,([0-9]+),([0-9]+)-(.*).html(/?)+$" /engine/print.php?news_page=$2&newsid=$3&seourl=$4&seocat=$1 last; + rewrite "^/([^.]+)/([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$2&seourl=$3&seocat=$1 last; + + rewrite "^/page,([0-9]+),([0-9]+),([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$3&news_page=$1&cstart=$2&seourl=$4 last; + rewrite "^/page,([0-9]+),([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$2&news_page=$1&seourl=$3 last; + rewrite "^/print:page,([0-9]+),([0-9]+)-(.*).html(/?)+$" /engine/print.php?news_page=$1&newsid=$2&seourl=$3 last; + rewrite "^/([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$1&seourl=$2 last; + + rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})(/?)+$" /index.php?year=$1&month=$2&day=$3 last; + rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/page/([0-9]+)(/?)+$" /index.php?year=$1&month=$2&day=$3&cstart=$4 last; + + rewrite "^/([0-9]{4})/([0-9]{2})(/?)+$" /index.php?year=$1&month=$2 last; + rewrite "^/([0-9]{4})/([0-9]{2})/page/([0-9]+)(/?)+$" /index.php?year=$1&month=$2&cstart=$3 last; + + rewrite "^/([0-9]{4})(/?)+$" /index.php?year=$1 last; + rewrite "^/([0-9]{4})/page/([0-9]+)(/?)+$" /index.php?year=$1&cstart=$2 last; + + rewrite "^/tags/([^/]*)(/?)+$" /index.php?do=tags&tag=$1 last; + rewrite "^/tags/([^/]*)/page/([0-9]+)(/?)+$" /index.php?do=tags&tag=$1&cstart=$2 last; + + rewrite "^/xfsearch/([^/]*)(/?)+$" /index.php?do=xfsearch&xf=$1 last; + rewrite "^/xfsearch/([^/]*)/page/([0-9]+)(/?)+$" /index.php?do=xfsearch&xf=$1&cstart=$2 last; + + rewrite "^/user/([^/]*)/rss.xml$" /engine/rss.php?subaction=allnews&user=$1 last; + rewrite "^/user/([^/]*)(/?)+$" /index.php?subaction=userinfo&user=$1 last; + rewrite "^/user/([^/]*)/page/([0-9]+)(/?)+$" /index.php?subaction=userinfo&user=$1&cstart=$2 last; + rewrite "^/user/([^/]*)/news(/?)+$" /index.php?subaction=allnews&user=$1 last; + rewrite "^/user/([^/]*)/news/page/([0-9]+)(/?)+$" /index.php?subaction=allnews&user=$1&cstart=$2 last; + rewrite "^/user/([^/]*)/news/rss.xml(/?)+$" /engine/rss.php?subaction=allnews&user=$1 last; + + rewrite "^/lastnews(/?)+$" /index.php?do=lastnews last; + rewrite "^/lastnews/page/([0-9]+)(/?)+$" /index.php?do=lastnews&cstart=$1 last; + + rewrite "^/catalog/([^/]*)/rss.xml$" /engine/rss.php?catalog=$1 last; + rewrite "^/catalog/([^/]*)(/?)+$" /index.php?catalog=$1 last; + rewrite "^/catalog/([^/]*)/page/([0-9]+)(/?)+$" /index.php?catalog=$1&cstart=$2 last; + + rewrite "^/newposts(/?)+$" /index.php?subaction=newposts last; + rewrite "^/newposts/page/([0-9]+)(/?)+$" /index.php?subaction=newposts&cstart=$1 last; + + rewrite "^/favorites(/?)+$" /index.php?do=favorites last; + rewrite "^/favorites/page/([0-9]+)(/?)+$" /index.php?do=favorites&cstart=$1 last; + + rewrite "^/rules.html$" /index.php?do=rules last; + rewrite "^/statistics.html$" /index.php?do=stats last; + rewrite "^/addnews.html$" /index.php?do=addnews last; + rewrite "^/rss.xml$" /engine/rss.php last; + rewrite "^/sitemap.xml$" /uploads/sitemap.xml last; + + if (!-d $request_filename) { + rewrite "^/([^.]+)/page/([0-9]+)(/?)+$" /index.php?do=cat&category=$1&cstart=$2 last; + rewrite "^/([^.]+)/?$" /index.php?do=cat&category=$1 last; + } + + if (!-f $request_filename) { + rewrite "^/([^.]+)/rss.xml$" /engine/rss.php?do=cat&category=$1 last; + rewrite "^/page,([0-9]+),([^/]+).html$" /index.php?do=static&page=$2&news_page=$1 last; + rewrite "^/print:([^/]+).html$" /engine/print.php?do=static&page=$1 last; + } + + if (!-f $request_filename) { + rewrite "^/([^/]+).html$" /index.php?do=static&page=$1 last; + } + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/default.stpl b/install/debian/11/templates/web/nginx/php-fpm/default.stpl new file mode 100644 index 00000000..f9c01e40 --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/default.stpl @@ -0,0 +1,54 @@ +server { + listen %ip%:%web_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + root %sdocroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location / { + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/default.tpl b/install/debian/11/templates/web/nginx/php-fpm/default.tpl new file mode 100644 index 00000000..a8909efb --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/default.tpl @@ -0,0 +1,51 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location / { + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/dokuwiki.stpl b/install/debian/11/templates/web/nginx/php-fpm/dokuwiki.stpl new file mode 100644 index 00000000..a7564705 --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/dokuwiki.stpl @@ -0,0 +1,71 @@ +server { + listen %ip%:%web_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + root %sdocroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location / { + index doku.php; + try_files $uri $uri/ @dokuwiki; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include /etc/nginx/fastcgi_params; + } + } + + location ~ ^/lib.*\.(gif|png|ico|jpg)$ { + expires 30d; + } + + location ^~ /conf/ { return 403; } + location ^~ /data/ { return 403; } + + location @dokuwiki { + rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last; + rewrite ^/_detail/(.*) /lib/exe/detail.php?media=$1 last; + rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 last; + rewrite ^/(.*) /doku.php?id=$1 last; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/dokuwiki.tpl b/install/debian/11/templates/web/nginx/php-fpm/dokuwiki.tpl new file mode 100644 index 00000000..0a9a75ed --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/dokuwiki.tpl @@ -0,0 +1,67 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location / { + index doku.php; + try_files $uri $uri/ @dokuwiki; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include /etc/nginx/fastcgi_params; + } + } + + location ~ ^/lib.*\.(gif|png|ico|jpg)$ { + expires 30d; + } + + location ^~ /conf/ { return 403; } + location ^~ /data/ { return 403; } + location @dokuwiki { + rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last; + rewrite ^/_detail/(.*) /lib/exe/detail.php?media=$1 last; + rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 last; + rewrite ^/(.*) /doku.php?id=$1 last; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/drupal6.stpl b/install/debian/11/templates/web/nginx/php-fpm/drupal6.stpl new file mode 100644 index 00000000..6e67a4e0 --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/drupal6.stpl @@ -0,0 +1,94 @@ +server { + listen %ip%:%web_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + root %sdocroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + location ~* \.(txt|log)$ { + allow 192.168.0.0/16; + deny all; + } + + location ~ \..*/.*\.php$ { + return 403; + } + + location ~ ^/sites/.*/private/ { + return 403; + } + + location ~ ^/sites/[^/]+/files/.*\.php$ { + deny all; + } + + location / { + try_files $uri @rewrite; + } + + location @rewrite { + rewrite ^/(.*)$ /index.php?q=$1; + } + + location ~ /vendor/.*\.php$ { + deny all; + return 404; + } + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + try_files $uri @rewrite; + expires max; + log_not_found off; + } + + location ~ ^/sites/.*/files/imagecache/ { + try_files $uri @rewrite; + } + + location ~ '\.php$|^/update.php' { + fastcgi_split_path_info ^(.+?\.php)(|/.*)$; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_pass %backend_lsnr%; + include /etc/nginx/fastcgi_params; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/drupal6.tpl b/install/debian/11/templates/web/nginx/php-fpm/drupal6.tpl new file mode 100644 index 00000000..d1096bff --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/drupal6.tpl @@ -0,0 +1,91 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + location ~* \.(txt|log)$ { + allow 192.168.0.0/16; + deny all; + } + + location ~ \..*/.*\.php$ { + return 403; + } + + location ~ ^/sites/.*/private/ { + return 403; + } + + location ~ ^/sites/[^/]+/files/.*\.php$ { + deny all; + } + + location / { + try_files $uri @rewrite; + } + + location @rewrite { + rewrite ^/(.*)$ /index.php?q=$1; + } + + location ~ /vendor/.*\.php$ { + deny all; + return 404; + } + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + try_files $uri @rewrite; + expires max; + log_not_found off; + } + + location ~ ^/sites/.*/files/imagecache/ { + try_files $uri @rewrite; + } + + location ~ '\.php$|^/update.php' { + fastcgi_split_path_info ^(.+?\.php)(|/.*)$; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_pass %backend_lsnr%; + include /etc/nginx/fastcgi_params; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/drupal7.stpl b/install/debian/11/templates/web/nginx/php-fpm/drupal7.stpl new file mode 100644 index 00000000..32f01a6f --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/drupal7.stpl @@ -0,0 +1,94 @@ +server { + listen %ip%:%web_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + root %sdocroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + location ~* \.(txt|log)$ { + allow 192.168.0.0/16; + deny all; + } + + location ~ \..*/.*\.php$ { + return 403; + } + + location ~ ^/sites/.*/private/ { + return 403; + } + + location ~ ^/sites/[^/]+/files/.*\.php$ { + deny all; + } + + location / { + try_files $uri /index.php?$query_string; + } + + location ~ /vendor/.*\.php$ { + deny all; + return 404; + } + + location ~ ^/sites/.*/files/styles/ { + try_files $uri @rewrite; + } + + location ~ ^(/[a-z\-]+)?/system/files/ { + try_files $uri /index.php?$query_string; + } + + location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { + try_files $uri @rewrite; + expires max; + log_not_found off; + } + + location ~ '\.php$|^/update.php' { + fastcgi_split_path_info ^(.+?\.php)(|/.*)$; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_pass %backend_lsnr%; + include /etc/nginx/fastcgi_params; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/drupal7.tpl b/install/debian/11/templates/web/nginx/php-fpm/drupal7.tpl new file mode 100644 index 00000000..c9729795 --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/drupal7.tpl @@ -0,0 +1,91 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + location ~* \.(txt|log)$ { + allow 192.168.0.0/16; + deny all; + } + + location ~ \..*/.*\.php$ { + return 403; + } + + location ~ ^/sites/.*/private/ { + return 403; + } + + location ~ ^/sites/[^/]+/files/.*\.php$ { + deny all; + } + + location / { + try_files $uri /index.php?$query_string; + } + + location ~ /vendor/.*\.php$ { + deny all; + return 404; + } + + location ~ ^/sites/.*/files/styles/ { + try_files $uri @rewrite; + } + + location ~ ^(/[a-z\-]+)?/system/files/ { + try_files $uri /index.php?$query_string; + } + + location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { + try_files $uri @rewrite; + expires max; + log_not_found off; + } + + location ~ '\.php$|^/update.php' { + fastcgi_split_path_info ^(.+?\.php)(|/.*)$; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_pass %backend_lsnr%; + include /etc/nginx/fastcgi_params; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/drupal8.stpl b/install/debian/11/templates/web/nginx/php-fpm/drupal8.stpl new file mode 100644 index 00000000..32f01a6f --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/drupal8.stpl @@ -0,0 +1,94 @@ +server { + listen %ip%:%web_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + root %sdocroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + location ~* \.(txt|log)$ { + allow 192.168.0.0/16; + deny all; + } + + location ~ \..*/.*\.php$ { + return 403; + } + + location ~ ^/sites/.*/private/ { + return 403; + } + + location ~ ^/sites/[^/]+/files/.*\.php$ { + deny all; + } + + location / { + try_files $uri /index.php?$query_string; + } + + location ~ /vendor/.*\.php$ { + deny all; + return 404; + } + + location ~ ^/sites/.*/files/styles/ { + try_files $uri @rewrite; + } + + location ~ ^(/[a-z\-]+)?/system/files/ { + try_files $uri /index.php?$query_string; + } + + location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { + try_files $uri @rewrite; + expires max; + log_not_found off; + } + + location ~ '\.php$|^/update.php' { + fastcgi_split_path_info ^(.+?\.php)(|/.*)$; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_pass %backend_lsnr%; + include /etc/nginx/fastcgi_params; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/drupal8.tpl b/install/debian/11/templates/web/nginx/php-fpm/drupal8.tpl new file mode 100644 index 00000000..c9729795 --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/drupal8.tpl @@ -0,0 +1,91 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + location ~* \.(txt|log)$ { + allow 192.168.0.0/16; + deny all; + } + + location ~ \..*/.*\.php$ { + return 403; + } + + location ~ ^/sites/.*/private/ { + return 403; + } + + location ~ ^/sites/[^/]+/files/.*\.php$ { + deny all; + } + + location / { + try_files $uri /index.php?$query_string; + } + + location ~ /vendor/.*\.php$ { + deny all; + return 404; + } + + location ~ ^/sites/.*/files/styles/ { + try_files $uri @rewrite; + } + + location ~ ^(/[a-z\-]+)?/system/files/ { + try_files $uri /index.php?$query_string; + } + + location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { + try_files $uri @rewrite; + expires max; + log_not_found off; + } + + location ~ '\.php$|^/update.php' { + fastcgi_split_path_info ^(.+?\.php)(|/.*)$; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_pass %backend_lsnr%; + include /etc/nginx/fastcgi_params; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/joomla.stpl b/install/debian/11/templates/web/nginx/php-fpm/joomla.stpl new file mode 100644 index 00000000..d4f96ee3 --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/joomla.stpl @@ -0,0 +1,62 @@ +server { + listen %ip%:%web_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + root %sdocroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location / { + try_files $uri $uri/ /index.php?$args; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + # deny running scripts inside writable directories + location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ { + return 403; + error_page 403 /403_error.html; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/joomla.tpl b/install/debian/11/templates/web/nginx/php-fpm/joomla.tpl new file mode 100644 index 00000000..91b7a8f1 --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/joomla.tpl @@ -0,0 +1,59 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location / { + try_files $uri $uri/ /index.php?$args; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + # deny running scripts inside writable directories + location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ { + return 403; + error_page 403 /403_error.html; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/laravel.stpl b/install/debian/11/templates/web/nginx/php-fpm/laravel.stpl new file mode 100644 index 00000000..db0b4dde --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/laravel.stpl @@ -0,0 +1,54 @@ +server { + listen %ip%:%web_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + root %sdocroot%/public; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location / { + try_files $uri $uri/ /index.php?$query_string; + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/laravel.tpl b/install/debian/11/templates/web/nginx/php-fpm/laravel.tpl new file mode 100644 index 00000000..d14b0173 --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/laravel.tpl @@ -0,0 +1,50 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%/public; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + location / { + try_files $uri $uri/ /index.php?$query_string; + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/magento.stpl b/install/debian/11/templates/web/nginx/php-fpm/magento.stpl new file mode 100644 index 00000000..f8ac30c9 --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/magento.stpl @@ -0,0 +1,197 @@ +server { + listen %ip%:%web_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + + root %sdocroot%/pub; + index index.php; + autoindex off; + charset UTF-8; + error_page 404 403 = /errors/404.php; + add_header "X-UA-Compatible" "IE=Edge"; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + # PHP entry point for setup application + location ~* ^/setup($|/) { + root %sdocroot%; + + location ~ ^/setup/index.php { + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include /etc/nginx/fastcgi_params; + } + + location ~ ^/setup/(?!pub/). { + deny all; + } + + location ~ ^/setup/pub/ { + add_header X-Frame-Options "SAMEORIGIN"; + } + } + + # PHP entry point for update application + location ~* ^/update($|/) { + root %sdocroot%; + + location ~ ^/update/index.php { + fastcgi_split_path_info ^(/update/index.php)(/.+)$; + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param PATH_INFO $fastcgi_path_info; + include /etc/nginx/fastcgi_params; + } + + # Deny everything but index.php + location ~ ^/update/(?!pub/). { + deny all; + } + + location ~ ^/update/pub/ { + add_header X-Frame-Options "SAMEORIGIN"; + } + } + + location / { + try_files $uri $uri/ /index.php?$args; + } + + location /pub/ { + location ~ ^/pub/media/(downloadable|customer|import|theme_customization/.*\.xml) { + deny all; + } + + alias %sdocroot%/pub/; + add_header X-Frame-Options "SAMEORIGIN"; + } + + location /static/ { + # Uncomment the following line in production mode + # expires max; + + # Remove signature of the static files that is used to overcome the browser cache + location ~ ^/static/version { + rewrite ^/static/(version\d*/)?(.*)$ /static/$2 last; + } + + location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ { + add_header Cache-Control "public"; + add_header X-Frame-Options "SAMEORIGIN"; + expires +1y; + + if (!-f $request_filename) { + rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last; + } + } + + location ~* \.(zip|gz|gzip|bz2|csv|xml)$ { + add_header Cache-Control "no-store"; + add_header X-Frame-Options "SAMEORIGIN"; + expires off; + + if (!-f $request_filename) { + rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last; + } + } + + if (!-f $request_filename) { + rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last; + } + + add_header X-Frame-Options "SAMEORIGIN"; + } + + location /media/ { + try_files $uri $uri/ /get.php?$args; + + location ~ ^/media/theme_customization/.*\.xml { + deny all; + } + + location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ { + add_header Cache-Control "public"; + add_header X-Frame-Options "SAMEORIGIN"; + expires +1y; + try_files $uri $uri/ /get.php?$args; + } + + location ~* \.(zip|gz|gzip|bz2|csv|xml)$ { + add_header Cache-Control "no-store"; + add_header X-Frame-Options "SAMEORIGIN"; + expires off; + try_files $uri $uri/ /get.php?$args; + } + + add_header X-Frame-Options "SAMEORIGIN"; + } + + location /media/customer/ { + deny all; + } + + location /media/downloadable/ { + deny all; + } + + location /media/import/ { + deny all; + } + + # PHP entry point for main application + location ~ (index|get|static|report|404|503)\.php$ { + try_files $uri =404; + + fastcgi_pass %backend_lsnr%; + fastcgi_buffers 1024 4k; + fastcgi_read_timeout 600s; + fastcgi_connect_timeout 600s; + + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include /etc/nginx/fastcgi_params; + } + + gzip on; + gzip_disable "msie6"; + + gzip_comp_level 6; + gzip_min_length 1100; + gzip_buffers 16 8k; + gzip_proxied any; + gzip_types + text/plain + text/css + text/js + text/xml + text/javascript + application/javascript + application/x-javascript + application/json + application/xml + application/xml+rss + image/svg+xml; + gzip_vary on; + + # Banned locations (only reached if the earlier PHP entry point regexes don't match) + location ~* (\.php$|\.htaccess$|\.git) { + deny all; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/magento.tpl b/install/debian/11/templates/web/nginx/php-fpm/magento.tpl new file mode 100644 index 00000000..3f292fff --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/magento.tpl @@ -0,0 +1,194 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + + root %docroot%/pub; + index index.php; + autoindex off; + charset UTF-8; + error_page 404 403 = /errors/404.php; + add_header "X-UA-Compatible" "IE=Edge"; + + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + # PHP entry point for setup application + location ~* ^/setup($|/) { + root %docroot%; + + location ~ ^/setup/index.php { + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include /etc/nginx/fastcgi_params; + } + + location ~ ^/setup/(?!pub/). { + deny all; + } + + location ~ ^/setup/pub/ { + add_header X-Frame-Options "SAMEORIGIN"; + } + } + + # PHP entry point for update application + location ~* ^/update($|/) { + root %docroot%; + + location ~ ^/update/index.php { + fastcgi_split_path_info ^(/update/index.php)(/.+)$; + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param PATH_INFO $fastcgi_path_info; + include /etc/nginx/fastcgi_params; + } + + # Deny everything but index.php + location ~ ^/update/(?!pub/). { + deny all; + } + + location ~ ^/update/pub/ { + add_header X-Frame-Options "SAMEORIGIN"; + } + } + + location / { + try_files $uri $uri/ /index.php?$args; + } + + location /pub/ { + location ~ ^/pub/media/(downloadable|customer|import|theme_customization/.*\.xml) { + deny all; + } + + alias %docroot%/pub/; + add_header X-Frame-Options "SAMEORIGIN"; + } + + location /static/ { + # Uncomment the following line in production mode + # expires max; + + # Remove signature of the static files that is used to overcome the browser cache + location ~ ^/static/version { + rewrite ^/static/(version\d*/)?(.*)$ /static/$2 last; + } + + location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ { + add_header Cache-Control "public"; + add_header X-Frame-Options "SAMEORIGIN"; + expires +1y; + + if (!-f $request_filename) { + rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last; + } + } + + location ~* \.(zip|gz|gzip|bz2|csv|xml)$ { + add_header Cache-Control "no-store"; + add_header X-Frame-Options "SAMEORIGIN"; + expires off; + + if (!-f $request_filename) { + rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last; + } + } + + if (!-f $request_filename) { + rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last; + } + + add_header X-Frame-Options "SAMEORIGIN"; + } + + location /media/ { + try_files $uri $uri/ /get.php?$args; + + location ~ ^/media/theme_customization/.*\.xml { + deny all; + } + + location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ { + add_header Cache-Control "public"; + add_header X-Frame-Options "SAMEORIGIN"; + expires +1y; + try_files $uri $uri/ /get.php?$args; + } + + location ~* \.(zip|gz|gzip|bz2|csv|xml)$ { + add_header Cache-Control "no-store"; + add_header X-Frame-Options "SAMEORIGIN"; + expires off; + try_files $uri $uri/ /get.php?$args; + } + + add_header X-Frame-Options "SAMEORIGIN"; + } + + location /media/customer/ { + deny all; + } + + location /media/downloadable/ { + deny all; + } + + location /media/import/ { + deny all; + } + + # PHP entry point for main application + location ~ (index|get|static|report|404|503)\.php$ { + try_files $uri =404; + + fastcgi_pass %backend_lsnr%; + fastcgi_buffers 1024 4k; + fastcgi_read_timeout 600s; + fastcgi_connect_timeout 600s; + + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include /etc/nginx/fastcgi_params; + } + + gzip on; + gzip_disable "msie6"; + + gzip_comp_level 6; + gzip_min_length 1100; + gzip_buffers 16 8k; + gzip_proxied any; + gzip_types + text/plain + text/css + text/js + text/xml + text/javascript + application/javascript + application/x-javascript + application/json + application/xml + application/xml+rss + image/svg+xml; + gzip_vary on; + + # Banned locations (only reached if the earlier PHP entry point regexes don't match) + location ~* (\.php$|\.htaccess$|\.git) { + deny all; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/modx.stpl b/install/debian/11/templates/web/nginx/php-fpm/modx.stpl new file mode 100644 index 00000000..420aeb9e --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/modx.stpl @@ -0,0 +1,68 @@ +server { + listen %ip%:%web_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + root %sdocroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; +# if you need to rewrite www to non-www uncomment bellow +# if ($host != '%domain%' ) { +# rewrite ^/(.*)$ https://%domain%/$1 permanent; +# } + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + location / { + try_files $uri $uri/ @rewrite; + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + } + location @rewrite { + rewrite ^/(.*)$ /index.php?q=$1; + } + + location ~ \.php$ { + try_files $uri =404; + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $request_filename; + include /etc/nginx/fastcgi_params; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/modx.tpl b/install/debian/11/templates/web/nginx/php-fpm/modx.tpl new file mode 100644 index 00000000..342d3ecf --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/modx.tpl @@ -0,0 +1,65 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; +# if you need to rewrite www to non-www uncomment bellow +# if ($host != '%domain%' ) { +# rewrite ^/(.*)$ http://%domain%/$1 permanent; +# } + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + location / { + try_files $uri $uri/ @rewrite; + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + } + location @rewrite { + rewrite ^/(.*)$ /index.php?q=$1; + } + + location ~ \.php$ { + try_files $uri =404; + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $request_filename; + include /etc/nginx/fastcgi_params; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/moodle.stpl b/install/debian/11/templates/web/nginx/php-fpm/moodle.stpl new file mode 100644 index 00000000..8594ec94 --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/moodle.stpl @@ -0,0 +1,89 @@ +server { + listen %ip%:%web_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + root %sdocroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + rewrite ^/(.*\.php)(/)(.*)$ /$1?file=/$3 last; + + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + location ~* \.(txt|log)$ { + allow 192.168.0.0/16; + deny all; + } + + location ~ \..*/.*\.php$ { + return 403; + } + + # No no for private + location ~ ^/sites/.*/private/ { + return 403; + } + + # Block access to "hidden" files and directories whose names begin with a + # period. This includes directories used by version control systems such + # as Subversion or Git to store control files. + location ~ (^|/)\. { + return 403; + } + + location / { + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $request_filename; + fastcgi_intercept_errors on; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/moodle.tpl b/install/debian/11/templates/web/nginx/php-fpm/moodle.tpl new file mode 100644 index 00000000..c20ba648 --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/moodle.tpl @@ -0,0 +1,87 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + rewrite ^/(.*\.php)(/)(.*)$ /$1?file=/$3 last; + + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + # Very rarely should these ever be accessed outside of your lan + location ~* \.(txt|log)$ { + allow 192.168.0.0/16; + deny all; + } + + location ~ \..*/.*\.php$ { + return 403; + } + + # No no for private + location ~ ^/sites/.*/private/ { + return 403; + } + + # Block access to "hidden" files and directories whose names begin with a + # period. This includes directories used by version control systems such + # as Subversion or Git to store control files. + location ~ (^|/)\. { + return 403; + } + + location / { + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $request_filename; + fastcgi_intercept_errors on; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/no-php.stpl b/install/debian/11/templates/web/nginx/php-fpm/no-php.stpl new file mode 100644 index 00000000..4bb50383 --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/no-php.stpl @@ -0,0 +1,46 @@ +server { + listen %ip%:%web_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + root %sdocroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + types { + text/html html htm shtml php php5; + } + + location / { + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/no-php.tpl b/install/debian/11/templates/web/nginx/php-fpm/no-php.tpl new file mode 100644 index 00000000..7ff8aa1d --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/no-php.tpl @@ -0,0 +1,43 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + types { + text/html html htm shtml php php5; + } + + location / { + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/odoo.stpl b/install/debian/11/templates/web/nginx/php-fpm/odoo.stpl new file mode 100644 index 00000000..e28afcfc --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/odoo.stpl @@ -0,0 +1,69 @@ +server { + listen %ip%:%web_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + root %sdocroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; + proxy_redirect off; + + proxy_set_header X-Forwarded-Host $host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Real-IP $remote_addr; + + proxy_connect_timeout 720; + proxy_send_timeout 720; + proxy_read_timeout 720; + send_timeout 720; + + # Allow "Well-Known URIs" as per RFC 5785 + location ~* ^/.well-known/ { + allow all; + } + + location / { + proxy_pass http://127.0.0.1:8069; + } + + location /longpolling { + proxy_pass http://127.0.0.1:8072; + } + + location ~* /web/static/ { + proxy_cache_valid 200 60m; + proxy_buffering on; + expires 864000; + proxy_pass http://127.0.0.1:8069; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/odoo.tpl b/install/debian/11/templates/web/nginx/php-fpm/odoo.tpl new file mode 100644 index 00000000..b1240aae --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/odoo.tpl @@ -0,0 +1,66 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; + proxy_redirect off; + + proxy_set_header X-Forwarded-Host $host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Real-IP $remote_addr; + + proxy_connect_timeout 720; + proxy_send_timeout 720; + proxy_read_timeout 720; + send_timeout 720; + + # Allow "Well-Known URIs" as per RFC 5785 + location ~* ^/.well-known/ { + allow all; + } + + location / { + proxy_pass http://127.0.0.1:8069; + } + + location /longpolling { + proxy_pass http://127.0.0.1:8072; + } + + location ~* /web/static/ { + proxy_cache_valid 200 60m; + proxy_buffering on; + expires 864000; + proxy_pass http://127.0.0.1:8069; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/opencart.stpl b/install/debian/11/templates/web/nginx/php-fpm/opencart.stpl new file mode 100644 index 00000000..52706d21 --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/opencart.stpl @@ -0,0 +1,58 @@ +server { + listen %ip%:%web_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + root %sdocroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location / { + try_files $uri $uri/ @opencart; + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + } + } + + location @opencart { + rewrite ^/(.+)$ /index.php?_route_=$1 last; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/opencart.tpl b/install/debian/11/templates/web/nginx/php-fpm/opencart.tpl new file mode 100644 index 00000000..d0a9060b --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/opencart.tpl @@ -0,0 +1,54 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + location / { + try_files $uri $uri/ @opencart; + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + } + } + + location @opencart { + rewrite ^/(.+)$ /index.php?_route_=$1 last; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/owncloud.stpl b/install/debian/11/templates/web/nginx/php-fpm/owncloud.stpl new file mode 100644 index 00000000..1b803f97 --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/owncloud.stpl @@ -0,0 +1,84 @@ +server { + listen %ip%:%web_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + root %sdocroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect; + rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect; + rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect; + + error_page 403 = /core/templates/403.php; + error_page 404 = /core/templates/404.php; + + location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README){ + deny all; + } + + location / { + # The following 2 rules are only needed with webfinger + rewrite ^/.well-known/host-meta /public.php?service=host-meta last; + rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last; + rewrite ^/.well-known/carddav /remote.php/carddav/ redirect; + rewrite ^/.well-known/caldav /remote.php/caldav/ redirect; + rewrite ^(/core/doc/[^\/]+/)$ $1/index.html; + try_files $uri $uri/ /index.php; + + location ~ \.php(?:$|/) { + fastcgi_split_path_info ^(.+\.php)(/.+)$; + include /etc/nginx/fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param PATH_INFO $fastcgi_path_info; + #fastcgi_param HTTPS on; + fastcgi_pass %backend_lsnr%; + } + } + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + # Some basic cache-control for static files to be sent to the browser + add_header Pragma public; + add_header Cache-Control "public, must-revalidate, proxy-revalidate"; + } + + #error_page 403 /error/404.html; + #error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/owncloud.tpl b/install/debian/11/templates/web/nginx/php-fpm/owncloud.tpl new file mode 100644 index 00000000..e3ec31de --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/owncloud.tpl @@ -0,0 +1,81 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect; + rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect; + rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect; + + error_page 403 = /core/templates/403.php; + error_page 404 = /core/templates/404.php; + + location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README){ + deny all; + } + + location / { + # The following 2 rules are only needed with webfinger + rewrite ^/.well-known/host-meta /public.php?service=host-meta last; + rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last; + rewrite ^/.well-known/carddav /remote.php/carddav/ redirect; + rewrite ^/.well-known/caldav /remote.php/caldav/ redirect; + rewrite ^(/core/doc/[^\/]+/)$ $1/index.html; + try_files $uri $uri/ /index.php; + + location ~ \.php(?:$|/) { + fastcgi_split_path_info ^(.+\.php)(/.+)$; + include /etc/nginx/fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param PATH_INFO $fastcgi_path_info; + #fastcgi_param HTTPS on; + fastcgi_pass %backend_lsnr%; + } + } + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + # Some basic cache-control for static files to be sent to the browser + add_header Pragma public; + add_header Cache-Control "public, must-revalidate, proxy-revalidate"; + } + + #error_page 403 /error/404.html; + #error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/piwik.stpl b/install/debian/11/templates/web/nginx/php-fpm/piwik.stpl new file mode 100644 index 00000000..1b299343 --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/piwik.stpl @@ -0,0 +1,72 @@ +server { + listen %ip%:%web_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + root %sdocroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location = /favicon.ico { + try_files /favicon.ico =204; + } + + location / { + try_files $uri /index.php; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + valid_referers none blocked %domain_idn% %alias_idn%; + if ($invalid_referer) { + return 444; + } + expires max; + } + + location ~* ^/(?:index|piwik)\.php$ { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + include /etc/nginx/fastcgi_params; + } + } + + # Any other attempt to access PHP files returns a 404. + location ~* ^.+\.php$ { + return 404; + } + + # Return a 404 for all text files. + location ~* ^/(?:README|LICENSE[^.]*|LEGALNOTICE)(?:\.txt)*$ { + return 404; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/piwik.tpl b/install/debian/11/templates/web/nginx/php-fpm/piwik.tpl new file mode 100644 index 00000000..f94fb7de --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/piwik.tpl @@ -0,0 +1,69 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location = /favicon.ico { + try_files /favicon.ico =204; + } + + location / { + try_files $uri /index.php; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + valid_referers none blocked %domain_idn% %alias_idn%; + if ($invalid_referer) { + return 444; + } + expires max; + } + + location ~* ^/(?:index|piwik)\.php$ { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + include /etc/nginx/fastcgi_params; + } + } + + # Any other attempt to access PHP files returns a 404. + location ~* ^.+\.php$ { + return 404; + } + + # Return a 404 for all text files. + location ~* ^/(?:README|LICENSE[^.]*|LEGALNOTICE)(?:\.txt)*$ { + return 404; + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/pyrocms.stpl b/install/debian/11/templates/web/nginx/php-fpm/pyrocms.stpl new file mode 100644 index 00000000..6d44f20f --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/pyrocms.stpl @@ -0,0 +1,65 @@ +server { + listen %ip%:%web_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + root %sdocroot%/public; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location /installer { + try_files $uri $uri/ /installer/index.php?$query_string; + } + + location / { + try_files $uri $uri/ /index.php; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include /etc/nginx/fastcgi_params; + } + } + + location = /robots.txt { access_log off; log_not_found off; } + location = /favicon.ico { access_log off; log_not_found off; } + location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ ~$ { access_log off; log_not_found off; deny all; } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/pyrocms.tpl b/install/debian/11/templates/web/nginx/php-fpm/pyrocms.tpl new file mode 100644 index 00000000..297fe0e8 --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/pyrocms.tpl @@ -0,0 +1,62 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%/public; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location /installer { + try_files $uri $uri/ /installer/index.php?$query_string; + } + + location / { + try_files $uri $uri/ /index.php; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include /etc/nginx/fastcgi_params; + } + } + + location = /robots.txt { access_log off; log_not_found off; } + location = /favicon.ico { access_log off; log_not_found off; } + location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ ~$ { access_log off; log_not_found off; deny all; } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/sendy.stpl b/install/debian/11/templates/web/nginx/php-fpm/sendy.stpl new file mode 100644 index 00000000..0b351000 --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/sendy.stpl @@ -0,0 +1,88 @@ +server { + listen %ip%:%web_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + location ~* "/\.(htaccess|htpasswd|git|svn|DS_Store)$" { + deny all; + } + + location ~ /(readme.html|license.txt) { + deny all; + } + + if (!-f $request_filename){ + rewrite ^/([a-zA-Z0-9-]+)$ /$1.php last; + } + + location / { + try_files $uri $uri/ /index.php?$args; + location ~* ^.+\.(ogg|ogv|svg|svgz|swf|eot|otf|woff|mov|mp3|mp4|webm|flv|ttf|rss|atom|jpg|jpeg|gif|png|ico|bmp|mid|midi|wav|rtf|css|js|jar|pdf)$ { + expires 1d; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + try_files $uri =404; + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + } + + location /l/ { + rewrite ^/l/([a-zA-Z0-9/]+)$ /l.php?i=$1 last; + } + + location /t/ { + rewrite ^/t/([a-zA-Z0-9/]+)$ /t.php?i=$1 last; + } + + location /w/ { + rewrite ^/w/([a-zA-Z0-9/]+)$ /w.php?i=$1 last; + } + + location /unsubscribe/ { + rewrite ^/unsubscribe/(.*)$ /unsubscribe.php?i=$1 last; + } + + location /subscribe/ { + rewrite ^/subscribe/(.*)$ /subscribe.php?i=$1 last; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/sendy.tpl b/install/debian/11/templates/web/nginx/php-fpm/sendy.tpl new file mode 100644 index 00000000..b27b427d --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/sendy.tpl @@ -0,0 +1,86 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + location ~* "/\.(htaccess|htpasswd|git|svn|DS_Store)$" { + deny all; + } + + location ~ /(readme.html|license.txt) { + deny all; + } + + if (!-f $request_filename){ + rewrite ^/([a-zA-Z0-9-]+)$ /$1.php last; + } + + location / { + try_files $uri $uri/ /index.php?$args; + location ~* ^.+\.(ogg|ogv|svg|svgz|swf|eot|otf|woff|mov|mp3|mp4|webm|flv|ttf|rss|atom|jpg|jpeg|gif|png|ico|bmp|mid|midi|wav|rtf|css|js|jar|pdf)$ { + expires 1d; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + try_files $uri =404; + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + } + + location /l/ { + rewrite ^/l/([a-zA-Z0-9/]+)$ /l.php?i=$1 last; + } + + location /t/ { + rewrite ^/t/([a-zA-Z0-9/]+)$ /t.php?i=$1 last; + } + + location /w/ { + rewrite ^/w/([a-zA-Z0-9/]+)$ /w.php?i=$1 last; + } + + location /unsubscribe/ { + rewrite ^/unsubscribe/(.*)$ /unsubscribe.php?i=$1 last; + } + + location /subscribe/ { + rewrite ^/subscribe/(.*)$ /subscribe.php?i=$1 last; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/wordpress.stpl b/install/debian/11/templates/web/nginx/php-fpm/wordpress.stpl new file mode 100644 index 00000000..f9c01e40 --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/wordpress.stpl @@ -0,0 +1,54 @@ +server { + listen %ip%:%web_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + root %sdocroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location / { + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/wordpress.tpl b/install/debian/11/templates/web/nginx/php-fpm/wordpress.tpl new file mode 100644 index 00000000..a8909efb --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/wordpress.tpl @@ -0,0 +1,51 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location / { + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/wordpress2.stpl b/install/debian/11/templates/web/nginx/php-fpm/wordpress2.stpl new file mode 100644 index 00000000..01dfee5b --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/wordpress2.stpl @@ -0,0 +1,66 @@ +server { + listen %ip%:%web_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + root %sdocroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + location / { + try_files $uri $uri/ /index.php?$args; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/wordpress2.tpl b/install/debian/11/templates/web/nginx/php-fpm/wordpress2.tpl new file mode 100644 index 00000000..bccb8b3d --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/wordpress2.tpl @@ -0,0 +1,63 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + location / { + try_files $uri $uri/ /index.php?$args; + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/conf/web/%domain%.auth*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/wordpress2_rewrite.stpl b/install/debian/11/templates/web/nginx/php-fpm/wordpress2_rewrite.stpl new file mode 100644 index 00000000..a5fc46fb --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/wordpress2_rewrite.stpl @@ -0,0 +1,71 @@ +server { + listen %ip%:%web_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + location / { + try_files $uri $uri/ /index.php?$args; + + if (!-e $request_filename) + { + rewrite ^(.+)$ /index.php?q=$1 last; + } + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain_idn%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/php-fpm/wordpress2_rewrite.tpl b/install/debian/11/templates/web/nginx/php-fpm/wordpress2_rewrite.tpl new file mode 100644 index 00000000..39e366b7 --- /dev/null +++ b/install/debian/11/templates/web/nginx/php-fpm/wordpress2_rewrite.tpl @@ -0,0 +1,67 @@ +server { + listen %ip%:%web_port%; + server_name %domain_idn% %alias_idn%; + root %docroot%; + index index.php index.html index.htm; + access_log /var/log/nginx/domains/%domain%.log combined; + access_log /var/log/nginx/domains/%domain%.bytes bytes; + error_log /var/log/nginx/domains/%domain%.error.log error; + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + location / { + try_files $uri $uri/ /index.php?$args; + + if (!-e $request_filename) + { + rewrite ^(.+)$ /index.php?q=$1 last; + } + + location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { + expires max; + } + + location ~ [^/]\.php(/|$) { + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass %backend_lsnr%; + fastcgi_index index.php; + include /etc/nginx/fastcgi_params; + } + } + + error_page 403 /error/404.html; + error_page 404 /error/404.html; + error_page 500 502 503 504 /error/50x.html; + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location ~* "/\.(htaccess|htpasswd)$" { + deny all; + return 404; + } + + location /vstats/ { + alias %home%/%user%/web/%domain%/stats/; + include %home%/%user%/web/%domain%/stats/auth.conf*; + } + + include /etc/nginx/conf.d/phpmyadmin.inc*; + include /etc/nginx/conf.d/phppgadmin.inc*; + include /etc/nginx/conf.d/webmail.inc*; + + include %home%/%user%/conf/web/nginx.%domain_idn%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/private-force-https.stpl b/install/debian/11/templates/web/nginx/private-force-https.stpl new file mode 100644 index 00000000..2b4e42cc --- /dev/null +++ b/install/debian/11/templates/web/nginx/private-force-https.stpl @@ -0,0 +1,38 @@ +server { + listen %ip%:%proxy_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + auth_basic "Restricted area"; + auth_basic_user_file /etc/nginx/.htpasswd; + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %sdocroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass https://%ip%:%web_ssl_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; + include %home%/%user%/conf/web/s%proxy_system%.%domain%.conf*; +} diff --git a/install/debian/11/templates/web/nginx/private-force-https.tpl b/install/debian/11/templates/web/nginx/private-force-https.tpl new file mode 100644 index 00000000..851ac0dc --- /dev/null +++ b/install/debian/11/templates/web/nginx/private-force-https.tpl @@ -0,0 +1,8 @@ +server { + listen %ip%:%proxy_port%; + server_name %domain_idn% %alias_idn%; + location / { + rewrite ^(.*) https://%domain_idn%$1 permanent; + } +include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; +} diff --git a/install/debian/11/templates/web/nginx/private-hosting.sh b/install/debian/11/templates/web/nginx/private-hosting.sh new file mode 100755 index 00000000..abc9155d --- /dev/null +++ b/install/debian/11/templates/web/nginx/private-hosting.sh @@ -0,0 +1,11 @@ +#!/bin/bash +# Changing public_html permission +user="$1" +domain="$2" +ip="$3" +home_dir="$4" +docroot="$5" + +chmod 755 $docroot + +exit 0 diff --git a/install/debian/11/templates/web/nginx/private-hosting.stpl b/install/debian/11/templates/web/nginx/private-hosting.stpl new file mode 100644 index 00000000..60b23c55 --- /dev/null +++ b/install/debian/11/templates/web/nginx/private-hosting.stpl @@ -0,0 +1,40 @@ +server { + listen %ip%:%proxy_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + auth_basic "Restricted area"; + auth_basic_user_file /etc/nginx/.htpasswd; + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %sdocroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass https://%ip%:%web_ssl_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + disable_symlinks if_not_owner from=%docroot%; + + include %home%/%user%/conf/web/snginx.%domain_idn%.conf*; +} + diff --git a/install/debian/11/templates/web/nginx/private-hosting.tpl b/install/debian/11/templates/web/nginx/private-hosting.tpl new file mode 100644 index 00000000..da70045f --- /dev/null +++ b/install/debian/11/templates/web/nginx/private-hosting.tpl @@ -0,0 +1,37 @@ +server { + listen %ip%:%proxy_port%; + server_name %domain_idn% %alias_idn%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + auth_basic "Restricted area"; + auth_basic_user_file /etc/nginx/.htpasswd; + proxy_pass http://%ip%:%web_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %docroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass http://%ip%:%web_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + disable_symlinks if_not_owner from=%docroot%; + + include %home%/%user%/conf/web/nginx.%domain_idn%.conf*; +} + diff --git a/install/debian/11/templates/web/nginx/proxy_ip.tpl b/install/debian/11/templates/web/nginx/proxy_ip.tpl new file mode 100644 index 00000000..ae195617 --- /dev/null +++ b/install/debian/11/templates/web/nginx/proxy_ip.tpl @@ -0,0 +1,9 @@ +server { + listen %ip%:%proxy_port% default; + server_name _; + #access_log /var/log/nginx/%ip%.log main; + location / { + proxy_pass http://%ip%:%web_port%; + } +} + diff --git a/install/debian/11/templates/web/php-fpm/default.tpl b/install/debian/11/templates/web/php-fpm/default.tpl new file mode 100644 index 00000000..209e1e43 --- /dev/null +++ b/install/debian/11/templates/web/php-fpm/default.tpl @@ -0,0 +1,21 @@ +[%backend%] +listen = 127.0.0.1:%backend_port% +listen.allowed_clients = 127.0.0.1 + +user = %user% +group = %user% + +pm = ondemand +pm.max_children = 4 +pm.max_requests = 4000 +pm.process_idle_timeout = 10s +pm.status_path = /status + +php_admin_value[upload_tmp_dir] = /home/%user%/tmp +php_admin_value[session.save_path] = /home/%user%/tmp + +env[HOSTNAME] = $HOSTNAME +env[PATH] = /usr/local/bin:/usr/bin:/bin +env[TMP] = /home/%user%/tmp +env[TMPDIR] = /home/%user%/tmp +env[TEMP] = /home/%user%/tmp diff --git a/install/debian/11/templates/web/php-fpm/no-php.tpl b/install/debian/11/templates/web/php-fpm/no-php.tpl new file mode 100644 index 00000000..047c33ed --- /dev/null +++ b/install/debian/11/templates/web/php-fpm/no-php.tpl @@ -0,0 +1,20 @@ +;[%backend%] +;listen = /dev/null + +;user = %user% +;group = %user% + +;listen.owner = %user% +;listen.group = www-data + +;pm = ondemand +;pm.max_children = 4 +;pm.max_requests = 4000 +;pm.process_idle_timeout = 10s +;pm.status_path = /status + +;env[HOSTNAME] = $HOSTNAME +;env[PATH] = /usr/local/bin:/usr/bin:/bin +;env[TMP] = /home/%user%/tmp +;env[TMPDIR] = /home/%user%/tmp +;env[TEMP] = /home/%user%/tmp diff --git a/install/debian/11/templates/web/php-fpm/socket.tpl b/install/debian/11/templates/web/php-fpm/socket.tpl new file mode 100644 index 00000000..a0151084 --- /dev/null +++ b/install/debian/11/templates/web/php-fpm/socket.tpl @@ -0,0 +1,24 @@ +[%backend%] +listen = /var/run/php/%backend%.sock +listen.allowed_clients = 127.0.0.1 + +user = %user% +group = %user% + +listen.owner = %user% +listen.group = www-data + +pm = ondemand +pm.max_children = 4 +pm.max_requests = 4000 +pm.process_idle_timeout = 10s +pm.status_path = /status + +php_admin_value[upload_tmp_dir] = /home/%user%/tmp +php_admin_value[session.save_path] = /home/%user%/tmp + +env[HOSTNAME] = $HOSTNAME +env[PATH] = /usr/local/bin:/usr/bin:/bin +env[TMP] = /home/%user%/tmp +env[TMPDIR] = /home/%user%/tmp +env[TEMP] = /home/%user%/tmp diff --git a/install/debian/11/templates/web/skel/document_errors/403.html b/install/debian/11/templates/web/skel/document_errors/403.html new file mode 100755 index 00000000..9c3f6baa --- /dev/null +++ b/install/debian/11/templates/web/skel/document_errors/403.html @@ -0,0 +1,29 @@ + + + 403 — Forbidden + + + + + + +

%domain%

+ +

403

+

Forbidden

+
+ Unfortunately, you do not have permission to view this +
+ + + diff --git a/install/debian/11/templates/web/skel/document_errors/404.html b/install/debian/11/templates/web/skel/document_errors/404.html new file mode 100755 index 00000000..2cee7708 --- /dev/null +++ b/install/debian/11/templates/web/skel/document_errors/404.html @@ -0,0 +1,28 @@ + + + 404 — Not Found + + + + + + +

%domain%

+

404

+

Page Not Found

+
+ It seems that the page you were trying to reach does not exist anymore, or maybe it has just moved. + You can start again from the home or go back to previous page. +
+ + diff --git a/install/debian/11/templates/web/skel/document_errors/50x.html b/install/debian/11/templates/web/skel/document_errors/50x.html new file mode 100755 index 00000000..85ba648b --- /dev/null +++ b/install/debian/11/templates/web/skel/document_errors/50x.html @@ -0,0 +1,29 @@ + + + 500 — Internal Sever Error + + + + + + +

%domain%

+ +

500

+

Internal Server Error

+
+ Sorry, something went wrong :( +
+ + + diff --git a/install/debian/11/templates/web/skel/public_html/index.html b/install/debian/11/templates/web/skel/public_html/index.html new file mode 100755 index 00000000..c2895cf2 --- /dev/null +++ b/install/debian/11/templates/web/skel/public_html/index.html @@ -0,0 +1,26 @@ + + + %domain% — Coming Soon + + + + + + +

%domain%

+ + + + + diff --git a/install/debian/11/templates/web/skel/public_html/robots.txt b/install/debian/11/templates/web/skel/public_html/robots.txt new file mode 100755 index 00000000..00ee83dc --- /dev/null +++ b/install/debian/11/templates/web/skel/public_html/robots.txt @@ -0,0 +1,3 @@ +# vestacp autogenerated robots.txt +User-agent: * +Crawl-delay: 10 diff --git a/install/debian/11/templates/web/skel/public_shtml/index.html b/install/debian/11/templates/web/skel/public_shtml/index.html new file mode 100755 index 00000000..c2895cf2 --- /dev/null +++ b/install/debian/11/templates/web/skel/public_shtml/index.html @@ -0,0 +1,26 @@ + + + %domain% — Coming Soon + + + + + + +

%domain%

+ + + + + diff --git a/install/debian/11/templates/web/skel/public_shtml/robots.txt b/install/debian/11/templates/web/skel/public_shtml/robots.txt new file mode 100755 index 00000000..00ee83dc --- /dev/null +++ b/install/debian/11/templates/web/skel/public_shtml/robots.txt @@ -0,0 +1,3 @@ +# vestacp autogenerated robots.txt +User-agent: * +Crawl-delay: 10 diff --git a/install/debian/11/templates/web/suspend/.htaccess b/install/debian/11/templates/web/suspend/.htaccess new file mode 100755 index 00000000..5a6df83f --- /dev/null +++ b/install/debian/11/templates/web/suspend/.htaccess @@ -0,0 +1,2 @@ +ErrorDocument 403 /index.html +ErrorDocument 404 /index.html diff --git a/install/debian/11/templates/web/suspend/index.html b/install/debian/11/templates/web/suspend/index.html new file mode 100755 index 00000000..3815354d --- /dev/null +++ b/install/debian/11/templates/web/suspend/index.html @@ -0,0 +1,25 @@ + + + Website Suspended + + + + + +

Temporary under construction

+

This website is temporary under construction.

+
+ We will back again soon. +
+ + diff --git a/install/debian/11/templates/web/webalizer/webalizer.tpl b/install/debian/11/templates/web/webalizer/webalizer.tpl new file mode 100755 index 00000000..068adcfb --- /dev/null +++ b/install/debian/11/templates/web/webalizer/webalizer.tpl @@ -0,0 +1,110 @@ +HostName %domain_idn% +LogFile /var/log/%web_system%/domains/%domain%.log +OutputDir %home%/%user%/web/%domain%/stats +HistoryName %home%/%user%/web/%domain%/stats/%domain%.hist +Incremental yes +IncrementalName %home%/%user%/web/%domain%/stats/%domain%.current +PageType htm* +PageType cgi +PageType php +PageType shtml +DNSCache /var/lib/webalizer/dns_cache.db +DNSChildren 10 +Quiet yes +FoldSeqErr yes +IndexAlias index.php +HideURL *.gif +HideURL *.GIF +HideURL *.jpg +HideURL *.JPG +HideURL *.png +HideURL *.PNG +HideURL *.ra +SearchEngine abcsearch. terms= +SearchEngine alexa. q= +SearchEngine alltheweb. q= +SearchEngine alltheweb. query= +SearchEngine alot. q= +SearchEngine altavista. q= +SearchEngine aolsearch. query= +SearchEngine aport.ru r= +SearchEngine ask. q= +SearchEngine atlas.cz q= +SearchEngine bbc. q= +SearchEngine bing. q= +SearchEngine blingo. q= +SearchEngine blogs.yandex.ru text= +SearchEngine btopenworld query= +SearchEngine buscador.ya.com q= +SearchEngine busca. q= +SearchEngine business. query= +SearchEngine centrum.cz q= +SearchEngine chiff. q= +SearchEngine clusty. query= +SearchEngine comcast. q= +SearchEngine crawler. q= +SearchEngine cuil. q= +SearchEngine dmoz. search= +SearchEngine dogpile.com q= +SearchEngine dpxml qkw= +SearchEngine eureka. searchword= +SearchEngine euroseek. string= +SearchEngine exalead. q= +SearchEngine excite search= +SearchEngine ezilon. q= +SearchEngine fastbrowsersearch. q= +SearchEngine feedster.com q= +SearchEngine fireball.de q= +SearchEngine fireball. keyword= +SearchEngine freeserve. q= +SearchEngine gigablast. q= +SearchEngine gogo.ru q= +SearchEngine go.mail.ru q= +SearchEngine google. q= +SearchEngine hakia. q= +SearchEngine hotbot. query= +SearchEngine infoseek. qt= +SearchEngine iwon searchfor= +SearchEngine ixquick.com query= +SearchEngine joeant. keywords= +SearchEngine jyxo.cz s= +SearchEngine looksmart. key= +SearchEngine lycos. query= +SearchEngine mamma. q= +SearchEngine metacrawler q= +SearchEngine msn. MT= +SearchEngine msxml qkw= +SearchEngine mysearch. searchfor= +SearchEngine mywebsearch. searchfor= +SearchEngine netscape. q= +SearchEngine nigma.ru q= +SearchEngine northernlight. qr= +SearchEngine ntlworld. q= +SearchEngine orange. q= +SearchEngine overture. Keywords= +SearchEngine punto.ru text= +SearchEngine rambler. keyword= +SearchEngine search.aol. q= +SearchEngine search.babylon. q= +SearchEngine search.centrum. phrase= +SearchEngine search.conduit. q= +SearchEngine search.earthlink q= +SearchEngine search.icq. q= +SearchEngine search.live.com q= +SearchEngine search.rambler.ru words= +SearchEngine search.winamp. q= +SearchEngine searchy. q= +SearchEngine seznam.cz w= +SearchEngine snap. query= +SearchEngine teoma. q= +SearchEngine teradex.com q= +SearchEngine ukplus key= +SearchEngine verizon. q= +SearchEngine virginmedia. q= +SearchEngine voila. rdata= +SearchEngine webcrawler searchText= +SearchEngine web.search.naver. query= +SearchEngine wisenut q= +SearchEngine yahoo. p= +SearchEngine yandex. text= +SearchEngine yodao. q= diff --git a/install/debian/11/vsftpd/vsftpd.conf b/install/debian/11/vsftpd/vsftpd.conf new file mode 100644 index 00000000..1ca1a992 --- /dev/null +++ b/install/debian/11/vsftpd/vsftpd.conf @@ -0,0 +1,26 @@ +anonymous_enable=NO +local_enable=YES +write_enable=YES +local_umask=022 +anon_umask=022 +anon_upload_enable=NO +dirmessage_enable=YES +xferlog_enable=YES +connect_from_port_20=YES +xferlog_std_format=YES +dual_log_enable=YES +chroot_local_user=YES +listen=YES +pam_service_name=vsftpd +userlist_enable=NO +tcp_wrappers=YES +force_dot_files=YES +ascii_upload_enable=YES +ascii_download_enable=YES +#allow_writable_chroot=YES +allow_writeable_chroot=YES +seccomp_sandbox=NO +pasv_enable=YES +pasv_max_port=12100 +pasv_min_port=12000 +use_localtime=YES From fb98936297b472d5c3740332c65854f87c7e75de Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 16 Jul 2021 14:28:44 +0200 Subject: [PATCH 179/984] deb11 proftpd identlookups fix --- install/debian/11/proftpd/proftpd.conf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/install/debian/11/proftpd/proftpd.conf b/install/debian/11/proftpd/proftpd.conf index b144b8a5..4e7f798f 100644 --- a/install/debian/11/proftpd/proftpd.conf +++ b/install/debian/11/proftpd/proftpd.conf @@ -28,7 +28,9 @@ SystemLog /var/log/proftpd/proftpd.log Umask 002 - IdentLookups off + + IdentLookups off + AllowOverwrite yes AllowAll From ebe60ba28ced07b25fd8b91f7cb4b5ca38e95061 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 16 Jul 2021 15:19:44 +0200 Subject: [PATCH 180/984] php7.4 patches for deb11 --- install/debian/11/php/php7.4-dedi.patch | 87 +++++++++++++++++++++++++ install/debian/11/php/php7.4-vps.patch | 87 +++++++++++++++++++++++++ 2 files changed, 174 insertions(+) create mode 100644 install/debian/11/php/php7.4-dedi.patch create mode 100644 install/debian/11/php/php7.4-vps.patch diff --git a/install/debian/11/php/php7.4-dedi.patch b/install/debian/11/php/php7.4-dedi.patch new file mode 100644 index 00000000..c622b51c --- /dev/null +++ b/install/debian/11/php/php7.4-dedi.patch @@ -0,0 +1,87 @@ +--- /etc/php/7.4/fpm/php.ini.orig 2021-02-20 10:45:56.000000000 +0100 ++++ /etc/php/7.4/fpm/php.ini 2021-07-16 15:17:44.465823204 +0200 +@@ -309,7 +309,8 @@ + ; This directive allows you to disable certain functions. + ; It receives a comma-delimited list of function names. + ; http://php.net/disable-functions +-disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, ++; disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, ++disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,exec,system,passthru,shell_exec,proc_open,popen + + ; This directive allows you to disable certain classes. + ; It receives a comma-delimited list of class names. +@@ -402,11 +403,11 @@ + ;max_input_nesting_level = 64 + + ; How many GET/POST/COOKIE input variables may be accepted +-;max_input_vars = 1000 ++max_input_vars = 6000 + + ; Maximum amount of memory a script may consume + ; http://php.net/memory-limit +-memory_limit = 128M ++memory_limit = 256M + + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ; Error handling and logging ; +@@ -691,7 +692,7 @@ + ; Its value may be 0 to disable the limit. It is ignored if POST data reading + ; is disabled through enable_post_data_reading. + ; http://php.net/post-max-size +-post_max_size = 8M ++post_max_size = 60M + + ; Automatically add files before PHP document. + ; http://php.net/auto-prepend-file +@@ -843,7 +844,7 @@ + + ; Maximum allowed size for uploaded files. + ; http://php.net/upload-max-filesize +-upload_max_filesize = 2M ++upload_max_filesize = 50M + + ; Maximum number of files that can be uploaded via a single request + max_file_uploads = 20 +@@ -959,7 +960,7 @@ + [Date] + ; Defines the default timezone used by the date functions + ; http://php.net/date.timezone +-;date.timezone = ++date.timezone = UTC + + ; http://php.net/date.default-latitude + ;date.default_latitude = 31.7667 +@@ -1089,7 +1090,7 @@ + + ; The path to a log file that will log all mail() calls. Log entries include + ; the full path of the script, line number, To address and headers. +-;mail.log = ++mail.log = /var/log/php-mail.log + ; Log mail to syslog (Event Log on Windows). + ;mail.log = syslog + +@@ -1766,20 +1767,20 @@ + + [opcache] + ; Determines if Zend OPCache is enabled +-;opcache.enable=1 ++opcache.enable=1 + + ; Determines if Zend OPCache is enabled for the CLI version of PHP +-;opcache.enable_cli=0 ++opcache.enable_cli=0 + + ; The OPcache shared memory storage size. +-;opcache.memory_consumption=128 ++opcache.memory_consumption=2048 + + ; The amount of memory for interned strings in Mbytes. + ;opcache.interned_strings_buffer=8 + + ; The maximum number of keys (scripts) in the OPcache hash table. + ; Only numbers between 200 and 1000000 are allowed. +-;opcache.max_accelerated_files=10000 ++opcache.max_accelerated_files=100000 + + ; The maximum percentage of "wasted" memory until a restart is scheduled. + ;opcache.max_wasted_percentage=5 diff --git a/install/debian/11/php/php7.4-vps.patch b/install/debian/11/php/php7.4-vps.patch new file mode 100644 index 00000000..e78199bc --- /dev/null +++ b/install/debian/11/php/php7.4-vps.patch @@ -0,0 +1,87 @@ +--- /etc/php/7.4/fpm/php.ini.orig 2021-02-20 10:45:56.000000000 +0100 ++++ /etc/php/7.4/fpm/php.ini 2021-07-16 15:05:25.244169530 +0200 +@@ -309,7 +309,8 @@ + ; This directive allows you to disable certain functions. + ; It receives a comma-delimited list of function names. + ; http://php.net/disable-functions +-disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, ++; disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, ++disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,exec,system,passthru,shell_exec,proc_open,popen + + ; This directive allows you to disable certain classes. + ; It receives a comma-delimited list of class names. +@@ -402,11 +403,11 @@ + ;max_input_nesting_level = 64 + + ; How many GET/POST/COOKIE input variables may be accepted +-;max_input_vars = 1000 ++max_input_vars = 6000 + + ; Maximum amount of memory a script may consume + ; http://php.net/memory-limit +-memory_limit = 128M ++memory_limit = 256M + + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ; Error handling and logging ; +@@ -691,7 +692,7 @@ + ; Its value may be 0 to disable the limit. It is ignored if POST data reading + ; is disabled through enable_post_data_reading. + ; http://php.net/post-max-size +-post_max_size = 8M ++post_max_size = 60M + + ; Automatically add files before PHP document. + ; http://php.net/auto-prepend-file +@@ -843,7 +844,7 @@ + + ; Maximum allowed size for uploaded files. + ; http://php.net/upload-max-filesize +-upload_max_filesize = 2M ++upload_max_filesize = 50M + + ; Maximum number of files that can be uploaded via a single request + max_file_uploads = 20 +@@ -959,7 +960,7 @@ + [Date] + ; Defines the default timezone used by the date functions + ; http://php.net/date.timezone +-;date.timezone = ++date.timezone = UTC + + ; http://php.net/date.default-latitude + ;date.default_latitude = 31.7667 +@@ -1089,7 +1090,7 @@ + + ; The path to a log file that will log all mail() calls. Log entries include + ; the full path of the script, line number, To address and headers. +-;mail.log = ++mail.log = /var/log/php-mail.log + ; Log mail to syslog (Event Log on Windows). + ;mail.log = syslog + +@@ -1766,20 +1767,20 @@ + + [opcache] + ; Determines if Zend OPCache is enabled +-;opcache.enable=1 ++opcache.enable=1 + + ; Determines if Zend OPCache is enabled for the CLI version of PHP +-;opcache.enable_cli=0 ++opcache.enable_cli=0 + + ; The OPcache shared memory storage size. +-;opcache.memory_consumption=128 ++opcache.memory_consumption=512 + + ; The amount of memory for interned strings in Mbytes. + ;opcache.interned_strings_buffer=8 + + ; The maximum number of keys (scripts) in the OPcache hash table. + ; Only numbers between 200 and 1000000 are allowed. +-;opcache.max_accelerated_files=10000 ++opcache.max_accelerated_files=100000 + + ; The maximum percentage of "wasted" memory until a restart is scheduled. + ;opcache.max_wasted_percentage=5 From fd82be8cf2f1edb086d04dd687c0f1f9d4ff0bd1 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 16 Jul 2021 15:42:26 +0200 Subject: [PATCH 181/984] Update php7.4-vps.patch --- install/debian/11/php/php7.4-vps.patch | 9 --------- 1 file changed, 9 deletions(-) diff --git a/install/debian/11/php/php7.4-vps.patch b/install/debian/11/php/php7.4-vps.patch index e78199bc..4fd24e55 100644 --- a/install/debian/11/php/php7.4-vps.patch +++ b/install/debian/11/php/php7.4-vps.patch @@ -42,15 +42,6 @@ ; Maximum number of files that can be uploaded via a single request max_file_uploads = 20 -@@ -959,7 +960,7 @@ - [Date] - ; Defines the default timezone used by the date functions - ; http://php.net/date.timezone --;date.timezone = -+date.timezone = UTC - - ; http://php.net/date.default-latitude - ;date.default_latitude = 31.7667 @@ -1089,7 +1090,7 @@ ; The path to a log file that will log all mail() calls. Log entries include From b27e96b285d02e8d31d70dafef8676687c381e63 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 16 Jul 2021 15:43:10 +0200 Subject: [PATCH 182/984] Update php7.4-dedi.patch --- install/debian/11/php/php7.4-dedi.patch | 9 --------- 1 file changed, 9 deletions(-) diff --git a/install/debian/11/php/php7.4-dedi.patch b/install/debian/11/php/php7.4-dedi.patch index c622b51c..4b533087 100644 --- a/install/debian/11/php/php7.4-dedi.patch +++ b/install/debian/11/php/php7.4-dedi.patch @@ -42,15 +42,6 @@ ; Maximum number of files that can be uploaded via a single request max_file_uploads = 20 -@@ -959,7 +960,7 @@ - [Date] - ; Defines the default timezone used by the date functions - ; http://php.net/date.timezone --;date.timezone = -+date.timezone = UTC - - ; http://php.net/date.default-latitude - ;date.default_latitude = 31.7667 @@ -1089,7 +1090,7 @@ ; The path to a log file that will log all mail() calls. Log entries include From 823ab23c3e34dc487a2daaf5297bb6cd289cc975 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 16 Jul 2021 16:27:40 +0200 Subject: [PATCH 183/984] php7.4 patches --- install/debian/11/php/php7.4-dedi.patch | 4 ++-- install/debian/11/php/php7.4-vps.patch | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/install/debian/11/php/php7.4-dedi.patch b/install/debian/11/php/php7.4-dedi.patch index 4b533087..3e5bd2fb 100644 --- a/install/debian/11/php/php7.4-dedi.patch +++ b/install/debian/11/php/php7.4-dedi.patch @@ -1,5 +1,5 @@ ---- /etc/php/7.4/fpm/php.ini.orig 2021-02-20 10:45:56.000000000 +0100 -+++ /etc/php/7.4/fpm/php.ini 2021-07-16 15:17:44.465823204 +0200 +--- /etc/php/7.4/fpm/php.ini.orig 2021-07-16 16:12:30.027464762 +0200 ++++ /etc/php/7.4/fpm/php.ini 2021-07-16 16:25:15.000000000 +0200 @@ -309,7 +309,8 @@ ; This directive allows you to disable certain functions. ; It receives a comma-delimited list of function names. diff --git a/install/debian/11/php/php7.4-vps.patch b/install/debian/11/php/php7.4-vps.patch index 4fd24e55..7c52d402 100644 --- a/install/debian/11/php/php7.4-vps.patch +++ b/install/debian/11/php/php7.4-vps.patch @@ -1,5 +1,5 @@ ---- /etc/php/7.4/fpm/php.ini.orig 2021-02-20 10:45:56.000000000 +0100 -+++ /etc/php/7.4/fpm/php.ini 2021-07-16 15:05:25.244169530 +0200 +--- /etc/php/7.4/fpm/php.ini.orig 2021-07-16 16:12:30.027464762 +0200 ++++ /etc/php/7.4/fpm/php.ini 2021-07-16 16:24:26.000000000 +0200 @@ -309,7 +309,8 @@ ; This directive allows you to disable certain functions. ; It receives a comma-delimited list of function names. From a0c1145fe78163abb9091f28d1dd3e7cb1b1e39d Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 16 Jul 2021 21:01:13 +0200 Subject: [PATCH 184/984] php7.4 apache templates --- .../web/apache2/PHP-FPM-74-public.sh | 92 +++++++++++++++++++ .../web/apache2/PHP-FPM-74-public.stpl | 44 +++++++++ .../web/apache2/PHP-FPM-74-public.tpl | 38 ++++++++ .../11/templates/web/apache2/PHP-FPM-74.sh | 92 +++++++++++++++++++ .../11/templates/web/apache2/PHP-FPM-74.stpl | 44 +++++++++ .../11/templates/web/apache2/PHP-FPM-74.tpl | 38 ++++++++ 6 files changed, 348 insertions(+) create mode 100644 install/debian/11/templates/web/apache2/PHP-FPM-74-public.sh create mode 100644 install/debian/11/templates/web/apache2/PHP-FPM-74-public.stpl create mode 100644 install/debian/11/templates/web/apache2/PHP-FPM-74-public.tpl create mode 100644 install/debian/11/templates/web/apache2/PHP-FPM-74.sh create mode 100644 install/debian/11/templates/web/apache2/PHP-FPM-74.stpl create mode 100644 install/debian/11/templates/web/apache2/PHP-FPM-74.tpl diff --git a/install/debian/11/templates/web/apache2/PHP-FPM-74-public.sh b/install/debian/11/templates/web/apache2/PHP-FPM-74-public.sh new file mode 100644 index 00000000..6f6290b1 --- /dev/null +++ b/install/debian/11/templates/web/apache2/PHP-FPM-74-public.sh @@ -0,0 +1,92 @@ +#!/bin/bash +# Adding php pool conf +user="$1" +domain="$2" +ip="$3" +home_dir="$4" +docroot="$5" + +pool_conf="[$2] + +listen = /run/php/php7.4-fpm-$2.sock +listen.owner = $1 +listen.group = $1 +listen.mode = 0666 + +user = $1 +group = $1 + +pm = ondemand +pm.max_children = 16 +request_terminate_timeout = 30s +pm.max_requests = 4000 +pm.process_idle_timeout = 10s +pm.status_path = /status + +php_admin_value[upload_tmp_dir] = /home/$1/tmp +php_admin_value[session.save_path] = /home/$1/tmp +php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube +php_admin_value[upload_max_filesize] = 80M +php_admin_value[max_execution_time] = 20 +php_admin_value[post_max_size] = 80M +php_admin_value[memory_limit] = 256M +php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" +php_admin_flag[mysql.allow_persistent] = off +php_admin_flag[safe_mode] = off + +env[PATH] = /usr/local/bin:/usr/bin:/bin +env[TMP] = /home/$1/tmp +env[TMPDIR] = /home/$1/tmp +env[TEMP] = /home/$1/tmp +" + +pool_file_56="/etc/php/5.6/fpm/pool.d/$2.conf" +pool_file_70="/etc/php/7.0/fpm/pool.d/$2.conf" +pool_file_71="/etc/php/7.1/fpm/pool.d/$2.conf" +pool_file_72="/etc/php/7.2/fpm/pool.d/$2.conf" +pool_file_73="/etc/php/7.3/fpm/pool.d/$2.conf" +pool_file_74="/etc/php/7.4/fpm/pool.d/$2.conf" + +if [ -f "$pool_file_56" ]; then + rm $pool_file_56 + service php5.6-fpm restart +fi + +if [ -f "$pool_file_70" ]; then + rm $pool_file_70 + service php7.0-fpm restart +fi + +if [ -f "$pool_file_71" ]; then + rm $pool_file_71 + service php7.1-fpm restart +fi + +if [ -f "$pool_file_72" ]; then + rm $pool_file_72 + service php7.2-fpm restart +fi + +if [ -f "$pool_file_73" ]; then + rm $pool_file_73 + service php7.3-fpm restart +fi + +write_file=0 +if [ ! -f "$pool_file_74" ]; then + write_file=1 +else + user_count=$(grep -c "/home/$1/" $pool_file_74) + if [ $user_count -eq 0 ]; then + write_file=1 + fi +fi +if [ $write_file -eq 1 ]; then + echo "$pool_conf" > $pool_file_74 + service php7.4-fpm restart +fi +if [ -f "/etc/php/7.4/fpm/pool.d/www.conf" ]; then + rm /etc/php/7.4/fpm/pool.d/www.conf +fi + +exit 0 \ No newline at end of file diff --git a/install/debian/11/templates/web/apache2/PHP-FPM-74-public.stpl b/install/debian/11/templates/web/apache2/PHP-FPM-74-public.stpl new file mode 100644 index 00000000..fdbc26f9 --- /dev/null +++ b/install/debian/11/templates/web/apache2/PHP-FPM-74-public.stpl @@ -0,0 +1,44 @@ + + + ServerName %domain_idn% + %alias_string% + ServerAdmin %email% + DocumentRoot %sdocroot%/public + ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ + Alias /vstats/ %home%/%user%/web/%domain%/stats/ + Alias /error/ %home%/%user%/web/%domain%/document_errors/ + #SuexecUserGroup %user% %group% + CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes + CustomLog /var/log/%web_system%/domains/%domain%.log combined + ErrorLog /var/log/%web_system%/domains/%domain%.error.log + + AllowOverride All + + + AllowOverride All + SSLRequireSSL + Options +Includes -Indexes +ExecCGI + + SSLEngine on + SSLVerifyClient none + SSLCertificateFile %ssl_crt% + SSLCertificateKeyFile %ssl_key% + %ssl_ca_str%SSLCertificateChainFile %ssl_ca% +# +# RMode config +# RUidGid %user% %group% +# RGroups www-data +# +# +# AssignUserID %user% %group% +# + + + SetHandler "proxy:unix:/run/php/php7.4-fpm-%domain%.sock|fcgi://localhost/" + + SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0 + + IncludeOptional %home%/%user%/conf/web/s%web_system%.%domain%.conf* + + + diff --git a/install/debian/11/templates/web/apache2/PHP-FPM-74-public.tpl b/install/debian/11/templates/web/apache2/PHP-FPM-74-public.tpl new file mode 100644 index 00000000..614f20c3 --- /dev/null +++ b/install/debian/11/templates/web/apache2/PHP-FPM-74-public.tpl @@ -0,0 +1,38 @@ + + + ServerName %domain_idn% + %alias_string% + ServerAdmin %email% + DocumentRoot %docroot%/public + ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ + Alias /vstats/ %home%/%user%/web/%domain%/stats/ + Alias /error/ %home%/%user%/web/%domain%/document_errors/ + #SuexecUserGroup %user% %group% + CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes + CustomLog /var/log/%web_system%/domains/%domain%.log combined + ErrorLog /var/log/%web_system%/domains/%domain%.error.log + + AllowOverride All + + + AllowOverride All + Options +Includes -Indexes +ExecCGI + +# +# RMode config +# RUidGid %user% %group% +# RGroups www-data +# +# +# AssignUserID %user% %group% +# + + + SetHandler "proxy:unix:/run/php/php7.4-fpm-%domain%.sock|fcgi://localhost/" + + SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0 + + IncludeOptional %home%/%user%/conf/web/%web_system%.%domain%.conf* + + + diff --git a/install/debian/11/templates/web/apache2/PHP-FPM-74.sh b/install/debian/11/templates/web/apache2/PHP-FPM-74.sh new file mode 100644 index 00000000..482cdd7e --- /dev/null +++ b/install/debian/11/templates/web/apache2/PHP-FPM-74.sh @@ -0,0 +1,92 @@ +#!/bin/bash +# Adding php pool conf +user="$1" +domain="$2" +ip="$3" +home_dir="$4" +docroot="$5" + +pool_conf="[$2] + +listen = /run/php/php7.4-fpm-$2.sock +listen.owner = $1 +listen.group = $1 +listen.mode = 0666 + +user = $1 +group = $1 + +pm = ondemand +pm.max_children = 8 +request_terminate_timeout = 90s +pm.max_requests = 4000 +pm.process_idle_timeout = 10s +pm.status_path = /status + +php_admin_value[upload_tmp_dir] = /home/$1/tmp +php_admin_value[session.save_path] = /home/$1/tmp +php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube +php_admin_value[upload_max_filesize] = 80M +php_admin_value[max_execution_time] = 30 +php_admin_value[post_max_size] = 80M +php_admin_value[memory_limit] = 256M +php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" +php_admin_flag[mysql.allow_persistent] = off +php_admin_flag[safe_mode] = off + +env[PATH] = /usr/local/bin:/usr/bin:/bin +env[TMP] = /home/$1/tmp +env[TMPDIR] = /home/$1/tmp +env[TEMP] = /home/$1/tmp +" + +pool_file_56="/etc/php/5.6/fpm/pool.d/$2.conf" +pool_file_70="/etc/php/7.0/fpm/pool.d/$2.conf" +pool_file_71="/etc/php/7.1/fpm/pool.d/$2.conf" +pool_file_72="/etc/php/7.2/fpm/pool.d/$2.conf" +pool_file_73="/etc/php/7.3/fpm/pool.d/$2.conf" +pool_file_74="/etc/php/7.4/fpm/pool.d/$2.conf" + +if [ -f "$pool_file_56" ]; then + rm $pool_file_56 + service php5.6-fpm restart +fi + +if [ -f "$pool_file_70" ]; then + rm $pool_file_70 + service php7.0-fpm restart +fi + +if [ -f "$pool_file_71" ]; then + rm $pool_file_71 + service php7.1-fpm restart +fi + +if [ -f "$pool_file_72" ]; then + rm $pool_file_72 + service php7.2-fpm restart +fi + +if [ -f "$pool_file_73" ]; then + rm $pool_file_73 + service php7.3-fpm restart +fi + +write_file=0 +if [ ! -f "$pool_file_74" ]; then + write_file=1 +else + user_count=$(grep -c "/home/$1/" $pool_file_74) + if [ $user_count -eq 0 ]; then + write_file=1 + fi +fi +if [ $write_file -eq 1 ]; then + echo "$pool_conf" > $pool_file_74 + service php7.4-fpm restart +fi +if [ -f "/etc/php/7.4/fpm/pool.d/www.conf" ]; then + rm /etc/php/7.4/fpm/pool.d/www.conf +fi + +exit 0 diff --git a/install/debian/11/templates/web/apache2/PHP-FPM-74.stpl b/install/debian/11/templates/web/apache2/PHP-FPM-74.stpl new file mode 100644 index 00000000..df607247 --- /dev/null +++ b/install/debian/11/templates/web/apache2/PHP-FPM-74.stpl @@ -0,0 +1,44 @@ + + + ServerName %domain_idn% + %alias_string% + ServerAdmin %email% + DocumentRoot %sdocroot% + ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ + Alias /vstats/ %home%/%user%/web/%domain%/stats/ + Alias /error/ %home%/%user%/web/%domain%/document_errors/ + #SuexecUserGroup %user% %group% + CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes + CustomLog /var/log/%web_system%/domains/%domain%.log combined + ErrorLog /var/log/%web_system%/domains/%domain%.error.log + + AllowOverride All + + + AllowOverride All + SSLRequireSSL + Options +Includes -Indexes +ExecCGI + + SSLEngine on + SSLVerifyClient none + SSLCertificateFile %ssl_crt% + SSLCertificateKeyFile %ssl_key% + %ssl_ca_str%SSLCertificateChainFile %ssl_ca% +# +# RMode config +# RUidGid %user% %group% +# RGroups www-data +# +# +# AssignUserID %user% %group% +# + + + SetHandler "proxy:unix:/run/php/php7.4-fpm-%domain%.sock|fcgi://localhost/" + + SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0 + + IncludeOptional %home%/%user%/conf/web/s%web_system%.%domain%.conf* + + + diff --git a/install/debian/11/templates/web/apache2/PHP-FPM-74.tpl b/install/debian/11/templates/web/apache2/PHP-FPM-74.tpl new file mode 100644 index 00000000..7b6e2cb5 --- /dev/null +++ b/install/debian/11/templates/web/apache2/PHP-FPM-74.tpl @@ -0,0 +1,38 @@ + + + ServerName %domain_idn% + %alias_string% + ServerAdmin %email% + DocumentRoot %docroot% + ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ + Alias /vstats/ %home%/%user%/web/%domain%/stats/ + Alias /error/ %home%/%user%/web/%domain%/document_errors/ + #SuexecUserGroup %user% %group% + CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes + CustomLog /var/log/%web_system%/domains/%domain%.log combined + ErrorLog /var/log/%web_system%/domains/%domain%.error.log + + AllowOverride All + + + AllowOverride All + Options +Includes -Indexes +ExecCGI + +# +# RMode config +# RUidGid %user% %group% +# RGroups www-data +# +# +# AssignUserID %user% %group% +# + + + SetHandler "proxy:unix:/run/php/php7.4-fpm-%domain%.sock|fcgi://localhost/" + + SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0 + + IncludeOptional %home%/%user%/conf/web/%web_system%.%domain%.conf* + + + From ad20438e6c6619b13d520f4f2dd45ff86d7cdb88 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 16 Jul 2021 21:02:06 +0200 Subject: [PATCH 185/984] Delete PHP-FPM-73-public.sh --- .../web/apache2/PHP-FPM-73-public.sh | 88 ------------------- 1 file changed, 88 deletions(-) delete mode 100755 install/debian/11/templates/web/apache2/PHP-FPM-73-public.sh diff --git a/install/debian/11/templates/web/apache2/PHP-FPM-73-public.sh b/install/debian/11/templates/web/apache2/PHP-FPM-73-public.sh deleted file mode 100755 index cc55b61e..00000000 --- a/install/debian/11/templates/web/apache2/PHP-FPM-73-public.sh +++ /dev/null @@ -1,88 +0,0 @@ -#!/bin/bash -# Adding php pool conf -user="$1" -domain="$2" -ip="$3" -home_dir="$4" -docroot="$5" - -pool_conf="[$2] - -listen = /run/php/php7.3-fpm-$2.sock -listen.owner = $1 -listen.group = $1 -listen.mode = 0666 - -user = $1 -group = $1 - -pm = ondemand -pm.max_children = 16 -request_terminate_timeout = 30s -pm.max_requests = 4000 -pm.process_idle_timeout = 10s -pm.status_path = /status - -php_admin_value[upload_tmp_dir] = /home/$1/tmp -php_admin_value[session.save_path] = /home/$1/tmp -php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube -php_admin_value[upload_max_filesize] = 80M -php_admin_value[max_execution_time] = 20 -php_admin_value[post_max_size] = 80M -php_admin_value[memory_limit] = 256M -php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" -php_admin_flag[mysql.allow_persistent] = off -php_admin_flag[safe_mode] = off - -env[PATH] = /usr/local/bin:/usr/bin:/bin -env[TMP] = /home/$1/tmp -env[TMPDIR] = /home/$1/tmp -env[TEMP] = /home/$1/tmp -" - -pool_file_56="/etc/php/5.6/fpm/pool.d/$2.conf" -pool_file_70="/etc/php/7.0/fpm/pool.d/$2.conf" -pool_file_71="/etc/php/7.1/fpm/pool.d/$2.conf" -pool_file_72="/etc/php/7.2/fpm/pool.d/$2.conf" -pool_file_73="/etc/php/7.3/fpm/pool.d/$2.conf" - -if [ -f "$pool_file_56" ]; then - rm $pool_file_56 - service php5.6-fpm restart -fi - -if [ -f "$pool_file_70" ]; then - rm $pool_file_70 - service php7.0-fpm restart -fi - -if [ -f "$pool_file_71" ]; then - rm $pool_file_71 - service php7.1-fpm restart -fi - -if [ -f "$pool_file_72" ]; then - rm $pool_file_72 - service php7.2-fpm restart -fi - -write_file=0 -if [ ! -f "$pool_file_73" ]; then - write_file=1 -else - user_count=$(grep -c "/home/$1/" $pool_file_73) - if [ $user_count -eq 0 ]; then - write_file=1 - fi -fi - -if [ $write_file -eq 1 ]; then - echo "$pool_conf" > $pool_file_73 - service php7.3-fpm restart -fi - -if [ -f "/etc/php/7.3/fpm/pool.d/www.conf" ]; then - rm /etc/php/7.3/fpm/pool.d/www.conf -fi - -exit 0 From c267045cea60906f205423637001449ed836a730 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 16 Jul 2021 21:02:21 +0200 Subject: [PATCH 186/984] Delete PHP-FPM-73-public.stpl --- .../web/apache2/PHP-FPM-73-public.stpl | 44 ------------------- 1 file changed, 44 deletions(-) delete mode 100644 install/debian/11/templates/web/apache2/PHP-FPM-73-public.stpl diff --git a/install/debian/11/templates/web/apache2/PHP-FPM-73-public.stpl b/install/debian/11/templates/web/apache2/PHP-FPM-73-public.stpl deleted file mode 100644 index 9660c234..00000000 --- a/install/debian/11/templates/web/apache2/PHP-FPM-73-public.stpl +++ /dev/null @@ -1,44 +0,0 @@ - - - ServerName %domain_idn% - %alias_string% - ServerAdmin %email% - DocumentRoot %sdocroot%/public - ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ - Alias /vstats/ %home%/%user%/web/%domain%/stats/ - Alias /error/ %home%/%user%/web/%domain%/document_errors/ - #SuexecUserGroup %user% %group% - CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes - CustomLog /var/log/%web_system%/domains/%domain%.log combined - ErrorLog /var/log/%web_system%/domains/%domain%.error.log - - AllowOverride All - - - AllowOverride All - SSLRequireSSL - Options +Includes -Indexes +ExecCGI - - SSLEngine on - SSLVerifyClient none - SSLCertificateFile %ssl_crt% - SSLCertificateKeyFile %ssl_key% - %ssl_ca_str%SSLCertificateChainFile %ssl_ca% -# -# RMode config -# RUidGid %user% %group% -# RGroups www-data -# -# -# AssignUserID %user% %group% -# - - - SetHandler "proxy:unix:/run/php/php7.3-fpm-%domain%.sock|fcgi://localhost/" - - SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0 - - IncludeOptional %home%/%user%/conf/web/s%web_system%.%domain%.conf* - - - From 92e09e8a25f0a1a2a07d485b7cea9e3e6f018b4b Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 16 Jul 2021 21:02:35 +0200 Subject: [PATCH 187/984] Delete PHP-FPM-73-public.tpl --- .../web/apache2/PHP-FPM-73-public.tpl | 38 ------------------- 1 file changed, 38 deletions(-) delete mode 100644 install/debian/11/templates/web/apache2/PHP-FPM-73-public.tpl diff --git a/install/debian/11/templates/web/apache2/PHP-FPM-73-public.tpl b/install/debian/11/templates/web/apache2/PHP-FPM-73-public.tpl deleted file mode 100644 index 892c0d1f..00000000 --- a/install/debian/11/templates/web/apache2/PHP-FPM-73-public.tpl +++ /dev/null @@ -1,38 +0,0 @@ - - - ServerName %domain_idn% - %alias_string% - ServerAdmin %email% - DocumentRoot %docroot%/public - ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ - Alias /vstats/ %home%/%user%/web/%domain%/stats/ - Alias /error/ %home%/%user%/web/%domain%/document_errors/ - #SuexecUserGroup %user% %group% - CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes - CustomLog /var/log/%web_system%/domains/%domain%.log combined - ErrorLog /var/log/%web_system%/domains/%domain%.error.log - - AllowOverride All - - - AllowOverride All - Options +Includes -Indexes +ExecCGI - -# -# RMode config -# RUidGid %user% %group% -# RGroups www-data -# -# -# AssignUserID %user% %group% -# - - - SetHandler "proxy:unix:/run/php/php7.3-fpm-%domain%.sock|fcgi://localhost/" - - SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0 - - IncludeOptional %home%/%user%/conf/web/%web_system%.%domain%.conf* - - - From 19f5439351a9dd8c96b5daef61029ec637abfb42 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 16 Jul 2021 21:02:53 +0200 Subject: [PATCH 188/984] Delete PHP-FPM-73.sh --- .../11/templates/web/apache2/PHP-FPM-73.sh | 92 ------------------- 1 file changed, 92 deletions(-) delete mode 100755 install/debian/11/templates/web/apache2/PHP-FPM-73.sh diff --git a/install/debian/11/templates/web/apache2/PHP-FPM-73.sh b/install/debian/11/templates/web/apache2/PHP-FPM-73.sh deleted file mode 100755 index 72f9cec6..00000000 --- a/install/debian/11/templates/web/apache2/PHP-FPM-73.sh +++ /dev/null @@ -1,92 +0,0 @@ -#!/bin/bash -# Adding php pool conf -user="$1" -domain="$2" -ip="$3" -home_dir="$4" -docroot="$5" - -pool_conf="[$2] - -listen = /run/php/php7.3-fpm-$2.sock -listen.owner = $1 -listen.group = $1 -listen.mode = 0666 - -user = $1 -group = $1 - -pm = ondemand -pm.max_children = 8 -request_terminate_timeout = 90s -pm.max_requests = 4000 -pm.process_idle_timeout = 10s -pm.status_path = /status - -php_admin_value[upload_tmp_dir] = /home/$1/tmp -php_admin_value[session.save_path] = /home/$1/tmp -php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube -php_admin_value[upload_max_filesize] = 80M -php_admin_value[max_execution_time] = 30 -php_admin_value[post_max_size] = 80M -php_admin_value[memory_limit] = 256M -php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" -php_admin_flag[mysql.allow_persistent] = off -php_admin_flag[safe_mode] = off - -env[PATH] = /usr/local/bin:/usr/bin:/bin -env[TMP] = /home/$1/tmp -env[TMPDIR] = /home/$1/tmp -env[TEMP] = /home/$1/tmp -" - -pool_file_56="/etc/php/5.6/fpm/pool.d/$2.conf" -pool_file_70="/etc/php/7.0/fpm/pool.d/$2.conf" -pool_file_71="/etc/php/7.1/fpm/pool.d/$2.conf" -pool_file_72="/etc/php/7.2/fpm/pool.d/$2.conf" -pool_file_73="/etc/php/7.3/fpm/pool.d/$2.conf" -pool_file_74="/etc/php/7.4/fpm/pool.d/$2.conf" - -if [ -f "$pool_file_56" ]; then - rm $pool_file_56 - service php5.6-fpm restart -fi - -if [ -f "$pool_file_70" ]; then - rm $pool_file_70 - service php7.0-fpm restart -fi - -if [ -f "$pool_file_71" ]; then - rm $pool_file_71 - service php7.1-fpm restart -fi - -if [ -f "$pool_file_72" ]; then - rm $pool_file_72 - service php7.2-fpm restart -fi - -write_file=0 -if [ ! -f "$pool_file_73" ]; then - write_file=1 -else - user_count=$(grep -c "/home/$1/" $pool_file_73) - if [ $user_count -eq 0 ]; then - write_file=1 - fi -fi -if [ $write_file -eq 1 ]; then - echo "$pool_conf" > $pool_file_73 - service php7.3-fpm restart -fi -if [ -f "/etc/php/7.3/fpm/pool.d/www.conf" ]; then - rm /etc/php/7.3/fpm/pool.d/www.conf -fi - -if [ -f "$pool_file_74" ]; then - rm $pool_file_74 - service php7.4-fpm restart -fi - -exit 0 From 343135650ba76bacc3fc0b3704e6b0ab1f9c713f Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 16 Jul 2021 21:03:06 +0200 Subject: [PATCH 189/984] Delete PHP-FPM-73.tpl --- .../11/templates/web/apache2/PHP-FPM-73.tpl | 38 ------------------- 1 file changed, 38 deletions(-) delete mode 100644 install/debian/11/templates/web/apache2/PHP-FPM-73.tpl diff --git a/install/debian/11/templates/web/apache2/PHP-FPM-73.tpl b/install/debian/11/templates/web/apache2/PHP-FPM-73.tpl deleted file mode 100644 index 7bec5e73..00000000 --- a/install/debian/11/templates/web/apache2/PHP-FPM-73.tpl +++ /dev/null @@ -1,38 +0,0 @@ - - - ServerName %domain_idn% - %alias_string% - ServerAdmin %email% - DocumentRoot %docroot% - ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ - Alias /vstats/ %home%/%user%/web/%domain%/stats/ - Alias /error/ %home%/%user%/web/%domain%/document_errors/ - #SuexecUserGroup %user% %group% - CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes - CustomLog /var/log/%web_system%/domains/%domain%.log combined - ErrorLog /var/log/%web_system%/domains/%domain%.error.log - - AllowOverride All - - - AllowOverride All - Options +Includes -Indexes +ExecCGI - -# -# RMode config -# RUidGid %user% %group% -# RGroups www-data -# -# -# AssignUserID %user% %group% -# - - - SetHandler "proxy:unix:/run/php/php7.3-fpm-%domain%.sock|fcgi://localhost/" - - SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0 - - IncludeOptional %home%/%user%/conf/web/%web_system%.%domain%.conf* - - - From d946dbe412cf8757068e3daee9a884fad6201077 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 16 Jul 2021 21:03:23 +0200 Subject: [PATCH 190/984] Delete PHP-FPM-73.stpl --- .../11/templates/web/apache2/PHP-FPM-73.stpl | 44 ------------------- 1 file changed, 44 deletions(-) delete mode 100644 install/debian/11/templates/web/apache2/PHP-FPM-73.stpl diff --git a/install/debian/11/templates/web/apache2/PHP-FPM-73.stpl b/install/debian/11/templates/web/apache2/PHP-FPM-73.stpl deleted file mode 100644 index 28224413..00000000 --- a/install/debian/11/templates/web/apache2/PHP-FPM-73.stpl +++ /dev/null @@ -1,44 +0,0 @@ - - - ServerName %domain_idn% - %alias_string% - ServerAdmin %email% - DocumentRoot %sdocroot% - ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ - Alias /vstats/ %home%/%user%/web/%domain%/stats/ - Alias /error/ %home%/%user%/web/%domain%/document_errors/ - #SuexecUserGroup %user% %group% - CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes - CustomLog /var/log/%web_system%/domains/%domain%.log combined - ErrorLog /var/log/%web_system%/domains/%domain%.error.log - - AllowOverride All - - - AllowOverride All - SSLRequireSSL - Options +Includes -Indexes +ExecCGI - - SSLEngine on - SSLVerifyClient none - SSLCertificateFile %ssl_crt% - SSLCertificateKeyFile %ssl_key% - %ssl_ca_str%SSLCertificateChainFile %ssl_ca% -# -# RMode config -# RUidGid %user% %group% -# RGroups www-data -# -# -# AssignUserID %user% %group% -# - - - SetHandler "proxy:unix:/run/php/php7.3-fpm-%domain%.sock|fcgi://localhost/" - - SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0 - - IncludeOptional %home%/%user%/conf/web/s%web_system%.%domain%.conf* - - - From 2c91d72277d7593ac698bab5e832ca57c5aeeb91 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 16 Jul 2021 21:54:43 +0200 Subject: [PATCH 191/984] Debian11 installer --- install/vst-install-debian.sh | 82 +++++++++++++++++++++++++++++++---- 1 file changed, 74 insertions(+), 8 deletions(-) diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index bfab2778..ef16f464 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -19,7 +19,19 @@ release=$(cat /etc/debian_version | tr "." "\n" | head -n1) codename="$(cat /etc/os-release |grep VERSION= |cut -f 2 -d \(|cut -f 1 -d \))" vestacp="$VESTA/install/$VERSION/$release" -if [ "$release" -eq 10 ]; then +if [ "$release" -eq 11 ]; then + software="nginx apache2 apache2-utils + libapache2-mod-fcgid php-fpm php + php-common php-cgi php-mysql php-curl php-fpm php-pgsql awstats + vsftpd proftpd-basic bind9 exim4 exim4-daemon-heavy + clamav-daemon spamassassin dovecot-imapd dovecot-pop3d roundcube-core + roundcube-mysql roundcube-plugins mariadb-server mariadb-common + mariadb-client postgresql postgresql-contrib phppgadmin phpmyadmin mc + flex whois git idn zip sudo bc ftp lsof ntpdate rrdtool quota + e2fslibs bsdutils e2fsprogs curl imagemagick fail2ban dnsutils + bsdmainutils cron vesta vesta-nginx vesta-php expect libmail-dkim-perl + unrar-free vim-common net-tools unzip iptables" +elif [ "$release" -eq 10 ]; then software="nginx apache2 apache2-utils libapache2-mod-fcgid php-fpm php php-common php-cgi php-mysql php-curl php-fpm php-pgsql awstats @@ -515,9 +527,11 @@ check_result $? 'apt-get upgrade failed' # Installing nginx repo apt=/etc/apt/sources.list.d -echo "deb http://nginx.org/packages/debian/ $codename nginx" > $apt/nginx.list -wget http://nginx.org/keys/nginx_signing.key -O /tmp/nginx_signing.key -apt-key add /tmp/nginx_signing.key +if [ "$release" -ne 11 ]; then + echo "deb http://nginx.org/packages/debian/ $codename nginx" > $apt/nginx.list + wget http://nginx.org/keys/nginx_signing.key -O /tmp/nginx_signing.key + apt-key add /tmp/nginx_signing.key +fi # Installing vesta repo echo "deb http://$RHOST/$codename/ $codename vesta" > $apt/vesta.list @@ -801,7 +815,7 @@ if [ "$apache" = 'no' ] && [ "$nginx" = 'yes' ]; then echo "WEB_PORT='80'" >> $VESTA/conf/vesta.conf echo "WEB_SSL_PORT='443'" >> $VESTA/conf/vesta.conf echo "WEB_SSL='openssl'" >> $VESTA/conf/vesta.conf - if [ "$release" -eq 9 ] || [ "$release" -eq 10 ]; then + if [ "$release" -eq 9 ] || [ "$release" -eq 10 ] || [ "$release" -eq 11 ]; then if [ "$phpfpm" = 'yes' ]; then echo "WEB_BACKEND='php-fpm'" >> $VESTA/conf/vesta.conf fi @@ -887,6 +901,22 @@ if [ "$release" -eq 10 ]; then ln -s /usr/local/vesta/data/templates/web/nginx/php-fpm/default.stpl /usr/local/vesta/data/templates/web/nginx/php-fpm/PHP-FPM-73.stpl ln -s /usr/local/vesta/data/templates/web/nginx/php-fpm/default.tpl /usr/local/vesta/data/templates/web/nginx/php-fpm/PHP-FPM-73.tpl fi +if [ "$release" -eq 11 ]; then + # Symlink missing templates + ln -s /usr/local/vesta/data/templates/web/nginx/hosting.sh /usr/local/vesta/data/templates/web/nginx/default.sh + ln -s /usr/local/vesta/data/templates/web/nginx/hosting.tpl /usr/local/vesta/data/templates/web/nginx/default.tpl + ln -s /usr/local/vesta/data/templates/web/nginx/hosting.stpl /usr/local/vesta/data/templates/web/nginx/default.stpl + + ln -s /usr/local/vesta/data/templates/web/apache2/PHP-FPM-74.sh /usr/local/vesta/data/templates/web/apache2/hosting.sh + ln -s /usr/local/vesta/data/templates/web/apache2/PHP-FPM-74.tpl /usr/local/vesta/data/templates/web/apache2/hosting.tpl + ln -s /usr/local/vesta/data/templates/web/apache2/PHP-FPM-74.stpl /usr/local/vesta/data/templates/web/apache2/hosting.stpl + ln -s /usr/local/vesta/data/templates/web/apache2/PHP-FPM-74.sh /usr/local/vesta/data/templates/web/apache2/default.sh + ln -s /usr/local/vesta/data/templates/web/apache2/PHP-FPM-74.tpl /usr/local/vesta/data/templates/web/apache2/default.tpl + ln -s /usr/local/vesta/data/templates/web/apache2/PHP-FPM-74.stpl /usr/local/vesta/data/templates/web/apache2/default.stpl + + ln -s /usr/local/vesta/data/templates/web/nginx/php-fpm/default.stpl /usr/local/vesta/data/templates/web/nginx/php-fpm/PHP-FPM-74.stpl + ln -s /usr/local/vesta/data/templates/web/nginx/php-fpm/default.tpl /usr/local/vesta/data/templates/web/nginx/php-fpm/PHP-FPM-74.tpl +fi # Set nameservers sed -i "s/YOURHOSTNAME1/ns1.$servername/" /usr/local/vesta/data/packages/default.pkg @@ -985,7 +1015,12 @@ fi #----------------------------------------------------------# if [ "$phpfpm" = 'yes' ]; then - if [ "$release" -eq 10 ]; then + if [ "$release" -eq 11 ]; then + cp -f $vestacp/php-fpm/www.conf /etc/php/7.4/fpm/pool.d/www.conf + update-rc.d php7.4-fpm defaults + service php7.4-fpm start + check_result $? "php-fpm start failed" + elif [ "$release" -eq 10 ]; then cp -f $vestacp/php-fpm/www.conf /etc/php/7.3/fpm/pool.d/www.conf update-rc.d php7.3-fpm defaults service php7.3-fpm start @@ -1298,7 +1333,7 @@ if [ "$exim" = 'yes' ] && [ "$mysql" = 'yes' ]; then /etc/roundcube/plugins/password/config.inc.php mysql roundcube < /usr/share/dbconfig-common/data/roundcube/install/mysql chmod a+r /etc/roundcube/main.inc.php - if [ "$release" -eq 8 ] || [ "$release" -eq 9 ] || [ "$release" -eq 10 ]; then + if [ "$release" -eq 8 ] || [ "$release" -eq 9 ] || [ "$release" -eq 10 ] || [ "$release" -eq 11 ]; then mv -f /etc/roundcube/main.inc.php /etc/roundcube/config.inc.php mv -f /etc/roundcube/db.inc.php /etc/roundcube/debian-db-roundcube.php chmod 640 /etc/roundcube/debian-db-roundcube.php @@ -1371,6 +1406,11 @@ fi # Configure Admin User # #----------------------------------------------------------# +if [ "$release" -eq 11 ]; then + # Switching to sha512 + sed -i "s/obscure yescrypt/obscure sha512/g" /etc/pam.d/common-password +fi + # Deleting old admin user if [ ! -z "$(grep ^admin: /etc/passwd)" ] && [ "$force" = 'yes' ]; then chattr -i /home/admin/conf > /dev/null 2>&1 @@ -1474,6 +1514,18 @@ if [ "$release" -eq 10 ]; then /usr/local/vesta/bin/v-change-web-domain-proxy-tpl 'admin' "$servername" 'hosting-webmail-phpmyadmin' 'jpg,jpeg,gif,png,ico,svg,css,zip,tgz,gz,rar,bz2,doc,xls,exe,pdf,ppt,txt,odt,ods,odp,odf,tar,wav,bmp,rtf,js,mp3,avi,mpeg,flv,woff,woff2' 'no' fi fi +if [ "$release" -eq 11 ]; then + if [ -f "/etc/php/7.4/fpm/pool.d/$servername.conf" ]; then + sed -i "/^group =/c\group = www-data" /etc/php/7.4/fpm/pool.d/$servername.conf + sed -i "/max_execution_time/c\php_admin_value[max_execution_time] = 900" /etc/php/7.4/fpm/pool.d/$servername.conf + sed -i "/request_terminate_timeout/c\request_terminate_timeout = 900s" /etc/php/7.4/fpm/pool.d/$servername.conf + sed -i "s|80M|800M|g" /etc/php/7.4/fpm/pool.d/$servername.conf + sed -i "s|256M|512M|g" /etc/php/7.4/fpm/pool.d/$servername.conf + service php7.4-fpm restart + ln -s /var/lib/roundcube /var/lib/roundcube/webmail + /usr/local/vesta/bin/v-change-web-domain-proxy-tpl 'admin' "$servername" 'hosting-webmail-phpmyadmin' 'jpg,jpeg,gif,png,ico,svg,css,zip,tgz,gz,rar,bz2,doc,xls,exe,pdf,ppt,txt,odt,ods,odp,odf,tar,wav,bmp,rtf,js,mp3,avi,mpeg,flv,woff,woff2' 'no' + fi +fi # Adding cron jobs command="sudo $VESTA/bin/v-update-sys-queue disk" @@ -1529,6 +1581,9 @@ fi if [ "$release" -eq 10 ]; then apt-get -y install php7.3-apcu php7.3-mbstring php7.3-bcmath php7.3-curl php7.3-gd php7.3-intl php7.3-mysql php7.3-mysqlnd php7.3-pdo php7.3-soap php7.3-json php7.3-xml php7.3-zip php7.3-memcache php7.3-memcached php7.3-zip fi +if [ "$release" -eq 11 ]; then + apt-get -y install php7.4-apcu php7.4-mbstring php7.4-bcmath php7.4-curl php7.4-gd php7.4-intl php7.4-mysql php7.4-mysqlnd php7.4-pdo php7.4-soap php7.4-json php7.4-xml php7.4-zip php7.4-memcache php7.4-memcached php7.4-zip +fi touch /var/log/php-mail.log chmod a=rw /var/log/php-mail.log @@ -1560,6 +1615,17 @@ if [ "$release" -eq 10 ]; then fi service php7.3-fpm restart fi +if [ "$release" -eq 11 ]; then + if [ $memory -lt 10000000 ]; then + echo "=== Patching php7.4-vps" + patch /etc/php/7.4/fpm/php.ini < $vestacp/php/php7.4-vps.patch + fi + if [ $memory -gt 9999999 ]; then + echo "=== Patching php7.4-dedi" + patch /etc/php/7.4/fpm/php.ini < $vestacp/php/php7.4-dedi.patch + fi + service php7.4-fpm restart +fi # echo "=== Patching rcube_vcard.php" # wget -nv https://c.myvestacp.com/tools/patches/rcube_vcard.patch -O /root/rcube_vcard.patch @@ -1649,7 +1715,7 @@ fi echo "=== Set URL for phpmyadmin" echo "DB_PMA_URL='https://$servername/phpmyadmin/'" >> $VESTA/conf/vesta.conf -if [ "$release" -eq 10 ]; then +if [ "$release" -eq 10 ] || [ "$release" -eq 11 ]; then echo "=== Set max_length_of_MySQL_username=80" fi echo "MAX_DBUSER_LEN=80" >> $VESTA/conf/vesta.conf From 267fc214f09500270bc0f8fd59e506ee0226a8f9 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 17 Jul 2021 08:34:06 +0200 Subject: [PATCH 192/984] Update default.pkg --- install/debian/11/packages/default.pkg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/debian/11/packages/default.pkg b/install/debian/11/packages/default.pkg index de293236..45a34c96 100644 --- a/install/debian/11/packages/default.pkg +++ b/install/debian/11/packages/default.pkg @@ -1,4 +1,4 @@ -WEB_TEMPLATE='PHP-FPM-73' +WEB_TEMPLATE='PHP-FPM-74' PROXY_TEMPLATE='hosting' DNS_TEMPLATE='default' WEB_DOMAINS='unlimited' From 854b0e9ecf6c7c1e943e3d7c89c5769379e9a03e Mon Sep 17 00:00:00 2001 From: myvesta Date: Sat, 17 Jul 2021 09:17:42 +0200 Subject: [PATCH 193/984] Debian11 Apache template chmod a+x --- install/debian/11/templates/web/apache2/PHP-FPM-74-public.sh | 0 install/debian/11/templates/web/apache2/PHP-FPM-74.sh | 0 2 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 install/debian/11/templates/web/apache2/PHP-FPM-74-public.sh mode change 100644 => 100755 install/debian/11/templates/web/apache2/PHP-FPM-74.sh diff --git a/install/debian/11/templates/web/apache2/PHP-FPM-74-public.sh b/install/debian/11/templates/web/apache2/PHP-FPM-74-public.sh old mode 100644 new mode 100755 diff --git a/install/debian/11/templates/web/apache2/PHP-FPM-74.sh b/install/debian/11/templates/web/apache2/PHP-FPM-74.sh old mode 100644 new mode 100755 From e1deee28735f2ecd606b379767fae4b1c13b36f3 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 17 Jul 2021 10:20:56 +0200 Subject: [PATCH 194/984] adding php7.4-imagick to installer --- install/vst-install-debian.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index ef16f464..adcb37b4 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -1576,13 +1576,13 @@ $VESTA/bin/v-add-cron-vesta-autoupdate echo "=== Installing additional PHP libs" if [ "$release" -eq 9 ]; then - apt-get -y install php7.0-apcu php7.0-mbstring php7.0-bcmath php7.0-curl php7.0-gd php7.0-intl php7.0-mcrypt php7.0-mysql php7.0-mysqlnd php7.0-pdo php7.0-soap php7.0-json php7.0-xml php7.0-zip php7.0-memcache php7.0-memcached php7.0-zip + apt-get -y install php7.0-apcu php7.0-mbstring php7.0-bcmath php7.0-curl php7.0-gd php7.0-intl php7.0-mcrypt php7.0-mysql php7.0-mysqlnd php7.0-pdo php7.0-soap php7.0-json php7.0-xml php7.0-zip php7.0-memcache php7.0-memcached php7.0-zip php7.0-imagick fi if [ "$release" -eq 10 ]; then - apt-get -y install php7.3-apcu php7.3-mbstring php7.3-bcmath php7.3-curl php7.3-gd php7.3-intl php7.3-mysql php7.3-mysqlnd php7.3-pdo php7.3-soap php7.3-json php7.3-xml php7.3-zip php7.3-memcache php7.3-memcached php7.3-zip + apt-get -y install php7.3-apcu php7.3-mbstring php7.3-bcmath php7.3-curl php7.3-gd php7.3-intl php7.3-mysql php7.3-mysqlnd php7.3-pdo php7.3-soap php7.3-json php7.3-xml php7.3-zip php7.3-memcache php7.3-memcached php7.3-zip php7.3-imagick fi if [ "$release" -eq 11 ]; then - apt-get -y install php7.4-apcu php7.4-mbstring php7.4-bcmath php7.4-curl php7.4-gd php7.4-intl php7.4-mysql php7.4-mysqlnd php7.4-pdo php7.4-soap php7.4-json php7.4-xml php7.4-zip php7.4-memcache php7.4-memcached php7.4-zip + apt-get -y install php7.4-apcu php7.4-mbstring php7.4-bcmath php7.4-curl php7.4-gd php7.4-intl php7.4-mysql php7.4-mysqlnd php7.4-pdo php7.4-soap php7.4-json php7.4-xml php7.4-zip php7.4-memcache php7.4-memcached php7.4-zip php7.4-imagick fi touch /var/log/php-mail.log From 70ee71e64a55d59f3ce1ccd5587ffcb757f7130c Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 17 Jul 2021 11:01:06 +0200 Subject: [PATCH 195/984] phpmyadmin install steps for deb11 --- install/vst-install-debian.sh | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index adcb37b4..a139c4ae 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -1164,6 +1164,22 @@ if [ "$mysql" = 'yes' ]; then blowfish=$(gen_pass) echo "\$cfg['blowfish_secret'] = '$blowfish';" >> /etc/phpmyadmin/config.inc.php fi + if [ "$release" -eq 11 ]; then + # Set config and log directory + sed -i "s|define('CONFIG_DIR', '');|define('CONFIG_DIR', '/etc/phpmyadmin/');|" /usr/share/phpmyadmin/libraries/vendor_config.php + sed -i "s|define('TEMP_DIR', './tmp/');|define('TEMP_DIR', '/var/lib/phpmyadmin/tmp/');|" /usr/share/phpmyadmin/libraries/vendor_config.php + + # Create temporary folder and change permission + mkdir /usr/share/phpmyadmin/tmp + chmod 777 /usr/share/phpmyadmin/tmp + + mkdir /root/phpmyadmin + wget -nv -O /root/phpmyadmin/pma.sh http://c.myvestacp.com/debian/11/pma/pma.sh + wget -nv -O /root/phpmyadmin/create_tables.sql http://c.myvestacp.com/debian/11/pma/create_tables.sql + bash /root/phpmyadmin/pma.sh + blowfish=$(gen_pass) + echo "\$cfg['blowfish_secret'] = '$blowfish';" >> /etc/phpmyadmin/config.inc.php + fi fi #----------------------------------------------------------# From eba0f774788bfec31da4643a9a5e7efd900c609d Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 17 Jul 2021 12:02:04 +0200 Subject: [PATCH 196/984] deb11 installer: restart nginx after set hosting-webmail-phpmyadmin template --- install/vst-install-debian.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index a139c4ae..8b83ae87 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -1539,7 +1539,7 @@ if [ "$release" -eq 11 ]; then sed -i "s|256M|512M|g" /etc/php/7.4/fpm/pool.d/$servername.conf service php7.4-fpm restart ln -s /var/lib/roundcube /var/lib/roundcube/webmail - /usr/local/vesta/bin/v-change-web-domain-proxy-tpl 'admin' "$servername" 'hosting-webmail-phpmyadmin' 'jpg,jpeg,gif,png,ico,svg,css,zip,tgz,gz,rar,bz2,doc,xls,exe,pdf,ppt,txt,odt,ods,odp,odf,tar,wav,bmp,rtf,js,mp3,avi,mpeg,flv,woff,woff2' 'no' + /usr/local/vesta/bin/v-change-web-domain-proxy-tpl 'admin' "$servername" 'hosting-webmail-phpmyadmin' 'jpg,jpeg,gif,png,ico,svg,css,zip,tgz,gz,rar,bz2,doc,xls,exe,pdf,ppt,txt,odt,ods,odp,odf,tar,wav,bmp,rtf,js,mp3,avi,mpeg,flv,woff,woff2' 'yes' fi fi From 9791d0b3b3d0d8dd3e835f0b9e1ad1310f0a8531 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 17 Jul 2021 12:26:14 +0200 Subject: [PATCH 197/984] detecting mariadb in v-list-sys-services --- bin/v-list-sys-services | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/bin/v-list-sys-services b/bin/v-list-sys-services index 3718c171..93f01a11 100755 --- a/bin/v-list-sys-services +++ b/bin/v-list-sys-services @@ -220,6 +220,11 @@ if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'remote' ]; then proc_name='' service="$db" if [ "$service" = 'mysql' ]; then + release=$(cat /etc/debian_version | tr "." "\n" | head -n1) + if [ "$release" -eq 11 ]; then + service='mariadb' + proc_name='mariadbd' + fi if [ -d "/etc/sysconfig" ]; then service='mysqld' proc_name='mysqld' From a2572f44dfc9b8bc86c269e295e83f217ad4933a Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 17 Jul 2021 12:58:54 +0200 Subject: [PATCH 198/984] deb11 installer: systemctl enable proftpd --- install/vst-install-debian.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index 8b83ae87..e67aa4f2 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -1079,6 +1079,12 @@ if [ "$proftpd" = 'yes' ]; then update-rc.d proftpd defaults service proftpd start check_result $? "proftpd start failed" + if [ "$release" -eq 11 ]; then + unit_files="$(systemctl list-unit-files |grep proftpd)" + if [[ "$unit_files" =~ "disabled" ]]; then + systemctl enable proftpd + fi + fi fi From f80cbe955fe827989b57a5206954ad63ec90ccbb Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 17 Jul 2021 13:22:51 +0200 Subject: [PATCH 199/984] Update v-change-vesta-port --- bin/v-change-vesta-port | 1 + 1 file changed, 1 insertion(+) diff --git a/bin/v-change-vesta-port b/bin/v-change-vesta-port index 09cff31d..620d9324 100755 --- a/bin/v-change-vesta-port +++ b/bin/v-change-vesta-port @@ -47,6 +47,7 @@ fi sed -i "s|'$oldport'|'$port'|g" $VESTA/data/firewall/rules.conf $VESTA/bin/v-update-firewall systemctl restart fail2ban.service +sed -i "s|'$oldport'|'$port'|g" /etc/iptables.rules systemctl restart vesta #----------------------------------------------------------# From a839f643e7341da5360fc5c25c8c2dfdfbf26f13 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 17 Jul 2021 13:23:59 +0200 Subject: [PATCH 200/984] Update v-change-vesta-port --- bin/v-change-vesta-port | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-change-vesta-port b/bin/v-change-vesta-port index 620d9324..3f386654 100755 --- a/bin/v-change-vesta-port +++ b/bin/v-change-vesta-port @@ -47,7 +47,7 @@ fi sed -i "s|'$oldport'|'$port'|g" $VESTA/data/firewall/rules.conf $VESTA/bin/v-update-firewall systemctl restart fail2ban.service -sed -i "s|'$oldport'|'$port'|g" /etc/iptables.rules +sed -i "s| $oldport | $port |g" /etc/iptables.rules systemctl restart vesta #----------------------------------------------------------# From 20914184129a394bbd8bca7e275751b90544f057 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 17 Jul 2021 15:06:12 +0200 Subject: [PATCH 201/984] Create mail account folder (mailbox) --- bin/v-add-mail-account | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bin/v-add-mail-account b/bin/v-add-mail-account index 44925680..1675d5d7 100755 --- a/bin/v-add-mail-account +++ b/bin/v-add-mail-account @@ -63,6 +63,10 @@ if [[ "$MAIL_SYSTEM" =~ exim ]]; then echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd fi +# Create mail account folder (mailbox) +mkdir $HOMEDIR/$user/mail/$domain/$account +chown $user:mail $HOMEDIR/$user/mail/$domain/$account +chmod 700 $HOMEDIR/$user/mail/$domain/$account #----------------------------------------------------------# # Vesta # From 1a6785eb704322cf66fc93155939d4143c43d81f Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 17 Jul 2021 15:12:11 +0200 Subject: [PATCH 202/984] Exim4 config adaption for Exim4.94+ Many many thanks to @madeITBelgium Adaptions taken from https://github.com/madeITBelgium/vesta/blob/master/install/os-configs/rhel/general/exim/exim.conf --- install/debian/11/exim/exim4.conf.template | 36 +++++++++++----------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/install/debian/11/exim/exim4.conf.template b/install/debian/11/exim/exim4.conf.template index 7cc13c36..fe92680f 100644 --- a/install/debian/11/exim/exim4.conf.template +++ b/install/debian/11/exim/exim4.conf.template @@ -54,7 +54,7 @@ ignore_bounce_errors_after = 2d timeout_frozen_after = 7d DKIM_DOMAIN = ${lc:${domain:$h_from:}} -DKIM_FILE = /etc/exim4/domains/${lc:${domain:$h_from:}}/dkim.pem +DKIM_FILE = /etc/exim4/domains/${lookup{${lc:${domain:$h_from:}}}dsearch{/etc/exim4/domains/}}/dkim.pem DKIM_PRIVATE_KEY = ${if exists{DKIM_FILE}{DKIM_FILE}{0}} @@ -241,7 +241,7 @@ dnslookup: localuser_spam: driver = accept transport = local_spam_delivery - condition = ${if eq {${if match{$h_X-Spam-Status:}{\N^Yes\N}{yes}{no}}} {${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}{yes}{no_such_user}}}} + condition = ${if eq {${if match{$h_X-Spam-Status:}{\N^Yes\N}{yes}{no}}} {${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}{yes}{no_such_user}}}} userforward: driver = redirect @@ -264,8 +264,8 @@ procmail: autoreplay: driver = accept - require_files = /etc/exim4/domains/$domain/autoreply.${local_part}.msg - condition = ${if exists{/etc/exim4/domains/$domain/autoreply.${local_part}.msg}{yes}{no}} + require_files = /etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/autoreply.${local_part}.msg + condition = ${if exists{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/autoreply.${local_part}.msg}{yes}{no}} retry_use_local_part transport = userautoreply unseen @@ -273,7 +273,7 @@ autoreplay: aliases: driver = redirect headers_add = X-redirected: yes - data = ${extract{1}{:}{${lookup{$local_part@$domain}lsearch{/etc/exim4/domains/$domain/aliases}}}} + data = ${extract{1}{:}{${lookup{$local_part@$domain}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/aliases}}}} require_files = /etc/exim4/domains/$domain/aliases redirect_router = dnslookup pipe_transport = address_pipe @@ -282,25 +282,25 @@ aliases: localuser_fwd_only: driver = accept transport = devnull - condition = ${if exists{/etc/exim4/domains/$domain/fwd_only}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/fwd_only}{true}{false}}}} + condition = ${if exists{/etc/exim4/domains/$domain/fwd_only}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/fwd_only}{true}{false}}}} localuser: driver = accept transport = local_delivery - condition = ${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}{true}{false}} + condition = ${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}{true}{false}} catchall: driver = redirect headers_add = X-redirected: yes require_files = /etc/exim4/domains/$domain/aliases - data = ${extract{1}{:}{${lookup{*@$domain}lsearch{/etc/exim4/domains/$domain/aliases}}}} + data = ${extract{1}{:}{${lookup{*@$domain}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/aliases}}}} file_transport = local_delivery redirect_router = dnslookup terminate_alias: driver = accept transport = devnull - condition = ${lookup{$local_part@$domain}lsearch{/etc/exim4/domains/$domain/aliases}{true}{false}} + condition = ${lookup{$local_part@$domain}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/aliases}{true}{false}} @@ -333,7 +333,7 @@ local_delivery: driver = appendfile maildir_format maildir_use_size_file - user = ${extract{2}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}}}} + user = ${extract{2}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}} group = mail create_directory directory_mode = 770 @@ -342,15 +342,15 @@ local_delivery: delivery_date_add envelope_to_add return_path_add - directory = "${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}}}}/mail/$domain/$local_part" - quota = ${extract{6}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}}}}M + directory = "${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}}/mail/${lookup{$domain}dsearch{/etc/exim4/domains/}}/${lookup{$local_part}dsearch{${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}}/mail/${lookup{$domain}dsearch{/etc/exim4/domains/}}}}" + quota = ${extract{6}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}}M quota_warn_threshold = 75% local_spam_delivery: driver = appendfile maildir_format maildir_use_size_file - user = ${extract{2}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}}}} + user = ${extract{2}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}} group = mail create_directory directory_mode = 770 @@ -359,9 +359,9 @@ local_spam_delivery: delivery_date_add envelope_to_add return_path_add - directory = "${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}}}}/mail/$domain/$local_part/.Spam" - quota = ${extract{6}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}}}}M - quota_directory = "${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}}}}/mail/$domain/$local_part" + directory = "${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}}/mail/${lookup{$domain}dsearch{/etc/exim4/domains/}}/${lookup{$local_part}dsearch{${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}}/mail/${lookup{$domain}dsearch{/etc/exim4/domains/}}}}/.Spam" + quota = ${extract{6}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}}M + quota_directory = "${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}}/mail/${lookup{$domain}dsearch{/etc/exim4/domains/}}/${lookup{$local_part}dsearch{${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}}/mail/${lookup{$domain}dsearch{/etc/exim4/domains/}}}}" quota_warn_threshold = 75% address_pipe: @@ -379,8 +379,8 @@ address_reply: userautoreply: driver = autoreply - file = /etc/exim4/domains/$domain/autoreply.${local_part}.msg - from = "${local_part}@${domain}" + file = /etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/autoreply.${lookup{$local_part}dsearch{${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}}/mail/${lookup{$domain}dsearch{/etc/exim4/domains/}}}}.msg + from = "${lookup{$local_part}dsearch{${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}}/mail/${lookup{$domain}dsearch{/etc/exim4/domains/}}}}@${lookup{$domain}dsearch{/etc/exim4/domains/}}" headers = Content-Type: text/plain; charset=utf-8;\nContent-Transfer-Encoding: 8bit subject = "${if def:h_Subject: {Autoreply: \"${rfc2047:$h_Subject:}\"} {Autoreply Message}}" to = "${sender_address}" From 68b6ed0c33a7fbbe94c1b25a9629f4624c866575 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 17 Jul 2021 16:41:02 +0200 Subject: [PATCH 203/984] vesta compiling script for deb11 --- src/deb/vesta_compile.sh | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/src/deb/vesta_compile.sh b/src/deb/vesta_compile.sh index c21bdc90..026e3812 100644 --- a/src/deb/vesta_compile.sh +++ b/src/deb/vesta_compile.sh @@ -7,8 +7,8 @@ build_deb_package=1 add_deb_to_apt_repo=0 -TARGET_DEB_NAME='buster' -TARGET_DEB_VER='10' +TARGET_DEB_NAME='bullseye' +TARGET_DEB_VER='11' run_apt_update_and_install=1 wait_to_press_enter=1 @@ -31,8 +31,8 @@ fi MAINTAINER_EMAIL='info@myvestacp.com' -TARGET_DEB_NAME_MAIN='buster' -TARGET_DEB_VER_MAIN='10' +TARGET_DEB_NAME_MAIN='bullseye' +TARGET_DEB_VER_MAIN='11' # Set compiling directory BUILD_DIR="/usr/src/$TARGET_DEB_NAME" @@ -248,6 +248,7 @@ EOF press_enter "*** please copy above generated key to your clipboard and then paste it after pressing enter now ***" vi $PATH_OF_APT_REPO_ROOT/deb_signing.key cp $PATH_OF_APT_REPO_ROOT/deb_signing.key $PATH_OF_C_WEB_FOLDER_ROOT/deb_signing.key + cp $PATH_OF_APT_REPO_ROOT/deb_signing.key $PATH_OF_C_WEB_FOLDER_ROOT/debian/11/deb_signing.key cp $PATH_OF_APT_REPO_ROOT/deb_signing.key $PATH_OF_C_WEB_FOLDER_ROOT/debian/10/deb_signing.key cp $PATH_OF_APT_REPO_ROOT/deb_signing.key $PATH_OF_C_WEB_FOLDER_ROOT/debian/9/deb_signing.key cp $PATH_OF_APT_REPO_ROOT/deb_signing.key $PATH_OF_C_WEB_FOLDER_ROOT/debian/8/deb_signing.key @@ -380,7 +381,35 @@ if [ "$CWEB_B" = true ]; then tar -czf dovecot.tar.gz dovecot/ echo "=== All done for Debian10" ########## + cd $PATH_OF_C_WEB_FOLDER_ROOT/debian/11 + + if [ -f "packages.tar.gz" ]; then + rm packages.tar.gz + fi + tar -czf packages.tar.gz packages/ + + if [ -f "templates.tar.gz" ]; then + rm templates.tar.gz + fi + tar -czf templates.tar.gz templates/ + + if [ -f "firewall.tar.gz" ]; then + rm firewall.tar.gz + fi + tar -czf firewall.tar.gz firewall/ + if [ -f "fail2ban.tar.gz" ]; then + rm fail2ban.tar.gz + fi + tar -czf fail2ban.tar.gz fail2ban/ + + if [ -f "dovecot.tar.gz" ]; then + rm dovecot.tar.gz + fi + tar -czf dovecot.tar.gz dovecot/ + echo "=== All done for Debian11" + ########## + cp /root/vesta/install/vst-install-debian.sh $PATH_OF_C_WEB_FOLDER_ROOT/vst-install-debian.sh mkdir $PATH_OF_C_WEB_FOLDER_ROOT/tools From 7f428046572be5487d8d6fcdc407a7f653d46f89 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 17 Jul 2021 16:57:23 +0200 Subject: [PATCH 204/984] Update v-update-sys-vesta-all --- bin/v-update-sys-vesta-all | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-update-sys-vesta-all b/bin/v-update-sys-vesta-all index 5a42a0c0..cd3e677f 100755 --- a/bin/v-update-sys-vesta-all +++ b/bin/v-update-sys-vesta-all @@ -23,7 +23,7 @@ source $VESTA/conf/vesta.conf # Checking official latest version -latest=$(wget -q -T 10 -t 1 http://c.myvestacp.com/latest.txt?check_latest -O -) +latest=$(wget -q -T 10 -t 1 http://c.myvestacp.com/latest.txt?check_latest_version -O -) # Starting update loop for package in vesta vesta-nginx vesta-php; do From 31564ff06abd7da36755db64d2c22390791f44df Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 17 Jul 2021 16:57:59 +0200 Subject: [PATCH 205/984] Update latest.txt --- src/deb/latest.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/latest.txt b/src/deb/latest.txt index fa6171f7..efd44125 100644 --- a/src/deb/latest.txt +++ b/src/deb/latest.txt @@ -1 +1 @@ -vesta-0.9.8-26-48 +vesta-0.9.8-26-49 From de4f13b042f8c75880197b5bc5254687b74705a8 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 17 Jul 2021 17:00:22 +0200 Subject: [PATCH 206/984] Update Changelog.md --- Changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Changelog.md b/Changelog.md index 0605428d..647187e0 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,7 @@ +Version 0.9.8-26-49 [17-Jul-2021] +================================================== +* Support for Debian 11 + Version 0.9.8-26-48 [11-Jul-2021] ================================================== * Fixed two bugs in LetsEncrypt generating process From 083954af41ecae34ac4a9c5071127f4c95669566 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 19 Jul 2021 14:26:26 +0200 Subject: [PATCH 207/984] Create www.conf --- .../tools/default-pool.d/7.2/www.conf | 424 ++++++++++++++++++ 1 file changed, 424 insertions(+) create mode 100644 src/deb/for-download/tools/default-pool.d/7.2/www.conf diff --git a/src/deb/for-download/tools/default-pool.d/7.2/www.conf b/src/deb/for-download/tools/default-pool.d/7.2/www.conf new file mode 100644 index 00000000..86aca4cc --- /dev/null +++ b/src/deb/for-download/tools/default-pool.d/7.2/www.conf @@ -0,0 +1,424 @@ +; Start a new pool named 'www'. +; the variable $pool can be used in any directive and will be replaced by the +; pool name ('www' here) +[www] + +; Per pool prefix +; It only applies on the following directives: +; - 'access.log' +; - 'slowlog' +; - 'listen' (unixsocket) +; - 'chroot' +; - 'chdir' +; - 'php_values' +; - 'php_admin_values' +; When not set, the global prefix (or /usr) applies instead. +; Note: This directive can also be relative to the global prefix. +; Default Value: none +;prefix = /path/to/pools/$pool + +; Unix user/group of processes +; Note: The user is mandatory. If the group is not set, the default user's group +; will be used. +user = www-data +group = www-data + +; The address on which to accept FastCGI requests. +; Valid syntaxes are: +; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on +; a specific port; +; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on +; a specific port; +; 'port' - to listen on a TCP socket to all addresses +; (IPv6 and IPv4-mapped) on a specific port; +; '/path/to/unix/socket' - to listen on a unix socket. +; Note: This value is mandatory. +listen = /run/php/php7.2-fpm.sock + +; Set listen(2) backlog. +; Default Value: 511 (-1 on FreeBSD and OpenBSD) +;listen.backlog = 511 + +; Set permissions for unix socket, if one is used. In Linux, read/write +; permissions must be set in order to allow connections from a web server. Many +; BSD-derived systems allow connections regardless of permissions. The owner +; and group can be specified either by name or by their numeric IDs. +; Default Values: user and group are set as the running user +; mode is set to 0660 +listen.owner = www-data +listen.group = www-data +;listen.mode = 0660 +; When POSIX Access Control Lists are supported you can set them using +; these options, value is a comma separated list of user/group names. +; When set, listen.owner and listen.group are ignored +;listen.acl_users = +;listen.acl_groups = + +; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. +; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original +; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address +; must be separated by a comma. If this value is left blank, connections will be +; accepted from any ip address. +; Default Value: any +;listen.allowed_clients = 127.0.0.1 + +; Specify the nice(2) priority to apply to the pool processes (only if set) +; The value can vary from -19 (highest priority) to 20 (lower priority) +; Note: - It will only work if the FPM master process is launched as root +; - The pool processes will inherit the master process priority +; unless it specified otherwise +; Default Value: no set +; process.priority = -19 + +; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user +; or group is differrent than the master process user. It allows to create process +; core dump and ptrace the process for the pool user. +; Default Value: no +; process.dumpable = yes + +; Choose how the process manager will control the number of child processes. +; Possible Values: +; static - a fixed number (pm.max_children) of child processes; +; dynamic - the number of child processes are set dynamically based on the +; following directives. With this process management, there will be +; always at least 1 children. +; pm.max_children - the maximum number of children that can +; be alive at the same time. +; pm.start_servers - the number of children created on startup. +; pm.min_spare_servers - the minimum number of children in 'idle' +; state (waiting to process). If the number +; of 'idle' processes is less than this +; number then some children will be created. +; pm.max_spare_servers - the maximum number of children in 'idle' +; state (waiting to process). If the number +; of 'idle' processes is greater than this +; number then some children will be killed. +; ondemand - no children are created at startup. Children will be forked when +; new requests will connect. The following parameter are used: +; pm.max_children - the maximum number of children that +; can be alive at the same time. +; pm.process_idle_timeout - The number of seconds after which +; an idle process will be killed. +; Note: This value is mandatory. +pm = dynamic + +; The number of child processes to be created when pm is set to 'static' and the +; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. +; This value sets the limit on the number of simultaneous requests that will be +; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. +; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP +; CGI. The below defaults are based on a server without much resources. Don't +; forget to tweak pm.* to fit your needs. +; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' +; Note: This value is mandatory. +pm.max_children = 5 + +; The number of child processes created on startup. +; Note: Used only when pm is set to 'dynamic' +; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 +pm.start_servers = 2 + +; The desired minimum number of idle server processes. +; Note: Used only when pm is set to 'dynamic' +; Note: Mandatory when pm is set to 'dynamic' +pm.min_spare_servers = 1 + +; The desired maximum number of idle server processes. +; Note: Used only when pm is set to 'dynamic' +; Note: Mandatory when pm is set to 'dynamic' +pm.max_spare_servers = 3 + +; The number of seconds after which an idle process will be killed. +; Note: Used only when pm is set to 'ondemand' +; Default Value: 10s +;pm.process_idle_timeout = 10s; + +; The number of requests each child process should execute before respawning. +; This can be useful to work around memory leaks in 3rd party libraries. For +; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. +; Default Value: 0 +;pm.max_requests = 500 + +; The URI to view the FPM status page. If this value is not set, no URI will be +; recognized as a status page. It shows the following informations: +; pool - the name of the pool; +; process manager - static, dynamic or ondemand; +; start time - the date and time FPM has started; +; start since - number of seconds since FPM has started; +; accepted conn - the number of request accepted by the pool; +; listen queue - the number of request in the queue of pending +; connections (see backlog in listen(2)); +; max listen queue - the maximum number of requests in the queue +; of pending connections since FPM has started; +; listen queue len - the size of the socket queue of pending connections; +; idle processes - the number of idle processes; +; active processes - the number of active processes; +; total processes - the number of idle + active processes; +; max active processes - the maximum number of active processes since FPM +; has started; +; max children reached - number of times, the process limit has been reached, +; when pm tries to start more children (works only for +; pm 'dynamic' and 'ondemand'); +; Value are updated in real time. +; Example output: +; pool: www +; process manager: static +; start time: 01/Jul/2011:17:53:49 +0200 +; start since: 62636 +; accepted conn: 190460 +; listen queue: 0 +; max listen queue: 1 +; listen queue len: 42 +; idle processes: 4 +; active processes: 11 +; total processes: 15 +; max active processes: 12 +; max children reached: 0 +; +; By default the status page output is formatted as text/plain. Passing either +; 'html', 'xml' or 'json' in the query string will return the corresponding +; output syntax. Example: +; http://www.foo.bar/status +; http://www.foo.bar/status?json +; http://www.foo.bar/status?html +; http://www.foo.bar/status?xml +; +; By default the status page only outputs short status. Passing 'full' in the +; query string will also return status for each pool process. +; Example: +; http://www.foo.bar/status?full +; http://www.foo.bar/status?json&full +; http://www.foo.bar/status?html&full +; http://www.foo.bar/status?xml&full +; The Full status returns for each process: +; pid - the PID of the process; +; state - the state of the process (Idle, Running, ...); +; start time - the date and time the process has started; +; start since - the number of seconds since the process has started; +; requests - the number of requests the process has served; +; request duration - the duration in µs of the requests; +; request method - the request method (GET, POST, ...); +; request URI - the request URI with the query string; +; content length - the content length of the request (only with POST); +; user - the user (PHP_AUTH_USER) (or '-' if not set); +; script - the main script called (or '-' if not set); +; last request cpu - the %cpu the last request consumed +; it's always 0 if the process is not in Idle state +; because CPU calculation is done when the request +; processing has terminated; +; last request memory - the max amount of memory the last request consumed +; it's always 0 if the process is not in Idle state +; because memory calculation is done when the request +; processing has terminated; +; If the process is in Idle state, then informations are related to the +; last request the process has served. Otherwise informations are related to +; the current request being served. +; Example output: +; ************************ +; pid: 31330 +; state: Running +; start time: 01/Jul/2011:17:53:49 +0200 +; start since: 63087 +; requests: 12808 +; request duration: 1250261 +; request method: GET +; request URI: /test_mem.php?N=10000 +; content length: 0 +; user: - +; script: /home/fat/web/docs/php/test_mem.php +; last request cpu: 0.00 +; last request memory: 0 +; +; Note: There is a real-time FPM status monitoring sample web page available +; It's available in: /usr/share/php/7.2/fpm/status.html +; +; Note: The value must start with a leading slash (/). The value can be +; anything, but it may not be a good idea to use the .php extension or it +; may conflict with a real PHP file. +; Default Value: not set +;pm.status_path = /status + +; The ping URI to call the monitoring page of FPM. If this value is not set, no +; URI will be recognized as a ping page. This could be used to test from outside +; that FPM is alive and responding, or to +; - create a graph of FPM availability (rrd or such); +; - remove a server from a group if it is not responding (load balancing); +; - trigger alerts for the operating team (24/7). +; Note: The value must start with a leading slash (/). The value can be +; anything, but it may not be a good idea to use the .php extension or it +; may conflict with a real PHP file. +; Default Value: not set +;ping.path = /ping + +; This directive may be used to customize the response of a ping request. The +; response is formatted as text/plain with a 200 response code. +; Default Value: pong +;ping.response = pong + +; The access log file +; Default: not set +;access.log = log/$pool.access.log + +; The access log format. +; The following syntax is allowed +; %%: the '%' character +; %C: %CPU used by the request +; it can accept the following format: +; - %{user}C for user CPU only +; - %{system}C for system CPU only +; - %{total}C for user + system CPU (default) +; %d: time taken to serve the request +; it can accept the following format: +; - %{seconds}d (default) +; - %{miliseconds}d +; - %{mili}d +; - %{microseconds}d +; - %{micro}d +; %e: an environment variable (same as $_ENV or $_SERVER) +; it must be associated with embraces to specify the name of the env +; variable. Some exemples: +; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e +; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e +; %f: script filename +; %l: content-length of the request (for POST request only) +; %m: request method +; %M: peak of memory allocated by PHP +; it can accept the following format: +; - %{bytes}M (default) +; - %{kilobytes}M +; - %{kilo}M +; - %{megabytes}M +; - %{mega}M +; %n: pool name +; %o: output header +; it must be associated with embraces to specify the name of the header: +; - %{Content-Type}o +; - %{X-Powered-By}o +; - %{Transfert-Encoding}o +; - .... +; %p: PID of the child that serviced the request +; %P: PID of the parent of the child that serviced the request +; %q: the query string +; %Q: the '?' character if query string exists +; %r: the request URI (without the query string, see %q and %Q) +; %R: remote IP address +; %s: status (response code) +; %t: server time the request was received +; it can accept a strftime(3) format: +; %d/%b/%Y:%H:%M:%S %z (default) +; The strftime(3) format must be encapsuled in a %{}t tag +; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t +; %T: time the log has been written (the request has finished) +; it can accept a strftime(3) format: +; %d/%b/%Y:%H:%M:%S %z (default) +; The strftime(3) format must be encapsuled in a %{}t tag +; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t +; %u: remote user +; +; Default: "%R - %u %t \"%m %r\" %s" +;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" + +; The log file for slow requests +; Default Value: not set +; Note: slowlog is mandatory if request_slowlog_timeout is set +;slowlog = log/$pool.log.slow + +; The timeout for serving a single request after which a PHP backtrace will be +; dumped to the 'slowlog' file. A value of '0s' means 'off'. +; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) +; Default Value: 0 +;request_slowlog_timeout = 0 + +; Depth of slow log stack trace. +; Default Value: 20 +;request_slowlog_trace_depth = 20 + +; The timeout for serving a single request after which the worker process will +; be killed. This option should be used when the 'max_execution_time' ini option +; does not stop script execution for some reason. A value of '0' means 'off'. +; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) +; Default Value: 0 +;request_terminate_timeout = 0 + +; Set open file descriptor rlimit. +; Default Value: system defined value +;rlimit_files = 1024 + +; Set max core size rlimit. +; Possible Values: 'unlimited' or an integer greater or equal to 0 +; Default Value: system defined value +;rlimit_core = 0 + +; Chroot to this directory at the start. This value must be defined as an +; absolute path. When this value is not set, chroot is not used. +; Note: you can prefix with '$prefix' to chroot to the pool prefix or one +; of its subdirectories. If the pool prefix is not set, the global prefix +; will be used instead. +; Note: chrooting is a great security feature and should be used whenever +; possible. However, all PHP paths will be relative to the chroot +; (error_log, sessions.save_path, ...). +; Default Value: not set +;chroot = + +; Chdir to this directory at the start. +; Note: relative path can be used. +; Default Value: current directory or / when chroot +;chdir = /var/www + +; Redirect worker stdout and stderr into main error log. If not set, stdout and +; stderr will be redirected to /dev/null according to FastCGI specs. +; Note: on highloaded environement, this can cause some delay in the page +; process time (several ms). +; Default Value: no +;catch_workers_output = yes + +; Clear environment in FPM workers +; Prevents arbitrary environment variables from reaching FPM worker processes +; by clearing the environment in workers before env vars specified in this +; pool configuration are added. +; Setting to "no" will make all environment variables available to PHP code +; via getenv(), $_ENV and $_SERVER. +; Default Value: yes +;clear_env = no + +; Limits the extensions of the main script FPM will allow to parse. This can +; prevent configuration mistakes on the web server side. You should only limit +; FPM to .php extensions to prevent malicious users to use other extensions to +; execute php code. +; Note: set an empty value to allow all extensions. +; Default Value: .php +;security.limit_extensions = .php .php3 .php4 .php5 .php7 + +; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from +; the current environment. +; Default Value: clean env +;env[HOSTNAME] = $HOSTNAME +;env[PATH] = /usr/local/bin:/usr/bin:/bin +;env[TMP] = /tmp +;env[TMPDIR] = /tmp +;env[TEMP] = /tmp + +; Additional php.ini defines, specific to this pool of workers. These settings +; overwrite the values previously defined in the php.ini. The directives are the +; same as the PHP SAPI: +; php_value/php_flag - you can set classic ini defines which can +; be overwritten from PHP call 'ini_set'. +; php_admin_value/php_admin_flag - these directives won't be overwritten by +; PHP call 'ini_set' +; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. + +; Defining 'extension' will load the corresponding shared extension from +; extension_dir. Defining 'disable_functions' or 'disable_classes' will not +; overwrite previously defined php.ini values, but will append the new value +; instead. + +; Note: path INI options can be relative and will be expanded with the prefix +; (pool, global or /usr) + +; Default Value: nothing is defined by default except the values in php.ini and +; specified at startup with the -d argument +;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com +;php_flag[display_errors] = off +;php_admin_value[error_log] = /var/log/fpm-php.www.log +;php_admin_flag[log_errors] = on +;php_admin_value[memory_limit] = 32M From 54fab10b525e900480e6e13d4d5a1a7518680589 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 27 Jul 2021 15:27:40 +0200 Subject: [PATCH 208/984] Checking custom OpenSSH port Taken from @HestiaCP --- bin/v-update-firewall | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/bin/v-update-firewall b/bin/v-update-firewall index 183522a7..d3a46686 100755 --- a/bin/v-update-firewall +++ b/bin/v-update-firewall @@ -52,6 +52,13 @@ if [ $? -ne 0 ]; then fi +# Checking custom OpenSSH port +# Taken from HestiaCP +sshport=$(grep '^Port ' /etc/ssh/sshd_config | head -1 | cut -d ' ' -f 2) +if [[ "$sshport" =~ ^[0-9]+$ ]] && [ "$sshport" -ne "22" ]; then + sed -i "s/PORT='22'/PORT=\'$sshport\'/" $rules +fi + # Creating temporary file tmp=$(mktemp) From bc3ac1d9930775594a9502ca7c81afe52550194c Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 5 Aug 2021 22:02:35 +0200 Subject: [PATCH 209/984] Update v-clone-website --- bin/v-clone-website | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bin/v-clone-website b/bin/v-clone-website index ed7344ab..7ed3046c 100644 --- a/bin/v-clone-website +++ b/bin/v-clone-website @@ -51,8 +51,6 @@ TO_DATABASE_USERNAME='' TO_DATABASE_PASSWORD='' DATABASE_SUFIX='_migrated' -source /usr/local/vesta/func/handle_parameters.sh - #----------------------------------------------------------# # Verifications # #----------------------------------------------------------# @@ -66,6 +64,9 @@ FROM_USER=$user r=$(/usr/local/vesta/bin/v-get-database-credentials-of-domain "$FROM_DOMAIN") eval $r +# take --parameters +source /usr/local/vesta/func/handle_parameters.sh + FROM_FOLDER=$SITE_FOLDER if [ ! -z "$CONFIG_FILE" ]; then From df11eaf33f5ca48a5fda16be2fb1e266421087bd Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 14 Aug 2021 22:36:07 +0200 Subject: [PATCH 210/984] Fix for "Broken or Risky Cryptographic Algorithm" --- web/inc/main.php | 5 +++-- web/login/index.php | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/web/inc/main.php b/web/inc/main.php index 09eef5f7..f75f9530 100644 --- a/web/inc/main.php +++ b/web/inc/main.php @@ -66,9 +66,10 @@ if ((!isset($_SESSION['user'])) && (!defined('NO_AUTH_REQUIRED'))) { exit; } +// Generate CSRF Token if (isset($_SESSION['user'])) { - if(!isset($_SESSION['token'])){ - $token = uniqid(mt_rand(), true); + if (!isset($_SESSION['token'])){ + $token = bin2hex(file_get_contents('/dev/urandom', false, null, 0, 16)); $_SESSION['token'] = $token; } } diff --git a/web/login/index.php b/web/login/index.php index bf3f2c28..18841344 100644 --- a/web/login/index.php +++ b/web/login/index.php @@ -112,7 +112,7 @@ if (isset($_POST['user']) && isset($_POST['password'])) { } // Regenerate session id to prevent session fixation - session_regenerate_id(); + session_regenerate_id(true); // Redirect request to control panel interface if (!empty($_SESSION['request_uri'])) { @@ -158,7 +158,8 @@ if (empty($_SESSION['language'])) { } // Generate CSRF token -$_SESSION['token'] = md5(uniqid(mt_rand(), true)); +$token = bin2hex(file_get_contents('/dev/urandom', false, null, 0, 16)); +$_SESSION['token'] = $token; require_once($_SERVER['DOCUMENT_ROOT'].'/inc/i18n/'.$_SESSION['language'].'.php'); require_once('../templates/header.html'); From 88596a8cd9a9bb053d2d5bebf80c870dff49b639 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 15 Aug 2021 12:35:28 +0200 Subject: [PATCH 211/984] Fix for possible file inclusion vulnerability in i18n.php Fix for https://github.com/serghey-rodin/vesta/issues/2052 --- web/inc/i18n.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/inc/i18n.php b/web/inc/i18n.php index 8b8abf3a..9d6c1b7e 100644 --- a/web/inc/i18n.php +++ b/web/inc/i18n.php @@ -24,7 +24,7 @@ function _translate() { // Load language file (if not loaded yet) if (!isset($LANG[$l])) { - require_once($_SERVER['DOCUMENT_ROOT']."/inc/i18n/$l.php"); + require_once($_SERVER['DOCUMENT_ROOT']."/inc/i18n/".basename($l).".php"); } //if (!isset($LANG[$l][$key])) file_put_contents('/somewhere/something.log', "$key\n", FILE_APPEND); From 914b53ea1ca85ff07e0d86ded561b157e8511835 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 15 Aug 2021 14:11:14 +0200 Subject: [PATCH 212/984] Getting hostname from $_SERVER['HTTP_HOST'] for UploadHandler --- web/upload/UploadHandler.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/web/upload/UploadHandler.php b/web/upload/UploadHandler.php index b77749ab..15adb406 100755 --- a/web/upload/UploadHandler.php +++ b/web/upload/UploadHandler.php @@ -2,7 +2,8 @@ //session_start(); -$hostname = exec('hostname'); +$host_arr=explode(":", $_SERVER['HTTP_HOST']); +$hostname=$host_arr[0]; $port = $_SERVER['SERVER_PORT']; $expected_http_origin="https://".$hostname.":".$port; if ($_SERVER['HTTP_ORIGIN'] != $expected_http_origin) { From d559763427efbbfef83e3a988b91ee8650247109 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 15 Aug 2021 14:15:48 +0200 Subject: [PATCH 213/984] Preventing CSRF in edit/file --- web/edit/file/index.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/web/edit/file/index.php b/web/edit/file/index.php index d6ae8dce..9addd23e 100644 --- a/web/edit/file/index.php +++ b/web/edit/file/index.php @@ -1,5 +1,14 @@ Date: Sun, 15 Aug 2021 14:20:13 +0200 Subject: [PATCH 214/984] Preventing CSRF in schedule / backup --- web/schedule/backup/index.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/web/schedule/backup/index.php b/web/schedule/backup/index.php index 67c7b44f..10b83a24 100644 --- a/web/schedule/backup/index.php +++ b/web/schedule/backup/index.php @@ -1,4 +1,14 @@ Date: Sun, 15 Aug 2021 14:36:45 +0200 Subject: [PATCH 215/984] Update index.php --- web/schedule/backup/index.php | 9 --------- 1 file changed, 9 deletions(-) diff --git a/web/schedule/backup/index.php b/web/schedule/backup/index.php index 10b83a24..6a36030b 100644 --- a/web/schedule/backup/index.php +++ b/web/schedule/backup/index.php @@ -1,14 +1,5 @@ Date: Sun, 15 Aug 2021 14:37:53 +0200 Subject: [PATCH 216/984] Update index.php --- web/edit/file/index.php | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/web/edit/file/index.php b/web/edit/file/index.php index 9addd23e..9071af3a 100644 --- a/web/edit/file/index.php +++ b/web/edit/file/index.php @@ -1,12 +1,14 @@ Date: Sun, 15 Aug 2021 14:41:04 +0200 Subject: [PATCH 217/984] Preventing CSRF in schedule / backup --- web/schedule/backup/index.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/web/schedule/backup/index.php b/web/schedule/backup/index.php index 6a36030b..06881993 100644 --- a/web/schedule/backup/index.php +++ b/web/schedule/backup/index.php @@ -1,5 +1,16 @@ Date: Sun, 15 Aug 2021 14:53:16 +0200 Subject: [PATCH 218/984] Preventing all CSRF --- web/inc/secure_login.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/web/inc/secure_login.php b/web/inc/secure_login.php index 55b17e55..34b02695 100644 --- a/web/inc/secure_login.php +++ b/web/inc/secure_login.php @@ -49,3 +49,16 @@ if ($skip_login_url_check==0) { } } } + +// Preventing all CSRF +if ($skip_login_url_check==0) { + if ($_SERVER['REQUEST_METHOD']=='POST') { + $host_arr=explode(":", $_SERVER['HTTP_HOST']); + $hostname=$host_arr[0]; + $port = $_SERVER['SERVER_PORT']; + $expected_http_origin="https://".$hostname.":".$port; + if ($_SERVER['HTTP_ORIGIN'] != $expected_http_origin) { + die ("Nope."); + } + } +} From 43da9e2aa71dfa92fb3a2a778d8a80722f17e670 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 15 Aug 2021 15:14:16 +0200 Subject: [PATCH 219/984] Preventing CSRF in file_manager/fm_api.php --- web/file_manager/fm_api.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/web/file_manager/fm_api.php b/web/file_manager/fm_api.php index cf4eef82..4a4dd9ec 100644 --- a/web/file_manager/fm_api.php +++ b/web/file_manager/fm_api.php @@ -2,6 +2,17 @@ // Init //error_reporting(NULL); +// Preventing CSRF +if ($_SERVER['REQUEST_METHOD']=='POST') { + $host_arr=explode(":", $_SERVER['HTTP_HOST']); + $hostname=$host_arr[0]; + $port = $_SERVER['SERVER_PORT']; + $expected_http_origin="https://".$hostname.":".$port; + if ($_SERVER['HTTP_ORIGIN'] != $expected_http_origin) { + die ("Nope."); + } +} + header('Content-Type: application/json'); include($_SERVER['DOCUMENT_ROOT']."/inc/main.php"); From d0dba33d9475966c3955114ff7dce88a1db1608a Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 15 Aug 2021 16:37:34 +0200 Subject: [PATCH 220/984] Changing the Default Character Set To UTF-8 in MariaDB --- install/debian/10/mysql/my-large.cnf | 7 +++++++ install/debian/10/mysql/my-medium.cnf | 7 +++++++ install/debian/10/mysql/my-small.cnf | 7 +++++++ 3 files changed, 21 insertions(+) diff --git a/install/debian/10/mysql/my-large.cnf b/install/debian/10/mysql/my-large.cnf index febfda66..b056c316 100644 --- a/install/debian/10/mysql/my-large.cnf +++ b/install/debian/10/mysql/my-large.cnf @@ -1,11 +1,18 @@ [client] +default-character-set=utf8mb4 port=3306 socket=/var/run/mysqld/mysqld.sock [mysqld_safe] socket=/var/run/mysqld/mysqld.sock +[mysql] +default-character-set=utf8mb4 + [mysqld] +collation-server = utf8mb4_unicode_520_ci +init-connect='SET NAMES utf8mb4' +character-set-server = utf8mb4 user=mysql pid-file=/var/run/mysqld/mysqld.pid socket=/var/run/mysqld/mysqld.sock diff --git a/install/debian/10/mysql/my-medium.cnf b/install/debian/10/mysql/my-medium.cnf index 3aa8fe22..33aa04c2 100644 --- a/install/debian/10/mysql/my-medium.cnf +++ b/install/debian/10/mysql/my-medium.cnf @@ -1,11 +1,18 @@ [client] +default-character-set=utf8mb4 port=3306 socket=/var/run/mysqld/mysqld.sock [mysqld_safe] socket=/var/run/mysqld/mysqld.sock +[mysql] +default-character-set=utf8mb4 + [mysqld] +collation-server = utf8mb4_unicode_520_ci +init-connect='SET NAMES utf8mb4' +character-set-server = utf8mb4 user=mysql pid-file=/var/run/mysqld/mysqld.pid socket=/var/run/mysqld/mysqld.sock diff --git a/install/debian/10/mysql/my-small.cnf b/install/debian/10/mysql/my-small.cnf index bd53770b..857f48ce 100644 --- a/install/debian/10/mysql/my-small.cnf +++ b/install/debian/10/mysql/my-small.cnf @@ -1,11 +1,18 @@ [client] +default-character-set=utf8mb4 port=3306 socket=/var/run/mysqld/mysqld.sock [mysqld_safe] socket=/var/run/mysqld/mysqld.sock +[mysql] +default-character-set=utf8mb4 + [mysqld] +collation-server = utf8mb4_unicode_520_ci +init-connect='SET NAMES utf8mb4' +character-set-server = utf8mb4 user=mysql pid-file=/var/run/mysqld/mysqld.pid socket=/var/run/mysqld/mysqld.sock From b71238813b20e33cad60d24fa82a11b746bf663a Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 15 Aug 2021 18:08:13 +0200 Subject: [PATCH 221/984] Changing the Default Character Set To UTF-8 in MariaDB --- install/debian/11/mysql/my-large.cnf | 7 +++++++ install/debian/11/mysql/my-medium.cnf | 7 +++++++ install/debian/11/mysql/my-small.cnf | 7 +++++++ 3 files changed, 21 insertions(+) diff --git a/install/debian/11/mysql/my-large.cnf b/install/debian/11/mysql/my-large.cnf index febfda66..b056c316 100644 --- a/install/debian/11/mysql/my-large.cnf +++ b/install/debian/11/mysql/my-large.cnf @@ -1,11 +1,18 @@ [client] +default-character-set=utf8mb4 port=3306 socket=/var/run/mysqld/mysqld.sock [mysqld_safe] socket=/var/run/mysqld/mysqld.sock +[mysql] +default-character-set=utf8mb4 + [mysqld] +collation-server = utf8mb4_unicode_520_ci +init-connect='SET NAMES utf8mb4' +character-set-server = utf8mb4 user=mysql pid-file=/var/run/mysqld/mysqld.pid socket=/var/run/mysqld/mysqld.sock diff --git a/install/debian/11/mysql/my-medium.cnf b/install/debian/11/mysql/my-medium.cnf index 3aa8fe22..33aa04c2 100644 --- a/install/debian/11/mysql/my-medium.cnf +++ b/install/debian/11/mysql/my-medium.cnf @@ -1,11 +1,18 @@ [client] +default-character-set=utf8mb4 port=3306 socket=/var/run/mysqld/mysqld.sock [mysqld_safe] socket=/var/run/mysqld/mysqld.sock +[mysql] +default-character-set=utf8mb4 + [mysqld] +collation-server = utf8mb4_unicode_520_ci +init-connect='SET NAMES utf8mb4' +character-set-server = utf8mb4 user=mysql pid-file=/var/run/mysqld/mysqld.pid socket=/var/run/mysqld/mysqld.sock diff --git a/install/debian/11/mysql/my-small.cnf b/install/debian/11/mysql/my-small.cnf index bd53770b..857f48ce 100644 --- a/install/debian/11/mysql/my-small.cnf +++ b/install/debian/11/mysql/my-small.cnf @@ -1,11 +1,18 @@ [client] +default-character-set=utf8mb4 port=3306 socket=/var/run/mysqld/mysqld.sock [mysqld_safe] socket=/var/run/mysqld/mysqld.sock +[mysql] +default-character-set=utf8mb4 + [mysqld] +collation-server = utf8mb4_unicode_520_ci +init-connect='SET NAMES utf8mb4' +character-set-server = utf8mb4 user=mysql pid-file=/var/run/mysqld/mysqld.pid socket=/var/run/mysqld/mysqld.sock From dcbb7b80f985102118c223819f166fc05ace1940 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 23 Aug 2021 20:47:57 +0200 Subject: [PATCH 222/984] $OVERRIDE_BACKUP_PATH --- bin/v-restore-user | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bin/v-restore-user b/bin/v-restore-user index 8aef31b1..a78ffc4d 100755 --- a/bin/v-restore-user +++ b/bin/v-restore-user @@ -36,6 +36,10 @@ source $VESTA/func/db.sh source $VESTA/func/rebuild.sh source $VESTA/conf/vesta.conf +if [ ! -z "$OVERRIDE_BACKUP_PATH" ]; then + BACKUP=$OVERRIDE_BACKUP_PATH +fi + # Check backup ownership function is_backup_available() { passed=false From 29f83585163f504bba783e04c89f9b9c385d2e65 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 23 Aug 2021 20:50:48 +0200 Subject: [PATCH 223/984] Override backup path --- bin/v-backup-user | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/bin/v-backup-user b/bin/v-backup-user index 2e245156..767eba22 100755 --- a/bin/v-backup-user +++ b/bin/v-backup-user @@ -41,6 +41,11 @@ is_backup_enabled wait_for_backup_if_it_is_not_time_for_backup +# Override backup path +if [ ! -z "$OVERRIDE_BACKUP_PATH" ]; then + BACKUP=$OVERRIDE_BACKUP_PATH +fi + # Set backup directory if undefined if [ -z "$BACKUP" ]; then BACKUP=/backup From c6226e403ac62d30fe0260398ea2e3b4bf3f8043 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 24 Aug 2021 16:45:15 +0200 Subject: [PATCH 224/984] systemctl reset-failed php7.3 --- .../11/templates/web/apache2/PHP-FPM-74-public.sh | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/install/debian/11/templates/web/apache2/PHP-FPM-74-public.sh b/install/debian/11/templates/web/apache2/PHP-FPM-74-public.sh index 6f6290b1..814b434b 100755 --- a/install/debian/11/templates/web/apache2/PHP-FPM-74-public.sh +++ b/install/debian/11/templates/web/apache2/PHP-FPM-74-public.sh @@ -46,29 +46,35 @@ pool_file_71="/etc/php/7.1/fpm/pool.d/$2.conf" pool_file_72="/etc/php/7.2/fpm/pool.d/$2.conf" pool_file_73="/etc/php/7.3/fpm/pool.d/$2.conf" pool_file_74="/etc/php/7.4/fpm/pool.d/$2.conf" +pool_file_80="/etc/php/8.0/fpm/pool.d/$2.conf" if [ -f "$pool_file_56" ]; then rm $pool_file_56 + systemctl reset-failed php5.6-fpm service php5.6-fpm restart fi if [ -f "$pool_file_70" ]; then rm $pool_file_70 + systemctl reset-failed php7.0-fpm service php7.0-fpm restart fi if [ -f "$pool_file_71" ]; then rm $pool_file_71 + systemctl reset-failed php7.1-fpm service php7.1-fpm restart fi if [ -f "$pool_file_72" ]; then rm $pool_file_72 + systemctl reset-failed php7.2-fpm service php7.2-fpm restart fi if [ -f "$pool_file_73" ]; then rm $pool_file_73 + systemctl reset-failed php7.3-fpm service php7.3-fpm restart fi @@ -83,10 +89,17 @@ else fi if [ $write_file -eq 1 ]; then echo "$pool_conf" > $pool_file_74 + systemctl reset-failed php7.4-fpm service php7.4-fpm restart fi if [ -f "/etc/php/7.4/fpm/pool.d/www.conf" ]; then rm /etc/php/7.4/fpm/pool.d/www.conf fi -exit 0 \ No newline at end of file +if [ -f "$pool_file_80" ]; then + rm $pool_file_80 + systemctl reset-failed php8.0-fpm + service php8.0-fpm restart +fi + +exit 0 From 4942f52f7feb85edde00d588c4f340ceaa1bf551 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 24 Aug 2021 16:46:40 +0200 Subject: [PATCH 225/984] systemctl reset-failed php7.4-fpm --- .../11/templates/web/apache2/PHP-FPM-74.sh | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/install/debian/11/templates/web/apache2/PHP-FPM-74.sh b/install/debian/11/templates/web/apache2/PHP-FPM-74.sh index 482cdd7e..814b434b 100755 --- a/install/debian/11/templates/web/apache2/PHP-FPM-74.sh +++ b/install/debian/11/templates/web/apache2/PHP-FPM-74.sh @@ -17,8 +17,8 @@ user = $1 group = $1 pm = ondemand -pm.max_children = 8 -request_terminate_timeout = 90s +pm.max_children = 16 +request_terminate_timeout = 30s pm.max_requests = 4000 pm.process_idle_timeout = 10s pm.status_path = /status @@ -27,7 +27,7 @@ php_admin_value[upload_tmp_dir] = /home/$1/tmp php_admin_value[session.save_path] = /home/$1/tmp php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube php_admin_value[upload_max_filesize] = 80M -php_admin_value[max_execution_time] = 30 +php_admin_value[max_execution_time] = 20 php_admin_value[post_max_size] = 80M php_admin_value[memory_limit] = 256M php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" @@ -46,29 +46,35 @@ pool_file_71="/etc/php/7.1/fpm/pool.d/$2.conf" pool_file_72="/etc/php/7.2/fpm/pool.d/$2.conf" pool_file_73="/etc/php/7.3/fpm/pool.d/$2.conf" pool_file_74="/etc/php/7.4/fpm/pool.d/$2.conf" +pool_file_80="/etc/php/8.0/fpm/pool.d/$2.conf" if [ -f "$pool_file_56" ]; then rm $pool_file_56 + systemctl reset-failed php5.6-fpm service php5.6-fpm restart fi if [ -f "$pool_file_70" ]; then rm $pool_file_70 + systemctl reset-failed php7.0-fpm service php7.0-fpm restart fi if [ -f "$pool_file_71" ]; then rm $pool_file_71 + systemctl reset-failed php7.1-fpm service php7.1-fpm restart fi if [ -f "$pool_file_72" ]; then rm $pool_file_72 + systemctl reset-failed php7.2-fpm service php7.2-fpm restart fi if [ -f "$pool_file_73" ]; then rm $pool_file_73 + systemctl reset-failed php7.3-fpm service php7.3-fpm restart fi @@ -83,10 +89,17 @@ else fi if [ $write_file -eq 1 ]; then echo "$pool_conf" > $pool_file_74 + systemctl reset-failed php7.4-fpm service php7.4-fpm restart fi if [ -f "/etc/php/7.4/fpm/pool.d/www.conf" ]; then rm /etc/php/7.4/fpm/pool.d/www.conf fi +if [ -f "$pool_file_80" ]; then + rm $pool_file_80 + systemctl reset-failed php8.0-fpm + service php8.0-fpm restart +fi + exit 0 From 628464b96986102139e62decb9d0374e545ed8b4 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 24 Aug 2021 16:48:17 +0200 Subject: [PATCH 226/984] Update PHP-FPM-74.sh --- install/debian/11/templates/web/apache2/PHP-FPM-74.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/install/debian/11/templates/web/apache2/PHP-FPM-74.sh b/install/debian/11/templates/web/apache2/PHP-FPM-74.sh index 814b434b..5bc6f5fb 100755 --- a/install/debian/11/templates/web/apache2/PHP-FPM-74.sh +++ b/install/debian/11/templates/web/apache2/PHP-FPM-74.sh @@ -17,8 +17,8 @@ user = $1 group = $1 pm = ondemand -pm.max_children = 16 -request_terminate_timeout = 30s +pm.max_children = 8 +request_terminate_timeout = 90s pm.max_requests = 4000 pm.process_idle_timeout = 10s pm.status_path = /status @@ -27,7 +27,7 @@ php_admin_value[upload_tmp_dir] = /home/$1/tmp php_admin_value[session.save_path] = /home/$1/tmp php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube php_admin_value[upload_max_filesize] = 80M -php_admin_value[max_execution_time] = 20 +php_admin_value[max_execution_time] = 30 php_admin_value[post_max_size] = 80M php_admin_value[memory_limit] = 256M php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" From 9cb517a5148e6417667acc6e26eb1fdcc4548066 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 24 Aug 2021 17:00:40 +0200 Subject: [PATCH 227/984] Update PHP-FPM-73.sh --- .../10/templates/web/apache2/PHP-FPM-73.sh | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/install/debian/10/templates/web/apache2/PHP-FPM-73.sh b/install/debian/10/templates/web/apache2/PHP-FPM-73.sh index 72f9cec6..57b10863 100755 --- a/install/debian/10/templates/web/apache2/PHP-FPM-73.sh +++ b/install/debian/10/templates/web/apache2/PHP-FPM-73.sh @@ -46,25 +46,30 @@ pool_file_71="/etc/php/7.1/fpm/pool.d/$2.conf" pool_file_72="/etc/php/7.2/fpm/pool.d/$2.conf" pool_file_73="/etc/php/7.3/fpm/pool.d/$2.conf" pool_file_74="/etc/php/7.4/fpm/pool.d/$2.conf" +pool_file_80="/etc/php/8.0/fpm/pool.d/$2.conf" if [ -f "$pool_file_56" ]; then rm $pool_file_56 - service php5.6-fpm restart + systemctl reset-failed php5.6-fpm + systemctl restart php5.6-fpm fi if [ -f "$pool_file_70" ]; then rm $pool_file_70 - service php7.0-fpm restart + systemctl reset-failed php7.0-fpm + systemctl restart php7.0-fpm fi if [ -f "$pool_file_71" ]; then rm $pool_file_71 - service php7.1-fpm restart + systemctl reset-failed php7.1-fpm + systemctl restart php7.1-fpm fi if [ -f "$pool_file_72" ]; then rm $pool_file_72 - service php7.2-fpm restart + systemctl reset-failed php7.2-fpm + systemctl restart php7.2-fpm fi write_file=0 @@ -78,7 +83,8 @@ else fi if [ $write_file -eq 1 ]; then echo "$pool_conf" > $pool_file_73 - service php7.3-fpm restart + systemctl reset-failed php7.3-fpm + systemctl restart php7.3-fpm fi if [ -f "/etc/php/7.3/fpm/pool.d/www.conf" ]; then rm /etc/php/7.3/fpm/pool.d/www.conf @@ -86,7 +92,14 @@ fi if [ -f "$pool_file_74" ]; then rm $pool_file_74 - service php7.4-fpm restart + systemctl reset-failed php7.4-fpm + systemctl restart php7.4-fpm +fi + +if [ -f "$pool_file_80" ]; then + rm $pool_file_80 + systemctl reset-failed php8.0-fpm + systemctl restart php8.0-fpm fi exit 0 From ce75daf4de838f0d7beb36a9a2bade188be2b591 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 24 Aug 2021 17:08:47 +0200 Subject: [PATCH 228/984] systemctl reset-failed php7.3-fpm --- .../web/apache2/PHP-FPM-73-public.sh | 37 ++++++++++++++----- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/install/debian/10/templates/web/apache2/PHP-FPM-73-public.sh b/install/debian/10/templates/web/apache2/PHP-FPM-73-public.sh index cc55b61e..57b10863 100755 --- a/install/debian/10/templates/web/apache2/PHP-FPM-73-public.sh +++ b/install/debian/10/templates/web/apache2/PHP-FPM-73-public.sh @@ -17,8 +17,8 @@ user = $1 group = $1 pm = ondemand -pm.max_children = 16 -request_terminate_timeout = 30s +pm.max_children = 8 +request_terminate_timeout = 90s pm.max_requests = 4000 pm.process_idle_timeout = 10s pm.status_path = /status @@ -27,7 +27,7 @@ php_admin_value[upload_tmp_dir] = /home/$1/tmp php_admin_value[session.save_path] = /home/$1/tmp php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube php_admin_value[upload_max_filesize] = 80M -php_admin_value[max_execution_time] = 20 +php_admin_value[max_execution_time] = 30 php_admin_value[post_max_size] = 80M php_admin_value[memory_limit] = 256M php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" @@ -45,25 +45,31 @@ pool_file_70="/etc/php/7.0/fpm/pool.d/$2.conf" pool_file_71="/etc/php/7.1/fpm/pool.d/$2.conf" pool_file_72="/etc/php/7.2/fpm/pool.d/$2.conf" pool_file_73="/etc/php/7.3/fpm/pool.d/$2.conf" +pool_file_74="/etc/php/7.4/fpm/pool.d/$2.conf" +pool_file_80="/etc/php/8.0/fpm/pool.d/$2.conf" if [ -f "$pool_file_56" ]; then rm $pool_file_56 - service php5.6-fpm restart + systemctl reset-failed php5.6-fpm + systemctl restart php5.6-fpm fi if [ -f "$pool_file_70" ]; then rm $pool_file_70 - service php7.0-fpm restart + systemctl reset-failed php7.0-fpm + systemctl restart php7.0-fpm fi if [ -f "$pool_file_71" ]; then rm $pool_file_71 - service php7.1-fpm restart + systemctl reset-failed php7.1-fpm + systemctl restart php7.1-fpm fi if [ -f "$pool_file_72" ]; then rm $pool_file_72 - service php7.2-fpm restart + systemctl reset-failed php7.2-fpm + systemctl restart php7.2-fpm fi write_file=0 @@ -75,14 +81,25 @@ else write_file=1 fi fi - if [ $write_file -eq 1 ]; then echo "$pool_conf" > $pool_file_73 - service php7.3-fpm restart + systemctl reset-failed php7.3-fpm + systemctl restart php7.3-fpm fi - if [ -f "/etc/php/7.3/fpm/pool.d/www.conf" ]; then rm /etc/php/7.3/fpm/pool.d/www.conf fi +if [ -f "$pool_file_74" ]; then + rm $pool_file_74 + systemctl reset-failed php7.4-fpm + systemctl restart php7.4-fpm +fi + +if [ -f "$pool_file_80" ]; then + rm $pool_file_80 + systemctl reset-failed php8.0-fpm + systemctl restart php8.0-fpm +fi + exit 0 From 6b1dd5ae189448838640a9c424d087a7ddef7915 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 24 Aug 2021 17:13:52 +0200 Subject: [PATCH 229/984] systemctl restart php7.4-fpm --- .../debian/11/templates/web/apache2/PHP-FPM-74.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/install/debian/11/templates/web/apache2/PHP-FPM-74.sh b/install/debian/11/templates/web/apache2/PHP-FPM-74.sh index 5bc6f5fb..0ff7b21b 100755 --- a/install/debian/11/templates/web/apache2/PHP-FPM-74.sh +++ b/install/debian/11/templates/web/apache2/PHP-FPM-74.sh @@ -51,31 +51,31 @@ pool_file_80="/etc/php/8.0/fpm/pool.d/$2.conf" if [ -f "$pool_file_56" ]; then rm $pool_file_56 systemctl reset-failed php5.6-fpm - service php5.6-fpm restart + systemctl restart php5.6-fpm fi if [ -f "$pool_file_70" ]; then rm $pool_file_70 systemctl reset-failed php7.0-fpm - service php7.0-fpm restart + systemctl restart php7.0-fpm fi if [ -f "$pool_file_71" ]; then rm $pool_file_71 systemctl reset-failed php7.1-fpm - service php7.1-fpm restart + systemctl restart php7.1-fpm fi if [ -f "$pool_file_72" ]; then rm $pool_file_72 systemctl reset-failed php7.2-fpm - service php7.2-fpm restart + systemctl restart php7.2-fpm fi if [ -f "$pool_file_73" ]; then rm $pool_file_73 systemctl reset-failed php7.3-fpm - service php7.3-fpm restart + systemctl restart php7.3-fpm fi write_file=0 @@ -90,7 +90,7 @@ fi if [ $write_file -eq 1 ]; then echo "$pool_conf" > $pool_file_74 systemctl reset-failed php7.4-fpm - service php7.4-fpm restart + systemctl restart php7.4-fpm fi if [ -f "/etc/php/7.4/fpm/pool.d/www.conf" ]; then rm /etc/php/7.4/fpm/pool.d/www.conf @@ -99,7 +99,7 @@ fi if [ -f "$pool_file_80" ]; then rm $pool_file_80 systemctl reset-failed php8.0-fpm - service php8.0-fpm restart + systemctl restart php8.0-fpm fi exit 0 From abcf557d059c9482d6eb222a74e155321599d236 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 24 Aug 2021 17:15:14 +0200 Subject: [PATCH 230/984] systemctl restart php7.4-fpm --- .../web/apache2/PHP-FPM-74-public.sh | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/install/debian/11/templates/web/apache2/PHP-FPM-74-public.sh b/install/debian/11/templates/web/apache2/PHP-FPM-74-public.sh index 814b434b..0ff7b21b 100755 --- a/install/debian/11/templates/web/apache2/PHP-FPM-74-public.sh +++ b/install/debian/11/templates/web/apache2/PHP-FPM-74-public.sh @@ -17,8 +17,8 @@ user = $1 group = $1 pm = ondemand -pm.max_children = 16 -request_terminate_timeout = 30s +pm.max_children = 8 +request_terminate_timeout = 90s pm.max_requests = 4000 pm.process_idle_timeout = 10s pm.status_path = /status @@ -27,7 +27,7 @@ php_admin_value[upload_tmp_dir] = /home/$1/tmp php_admin_value[session.save_path] = /home/$1/tmp php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube php_admin_value[upload_max_filesize] = 80M -php_admin_value[max_execution_time] = 20 +php_admin_value[max_execution_time] = 30 php_admin_value[post_max_size] = 80M php_admin_value[memory_limit] = 256M php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" @@ -51,31 +51,31 @@ pool_file_80="/etc/php/8.0/fpm/pool.d/$2.conf" if [ -f "$pool_file_56" ]; then rm $pool_file_56 systemctl reset-failed php5.6-fpm - service php5.6-fpm restart + systemctl restart php5.6-fpm fi if [ -f "$pool_file_70" ]; then rm $pool_file_70 systemctl reset-failed php7.0-fpm - service php7.0-fpm restart + systemctl restart php7.0-fpm fi if [ -f "$pool_file_71" ]; then rm $pool_file_71 systemctl reset-failed php7.1-fpm - service php7.1-fpm restart + systemctl restart php7.1-fpm fi if [ -f "$pool_file_72" ]; then rm $pool_file_72 systemctl reset-failed php7.2-fpm - service php7.2-fpm restart + systemctl restart php7.2-fpm fi if [ -f "$pool_file_73" ]; then rm $pool_file_73 systemctl reset-failed php7.3-fpm - service php7.3-fpm restart + systemctl restart php7.3-fpm fi write_file=0 @@ -90,7 +90,7 @@ fi if [ $write_file -eq 1 ]; then echo "$pool_conf" > $pool_file_74 systemctl reset-failed php7.4-fpm - service php7.4-fpm restart + systemctl restart php7.4-fpm fi if [ -f "/etc/php/7.4/fpm/pool.d/www.conf" ]; then rm /etc/php/7.4/fpm/pool.d/www.conf @@ -99,7 +99,7 @@ fi if [ -f "$pool_file_80" ]; then rm $pool_file_80 systemctl reset-failed php8.0-fpm - service php8.0-fpm restart + systemctl restart php8.0-fpm fi exit 0 From df377c677cd26e25fccfd4d0d2ce7b2475c8503d Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 24 Aug 2021 17:58:46 +0200 Subject: [PATCH 231/984] Update PHP-FPM-74.sh --- .../tools/apache-fpm-tpl/PHP-FPM-74.sh | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74.sh b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74.sh index 482cdd7e..0ff7b21b 100755 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74.sh +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74.sh @@ -46,30 +46,36 @@ pool_file_71="/etc/php/7.1/fpm/pool.d/$2.conf" pool_file_72="/etc/php/7.2/fpm/pool.d/$2.conf" pool_file_73="/etc/php/7.3/fpm/pool.d/$2.conf" pool_file_74="/etc/php/7.4/fpm/pool.d/$2.conf" +pool_file_80="/etc/php/8.0/fpm/pool.d/$2.conf" if [ -f "$pool_file_56" ]; then rm $pool_file_56 - service php5.6-fpm restart + systemctl reset-failed php5.6-fpm + systemctl restart php5.6-fpm fi if [ -f "$pool_file_70" ]; then rm $pool_file_70 - service php7.0-fpm restart + systemctl reset-failed php7.0-fpm + systemctl restart php7.0-fpm fi if [ -f "$pool_file_71" ]; then rm $pool_file_71 - service php7.1-fpm restart + systemctl reset-failed php7.1-fpm + systemctl restart php7.1-fpm fi if [ -f "$pool_file_72" ]; then rm $pool_file_72 - service php7.2-fpm restart + systemctl reset-failed php7.2-fpm + systemctl restart php7.2-fpm fi if [ -f "$pool_file_73" ]; then rm $pool_file_73 - service php7.3-fpm restart + systemctl reset-failed php7.3-fpm + systemctl restart php7.3-fpm fi write_file=0 @@ -83,10 +89,17 @@ else fi if [ $write_file -eq 1 ]; then echo "$pool_conf" > $pool_file_74 - service php7.4-fpm restart + systemctl reset-failed php7.4-fpm + systemctl restart php7.4-fpm fi if [ -f "/etc/php/7.4/fpm/pool.d/www.conf" ]; then rm /etc/php/7.4/fpm/pool.d/www.conf fi +if [ -f "$pool_file_80" ]; then + rm $pool_file_80 + systemctl reset-failed php8.0-fpm + systemctl restart php8.0-fpm +fi + exit 0 From 77fa4d0a6b38f5f3e6f28f4f6ac758becf4c7660 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 24 Aug 2021 18:00:27 +0200 Subject: [PATCH 232/984] Update PHP-FPM-74-public.sh --- .../tools/apache-fpm-tpl/PHP-FPM-74-public.sh | 33 +++++++++++++------ 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74-public.sh b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74-public.sh index 6f6290b1..0ff7b21b 100755 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74-public.sh +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74-public.sh @@ -17,8 +17,8 @@ user = $1 group = $1 pm = ondemand -pm.max_children = 16 -request_terminate_timeout = 30s +pm.max_children = 8 +request_terminate_timeout = 90s pm.max_requests = 4000 pm.process_idle_timeout = 10s pm.status_path = /status @@ -27,7 +27,7 @@ php_admin_value[upload_tmp_dir] = /home/$1/tmp php_admin_value[session.save_path] = /home/$1/tmp php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube php_admin_value[upload_max_filesize] = 80M -php_admin_value[max_execution_time] = 20 +php_admin_value[max_execution_time] = 30 php_admin_value[post_max_size] = 80M php_admin_value[memory_limit] = 256M php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" @@ -46,30 +46,36 @@ pool_file_71="/etc/php/7.1/fpm/pool.d/$2.conf" pool_file_72="/etc/php/7.2/fpm/pool.d/$2.conf" pool_file_73="/etc/php/7.3/fpm/pool.d/$2.conf" pool_file_74="/etc/php/7.4/fpm/pool.d/$2.conf" +pool_file_80="/etc/php/8.0/fpm/pool.d/$2.conf" if [ -f "$pool_file_56" ]; then rm $pool_file_56 - service php5.6-fpm restart + systemctl reset-failed php5.6-fpm + systemctl restart php5.6-fpm fi if [ -f "$pool_file_70" ]; then rm $pool_file_70 - service php7.0-fpm restart + systemctl reset-failed php7.0-fpm + systemctl restart php7.0-fpm fi if [ -f "$pool_file_71" ]; then rm $pool_file_71 - service php7.1-fpm restart + systemctl reset-failed php7.1-fpm + systemctl restart php7.1-fpm fi if [ -f "$pool_file_72" ]; then rm $pool_file_72 - service php7.2-fpm restart + systemctl reset-failed php7.2-fpm + systemctl restart php7.2-fpm fi if [ -f "$pool_file_73" ]; then rm $pool_file_73 - service php7.3-fpm restart + systemctl reset-failed php7.3-fpm + systemctl restart php7.3-fpm fi write_file=0 @@ -83,10 +89,17 @@ else fi if [ $write_file -eq 1 ]; then echo "$pool_conf" > $pool_file_74 - service php7.4-fpm restart + systemctl reset-failed php7.4-fpm + systemctl restart php7.4-fpm fi if [ -f "/etc/php/7.4/fpm/pool.d/www.conf" ]; then rm /etc/php/7.4/fpm/pool.d/www.conf fi -exit 0 \ No newline at end of file +if [ -f "$pool_file_80" ]; then + rm $pool_file_80 + systemctl reset-failed php8.0-fpm + systemctl restart php8.0-fpm +fi + +exit 0 From c2fc51e0697a04b47d615117071a36bdf36a12f9 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 24 Aug 2021 18:01:57 +0200 Subject: [PATCH 233/984] Update PHP-FPM-73.sh --- .../tools/apache-fpm-tpl/PHP-FPM-73.sh | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73.sh b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73.sh index 72f9cec6..57b10863 100755 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73.sh +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73.sh @@ -46,25 +46,30 @@ pool_file_71="/etc/php/7.1/fpm/pool.d/$2.conf" pool_file_72="/etc/php/7.2/fpm/pool.d/$2.conf" pool_file_73="/etc/php/7.3/fpm/pool.d/$2.conf" pool_file_74="/etc/php/7.4/fpm/pool.d/$2.conf" +pool_file_80="/etc/php/8.0/fpm/pool.d/$2.conf" if [ -f "$pool_file_56" ]; then rm $pool_file_56 - service php5.6-fpm restart + systemctl reset-failed php5.6-fpm + systemctl restart php5.6-fpm fi if [ -f "$pool_file_70" ]; then rm $pool_file_70 - service php7.0-fpm restart + systemctl reset-failed php7.0-fpm + systemctl restart php7.0-fpm fi if [ -f "$pool_file_71" ]; then rm $pool_file_71 - service php7.1-fpm restart + systemctl reset-failed php7.1-fpm + systemctl restart php7.1-fpm fi if [ -f "$pool_file_72" ]; then rm $pool_file_72 - service php7.2-fpm restart + systemctl reset-failed php7.2-fpm + systemctl restart php7.2-fpm fi write_file=0 @@ -78,7 +83,8 @@ else fi if [ $write_file -eq 1 ]; then echo "$pool_conf" > $pool_file_73 - service php7.3-fpm restart + systemctl reset-failed php7.3-fpm + systemctl restart php7.3-fpm fi if [ -f "/etc/php/7.3/fpm/pool.d/www.conf" ]; then rm /etc/php/7.3/fpm/pool.d/www.conf @@ -86,7 +92,14 @@ fi if [ -f "$pool_file_74" ]; then rm $pool_file_74 - service php7.4-fpm restart + systemctl reset-failed php7.4-fpm + systemctl restart php7.4-fpm +fi + +if [ -f "$pool_file_80" ]; then + rm $pool_file_80 + systemctl reset-failed php8.0-fpm + systemctl restart php8.0-fpm fi exit 0 From 5e24bf72225d3c0f2c021c259835d7184f482e5f Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 24 Aug 2021 18:03:23 +0200 Subject: [PATCH 234/984] Update PHP-FPM-73-public.sh --- .../tools/apache-fpm-tpl/PHP-FPM-73-public.sh | 33 +++++++++++++------ 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73-public.sh b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73-public.sh index 1cddda74..57b10863 100755 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73-public.sh +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73-public.sh @@ -17,8 +17,8 @@ user = $1 group = $1 pm = ondemand -pm.max_children = 16 -request_terminate_timeout = 30s +pm.max_children = 8 +request_terminate_timeout = 90s pm.max_requests = 4000 pm.process_idle_timeout = 10s pm.status_path = /status @@ -27,7 +27,7 @@ php_admin_value[upload_tmp_dir] = /home/$1/tmp php_admin_value[session.save_path] = /home/$1/tmp php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube php_admin_value[upload_max_filesize] = 80M -php_admin_value[max_execution_time] = 20 +php_admin_value[max_execution_time] = 30 php_admin_value[post_max_size] = 80M php_admin_value[memory_limit] = 256M php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" @@ -46,25 +46,30 @@ pool_file_71="/etc/php/7.1/fpm/pool.d/$2.conf" pool_file_72="/etc/php/7.2/fpm/pool.d/$2.conf" pool_file_73="/etc/php/7.3/fpm/pool.d/$2.conf" pool_file_74="/etc/php/7.4/fpm/pool.d/$2.conf" +pool_file_80="/etc/php/8.0/fpm/pool.d/$2.conf" if [ -f "$pool_file_56" ]; then rm $pool_file_56 - service php5.6-fpm restart + systemctl reset-failed php5.6-fpm + systemctl restart php5.6-fpm fi if [ -f "$pool_file_70" ]; then rm $pool_file_70 - service php7.0-fpm restart + systemctl reset-failed php7.0-fpm + systemctl restart php7.0-fpm fi if [ -f "$pool_file_71" ]; then rm $pool_file_71 - service php7.1-fpm restart + systemctl reset-failed php7.1-fpm + systemctl restart php7.1-fpm fi if [ -f "$pool_file_72" ]; then rm $pool_file_72 - service php7.2-fpm restart + systemctl reset-failed php7.2-fpm + systemctl restart php7.2-fpm fi write_file=0 @@ -78,7 +83,8 @@ else fi if [ $write_file -eq 1 ]; then echo "$pool_conf" > $pool_file_73 - service php7.3-fpm restart + systemctl reset-failed php7.3-fpm + systemctl restart php7.3-fpm fi if [ -f "/etc/php/7.3/fpm/pool.d/www.conf" ]; then rm /etc/php/7.3/fpm/pool.d/www.conf @@ -86,7 +92,14 @@ fi if [ -f "$pool_file_74" ]; then rm $pool_file_74 - service php7.4-fpm restart + systemctl reset-failed php7.4-fpm + systemctl restart php7.4-fpm fi -exit 0 \ No newline at end of file +if [ -f "$pool_file_80" ]; then + rm $pool_file_80 + systemctl reset-failed php8.0-fpm + systemctl restart php8.0-fpm +fi + +exit 0 From a56a2c7dd51e4cdf8e81b2a18db70aafded50559 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 24 Aug 2021 18:17:20 +0200 Subject: [PATCH 235/984] Update PHP-FPM-80.sh --- .../tools/apache-fpm-tpl/PHP-FPM-80.sh | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.sh b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.sh index 5f119dd8..dfdb85f8 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.sh +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.sh @@ -50,32 +50,38 @@ pool_file_80="/etc/php/8.0/fpm/pool.d/$2.conf" if [ -f "$pool_file_56" ]; then rm $pool_file_56 - service php5.6-fpm restart + systemctl reset-failed php5.6-fpm + systemctl restart php5.6-fpm fi if [ -f "$pool_file_70" ]; then rm $pool_file_70 - service php7.0-fpm restart + systemctl reset-failed php7.0-fpm + systemctl restart php7.0-fpm fi if [ -f "$pool_file_71" ]; then rm $pool_file_71 - service php7.1-fpm restart + systemctl reset-failed php7.1-fpm + systemctl restart php7.1-fpm fi if [ -f "$pool_file_72" ]; then rm $pool_file_72 - service php7.2-fpm restart + systemctl reset-failed php7.2-fpm + systemctl restart php7.2-fpm fi if [ -f "$pool_file_73" ]; then rm $pool_file_73 - service php7.3-fpm restart + systemctl reset-failed php7.3-fpm + systemctl restart php7.3-fpm fi if [ -f "$pool_file_74" ]; then rm $pool_file_74 - service php7.4-fpm restart + systemctl reset-failed php7.4-fpm + systemctl restart php7.4-fpm fi write_file=0 @@ -89,10 +95,11 @@ else fi if [ $write_file -eq 1 ]; then echo "$pool_conf" > $pool_file_80 - service php8.0-fpm restart + systemctl reset-failed php8.0-fpm + systemctl restart php8.0-fpm fi if [ -f "/etc/php/8.0/fpm/pool.d/www.conf" ]; then rm /etc/php/8.0/fpm/pool.d/www.conf fi -exit 0 \ No newline at end of file +exit 0 From e6b559cdf2416e06502cee9912abd3c48ce954d5 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 24 Aug 2021 18:18:42 +0200 Subject: [PATCH 236/984] Update PHP-FPM-80.sh --- src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.sh b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.sh index dfdb85f8..343392c2 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.sh +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.sh @@ -17,8 +17,8 @@ user = $1 group = $1 pm = ondemand -pm.max_children = 16 -request_terminate_timeout = 30s +pm.max_children = 8 +request_terminate_timeout = 90s pm.max_requests = 4000 pm.process_idle_timeout = 10s pm.status_path = /status @@ -27,7 +27,7 @@ php_admin_value[upload_tmp_dir] = /home/$1/tmp php_admin_value[session.save_path] = /home/$1/tmp php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube php_admin_value[upload_max_filesize] = 80M -php_admin_value[max_execution_time] = 20 +php_admin_value[max_execution_time] = 30 php_admin_value[post_max_size] = 80M php_admin_value[memory_limit] = 256M php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" From d368bf72914ee0c936bee8072312e7ef4b584131 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 24 Aug 2021 18:20:14 +0200 Subject: [PATCH 237/984] Update PHP-FPM-80-public.sh --- .../tools/apache-fpm-tpl/PHP-FPM-80-public.sh | 29 ++++++++++++------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80-public.sh b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80-public.sh index 5f119dd8..343392c2 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80-public.sh +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80-public.sh @@ -17,8 +17,8 @@ user = $1 group = $1 pm = ondemand -pm.max_children = 16 -request_terminate_timeout = 30s +pm.max_children = 8 +request_terminate_timeout = 90s pm.max_requests = 4000 pm.process_idle_timeout = 10s pm.status_path = /status @@ -27,7 +27,7 @@ php_admin_value[upload_tmp_dir] = /home/$1/tmp php_admin_value[session.save_path] = /home/$1/tmp php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube php_admin_value[upload_max_filesize] = 80M -php_admin_value[max_execution_time] = 20 +php_admin_value[max_execution_time] = 30 php_admin_value[post_max_size] = 80M php_admin_value[memory_limit] = 256M php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" @@ -50,32 +50,38 @@ pool_file_80="/etc/php/8.0/fpm/pool.d/$2.conf" if [ -f "$pool_file_56" ]; then rm $pool_file_56 - service php5.6-fpm restart + systemctl reset-failed php5.6-fpm + systemctl restart php5.6-fpm fi if [ -f "$pool_file_70" ]; then rm $pool_file_70 - service php7.0-fpm restart + systemctl reset-failed php7.0-fpm + systemctl restart php7.0-fpm fi if [ -f "$pool_file_71" ]; then rm $pool_file_71 - service php7.1-fpm restart + systemctl reset-failed php7.1-fpm + systemctl restart php7.1-fpm fi if [ -f "$pool_file_72" ]; then rm $pool_file_72 - service php7.2-fpm restart + systemctl reset-failed php7.2-fpm + systemctl restart php7.2-fpm fi if [ -f "$pool_file_73" ]; then rm $pool_file_73 - service php7.3-fpm restart + systemctl reset-failed php7.3-fpm + systemctl restart php7.3-fpm fi if [ -f "$pool_file_74" ]; then rm $pool_file_74 - service php7.4-fpm restart + systemctl reset-failed php7.4-fpm + systemctl restart php7.4-fpm fi write_file=0 @@ -89,10 +95,11 @@ else fi if [ $write_file -eq 1 ]; then echo "$pool_conf" > $pool_file_80 - service php8.0-fpm restart + systemctl reset-failed php8.0-fpm + systemctl restart php8.0-fpm fi if [ -f "/etc/php/8.0/fpm/pool.d/www.conf" ]; then rm /etc/php/8.0/fpm/pool.d/www.conf fi -exit 0 \ No newline at end of file +exit 0 From d36218db92d6670b91099393599e582847a51bc7 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 24 Aug 2021 18:53:56 +0200 Subject: [PATCH 238/984] Create SECURITY.md close https://github.com/myvesta/vesta/issues/130 --- SECURITY.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 SECURITY.md diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 00000000..32d7405f --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,5 @@ +# Security Policy + +## Reporting a Vulnerability + +Please report security issues to info@myvestacp.com From e52f036dfbe7d20857adae1d54ae28c405276e30 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 26 Aug 2021 14:30:33 +0200 Subject: [PATCH 239/984] sury.org bullseye repo --- src/deb/for-download/tools/multi-php-install.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/deb/for-download/tools/multi-php-install.sh b/src/deb/for-download/tools/multi-php-install.sh index 761efac7..ffee228e 100644 --- a/src/deb/for-download/tools/multi-php-install.sh +++ b/src/deb/for-download/tools/multi-php-install.sh @@ -95,6 +95,9 @@ if [ "$inst_repo" -eq 1 ]; then if [ $debian_version -eq 10 ]; then sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' fi + if [ $debian_version -eq 11 ]; then + sh -c 'echo "deb https://packages.sury.org/php/ bullseye main" > /etc/apt/sources.list.d/php.list' + fi apt update apt upgrade -y press_enter "=== Press enter to continue ===============================================================================" From b9ccc103f1bf4467d8ad63dbca44fdd514e2ad4a Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 26 Aug 2021 14:32:34 +0200 Subject: [PATCH 240/984] Enabling nginx official repo for deb11 --- install/vst-install-debian.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index e67aa4f2..d835bdc5 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -527,11 +527,11 @@ check_result $? 'apt-get upgrade failed' # Installing nginx repo apt=/etc/apt/sources.list.d -if [ "$release" -ne 11 ]; then +# if [ "$release" -ne 11 ]; then echo "deb http://nginx.org/packages/debian/ $codename nginx" > $apt/nginx.list wget http://nginx.org/keys/nginx_signing.key -O /tmp/nginx_signing.key apt-key add /tmp/nginx_signing.key -fi +# fi # Installing vesta repo echo "deb http://$RHOST/$codename/ $codename vesta" > $apt/vesta.list From 7767ab759b8e01fbff57ca6def549fcc0f5b4048 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 27 Aug 2021 15:51:37 +0200 Subject: [PATCH 241/984] systemctl reset-failed php7.2-fpm --- .../tools/apache-fpm-tpl/PHP-FPM-72.sh | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-72.sh b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-72.sh index 33442862..6541a0dc 100755 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-72.sh +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-72.sh @@ -46,20 +46,24 @@ pool_file_71="/etc/php/7.1/fpm/pool.d/$2.conf" pool_file_72="/etc/php/7.2/fpm/pool.d/$2.conf" pool_file_73="/etc/php/7.3/fpm/pool.d/$2.conf" pool_file_74="/etc/php/7.4/fpm/pool.d/$2.conf" +pool_file_80="/etc/php/8.0/fpm/pool.d/$2.conf" if [ -f "$pool_file_56" ]; then rm $pool_file_56 - service php5.6-fpm restart + systemctl reset-failed php5.6-fpm + systemctl restart php5.6-fpm fi if [ -f "$pool_file_70" ]; then rm $pool_file_70 - service php7.0-fpm restart + systemctl reset-failed php7.0-fpm + systemctl restart php7.0-fpm fi if [ -f "$pool_file_71" ]; then rm $pool_file_71 - service php7.1-fpm restart + systemctl reset-failed php7.1-fpm + systemctl restart php7.1-fpm fi write_file=0 @@ -73,7 +77,8 @@ else fi if [ $write_file -eq 1 ]; then echo "$pool_conf" > $pool_file_72 - service php7.2-fpm restart + systemctl reset-failed php7.2-fpm + systemctl restart php7.2-fpm fi if [ -f "/etc/php/7.2/fpm/pool.d/www.conf" ]; then rm /etc/php/7.2/fpm/pool.d/www.conf @@ -81,12 +86,20 @@ fi if [ -f "$pool_file_73" ]; then rm $pool_file_73 - service php7.3-fpm restart + systemctl reset-failed php7.3-fpm + systemctl restart php7.3-fpm fi if [ -f "$pool_file_74" ]; then rm $pool_file_74 - service php7.4-fpm restart + systemctl reset-failed php7.4-fpm + systemctl restart php7.4-fpm +fi + +if [ -f "$pool_file_80" ]; then + rm $pool_file_80 + systemctl reset-failed php8.0-fpm + systemctl restart php8.0-fpm fi exit 0 From ded5ca220275f5c9c713db3f19f53502eb4db181 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 27 Aug 2021 16:01:52 +0200 Subject: [PATCH 242/984] systemctl reset-failed php7.1-fpm --- .../tools/apache-fpm-tpl/PHP-FPM-71.sh | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-71.sh b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-71.sh index 8688598c..6110e898 100755 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-71.sh +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-71.sh @@ -46,15 +46,18 @@ pool_file_71="/etc/php/7.1/fpm/pool.d/$2.conf" pool_file_72="/etc/php/7.2/fpm/pool.d/$2.conf" pool_file_73="/etc/php/7.3/fpm/pool.d/$2.conf" pool_file_74="/etc/php/7.4/fpm/pool.d/$2.conf" +pool_file_80="/etc/php/8.0/fpm/pool.d/$2.conf" if [ -f "$pool_file_56" ]; then rm $pool_file_56 - service php5.6-fpm restart + systemctl reset-failed php5.6-fpm + systemctl restart php5.6-fpm fi if [ -f "$pool_file_70" ]; then rm $pool_file_70 - service php7.0-fpm restart + systemctl reset-failed php7.0-fpm + systemctl restart php7.0-fpm fi write_file=0 @@ -68,7 +71,8 @@ else fi if [ $write_file -eq 1 ]; then echo "$pool_conf" > $pool_file_71 - service php7.1-fpm restart + systemctl reset-failed php7.1-fpm + systemctl restart php7.1-fpm fi if [ -f "/etc/php/7.1/fpm/pool.d/www.conf" ]; then rm /etc/php/7.1/fpm/pool.d/www.conf @@ -76,17 +80,27 @@ fi if [ -f "$pool_file_72" ]; then rm $pool_file_72 - service php7.2-fpm restart + systemctl reset-failed php7.2-fpm + systemctl restart php7.2-fpm fi + if [ -f "$pool_file_73" ]; then rm $pool_file_73 - service php7.3-fpm restart + systemctl reset-failed php7.3-fpm + systemctl restart php7.3-fpm fi if [ -f "$pool_file_74" ]; then rm $pool_file_74 - service php7.4-fpm restart + systemctl reset-failed php7.4-fpm + systemctl restart php7.4-fpm +fi + +if [ -f "$pool_file_80" ]; then + rm $pool_file_80 + systemctl reset-failed php8.0-fpm + systemctl restart php8.0-fpm fi exit 0 From 2d4efd2db988a3c98546d20ff3b1779cf35f3a74 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 27 Aug 2021 16:05:18 +0200 Subject: [PATCH 243/984] systemctl reset-failed php7.0-fpm --- .../tools/apache-fpm-tpl/PHP-FPM-70.sh | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-70.sh b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-70.sh index fefdf195..0e742ad8 100755 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-70.sh +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-70.sh @@ -46,10 +46,12 @@ pool_file_71="/etc/php/7.1/fpm/pool.d/$2.conf" pool_file_72="/etc/php/7.2/fpm/pool.d/$2.conf" pool_file_73="/etc/php/7.3/fpm/pool.d/$2.conf" pool_file_74="/etc/php/7.4/fpm/pool.d/$2.conf" +pool_file_80="/etc/php/8.0/fpm/pool.d/$2.conf" if [ -f "$pool_file_56" ]; then rm $pool_file_56 - service php5.6-fpm restart + systemctl reset-failed php5.6-fpm + systemctl restart php5.6-fpm fi write_file=0 @@ -63,7 +65,8 @@ else fi if [ $write_file -eq 1 ]; then echo "$pool_conf" > $pool_file_70 - service php7.0-fpm restart + systemctl reset-failed php7.0-fpm + systemctl restart php7.0-fpm fi if [ -f "/etc/php/7.0/fpm/pool.d/www.conf" ]; then rm /etc/php/7.0/fpm/pool.d/www.conf @@ -71,22 +74,32 @@ fi if [ -f "$pool_file_71" ]; then rm $pool_file_71 - service php7.1-fpm restart + systemctl reset-failed php7.1-fpm + systemctl restart php7.1-fpm fi if [ -f "$pool_file_72" ]; then rm $pool_file_72 - service php7.2-fpm restart + systemctl reset-failed php7.2-fpm + systemctl restart php7.2-fpm fi if [ -f "$pool_file_73" ]; then rm $pool_file_73 - service php7.3-fpm restart + systemctl reset-failed php7.3-fpm + systemctl restart php7.3-fpm fi if [ -f "$pool_file_74" ]; then rm $pool_file_74 - service php7.4-fpm restart + systemctl reset-failed php7.4-fpm + systemctl restart php7.4-fpm +fi + +if [ -f "$pool_file_80" ]; then + rm $pool_file_80 + systemctl reset-failed php8.0-fpm + systemctl restart php8.0-fpm fi exit 0 From 8e666c269b8d1cdf01275831c9bab7e75901c4f7 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 27 Aug 2021 16:09:58 +0200 Subject: [PATCH 244/984] systemctl reset-failed php5.6-fpm --- .../tools/apache-fpm-tpl/PHP-FPM-56.sh | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-56.sh b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-56.sh index 4f54592d..b9137821 100755 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-56.sh +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-56.sh @@ -46,6 +46,7 @@ pool_file_71="/etc/php/7.1/fpm/pool.d/$2.conf" pool_file_72="/etc/php/7.2/fpm/pool.d/$2.conf" pool_file_73="/etc/php/7.3/fpm/pool.d/$2.conf" pool_file_74="/etc/php/7.4/fpm/pool.d/$2.conf" +pool_file_80="/etc/php/8.0/fpm/pool.d/$2.conf" write_file=0 if [ ! -f "$pool_file_56" ]; then @@ -58,7 +59,8 @@ else fi if [ $write_file -eq 1 ]; then echo "$pool_conf" > $pool_file_56 - service php5.6-fpm restart + systemctl reset-failed php5.6-fpm + systemctl restart php5.6-fpm fi if [ -f "/etc/php/5.6/fpm/pool.d/www.conf" ]; then rm /etc/php/5.6/fpm/pool.d/www.conf @@ -66,27 +68,39 @@ fi if [ -f "$pool_file_70" ]; then rm $pool_file_70 - service php7.0-fpm restart + systemctl reset-failed php7.0-fpm + systemctl restart php7.0-fpm fi + if [ -f "$pool_file_71" ]; then rm $pool_file_71 - service php7.1-fpm restart + systemctl reset-failed php7.1-fpm + systemctl restart php7.1-fpm fi if [ -f "$pool_file_72" ]; then rm $pool_file_72 - service php7.2-fpm restart + systemctl reset-failed php7.2-fpm + systemctl restart php7.2-fpm fi if [ -f "$pool_file_73" ]; then rm $pool_file_73 - service php7.3-fpm restart + systemctl reset-failed php7.3-fpm + systemctl restart php7.3-fpm fi if [ -f "$pool_file_74" ]; then rm $pool_file_74 - service php7.4-fpm restart + systemctl reset-failed php7.4-fpm + systemctl restart php7.4-fpm +fi + +if [ -f "$pool_file_80" ]; then + rm $pool_file_80 + systemctl reset-failed php8.0-fpm + systemctl restart php8.0-fpm fi exit 0 From b4204da66fcad7eb279f28fe0b0664377def62f7 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 28 Aug 2021 20:01:47 +0200 Subject: [PATCH 245/984] Fix for: news@anydomain.com went to /var/spool/news Issue https://github.com/hestiacp/hestiacp/issues/2078 Credits to HestiaCP --- install/debian/10/exim/exim4.conf.template | 2 ++ 1 file changed, 2 insertions(+) diff --git a/install/debian/10/exim/exim4.conf.template b/install/debian/10/exim/exim4.conf.template index 7cc13c36..cb79ab3c 100644 --- a/install/debian/10/exim/exim4.conf.template +++ b/install/debian/10/exim/exim4.conf.template @@ -247,6 +247,8 @@ userforward: driver = redirect check_local_user file = $home/.forward + require_files = ${local_part}:+${home}/.forward + domains = +local_domains allow_filter no_verify no_expn From b8963d5b2d9909df1245e6a73e3b794145bcc28b Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 28 Aug 2021 20:06:24 +0200 Subject: [PATCH 246/984] Fix for: news@anydomain.com went to /var/spool/news Issue https://github.com/hestiacp/hestiacp/issues/2078 Credits to @HestiaCP --- install/debian/11/exim/exim4.conf.template | 2 ++ 1 file changed, 2 insertions(+) diff --git a/install/debian/11/exim/exim4.conf.template b/install/debian/11/exim/exim4.conf.template index fe92680f..977dc661 100644 --- a/install/debian/11/exim/exim4.conf.template +++ b/install/debian/11/exim/exim4.conf.template @@ -247,6 +247,8 @@ userforward: driver = redirect check_local_user file = $home/.forward + require_files = ${local_part}:+${home}/.forward + domains = +local_domains allow_filter no_verify no_expn From 0686c6d5f6004784c9c3cd1323efe9af17c77550 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 28 Aug 2021 23:35:10 +0200 Subject: [PATCH 247/984] More logical check expression in secure_login.php --- web/inc/secure_login.php | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/web/inc/secure_login.php b/web/inc/secure_login.php index 34b02695..b5fcf32f 100644 --- a/web/inc/secure_login.php +++ b/web/inc/secure_login.php @@ -1,38 +1,38 @@ Date: Sun, 29 Aug 2021 00:04:27 +0200 Subject: [PATCH 248/984] Smarter preventing all POST CSRF --- web/inc/secure_login.php | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/web/inc/secure_login.php b/web/inc/secure_login.php index b5fcf32f..ce614ea1 100644 --- a/web/inc/secure_login.php +++ b/web/inc/secure_login.php @@ -50,15 +50,34 @@ if ($secure_gate_check==true) { } } -// Preventing all CSRF -if ($secure_gate_check==true) { +function prevent_post_csrf ($hard_check=false) { + if (file_exists('/usr/local/vesta/conf_web/dont_check_csrf')) return; if ($_SERVER['REQUEST_METHOD']=='POST') { + if ($hard_check==false) { + if (isset($_SERVER['HTTP_HOST']) == false) return; + if (isset($_SERVER['HTTP_ORIGIN']) == false) return; + if (isset($_SERVER['SERVER_PORT']) == false) return; + } else { + if (isset($_SERVER['HTTP_HOST']) == false) $_SERVER['HTTP_HOST']=''; + if (isset($_SERVER['HTTP_ORIGIN']) == false) $_SERVER['HTTP_ORIGIN']=''; + if (isset($_SERVER['SERVER_PORT']) == false) $_SERVER['HTTP_PORT']=''; + } + $_SERVER['HTTP_HOST']=strtolower($_SERVER['HTTP_HOST']); + $_SERVER['HTTP_ORIGIN']=strtolower($_SERVER['HTTP_ORIGIN']); + if ($hard_check==false) { + if (substr($_SERVER['HTTP_ORIGIN'], 0,7) != "http://" && substr($_SERVER['HTTP_ORIGIN'], 0,8)!="https://") return; + } $host_arr=explode(":", $_SERVER['HTTP_HOST']); $hostname=$host_arr[0]; $port = $_SERVER['SERVER_PORT']; $expected_http_origin="https://".$hostname.":".$port; + $level=1; + if ($hard_check==true) $level=2; if ($_SERVER['HTTP_ORIGIN'] != $expected_http_origin) { - die ("Nope."); + die ("CSRF detected (".$level.").
Your browser sent HTTP_ORIGIN with value: ".$_SERVER['HTTP_ORIGIN']."
myVesta expected HTTP_ORIGIN with value: ".$expected_http_origin."
Probably some browser extension is blocking it... disable all extensions and try again (or try to login with other browser).
If you are system administrator of this server, you can disable CSRF check by doing (as root, in SSH): mkdir /usr/local/vesta/conf_web && touch /usr/local/vesta/conf_web/dont_check_csrf
(but we don't recommend it)
If you are not system administrator of this server and you can't access the hosting panel even you disabled all browser extensions, please copy-paste this message to the system administrator of this server.
Once again, before you disable CSRF check, try to disable all browser extensions or try to login with other browser."); } } } + +// Preventing all POST CSRF +if ($secure_gate_check==true) prevent_post_csrf(); From c2a30bcd31d41ce90146734af3d52073ae1c169a Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 29 Aug 2021 00:07:41 +0200 Subject: [PATCH 249/984] Preventing CSRF in /edit/file/ --- web/edit/file/index.php | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/web/edit/file/index.php b/web/edit/file/index.php index 9071af3a..b36a4656 100644 --- a/web/edit/file/index.php +++ b/web/edit/file/index.php @@ -1,15 +1,7 @@ Date: Sun, 29 Aug 2021 00:10:42 +0200 Subject: [PATCH 250/984] Preventing CSRF in UploadHandler.php --- web/upload/UploadHandler.php | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/web/upload/UploadHandler.php b/web/upload/UploadHandler.php index 15adb406..511ec4b3 100755 --- a/web/upload/UploadHandler.php +++ b/web/upload/UploadHandler.php @@ -2,13 +2,8 @@ //session_start(); -$host_arr=explode(":", $_SERVER['HTTP_HOST']); -$hostname=$host_arr[0]; -$port = $_SERVER['SERVER_PORT']; -$expected_http_origin="https://".$hostname.":".$port; -if ($_SERVER['HTTP_ORIGIN'] != $expected_http_origin) { - die ("Nope."); -} +// Preventing CSRF +prevent_post_csrf(true); include($_SERVER['DOCUMENT_ROOT']."/inc/main.php"); From 9277b3780007a371ea7bb067a7a40dc39ed05d0d Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 29 Aug 2021 00:12:09 +0200 Subject: [PATCH 251/984] Preventing CSRF in /schedule/backup --- web/schedule/backup/index.php | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/web/schedule/backup/index.php b/web/schedule/backup/index.php index 06881993..07412e71 100644 --- a/web/schedule/backup/index.php +++ b/web/schedule/backup/index.php @@ -1,15 +1,7 @@ Date: Sun, 29 Aug 2021 00:14:15 +0200 Subject: [PATCH 252/984] Preventing CSRF in /file_manager/fm_api.php --- web/file_manager/fm_api.php | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/web/file_manager/fm_api.php b/web/file_manager/fm_api.php index 4a4dd9ec..c593b3f6 100644 --- a/web/file_manager/fm_api.php +++ b/web/file_manager/fm_api.php @@ -3,15 +3,7 @@ //error_reporting(NULL); // Preventing CSRF -if ($_SERVER['REQUEST_METHOD']=='POST') { - $host_arr=explode(":", $_SERVER['HTTP_HOST']); - $hostname=$host_arr[0]; - $port = $_SERVER['SERVER_PORT']; - $expected_http_origin="https://".$hostname.":".$port; - if ($_SERVER['HTTP_ORIGIN'] != $expected_http_origin) { - die ("Nope."); - } -} +prevent_post_csrf(true); header('Content-Type: application/json'); From 11f1cfcf4e4f575625c91309159e67d40baca28f Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 29 Aug 2021 00:54:57 +0200 Subject: [PATCH 253/984] Proper way to fix CSRF in /schedule/backup/ --- web/schedule/backup/index.php | 10 +++++++--- web/templates/admin/list_backup.html | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/web/schedule/backup/index.php b/web/schedule/backup/index.php index 07412e71..8d51832e 100644 --- a/web/schedule/backup/index.php +++ b/web/schedule/backup/index.php @@ -1,14 +1,18 @@
- +
From 59edb05f49fed2b141da8d2ad130b6e704bc9649 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 29 Aug 2021 01:20:12 +0200 Subject: [PATCH 254/984] Proper way to fix CSRF in /edit/file/ --- web/edit/file/index.php | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/web/edit/file/index.php b/web/edit/file/index.php index b36a4656..931b861f 100644 --- a/web/edit/file/index.php +++ b/web/edit/file/index.php @@ -1,8 +1,5 @@ - + @@ -96,6 +99,7 @@ if (($_SESSION['user'] == 'admin') && (!empty($_SESSION['look']))) { var makeBackup = function() { var params = { action: 'backup', + token: '', path: '' }; From 085a25d1658dc818e5ca6729252fcad94dcbfcb6 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 29 Aug 2021 01:59:49 +0200 Subject: [PATCH 255/984] Update secure_login.php --- web/inc/secure_login.php | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/web/inc/secure_login.php b/web/inc/secure_login.php index ce614ea1..b55d8e31 100644 --- a/web/inc/secure_login.php +++ b/web/inc/secure_login.php @@ -53,31 +53,33 @@ if ($secure_gate_check==true) { function prevent_post_csrf ($hard_check=false) { if (file_exists('/usr/local/vesta/conf_web/dont_check_csrf')) return; if ($_SERVER['REQUEST_METHOD']=='POST') { - if ($hard_check==false) { - if (isset($_SERVER['HTTP_HOST']) == false) return; + if ($hard_check == false) { if (isset($_SERVER['HTTP_ORIGIN']) == false) return; + if (isset($_SERVER['HTTP_HOST']) == false) return; if (isset($_SERVER['SERVER_PORT']) == false) return; } else { - if (isset($_SERVER['HTTP_HOST']) == false) $_SERVER['HTTP_HOST']=''; - if (isset($_SERVER['HTTP_ORIGIN']) == false) $_SERVER['HTTP_ORIGIN']=''; - if (isset($_SERVER['SERVER_PORT']) == false) $_SERVER['HTTP_PORT']=''; + if (isset($_SERVER['HTTP_ORIGIN']) == false) $_SERVER['HTTP_ORIGIN'] = ''; + if (isset($_SERVER['HTTP_HOST']) == false) $_SERVER['HTTP_HOST'] = ''; + if (isset($_SERVER['SERVER_PORT']) == false) $_SERVER['HTTP_PORT'] = ''; } - $_SERVER['HTTP_HOST']=strtolower($_SERVER['HTTP_HOST']); - $_SERVER['HTTP_ORIGIN']=strtolower($_SERVER['HTTP_ORIGIN']); - if ($hard_check==false) { + $_SERVER['HTTP_HOST'] = strtolower($_SERVER['HTTP_HOST']); + $_SERVER['HTTP_ORIGIN'] = strtolower($_SERVER['HTTP_ORIGIN']); + if ($hard_check == false) { if (substr($_SERVER['HTTP_ORIGIN'], 0,7) != "http://" && substr($_SERVER['HTTP_ORIGIN'], 0,8)!="https://") return; } - $host_arr=explode(":", $_SERVER['HTTP_HOST']); - $hostname=$host_arr[0]; + $host_arr = explode(":", $_SERVER['HTTP_HOST']); + $hostname = $host_arr[0]; $port = $_SERVER['SERVER_PORT']; - $expected_http_origin="https://".$hostname.":".$port; - $level=1; - if ($hard_check==true) $level=2; + $expected_http_origin = "https://".$hostname.":".$port; + $level = 1; + if ($hard_check == true) $level = 2; if ($_SERVER['HTTP_ORIGIN'] != $expected_http_origin) { - die ("CSRF detected (".$level.").
Your browser sent HTTP_ORIGIN with value: ".$_SERVER['HTTP_ORIGIN']."
myVesta expected HTTP_ORIGIN with value: ".$expected_http_origin."
Probably some browser extension is blocking it... disable all extensions and try again (or try to login with other browser).
If you are system administrator of this server, you can disable CSRF check by doing (as root, in SSH): mkdir /usr/local/vesta/conf_web && touch /usr/local/vesta/conf_web/dont_check_csrf
(but we don't recommend it)
If you are not system administrator of this server and you can't access the hosting panel even you disabled all browser extensions, please copy-paste this message to the system administrator of this server.
Once again, before you disable CSRF check, try to disable all browser extensions or try to login with other browser."); + die ("CSRF detected (".$level.").
Your browser sent HTTP_ORIGIN with value: ".$_SERVER['HTTP_ORIGIN']."
myVesta expected HTTP_ORIGIN with value: ".$expected_http_origin."
Probably some browser extension is blocking it... disable all browser extensions and try again (or try to login with other browser).
If you are system administrator of this server, you can disable CSRF check by doing (as root, in SSH): mkdir /usr/local/vesta/conf_web && touch /usr/local/vesta/conf_web/dont_check_csrf
(but we don't recommend it)
If you are not system administrator of this server and you can't access the hosting panel even you disabled all browser extensions, please copy-paste this message to the system administrator of this server.
Once again, before you disable CSRF check, try to disable all browser extensions or try to login with other browser."); } } } -// Preventing all POST CSRF -if ($secure_gate_check==true) prevent_post_csrf(); +// Preventing all CSRFs +if ($secure_gate_check == true) { + prevent_post_csrf(); +} From 49905063f634e5d95585664f227520512a324605 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 29 Aug 2021 11:09:24 +0200 Subject: [PATCH 256/984] Update secure_login.php --- web/inc/secure_login.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/web/inc/secure_login.php b/web/inc/secure_login.php index b55d8e31..f9452cc3 100644 --- a/web/inc/secure_login.php +++ b/web/inc/secure_login.php @@ -54,18 +54,18 @@ function prevent_post_csrf ($hard_check=false) { if (file_exists('/usr/local/vesta/conf_web/dont_check_csrf')) return; if ($_SERVER['REQUEST_METHOD']=='POST') { if ($hard_check == false) { - if (isset($_SERVER['HTTP_ORIGIN']) == false) return; if (isset($_SERVER['HTTP_HOST']) == false) return; if (isset($_SERVER['SERVER_PORT']) == false) return; + if (isset($_SERVER['HTTP_ORIGIN']) == false) return; } else { - if (isset($_SERVER['HTTP_ORIGIN']) == false) $_SERVER['HTTP_ORIGIN'] = ''; if (isset($_SERVER['HTTP_HOST']) == false) $_SERVER['HTTP_HOST'] = ''; if (isset($_SERVER['SERVER_PORT']) == false) $_SERVER['HTTP_PORT'] = ''; + if (isset($_SERVER['HTTP_ORIGIN']) == false) $_SERVER['HTTP_ORIGIN'] = ''; } $_SERVER['HTTP_HOST'] = strtolower($_SERVER['HTTP_HOST']); $_SERVER['HTTP_ORIGIN'] = strtolower($_SERVER['HTTP_ORIGIN']); if ($hard_check == false) { - if (substr($_SERVER['HTTP_ORIGIN'], 0,7) != "http://" && substr($_SERVER['HTTP_ORIGIN'], 0,8)!="https://") return; + if (substr($_SERVER['HTTP_ORIGIN'], 0, 8) != "file:///" && substr($_SERVER['HTTP_ORIGIN'], 0, 7) != "http://" && substr($_SERVER['HTTP_ORIGIN'], 0, 8) != "https://") return; } $host_arr = explode(":", $_SERVER['HTTP_HOST']); $hostname = $host_arr[0]; From eae5c3418a87c58cf69b9d800647429e67550976 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 29 Aug 2021 11:14:11 +0200 Subject: [PATCH 257/984] Preventing GET CSRFs --- web/inc/secure_login.php | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/web/inc/secure_login.php b/web/inc/secure_login.php index f9452cc3..93df7b53 100644 --- a/web/inc/secure_login.php +++ b/web/inc/secure_login.php @@ -79,7 +79,26 @@ function prevent_post_csrf ($hard_check=false) { } } +function prevent_get_csrf ($hard_check=false) { + if (file_exists('/usr/local/vesta/conf_web/dont_check_csrf')) return; + if (isset($_SERVER['HTTP_HOST']) == false) return; + if (isset($_SERVER['SERVER_PORT']) == false) return; + if (isset($_SERVER['HTTP_REFERER']) == false) return; + $_SERVER['HTTP_HOST'] = strtolower($_SERVER['HTTP_HOST']); + $_SERVER['HTTP_ORIGIN'] = strtolower($_SERVER['HTTP_ORIGIN']); + if (substr($_SERVER['HTTP_REFERER'], 0, 8) != "file:///" && substr($_SERVER['HTTP_REFERER'], 0, 7) != "http://" && substr($_SERVER['HTTP_REFERER'], 0, 8) != "https://") return; + $host_arr = explode(":", $_SERVER['HTTP_HOST']); + $hostname = $host_arr[0]; + $port = $_SERVER['SERVER_PORT']; + $expected_http_referer = "https://".$hostname.":".$port; + $expected_http_referer_length = strlen($expected_http_referer); + if (substr($_SERVER['HTTP_REFERER'], 0, $expected_http_referer_length) != $expected_http_referer) { + die ("You clicked on someone's link from other site.
This is just a protection layer to prevent potentially dangerous clicks, so if it was your link - you can proceed safely to your hosting panel.

Technical details:
Your browser sent HTTP_REFERER with value: ".$_SERVER['HTTP_REFERER']."
myVesta expected HTTP_REFERER to begin with value: ".$expected_http_referer."
If you got this error during casual work in your hosting panel, probably some browser extension is blocking HTTP_REFERER... disable all browser extensions and try again (or try to login with other browser).
If you are system administrator of this server, you can disable CSRF check by doing (as root, in SSH): mkdir /usr/local/vesta/conf_web && touch /usr/local/vesta/conf_web/dont_check_csrf
(but we don't recommend it)
If you are not system administrator of this server and you can't access the hosting panel even you clicked \"proceed safely to your hosting panel\" and disabled all browser extensions or changed the browser, please copy-paste this message to the system administrator of this server.
Once again, before you disable CSRF check, try to click \"proceed safely to your hosting panel\", and if that does not help then try to disable all browser extensions or try to login with other browser."); + } +} + // Preventing all CSRFs if ($secure_gate_check == true) { prevent_post_csrf(); + prevent_get_csrf(); } From 834f939fbea444d1fb1fedff67fe271ad008e2e2 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 29 Aug 2021 11:50:22 +0200 Subject: [PATCH 258/984] Exception for function prevent_get_csrf --- web/inc/secure_login.php | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/web/inc/secure_login.php b/web/inc/secure_login.php index 93df7b53..1dfe2541 100644 --- a/web/inc/secure_login.php +++ b/web/inc/secure_login.php @@ -79,22 +79,27 @@ function prevent_post_csrf ($hard_check=false) { } } -function prevent_get_csrf ($hard_check=false) { - if (file_exists('/usr/local/vesta/conf_web/dont_check_csrf')) return; - if (isset($_SERVER['HTTP_HOST']) == false) return; - if (isset($_SERVER['SERVER_PORT']) == false) return; - if (isset($_SERVER['HTTP_REFERER']) == false) return; - $_SERVER['HTTP_HOST'] = strtolower($_SERVER['HTTP_HOST']); - $_SERVER['HTTP_ORIGIN'] = strtolower($_SERVER['HTTP_ORIGIN']); - if (substr($_SERVER['HTTP_REFERER'], 0, 8) != "file:///" && substr($_SERVER['HTTP_REFERER'], 0, 7) != "http://" && substr($_SERVER['HTTP_REFERER'], 0, 8) != "https://") return; - $host_arr = explode(":", $_SERVER['HTTP_HOST']); - $hostname = $host_arr[0]; - $port = $_SERVER['SERVER_PORT']; - $expected_http_referer = "https://".$hostname.":".$port; - $expected_http_referer_length = strlen($expected_http_referer); - if (substr($_SERVER['HTTP_REFERER'], 0, $expected_http_referer_length) != $expected_http_referer) { - die ("You clicked on someone's link from other site.
This is just a protection layer to prevent potentially dangerous clicks, so if it was your link - you can proceed safely to your hosting panel.

Technical details:
Your browser sent HTTP_REFERER with value: ".$_SERVER['HTTP_REFERER']."
myVesta expected HTTP_REFERER to begin with value: ".$expected_http_referer."
If you got this error during casual work in your hosting panel, probably some browser extension is blocking HTTP_REFERER... disable all browser extensions and try again (or try to login with other browser).
If you are system administrator of this server, you can disable CSRF check by doing (as root, in SSH): mkdir /usr/local/vesta/conf_web && touch /usr/local/vesta/conf_web/dont_check_csrf
(but we don't recommend it)
If you are not system administrator of this server and you can't access the hosting panel even you clicked \"proceed safely to your hosting panel\" and disabled all browser extensions or changed the browser, please copy-paste this message to the system administrator of this server.
Once again, before you disable CSRF check, try to click \"proceed safely to your hosting panel\", and if that does not help then try to disable all browser extensions or try to login with other browser."); - } +function prevent_get_csrf () { + global $login_url; + if (file_exists('/usr/local/vesta/conf_web/dont_check_csrf')) return; + if ($_SERVER['REQUEST_METHOD'] == "GET") { + if (isset($_GET[$login_url])) return; + if ($_SERVER['REQUEST_URI']=="" || $_SERVER['REQUEST_URI']=="/" || $_SERVER['REQUEST_URI']=="/login/" || $_SERVER['REQUEST_URI']=="/list/web/") return; + } + if (isset($_SERVER['HTTP_HOST']) == false) return; + if (isset($_SERVER['SERVER_PORT']) == false) return; + if (isset($_SERVER['HTTP_REFERER']) == false) return; + $_SERVER['HTTP_HOST'] = strtolower($_SERVER['HTTP_HOST']); + $_SERVER['HTTP_ORIGIN'] = strtolower($_SERVER['HTTP_ORIGIN']); + if (substr($_SERVER['HTTP_REFERER'], 0, 8) != "file:///" && substr($_SERVER['HTTP_REFERER'], 0, 7) != "http://" && substr($_SERVER['HTTP_REFERER'], 0, 8) != "https://") return; + $host_arr = explode(":", $_SERVER['HTTP_HOST']); + $hostname = $host_arr[0]; + $port = $_SERVER['SERVER_PORT']; + $expected_http_referer = "https://".$hostname.":".$port; + $expected_http_referer_length = strlen($expected_http_referer); + if (substr($_SERVER['HTTP_REFERER'], 0, $expected_http_referer_length) != $expected_http_referer) { + die ("You clicked on someone's link from other site.
This is just a protection layer to prevent potentially dangerous clicks, so if it was your link - you can proceed safely to your hosting panel.

Technical details:
Your browser sent HTTP_REFERER with value: ".$_SERVER['HTTP_REFERER']."
myVesta expected HTTP_REFERER to begin with value: ".$expected_http_referer."
If you got this error during casual work in your hosting panel, probably some browser extension is blocking HTTP_REFERER... disable all browser extensions and try again (or try to login with other browser).
If you are system administrator of this server, you can disable CSRF check by doing (as root, in SSH): mkdir /usr/local/vesta/conf_web && touch /usr/local/vesta/conf_web/dont_check_csrf
(but we don't recommend it)
If you are not system administrator of this server and you can't access the hosting panel even you clicked \"proceed safely to your hosting panel\" and disabled all browser extensions or changed the browser, please copy-paste this message to the system administrator of this server.
Once again, before you disable CSRF check, try to click \"proceed safely to your hosting panel\", and if that does not help then try to disable all browser extensions or try to login with other browser."); + } } // Preventing all CSRFs From 8a5469abcd282fe1c916fa960995561ff3954bbd Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 29 Aug 2021 12:39:48 +0200 Subject: [PATCH 259/984] Update secure_login.php --- web/inc/secure_login.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/inc/secure_login.php b/web/inc/secure_login.php index 1dfe2541..dcfc2b82 100644 --- a/web/inc/secure_login.php +++ b/web/inc/secure_login.php @@ -84,7 +84,7 @@ function prevent_get_csrf () { if (file_exists('/usr/local/vesta/conf_web/dont_check_csrf')) return; if ($_SERVER['REQUEST_METHOD'] == "GET") { if (isset($_GET[$login_url])) return; - if ($_SERVER['REQUEST_URI']=="" || $_SERVER['REQUEST_URI']=="/" || $_SERVER['REQUEST_URI']=="/login/" || $_SERVER['REQUEST_URI']=="/list/web/") return; + if ($_SERVER['REQUEST_URI']=="" || $_SERVER['REQUEST_URI']=="/" || $_SERVER['REQUEST_URI']=="/login/" || $_SERVER['REQUEST_URI']=="/list/user/" || $_SERVER['REQUEST_URI']=="/list/web/") return; } if (isset($_SERVER['HTTP_HOST']) == false) return; if (isset($_SERVER['SERVER_PORT']) == false) return; From 7c9da855e8853b2b095dbc2bc1f1840ff9bd3f7c Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 29 Aug 2021 14:05:15 +0200 Subject: [PATCH 260/984] Update secure_login.php --- web/inc/secure_login.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/inc/secure_login.php b/web/inc/secure_login.php index dcfc2b82..b360c1e8 100644 --- a/web/inc/secure_login.php +++ b/web/inc/secure_login.php @@ -74,7 +74,7 @@ function prevent_post_csrf ($hard_check=false) { $level = 1; if ($hard_check == true) $level = 2; if ($_SERVER['HTTP_ORIGIN'] != $expected_http_origin) { - die ("CSRF detected (".$level.").
Your browser sent HTTP_ORIGIN with value: ".$_SERVER['HTTP_ORIGIN']."
myVesta expected HTTP_ORIGIN with value: ".$expected_http_origin."
Probably some browser extension is blocking it... disable all browser extensions and try again (or try to login with other browser).
If you are system administrator of this server, you can disable CSRF check by doing (as root, in SSH): mkdir /usr/local/vesta/conf_web && touch /usr/local/vesta/conf_web/dont_check_csrf
(but we don't recommend it)
If you are not system administrator of this server and you can't access the hosting panel even you disabled all browser extensions, please copy-paste this message to the system administrator of this server.
Once again, before you disable CSRF check, try to disable all browser extensions or try to login with other browser."); + die ("CSRF detected (".$level.").
Your browser sent HTTP_ORIGIN with value: ".$_SERVER['HTTP_ORIGIN']."
myVesta expected HTTP_ORIGIN with value: ".$expected_http_origin."
Probably some browser extension is blocking it... disable all browser extensions and try again (or try to login with other browser).
If you are system administrator of this server, you can disable CSRF check by doing (as root, in SSH): mkdir -p /usr/local/vesta/conf_web && touch /usr/local/vesta/conf_web/dont_check_csrf
(but we don't recommend it)
If you are not system administrator of this server and you can't access the hosting panel even you disabled all browser extensions, please copy-paste this message to the system administrator of this server.
Once again, before you disable CSRF check, try to disable all browser extensions or try to login with other browser."); } } } @@ -98,7 +98,7 @@ function prevent_get_csrf () { $expected_http_referer = "https://".$hostname.":".$port; $expected_http_referer_length = strlen($expected_http_referer); if (substr($_SERVER['HTTP_REFERER'], 0, $expected_http_referer_length) != $expected_http_referer) { - die ("You clicked on someone's link from other site.
This is just a protection layer to prevent potentially dangerous clicks, so if it was your link - you can proceed safely to your hosting panel.

Technical details:
Your browser sent HTTP_REFERER with value: ".$_SERVER['HTTP_REFERER']."
myVesta expected HTTP_REFERER to begin with value: ".$expected_http_referer."
If you got this error during casual work in your hosting panel, probably some browser extension is blocking HTTP_REFERER... disable all browser extensions and try again (or try to login with other browser).
If you are system administrator of this server, you can disable CSRF check by doing (as root, in SSH): mkdir /usr/local/vesta/conf_web && touch /usr/local/vesta/conf_web/dont_check_csrf
(but we don't recommend it)
If you are not system administrator of this server and you can't access the hosting panel even you clicked \"proceed safely to your hosting panel\" and disabled all browser extensions or changed the browser, please copy-paste this message to the system administrator of this server.
Once again, before you disable CSRF check, try to click \"proceed safely to your hosting panel\", and if that does not help then try to disable all browser extensions or try to login with other browser."); + die ("You clicked on someone's link from other site.
This is just a protection layer to prevent potentially dangerous clicks, so if it was your link - you can proceed safely to your hosting panel.

Technical details:
Your browser sent HTTP_REFERER with value: ".$_SERVER['HTTP_REFERER']."
myVesta expected HTTP_REFERER to begin with value: ".$expected_http_referer."
If you got this error during casual work in your hosting panel, probably some browser extension is blocking HTTP_REFERER... disable all browser extensions and try again (or try to login with other browser).
If you are system administrator of this server, you can disable CSRF check by doing (as root, in SSH): mkdir -p /usr/local/vesta/conf_web && touch /usr/local/vesta/conf_web/dont_check_csrf
(but we don't recommend it)
If you are not system administrator of this server and you can't access the hosting panel even you clicked \"proceed safely to your hosting panel\" and disabled all browser extensions or changed the browser, please copy-paste this message to the system administrator of this server.
Once again, before you disable CSRF check, try to click \"proceed safely to your hosting panel\", and if that does not help then try to disable all browser extensions or try to login with other browser."); } } From 5262b3f4470e7a937dccd3b9d537d6d1543bbca4 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 29 Aug 2021 14:13:03 +0200 Subject: [PATCH 261/984] Update secure_login.php --- web/inc/secure_login.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/inc/secure_login.php b/web/inc/secure_login.php index b360c1e8..0fb030fc 100644 --- a/web/inc/secure_login.php +++ b/web/inc/secure_login.php @@ -98,7 +98,7 @@ function prevent_get_csrf () { $expected_http_referer = "https://".$hostname.":".$port; $expected_http_referer_length = strlen($expected_http_referer); if (substr($_SERVER['HTTP_REFERER'], 0, $expected_http_referer_length) != $expected_http_referer) { - die ("You clicked on someone's link from other site.
This is just a protection layer to prevent potentially dangerous clicks, so if it was your link - you can proceed safely to your hosting panel.

Technical details:
Your browser sent HTTP_REFERER with value: ".$_SERVER['HTTP_REFERER']."
myVesta expected HTTP_REFERER to begin with value: ".$expected_http_referer."
If you got this error during casual work in your hosting panel, probably some browser extension is blocking HTTP_REFERER... disable all browser extensions and try again (or try to login with other browser).
If you are system administrator of this server, you can disable CSRF check by doing (as root, in SSH): mkdir -p /usr/local/vesta/conf_web && touch /usr/local/vesta/conf_web/dont_check_csrf
(but we don't recommend it)
If you are not system administrator of this server and you can't access the hosting panel even you clicked \"proceed safely to your hosting panel\" and disabled all browser extensions or changed the browser, please copy-paste this message to the system administrator of this server.
Once again, before you disable CSRF check, try to click \"proceed safely to your hosting panel\", and if that does not help then try to disable all browser extensions or try to login with other browser."); + die ("You clicked on someone's link from other site.
This is just a protection layer to prevent potentially dangerous clicks, so if it was your link (or you got the link from the trusted source) - then you can proceed safely to your hosting panel.

Technical details:
Your browser sent HTTP_REFERER with value: ".$_SERVER['HTTP_REFERER']."
myVesta expected HTTP_REFERER to begin with value: ".$expected_http_referer."
If you got this error during casual work in your hosting panel, probably some browser extension is blocking HTTP_REFERER... disable all browser extensions and try again (or try to login with other browser).
If you are system administrator of this server, you can disable CSRF check by doing (as root, in SSH): mkdir -p /usr/local/vesta/conf_web && touch /usr/local/vesta/conf_web/dont_check_csrf
(but we don't recommend it)
If you are not system administrator of this server and you can't access the hosting panel even you clicked \"proceed safely to your hosting panel\" and disabled all browser extensions or changed the browser, please copy-paste this message to the system administrator of this server.
Once again, before you disable CSRF check, try to click \"proceed safely to your hosting panel\", and if that does not help then try to disable all browser extensions or try to login with other browser."); } } From 475fe47984df6209cebc741fba02ee65f84e0a4d Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 29 Aug 2021 16:05:33 +0200 Subject: [PATCH 262/984] Checking token on adding and deleting favorites --- web/add/favorite/index.php | 7 +++---- web/delete/favorite/index.php | 5 +++++ web/js/init.js | 5 +++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/web/add/favorite/index.php b/web/add/favorite/index.php index e9f2e828..a3054d99 100644 --- a/web/add/favorite/index.php +++ b/web/add/favorite/index.php @@ -7,10 +7,9 @@ session_start(); include($_SERVER['DOCUMENT_ROOT']."/inc/main.php"); // Check token -// if ((!isset($_POST['token'])) || ($_SESSION['token'] != $_POST['token'])) { -// header('location: /login/'); -// exit(); -// } +if ((!isset($_REQUEST['token'])) || ($_SESSION['token'] != $_REQUEST['token'])) { + die("Wrong token"); +} // Protect input $v_section = escapeshellarg($_REQUEST['v_section']); diff --git a/web/delete/favorite/index.php b/web/delete/favorite/index.php index 9f471b9b..093566f9 100644 --- a/web/delete/favorite/index.php +++ b/web/delete/favorite/index.php @@ -5,6 +5,11 @@ include($_SERVER['DOCUMENT_ROOT']."/inc/main.php"); + // Check token + if ((!isset($_REQUEST['token'])) || ($_SESSION['token'] != $_REQUEST['token'])) { + die("Wrong token"); + } + unset($_SESSION['favourites'][strtoupper($_REQUEST['v_section'])][$_REQUEST['v_unit_id']]); $v_section = escapeshellarg($_REQUEST['v_section']); diff --git a/web/js/init.js b/web/js/init.js index 3ac6175e..6c60ff85 100644 --- a/web/js/init.js +++ b/web/js/init.js @@ -128,6 +128,7 @@ $(document).ready(function(){ $('.l-unit .l-icon-star').click(function(){ var l_unit = $(this).parents('.l-unit'); + var token = $('#token').attr('token'); if(l_unit.hasClass('l-unit--starred')){ // removing star @@ -135,7 +136,7 @@ $(document).ready(function(){ $.ajax({ method: "POST", url: "/delete/favorite/index.php", - data: { v_section: l_unit.attr('v_section'), v_unit_id: l_unit.attr('v_unit_id') } + data: { v_section: l_unit.attr('v_section'), v_unit_id: l_unit.attr('v_unit_id'), token: token } }); l_unit.attr({'sort-star': 0}); @@ -145,7 +146,7 @@ $(document).ready(function(){ $.ajax({ method: "POST", url: "/add/favorite/index.php", - data: { v_unit_id: l_unit.attr('v_unit_id'), v_section: l_unit.attr('v_section') } + data: { v_unit_id: l_unit.attr('v_unit_id'), v_section: l_unit.attr('v_section'), token: token } }); l_unit.attr({'sort-star': 1}); From 693dd2877cdec6da8287d7739f1484102f88652b Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 30 Aug 2021 00:06:32 +0200 Subject: [PATCH 263/984] session.cookie_httponly and session.cookie_secure in myvesta php-fpm --- src/deb/for-download/php/php-fpm.conf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/deb/for-download/php/php-fpm.conf b/src/deb/for-download/php/php-fpm.conf index d9a04795..cd0005f8 100644 --- a/src/deb/for-download/php/php-fpm.conf +++ b/src/deb/for-download/php/php-fpm.conf @@ -32,3 +32,5 @@ php_admin_value[upload_max_filesize] = 512M php_admin_value[max_execution_time] = 600 php_admin_value[max_input_time] = 600 php_admin_value[session.save_path] = /usr/local/vesta/data/sessions +php_admin_flag[session.cookie_httponly] = on +php_admin_flag[session.cookie_secure] = on From ab9c10b05c63fc5efdf46d7fc07f6105f43f8104 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Wed, 1 Sep 2021 00:24:43 +0200 Subject: [PATCH 264/984] Update secure_login.php --- web/inc/secure_login.php | 1 + 1 file changed, 1 insertion(+) diff --git a/web/inc/secure_login.php b/web/inc/secure_login.php index 0fb030fc..b9e2115c 100644 --- a/web/inc/secure_login.php +++ b/web/inc/secure_login.php @@ -85,6 +85,7 @@ function prevent_get_csrf () { if ($_SERVER['REQUEST_METHOD'] == "GET") { if (isset($_GET[$login_url])) return; if ($_SERVER['REQUEST_URI']=="" || $_SERVER['REQUEST_URI']=="/" || $_SERVER['REQUEST_URI']=="/login/" || $_SERVER['REQUEST_URI']=="/list/user/" || $_SERVER['REQUEST_URI']=="/list/web/") return; + if ($_SERVER['DOCUMENT_URI']=="/reset/index.php") return; } if (isset($_SERVER['HTTP_HOST']) == false) return; if (isset($_SERVER['SERVER_PORT']) == false) return; From 3b287934c3bd42cfadd05ea00eba3a125340f59a Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Wed, 1 Sep 2021 00:33:16 +0200 Subject: [PATCH 265/984] Enabling session.cookie_httponly and session.cookie_secure in myvesta php-fpm --- src/deb/vesta/postinst | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/deb/vesta/postinst b/src/deb/vesta/postinst index fe80212f..dbb7cbd2 100755 --- a/src/deb/vesta/postinst +++ b/src/deb/vesta/postinst @@ -23,6 +23,18 @@ fi echo "1" > /usr/local/vesta/data/upgrades/show_changelog chmod a=rw /usr/local/vesta/data/upgrades/show_changelog +# Enabling session.cookie_httponly and session.cookie_secure in myvesta php-fpm +if [ ! -f "/usr/local/vesta/data/upgrades/enable_cookie_httponly" ]; then + touch /usr/local/vesta/data/upgrades/enable_cookie_httponly + check_grep=$(grep -c 'cookie_httponly' /usr/local/vesta/php/etc/php-fpm.conf) + if [ "$check_grep" -eq 0 ]; then + echo "== Enabling session.cookie_httponly and session.cookie_secure in myvesta php-fpm" + echo "php_admin_flag[session.cookie_httponly] = on" >> /usr/local/vesta/php/etc/php-fpm.conf + echo "php_admin_flag[session.cookie_secure] = on" >> /usr/local/vesta/php/etc/php-fpm.conf + systemctl restart vesta + fi +fi + # Enabling TLS for ProFTPD FTPS if [ ! -f "/usr/local/vesta/data/upgrades/enable-tls-in-proftpd" ]; then if [ -f "/etc/proftpd/proftpd.conf" ]; then From 584acfd4568e813666718cfa3ea372335ce205f1 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 2 Sep 2021 21:40:40 +0200 Subject: [PATCH 266/984] New versions of software in vesta_compile.sh --- src/deb/vesta_compile.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/deb/vesta_compile.sh b/src/deb/vesta_compile.sh index 026e3812..c8308d7f 100644 --- a/src/deb/vesta_compile.sh +++ b/src/deb/vesta_compile.sh @@ -58,9 +58,9 @@ BUILD_DATE=$(date +"%d-%b-%Y") # Set Version for compiling VESTA_V=$VESTA_VER"_amd64" -NGINX_V='1.19.9' -OPENSSL_V='1.1.1k' -PCRE_V='8.44' +NGINX_V='1.21.2' +OPENSSL_V='1.1.1l' +PCRE_V='8.45' ZLIB_V='1.2.11' PHP_V='5.6.40' From 5a6977660cd81230212c7dd93c23a359d72e104c Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 2 Sep 2021 21:47:17 +0200 Subject: [PATCH 267/984] Update vst-install-debian.sh --- install/vst-install-debian.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index d835bdc5..d419edb6 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -1721,6 +1721,7 @@ touch /usr/local/vesta/data/upgrades/roundcube_smtp_auth touch /usr/local/vesta/data/upgrades/apache_status_public_access touch /usr/local/vesta/data/upgrades/update-cloudflare-ips touch /usr/local/vesta/data/upgrades/enable-tls-in-proftpd +touch /usr/local/vesta/data/upgrades/enable_cookie_httponly # Secret URL secretquery='' From 9a746ea4845f198e30fc86cea52faf68a91ecbe6 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 4 Sep 2021 01:23:24 +0200 Subject: [PATCH 268/984] Adding token for /logout/ --- web/templates/admin/list_search.html | 2 +- web/templates/admin/list_server_info.html | 2 +- web/templates/admin/list_user.html | 2 +- web/templates/admin/list_weblog.html | 2 +- web/templates/admin/panel.html | 2 +- web/templates/user/list_search.html | 2 +- web/templates/user/list_user.html | 2 +- web/templates/user/panel.html | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/web/templates/admin/list_search.html b/web/templates/admin/list_search.html index 13aef07f..4483920f 100644 --- a/web/templates/admin/list_search.html +++ b/web/templates/admin/list_search.html @@ -71,7 +71,7 @@ if ($value['USER'] != $user && $value['KEY'] == 'ACCOUNT') { if ($key == $user) { ?> -
 L
+
 L
diff --git a/web/templates/admin/list_server_info.html b/web/templates/admin/list_server_info.html index eaaf34cd..7a131572 100644 --- a/web/templates/admin/list_server_info.html +++ b/web/templates/admin/list_server_info.html @@ -33,7 +33,7 @@
- +
diff --git a/web/templates/admin/list_user.html b/web/templates/admin/list_user.html index 7dd47577..4ad3daec 100644 --- a/web/templates/admin/list_user.html +++ b/web/templates/admin/list_user.html @@ -94,7 +94,7 @@ sort-bandwidth="" sort-disk=" -
 L
+
 L
diff --git a/web/templates/admin/list_weblog.html b/web/templates/admin/list_weblog.html index 0627c477..1ca837e2 100644 --- a/web/templates/admin/list_weblog.html +++ b/web/templates/admin/list_weblog.html @@ -29,7 +29,7 @@
- +
diff --git a/web/templates/admin/panel.html b/web/templates/admin/panel.html index 80bfdaf1..b4534ccd 100644 --- a/web/templates/admin/panel.html +++ b/web/templates/admin/panel.html @@ -26,7 +26,7 @@
">  - +
diff --git a/web/templates/user/list_search.html b/web/templates/user/list_search.html index a9198d1d..abe3a768 100644 --- a/web/templates/user/list_search.html +++ b/web/templates/user/list_search.html @@ -70,7 +70,7 @@ if ($value['USER'] != $user && $value['KEY'] == 'ACCOUNT') { if ($key == $user) { ?> -
 L
+
 L
diff --git a/web/templates/user/list_user.html b/web/templates/user/list_user.html index 85ed64c3..e6645900 100644 --- a/web/templates/user/list_user.html +++ b/web/templates/user/list_user.html @@ -89,7 +89,7 @@ sort-disk="" sort-star=" -
 L
+
 L
diff --git a/web/templates/user/panel.html b/web/templates/user/panel.html index dfb544c9..81cd8358 100644 --- a/web/templates/user/panel.html +++ b/web/templates/user/panel.html @@ -20,7 +20,7 @@
">  - +
From 82d00b4a5c0e7fd1ebe1f648953122f841eac99e Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 4 Sep 2021 11:29:36 +0200 Subject: [PATCH 269/984] Fix for: mv: cannot stat '/usr/local/vesta/log/backup.log' --- bin/v-backup-users | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-backup-users b/bin/v-backup-users index 9671c9e8..16a93d6d 100755 --- a/bin/v-backup-users +++ b/bin/v-backup-users @@ -39,9 +39,9 @@ log=$VESTA/log/backup.log $BIN/v-check-vesta-license >/dev/null +touch $log if [ ! -z "$NOTIFY_ADMIN_FULL_BACKUP" ]; then mv $log $log-`date +"%Y-%m-%d--%H:%M:%S"` - touch $log fi # Auto-repair all databases before backuping all accounts From 7220e011161a08beb2a3539e867535288f15cc8a Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 4 Sep 2021 12:18:09 +0200 Subject: [PATCH 270/984] secured php.ini for multi-php --- src/deb/for-download/tools/multi-php-install.sh | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/deb/for-download/tools/multi-php-install.sh b/src/deb/for-download/tools/multi-php-install.sh index ffee228e..ce04f573 100644 --- a/src/deb/for-download/tools/multi-php-install.sh +++ b/src/deb/for-download/tools/multi-php-install.sh @@ -145,6 +145,9 @@ if [ "$inst_70" -eq 1 ]; then if [ $debian_version -eq 10 ]; then cp /etc/php/7.3/fpm/php.ini /etc/php/7.0/fpm/php.ini fi + if [ $debian_version -eq 11 ]; then + cp /etc/php/7.4/fpm/php.ini /etc/php/7.0/fpm/php.ini + fi press_enter "=== Press enter to continue ===============================================================================" fi @@ -166,6 +169,9 @@ if [ "$inst_71" -eq 1 ]; then if [ $debian_version -eq 10 ]; then cp /etc/php/7.3/fpm/php.ini /etc/php/7.1/fpm/php.ini fi + if [ $debian_version -eq 11 ]; then + cp /etc/php/7.4/fpm/php.ini /etc/php/7.1/fpm/php.ini + fi press_enter "=== Press enter to continue ===============================================================================" fi @@ -187,6 +193,9 @@ if [ "$inst_72" -eq 1 ]; then if [ $debian_version -eq 10 ]; then cp /etc/php/7.3/fpm/php.ini /etc/php/7.2/fpm/php.ini fi + if [ $debian_version -eq 11 ]; then + cp /etc/php/7.4/fpm/php.ini /etc/php/7.2/fpm/php.ini + fi press_enter "=== Press enter to continue ===============================================================================" fi @@ -209,6 +218,9 @@ if [ "$inst_73" -eq 1 ]; then if [ $debian_version -eq 9 ]; then cp /etc/php/7.0/apache2/php.ini /etc/php/7.3/fpm/php.ini fi + if [ $debian_version -eq 11 ]; then + cp /etc/php/7.4/fpm/php.ini /etc/php/7.3/fpm/php.ini + fi press_enter "=== Press enter to continue ===============================================================================" fi From 329c37a13cd3ef44de901a90ca14181cb6281099 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 4 Sep 2021 12:32:16 +0200 Subject: [PATCH 271/984] Update index.php --- web/schedule/backup/index.php | 1 - 1 file changed, 1 deletion(-) diff --git a/web/schedule/backup/index.php b/web/schedule/backup/index.php index 8d51832e..be7e713c 100644 --- a/web/schedule/backup/index.php +++ b/web/schedule/backup/index.php @@ -8,7 +8,6 @@ include($_SERVER['DOCUMENT_ROOT']."/inc/main.php"); // Check token if ((!isset($_GET['token'])) || ($_SESSION['token'] != $_GET['token'])) { - die($_SESSION['token']); header('location: /login/'); exit(); } From 63861e4ffdc009a8f0176fe4733be0c6e261e6fb Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 4 Sep 2021 12:55:40 +0200 Subject: [PATCH 272/984] Fix fox CSRF in /dowload/web-log/ --- web/download/web-log/index.php | 7 +++++++ web/templates/admin/list_weblog.html | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/web/download/web-log/index.php b/web/download/web-log/index.php index 79b5601c..35ebc335 100644 --- a/web/download/web-log/index.php +++ b/web/download/web-log/index.php @@ -3,6 +3,13 @@ error_reporting(NULL); session_start(); include($_SERVER['DOCUMENT_ROOT']."/inc/main.php"); + +// Check token +if ((!isset($_GET['token'])) || ($_SESSION['token'] != $_GET['token'])) { + header('Location: /login/'); + exit(); +} + $v_domain = $_GET['domain']; $v_domain = escapeshellarg($_GET['domain']); if ($_GET['type'] == 'access') $type = 'access'; diff --git a/web/templates/admin/list_weblog.html b/web/templates/admin/list_weblog.html index 1ca837e2..b46e7979 100644 --- a/web/templates/admin/list_weblog.html +++ b/web/templates/admin/list_weblog.html @@ -23,8 +23,8 @@
From 93de22a0b3d45fb46e47ff7337445fb074179773 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 4 Sep 2021 15:31:34 +0200 Subject: [PATCH 273/984] Fix for CSRF in FileManager and UploadHandler --- web/download/file/index.php | 5 +++++ web/file_manager/fm_api.php | 7 +++++-- web/js/app.js | 2 ++ web/js/file_manager.js | 13 ++++++++----- web/templates/file_manager/main.php | 4 +++- web/upload/UploadHandler.php | 7 ++++++- 6 files changed, 29 insertions(+), 9 deletions(-) diff --git a/web/download/file/index.php b/web/download/file/index.php index efabb0e1..ee1a9989 100644 --- a/web/download/file/index.php +++ b/web/download/file/index.php @@ -1,6 +1,11 @@ GLOBAL = {}; + @@ -145,6 +146,7 @@ var acc = $('
'); $(['A', 'B']).each(function(k, letter) { var url = '/upload/'; + var token = $('#token').attr('token'); $('#file_upload_' + letter).fileupload({ singleFileUploads: false, add: function (e, data) { @@ -154,7 +156,7 @@ var file_relocation = FM['TAB_'+tab+'_CURRENT_PATH']; - $('#file_upload_' + letter).fileupload("option", "url", url + '?dir=' + file_relocation); + $('#file_upload_' + letter).fileupload("option", "url", url + '?token='+token+'&dir=' + file_relocation); acc = $('
'); show_msg = false; data.submit(); diff --git a/web/upload/UploadHandler.php b/web/upload/UploadHandler.php index 511ec4b3..48f40b23 100755 --- a/web/upload/UploadHandler.php +++ b/web/upload/UploadHandler.php @@ -3,10 +3,15 @@ //session_start(); // Preventing CSRF -prevent_post_csrf(true); +// prevent_post_csrf(true); include($_SERVER['DOCUMENT_ROOT']."/inc/main.php"); +// Check token +if ((!isset($_REQUEST['token'])) || ($_SESSION['token'] != $_REQUEST['token'])) { + die("Wrong token or missing token"); +} + // Check login_as feature $user = $_SESSION['user']; if (($_SESSION['user'] == 'admin') && (!empty($_SESSION['look']))) { From ee3665ecb7e46d58ef7d9039e0eda55c76254a94 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 4 Sep 2021 19:00:20 +0200 Subject: [PATCH 274/984] Update index.php --- web/delete/backup/exclusion/index.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/web/delete/backup/exclusion/index.php b/web/delete/backup/exclusion/index.php index 29ad3bd5..7cad5856 100644 --- a/web/delete/backup/exclusion/index.php +++ b/web/delete/backup/exclusion/index.php @@ -1,4 +1,7 @@ Date: Tue, 14 Sep 2021 20:22:35 +0200 Subject: [PATCH 275/984] backuping php-fpm conf file --- bin/v-backup-user | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/bin/v-backup-user b/bin/v-backup-user index 767eba22..52e5134d 100755 --- a/bin/v-backup-user +++ b/bin/v-backup-user @@ -151,6 +151,25 @@ if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB" != '*' ]; then format_domain_idn get_domain_values 'web' + # backuping php-fpm conf file + if [[ $TPL == "PHP-FPM-"* ]]; then + fpm_tpl_ver=${TPL:8:2} + fpm_ver="${TPL:8:1}.${TPL:9:1}" + fpm_folder="$fpm_ver/fpm/pool.d" + fpm_path="$fpm_ver/fpm/pool.d/$domain.conf" + if [[ $TPL == *"-ioncube" ]]; then + fpm_folder="$fpm_ver/fpm/pool.d-ioncube" + fpm_path = "$fpm_ver/fpm/pool.d-ioncube/$domain.conf" + fi + fpm_original_path="/etc/php/$fpm_path" + fpm_dest_path="$tmpdir/web/$domain/php/$fpm_path" + fpm_dest_folder="$tmpdir/web/$domain/php/$fpm_folder" + if [ -f "$fpm_original_path" ]; then + mkdir -p $fpm_dest_folder + cp $fpm_original_path $fpm_dest_path + fi + fi + # Backup web.conf cd $tmpdir/web/$domain/ conf="$USER_DATA/web.conf" From f36d20641e6818072e02e9a426d56633c272ea50 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 14 Sep 2021 20:24:39 +0200 Subject: [PATCH 276/984] Update v-backup-user --- bin/v-backup-user | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-backup-user b/bin/v-backup-user index 52e5134d..e2d7cac9 100755 --- a/bin/v-backup-user +++ b/bin/v-backup-user @@ -159,7 +159,7 @@ if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB" != '*' ]; then fpm_path="$fpm_ver/fpm/pool.d/$domain.conf" if [[ $TPL == *"-ioncube" ]]; then fpm_folder="$fpm_ver/fpm/pool.d-ioncube" - fpm_path = "$fpm_ver/fpm/pool.d-ioncube/$domain.conf" + fpm_path="$fpm_ver/fpm/pool.d-ioncube/$domain.conf" fi fpm_original_path="/etc/php/$fpm_path" fpm_dest_path="$tmpdir/web/$domain/php/$fpm_path" From ca76e2bc8cfd1dbecc997742cc6f008e9fb44610 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 14 Sep 2021 21:07:22 +0200 Subject: [PATCH 277/984] Allow to specify full path to backup file --- bin/v-restore-user | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/bin/v-restore-user b/bin/v-restore-user index a78ffc4d..c1f19fd8 100755 --- a/bin/v-restore-user +++ b/bin/v-restore-user @@ -28,6 +28,11 @@ if [ -z "$BACKUP" ]; then BACKUP=/backup fi +# Allow to specify full path to backup file +if [[ $backup == "/backup/"* ]]; then + backup="${backup:8}" +fi + # Includes source $VESTA/func/main.sh source $VESTA/func/domain.sh From c93345f669fa62694f353a960374926e96260ce6 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 14 Sep 2021 21:10:10 +0200 Subject: [PATCH 278/984] Restoring php-fpm pool.d conf files --- bin/v-restore-user | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/bin/v-restore-user b/bin/v-restore-user index c1f19fd8..4aaab76d 100755 --- a/bin/v-restore-user +++ b/bin/v-restore-user @@ -440,6 +440,12 @@ if [ "$web" != 'no' ] && [ ! -z "$WEB_SYSTEM" ]; then find $HOMEDIR/$user/web/$domain/ -user $old_uid \ -exec chown -h $user:$user {} \; fi + + # Restoring php-fpm pool.d conf files + if [ -d "$tmpdir/web/$domain/php" ]; then + cp -r $tmpdir/web/$domain/php/ /etc/ + fi + done # Adding user to traff queue From 7ee21aad7b06b2c506165a2af3d2f15b3d79edfa Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 14 Sep 2021 21:43:46 +0200 Subject: [PATCH 279/984] Restoring php-fpm pool.d conf files --- bin/v-restore-user | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bin/v-restore-user b/bin/v-restore-user index 4aaab76d..e9861d46 100755 --- a/bin/v-restore-user +++ b/bin/v-restore-user @@ -443,7 +443,10 @@ if [ "$web" != 'no' ] && [ ! -z "$WEB_SYSTEM" ]; then # Restoring php-fpm pool.d conf files if [ -d "$tmpdir/web/$domain/php" ]; then - cp -r $tmpdir/web/$domain/php/ /etc/ + fpmver=$(ls $tmpdir/web/$domain/php/) + cp -r $tmpdir/web/$domain/php/$fpmver/ /etc/php/ + systemctl reset-failed php$fpmver-fpm + systemctl restart php$fpmver-fpm fi done From 73948ac4d1958a08d656aa36b0ebb95a37a97476 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 19 Sep 2021 13:26:45 +0200 Subject: [PATCH 280/984] Logging letsencrypt error message --- bin/v-add-letsencrypt-domain | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/bin/v-add-letsencrypt-domain b/bin/v-add-letsencrypt-domain index ed6e5e90..3a7b10b8 100755 --- a/bin/v-add-letsencrypt-domain +++ b/bin/v-add-letsencrypt-domain @@ -268,6 +268,8 @@ for auth in $authz; do echo "[$(date)] : query_le_v2 \"$url\" \"$payload\" \"$nonce\"" >> /usr/local/vesta/log/letsencrypt.log answer=$(query_le_v2 "$url" "$payload" "$nonce") echo "[$(date)] : answer=$answer" >> /usr/local/vesta/log/letsencrypt.log + url2=$(echo "$answer" |grep -A3 $proto |grep url |cut -f 4 -d \") + echo "[$(date)] : url2=$url2" >> /usr/local/vesta/log/letsencrypt.log validation=$(echo "$answer"|grep -A1 $proto |tail -n1|cut -f4 -d \") echo "[$(date)] : validation=$validation" >> /usr/local/vesta/log/letsencrypt.log nonce=$(echo "$answer" |grep -i nonce |cut -f2 -d \ |tr -d '\r\n') @@ -284,6 +286,9 @@ for auth in $authz; do echo "[$(date)] : EXIT=Let's Encrypt domain validation timeout" >> /usr/local/vesta/log/letsencrypt.log check_result $E_CONNECT "Let's Encrypt domain validation timeout" fi + echo "[$(date)] : curl: $url2 :" >> /usr/local/vesta/log/letsencrypt.log + get_answer=$(curl -S "$url2") + echo "[$(date)] : get_answer=$get_answer" >> /usr/local/vesta/log/letsencrypt.log sleeping=$((i*2)) echo "[$(date)] : sleep $sleeping (i=$i)" >> /usr/local/vesta/log/letsencrypt.log sleep $sleeping From e7b2626d4ca0643cbab3ce40b8d4943830608082 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 24 Sep 2021 10:54:20 +0200 Subject: [PATCH 281/984] installing php7.x-imap --- install/vst-install-debian.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index d419edb6..99600590 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -1598,13 +1598,13 @@ $VESTA/bin/v-add-cron-vesta-autoupdate echo "=== Installing additional PHP libs" if [ "$release" -eq 9 ]; then - apt-get -y install php7.0-apcu php7.0-mbstring php7.0-bcmath php7.0-curl php7.0-gd php7.0-intl php7.0-mcrypt php7.0-mysql php7.0-mysqlnd php7.0-pdo php7.0-soap php7.0-json php7.0-xml php7.0-zip php7.0-memcache php7.0-memcached php7.0-zip php7.0-imagick + apt-get -y install php7.0-apcu php7.0-mbstring php7.0-bcmath php7.0-curl php7.0-gd php7.0-intl php7.0-mcrypt php7.0-mysql php7.0-mysqlnd php7.0-pdo php7.0-soap php7.0-json php7.0-xml php7.0-zip php7.0-memcache php7.0-memcached php7.0-zip php7.0-imagick php7.0-imap fi if [ "$release" -eq 10 ]; then - apt-get -y install php7.3-apcu php7.3-mbstring php7.3-bcmath php7.3-curl php7.3-gd php7.3-intl php7.3-mysql php7.3-mysqlnd php7.3-pdo php7.3-soap php7.3-json php7.3-xml php7.3-zip php7.3-memcache php7.3-memcached php7.3-zip php7.3-imagick + apt-get -y install php7.3-apcu php7.3-mbstring php7.3-bcmath php7.3-curl php7.3-gd php7.3-intl php7.3-mysql php7.3-mysqlnd php7.3-pdo php7.3-soap php7.3-json php7.3-xml php7.3-zip php7.3-memcache php7.3-memcached php7.3-zip php7.3-imagick php7.3-imap fi if [ "$release" -eq 11 ]; then - apt-get -y install php7.4-apcu php7.4-mbstring php7.4-bcmath php7.4-curl php7.4-gd php7.4-intl php7.4-mysql php7.4-mysqlnd php7.4-pdo php7.4-soap php7.4-json php7.4-xml php7.4-zip php7.4-memcache php7.4-memcached php7.4-zip php7.4-imagick + apt-get -y install php7.4-apcu php7.4-mbstring php7.4-bcmath php7.4-curl php7.4-gd php7.4-intl php7.4-mysql php7.4-mysqlnd php7.4-pdo php7.4-soap php7.4-json php7.4-xml php7.4-zip php7.4-memcache php7.4-memcached php7.4-zip php7.4-imagick php7.4-imap fi touch /var/log/php-mail.log From ae99e0c837dd195f37051f9b0cf9531cd79952c3 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 25 Sep 2021 14:17:09 +0200 Subject: [PATCH 282/984] Fresh W3TC.json --- src/deb/for-download/tools/W3TC.json | 305 ++++++++++++++++++--------- 1 file changed, 200 insertions(+), 105 deletions(-) diff --git a/src/deb/for-download/tools/W3TC.json b/src/deb/for-download/tools/W3TC.json index 7e1f0340..d42973d0 100644 --- a/src/deb/for-download/tools/W3TC.json +++ b/src/deb/for-download/tools/W3TC.json @@ -1,5 +1,5 @@ { - "version": "0.14.3", + "version": "2.1.8", "cluster.messagebus.debug": false, "cluster.messagebus.enabled": false, "cluster.messagebus.sns.region": "", @@ -11,7 +11,7 @@ "dbcache.debug_purge": false, "dbcache.enabled": true, "dbcache.engine": "memcached", - "dbcache.file.gc": 3600, + "dbcache.file.gc": 7200, "dbcache.file.locking": false, "dbcache.lifetime": 3600, "dbcache.memcached.persistent": true, @@ -60,24 +60,47 @@ "\\bsql_calc_found_rows\\b", "\\bfound_rows\\(\\)" ], + "docroot_fix.enable": false, "lazyload.enabled": false, + "lazyload.threshold": "", "lazyload.process_img": true, "lazyload.process_background": true, "lazyload.googlemaps.google_maps_easy": false, "lazyload.googlemaps.wp_google_maps": false, "lazyload.googlemaps.wp_google_map_plugin": false, "lazyload.exclude": [ - "skip_lazy" + "avia-bg-style-fixed", + "data-bgposition=", + "data-envira-src=", + "data-large_image=", + "data-lazy-original=", + "data-lazy-src=", + "data-lazyload=", + "data-lazysrc=", + "data-no-lazy=", + "data-src=", + "data-srcset=", + "fullurl=", + "lazy-slider-img=", + "loading=\"eager\"", + "no-lazy", + "rev-slidebg", + "skip-lazy", + "soliloquy-image", + "swatch-img", + "w3-total-cache", + "woocommerce\/assets\/images\/placeholder.png", + "wpcf7_captcha" ], "lazyload.embed_method": "async_head", "objectcache.configuration_overloaded": false, "objectcache.enabled": true, "objectcache.debug": false, "objectcache.debug_purge": false, - "objectcache.enabled_for_wp_admin": true, + "objectcache.enabled_for_wp_admin": false, "objectcache.fallback_transients": true, "objectcache.engine": "memcached", - "objectcache.file.gc": 3600, + "objectcache.file.gc": 7200, "objectcache.file.locking": false, "objectcache.memcached.servers": [ "127.0.0.1:11211" @@ -107,7 +130,6 @@ "global-posts" ], "objectcache.groups.nonpersistent": [ - "comment", "counts", "plugins" ], @@ -120,7 +142,7 @@ "pgcache.debug_purge": false, "pgcache.engine": "memcached", "pgcache.file.gc": 3600, - "pgcache.file.nfs": true, + "pgcache.file.nfs": false, "pgcache.file.locking": false, "pgcache.lifetime": 86400, "pgcache.memcached.servers": [ @@ -137,9 +159,9 @@ ], "pgcache.redis.password": "", "pgcache.redis.dbid": 0, - "pgcache.cache.query": true, + "pgcache.cache.query": false, "pgcache.cache.home": true, - "pgcache.cache.feed": true, + "pgcache.cache.feed": false, "pgcache.cache.nginx_handle_xml": false, "pgcache.cache.ssl": true, "pgcache.cache.404": false, @@ -167,11 +189,11 @@ ], "pgcache.late_init": false, "pgcache.late_caching": false, - "pgcache.mirrors.enabled": true, + "pgcache.mirrors.enabled": false, "pgcache.mirrors.home_urls": [ "" ], - "pgcache.reject.front_page": "0", + "pgcache.reject.front_page": false, "pgcache.reject.logged": true, "pgcache.reject.logged_roles": false, "pgcache.reject.roles": [ @@ -200,7 +222,7 @@ "wptouch_switch_toggle" ], "pgcache.reject.request_head": false, - "pgcache.purge.front_page": "1", + "pgcache.purge.front_page": true, "pgcache.purge.home": true, "pgcache.purge.post": true, "pgcache.purge.comments": false, @@ -222,7 +244,7 @@ ], "pgcache.purge.sitemap_regex": "([a-z0-9_\\-]*?)sitemap([a-z0-9_\\-]*)?\\.xml", "pgcache.prime.enabled": false, - "pgcache.prime.interval": 3600, + "pgcache.prime.interval": 900, "pgcache.prime.limit": 10, "pgcache.prime.sitemap": "", "pgcache.prime.post.enabled": false, @@ -267,8 +289,8 @@ "minify.debug": false, "minify.engine": "file", "minify.error.notification": "", - "minify.file.gc": "86400", - "minify.file.nfs": true, + "minify.file.gc": 86400, + "minify.file.nfs": false, "minify.file.locking": false, "minify.memcached.servers": [ "127.0.0.1:11211" @@ -284,41 +306,43 @@ ], "minify.redis.password": "", "minify.redis.dbid": 0, - "minify.rewrite": "1", + "minify.rewrite": true, "minify.options": [], "minify.symlinks": [], - "minify.lifetime": "86400", + "minify.lifetime": 86400, "minify.upload": true, - "minify.html.enable": "1", + "minify.html.enable": false, "minify.html.engine": "html", - "minify.html.reject.feed": "0", - "minify.html.inline.css": "0", - "minify.html.inline.js": "0", - "minify.html.strip.crlf": "0", + "minify.html.reject.feed": false, + "minify.html.inline.css": false, + "minify.html.inline.js": false, + "minify.html.strip.crlf": false, "minify.html.comments.ignore": [ "google_ad_", - "RSPEAK_" + "RSPEAK_", + "mfunc" ], - "minify.css.combine": "0", - "minify.css.enable": "1", + "minify.css.enable": true, "minify.css.engine": "css", - "minify.css.http2push": "0", - "minify.css.strip.comments": "0", - "minify.css.strip.crlf": "0", + "minify.css.method": "both", + "minify.css.http2push": false, + "minify.css.strip.comments": false, + "minify.css.strip.crlf": false, "minify.css.embed": false, "minify.css.imports": "", "minify.css.groups": [], - "minify.js.http2push": "0", - "minify.js.enable": "1", + "minify.js.http2push": false, + "minify.js.enable": true, "minify.js.engine": "js", - "minify.js.combine.header": "0", + "minify.js.method": "both", + "minify.js.combine.header": false, "minify.js.header.embed_type": "blocking", "minify.js.combine.body": false, "minify.js.body.embed_type": "blocking", "minify.js.combine.footer": false, "minify.js.footer.embed_type": "blocking", - "minify.js.strip.comments": "0", - "minify.js.strip.crlf": "0", + "minify.js.strip.comments": false, + "minify.js.strip.crlf": false, "minify.js.groups": [], "minify.yuijs.path.java": "java", "minify.yuijs.path.jar": "yuicompressor.jar", @@ -353,28 +377,20 @@ "minify.htmltidy.options.clean": false, "minify.htmltidy.options.hide-comments": true, "minify.htmltidy.options.wrap": 0, - "minify.reject.logged": "0", - "minify.reject.ua": [ - "" - ], - "minify.reject.uri": [ - "" - ], - "minify.reject.files.js": [ - "" - ], - "minify.reject.files.css": [ - "" - ], + "minify.reject.logged": false, + "minify.reject.ua": [], + "minify.reject.uri": [], + "minify.reject.files.js": [], + "minify.reject.files.css": [], "minify.cache.files": [ "" ], - "minify.cache.files_regexp": "0", + "minify.cache.files_regexp": false, "cdn.configuration_overloaded": false, "cdn.enabled": false, "cdn.debug": false, "cdn.flush_manually": false, - "cdn.engine": "maxcdn", + "cdn.engine": "stackpath2", "cdn.uploads.enable": true, "cdn.includes.enable": true, "cdn.includes.files": "*.css;*.js;*.gif;*.png;*.jpg;*.xml", @@ -535,6 +551,9 @@ "cdnfsd.stackpath2.site_root_domain": 0, "cdnfsd.stackpath2.domain": [], "cdnfsd.stackpath2.ssl": "auto", + "cdnfsd.transparentcdn.client_id": "", + "cdnfsd.transparentcdn.client_secret": "", + "cdnfsd.transparentcdn.company_id": "", "varnish.configuration_overloaded": false, "varnish.enabled": false, "varnish.debug": false, @@ -547,7 +566,7 @@ "browsercache.no404wp": false, "browsercache.no404wp.exceptions": [ "robots\\.txt", - "[a-z0-9_\\-]*sitemap[a-z0-9_\\-]*\\.(xml|xsl|html)(\\.gz)?" + "[a-z0-9_\\-]*sitemap[a-z0-9_\\.\\-]*\\.(xml|xsl|html)(\\.gz)?" ], "browsercache.cssjs.last_modified": true, "browsercache.cssjs.compression": true, @@ -623,63 +642,136 @@ "mobile.configuration_overloaded": false, "mobile.enabled": false, "mobile.rgroups": { - "high": { + "tablets": { "theme": "", "enabled": false, "redirect": "", "agents": [ - "android", - "mobi", - "bada", - "incognito", + "a1-32ab0", + "a210", + "a211", + "b6000-h", + "b8000-h", + "bnrv200", + "bntv400", + "darwin", + "gt-n8005", + "gt-p3105", + "gt-p6810", + "gt-p7510", + "hmj37", + "hp-tablet", + "hp\\sslate", + "hp\\sslatebook", + "ht7s3", + "ideatab_a1107", + "ideataba2109a", + "ideos\\ss7", + "imm76d", + "ipad", + "k00f", + "kfjwi", + "kfot", + "kftt", "kindle", - "maemo", - "opera\\ mini", - "s8000", - "series60", - "ucbrowser", - "ucweb", - "webmate", - "webos" + "l-06c", + "lg-f200k", + "lg-f200l", + "lg-f200s", + "m470bsa", + "m470bse", + "maxwell", + "me173x", + "mediapad", + "midc497", + "msi\\senjoy\\s10\\splus", + "mz601", + "mz616", + "nexus", + "nookcolor", + "pg09410", + "pg41200", + "pmp5570c", + "pmp5588c", + "pocketbook", + "qmv7a", + "sgp311", + "sgpt12", + "shv-e230k", + "shw-m305w", + "shw-m380w", + "sm-p605", + "smarttab", + "sonysgp321", + "sph-p500", + "surfpad", + "tab07-200", + "tab10-201", + "tab465euk", + "tab474", + "tablet", + "tegranote", + "tf700t", + "thinkpad", + "viewpad", + "voltaire" ] }, - "low": { + "phones": { "theme": "", "enabled": false, "redirect": "", "agents": [ - "2\\.0\\ mmp", + "(android|bb\\d+|meego).+mobile", "240x320", + "2.0\\ mmp", + "\\bppc\\b", + "acer\\ s100", "alcatel", "amoi", + "archos5", "asus", - "au\\-mic", + "au-mic", "audiovox", "avantgo", + "bada", "benq", "bird", "blackberry", "blazer", "cdm", "cellphone", + "cupcake", "danger", "ddipocket", "docomo", + "docomo\\ ht-03a", "dopod", - "elaine\/3\\.0", + "dream", + "elaine\/3.0", "ericsson", "eudoraweb", "fly", + "froyo", + "googlebot-mobile", "haier", "hiptop", - "hp\\.ipaq", + "hp.ipaq", "htc", + "htc\\ hero", + "htc\\ magic", + "htc_dream", + "htc_magic", "huawei", - "i\\-mobile", + "i-mobile", "iemobile", "iemobile\/7", + "iemobile\/7.0", "iemobile\/9", - "j\\-phone", + "incognito", + "iphone", + "ipod", + "j-phone", "kddi", "konka", "kwc", @@ -687,27 +779,34 @@ "lenovo", "lg", "lg\/u990", + "lg-gw620", "lge\\ vx", + "liquid\\ build", + "maemo", "midp", - "midp\\-2\\.0", + "midp-2.0", "mmef20", "mmp", "mobilephone", - "mot\\-v", + "mot-mb200", + "mot-mb300", + "mot-v", "motorola", - "msie\\ 10\\.0", + "msie\\ 10.0", "netfront", "newgen", "newt", + "nexus\\ 7", + "nexus\\ one", "nintendo\\ ds", "nintendo\\ wii", "nitro", "nokia", "novarra", - "o2", "openweb", + "opera\\ mini", "opera\\ mobi", - "opera\\.mobi", + "opera.mobi", "p160u", "palm", "panasonic", @@ -719,40 +818,52 @@ "playbook", "playstation\\ portable", "portalmmm", - "\\bppc\\b", "proxinet", "psp", "qtek", + "s8000", "sagem", "samsung", + "samsung-s8000", "sanyo", "sch", - "sch\\-i800", + "sch-i800", "sec", "sendo", + "series60.*webkit", + "series60\/5.0", "sgh", "sharp", - "sharp\\-tq\\-gx10", + "sharp-tq-gx10", "small", "smartphone", "softbank", "sonyericsson", + "sonyericssone10", + "sonyericssonu20", + "sonyericssonx10", "sph", "symbian", "symbian\\ os", "symbianos", + "t-mobile\\ mytouch\\ 3g", + "t-mobile\\ opal", + "tattoo", "toshiba", + "touch", "treo", - "ts21i\\-10", - "up\\.browser", - "up\\.link", + "ts21i-10", + "up.browser", + "up.link", "uts", "vertu", "vodafone", "wap", + "webmate", + "webos", "willcome", "windows\\ ce", - "windows\\.ce", + "windows.ce", "winwap", "xda", "xoom", @@ -776,13 +887,14 @@ ] } }, + "robots_block.enable": false, "common.track_usage": false, "common.tweeted": false, - "config.check": false, + "config.check": true, "config.path": "", "widget.latest.items": 3, "widget.latest_news.items": 5, - "widget.pagespeed.enabled": true, + "widget.pagespeed.enabled": false, "widget.pagespeed.key": "", "widget.pagespeed.key.restrict.referrer": "", "widget.pagespeed.show_in_admin_bar": false, @@ -797,34 +909,17 @@ "timelimit.cdn_test": 300, "timelimit.domain_rename": 120, "timelimit.minify_recommendations": 600, - "common.instance_id": 393748815, + "common.instance_id": 1165104676, "common.force_master": true, "extensions.active": { - "newrelic": "w3-total-cache\/Extension_NewRelic_Plugin.php", - "fragmentcache": "w3-total-cache\/Extension_FragmentCache_Plugin.php", - "swarmify": "w3-total-cache\/Extension_Swarmify_Plugin.php" + "fragmentcache": "w3-total-cache\/Extension_FragmentCache_Plugin.php" }, "extensions.active_frontend": [], "extensions.active_dropin": [], "plugin.license_key": "", "plugin.type": "", - "common.support": "", - "timelimit.cdn_container_create": 300, + "jquerymigrate.disabled": false, "fragmentcache": { - "engine": "memcached", - "memcached.servers": [ - "127.0.0.1:11211" - ], - "memcached.persistent": "1", - "memcached.aws_autodiscovery": "0", - "memcached.username": "", - "memcached.password": "", - "lifetime": "3600", - "file.gc": "3600", - "groups": "" - }, - "pgcache.bad_behavior_path": "", - "newrelic": { - "monitoring_type": "apm" + "engine": "memcached" } -} \ No newline at end of file +} From d7a656b94fb0af3fa37d27d0c49c825d0304bb53 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 25 Sep 2021 14:35:35 +0200 Subject: [PATCH 283/984] roundcube set elastic skin as defalt --- install/debian/11/roundcube/main.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/debian/11/roundcube/main.inc.php b/install/debian/11/roundcube/main.inc.php index 55a4e082..91f32000 100644 --- a/install/debian/11/roundcube/main.inc.php +++ b/install/debian/11/roundcube/main.inc.php @@ -685,7 +685,7 @@ $rcmail_config['addressbook_search_mode'] = 0; $rcmail_config['default_charset'] = 'UTF-8'; // skin name: folder from skins/ -$rcmail_config['skin'] = 'larry'; +$rcmail_config['skin'] = 'elastic'; // show up to X items in messages list view $rcmail_config['mail_pagesize'] = 50; From 43955dd086cb3da35d3532595ca2ff09bec9bbbc Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 25 Sep 2021 15:30:30 +0200 Subject: [PATCH 284/984] Updating apt before installation --- install/vst-install-debian.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index 99600590..f8f73cb4 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -294,15 +294,18 @@ if [ ! -z "$(grep ^admin: /etc/passwd)" ] && [ -z "$force" ]; then check_result 1 "User admin exists" fi +echo "Updating apt, please wait..." +apt-get update > /dev/null 2>&1 + # Checking wget if [ ! -e '/usr/bin/wget' ]; then - apt-get -y install wget + apt-get -y install wget > /dev/null 2>&1 check_result $? "Can't install wget" fi # Check if gnupg2 is installed if [ $(dpkg-query -W -f='${Status}' gnupg2 2>/dev/null | grep -c "ok installed") -eq 0 ]; then - apt -y install gnupg2 + apt-get -y install gnupg2 > /dev/null 2>&1 fi # Check if apparmor is installed From e843f1e701fbb77d235cfe68d329f08f1c51444f Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 26 Sep 2021 10:41:18 +0200 Subject: [PATCH 285/984] Removing pre-installed exim4 --- install/vst-install-debian.sh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index f8f73cb4..d985b525 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -329,6 +329,15 @@ for pkg in exim4 mysql-server apache2 nginx vesta; do fi done rm -f $tmpfile + +if [ ! -z "$conflicts" ] && [[ "$conflicts" = *"exim4"* ]]; then + echo "=== Removing pre-installed exim4" + apt remove --purge -y exim4 exim4-base exim4-config + rm -rf /etc/exim4 + conflicts=$(echo "$conflicts" | sed -e "s/exim4//") + conflicts=$(echo "$conflicts" | sed -e "s/ //") +fi + if [ ! -z "$conflicts" ] && [ -z "$force" ]; then echo '!!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!!' echo From f66403eb9fe4b1c09846cbd8e6a35ce62f5105fd Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 26 Sep 2021 11:55:15 +0200 Subject: [PATCH 286/984] Better replacing yescrypt to sha512 --- install/vst-install-debian.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index d985b525..231e2aa3 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -1442,7 +1442,7 @@ fi if [ "$release" -eq 11 ]; then # Switching to sha512 - sed -i "s/obscure yescrypt/obscure sha512/g" /etc/pam.d/common-password + sed -i "s/yescrypt/sha512/g" /etc/pam.d/common-password fi # Deleting old admin user From 1884463e8efe5082237995deaa234a2a4f09c333 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 27 Sep 2021 16:28:49 +0200 Subject: [PATCH 287/984] Set original cPanel mail passwords --- bin/v-import-cpanel-backup | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/bin/v-import-cpanel-backup b/bin/v-import-cpanel-backup index fc3c7352..c6005800 100644 --- a/bin/v-import-cpanel-backup +++ b/bin/v-import-cpanel-backup @@ -7,7 +7,6 @@ # This script can import databases and database users and password, # Import domains, subdomains and website files # This script import also mail accounts and mails into accounts if previous cpanel run dovecot -# Mail password not are restored this was reset by new one. ########### # If you need restore main database user read line 160 or above ########### @@ -272,7 +271,13 @@ if [[ "$sk_maild" != "cur" && "$sk_maild" != "new" && "$sk_maild" != "tmp" ]]; mv ${sk_maild}/${sk_mail_account} /home/${sk_cp_user}/mail/${sk_maild} chown ${sk_cp_user}:mail -R /home/${sk_cp_user}/mail/${sk_maild} find /home/${sk_cp_user}/mail/${sk_maild} -type f -name 'dovecot*' -delete - echo "${sk_mail_account}@${sk_maild} | $sk_mail_pass1" >> /root/sk_mail_password_${sk_cp_user}-${sk_cod} + # echo "${sk_mail_account}@${sk_maild} | $sk_mail_pass1" >> /root/sk_mail_password_${sk_cp_user}-${sk_cod} + echo "Set password for ${sk_mail_account}@${sk_maild}" + pass=$(grep "^${sk_mail_account}:" ${sk_importer_in}/homedir/etc/${sk_maild}/shadow | awk -F ":" '{print $2}') + newline="${sk_mail_account}:{SHA512-CRYPT}$pass:${sk_cp_user}:mail::/home/${sk_cp_user}:0" + echo $newline + escaped=$(printf '%s\n' "$newline" | sed -e 's/[\/&]/\\&/g') + sed -i "s/^${sk_mail_account}:.*/$escaped/g" /home/${sk_cp_user}/conf/mail/${sk_maild}/passwd done fi #else @@ -351,7 +356,7 @@ tput setaf 4 echo "##############################" echo "cPanel Backup restored" echo "Review your content and report any fail" -echo "I reset mail password not posible restore it yet." -echo "Check your new passwords runing: cat /root/sk_mail_password_${sk_cp_user}-${sk_cod}" +# echo "I reset mail password not posible restore it yet." +# echo "Check your new passwords runing: cat /root/sk_mail_password_${sk_cp_user}-${sk_cod}" echo "##############################" tput sgr0 From d4411dc92f7c67ab0fba4cee4a1f87b7b21fe043 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 27 Sep 2021 19:12:33 +0200 Subject: [PATCH 288/984] Update v-import-cpanel-backup --- bin/v-import-cpanel-backup | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-import-cpanel-backup b/bin/v-import-cpanel-backup index c6005800..a740a44b 100644 --- a/bin/v-import-cpanel-backup +++ b/bin/v-import-cpanel-backup @@ -275,7 +275,7 @@ if [[ "$sk_maild" != "cur" && "$sk_maild" != "new" && "$sk_maild" != "tmp" ]]; echo "Set password for ${sk_mail_account}@${sk_maild}" pass=$(grep "^${sk_mail_account}:" ${sk_importer_in}/homedir/etc/${sk_maild}/shadow | awk -F ":" '{print $2}') newline="${sk_mail_account}:{SHA512-CRYPT}$pass:${sk_cp_user}:mail::/home/${sk_cp_user}:0" - echo $newline + # echo $newline escaped=$(printf '%s\n' "$newline" | sed -e 's/[\/&]/\\&/g') sed -i "s/^${sk_mail_account}:.*/$escaped/g" /home/${sk_cp_user}/conf/mail/${sk_maild}/passwd done From fc483f5d3cf29631f171d545c8790e3727482d8c Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 27 Sep 2021 21:35:47 +0200 Subject: [PATCH 289/984] Set original cPanel mail passwords --- bin/v-import-cpanel-backup | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/bin/v-import-cpanel-backup b/bin/v-import-cpanel-backup index a740a44b..a4d40226 100644 --- a/bin/v-import-cpanel-backup +++ b/bin/v-import-cpanel-backup @@ -252,6 +252,11 @@ rm -f sk_sds2 sk_sds ################## # mail + +time_n_date=$(date +'%T %F') +time=$(echo "$time_n_date" |cut -f 1 -d \ ) +date=$(echo "$time_n_date" |cut -f 2 -d \ ) + tput setaf 2 echo "Start Restoring Mails" tput sgr0 @@ -272,12 +277,15 @@ if [[ "$sk_maild" != "cur" && "$sk_maild" != "new" && "$sk_maild" != "tmp" ]]; chown ${sk_cp_user}:mail -R /home/${sk_cp_user}/mail/${sk_maild} find /home/${sk_cp_user}/mail/${sk_maild} -type f -name 'dovecot*' -delete # echo "${sk_mail_account}@${sk_maild} | $sk_mail_pass1" >> /root/sk_mail_password_${sk_cp_user}-${sk_cod} - echo "Set password for ${sk_mail_account}@${sk_maild}" - pass=$(grep "^${sk_mail_account}:" ${sk_importer_in}/homedir/etc/${sk_maild}/shadow | awk -F ":" '{print $2}') - newline="${sk_mail_account}:{SHA512-CRYPT}$pass:${sk_cp_user}:mail::/home/${sk_cp_user}:0" - # echo $newline - escaped=$(printf '%s\n' "$newline" | sed -e 's/[\/&]/\\&/g') - sed -i "s/^${sk_mail_account}:.*/$escaped/g" /home/${sk_cp_user}/conf/mail/${sk_maild}/passwd + echo "Set password for ${sk_mail_account}@${sk_maild}" + pass=$(grep "^${sk_mail_account}:" ${sk_importer_in}/homedir/etc/${sk_maild}/shadow | awk -F ":" '{print $2}') + newline="${sk_mail_account}:{SHA512-CRYPT}$pass:${sk_cp_user}:mail::/home/${sk_cp_user}:0" + newline2="ACCOUNT='${sk_mail_account}' ALIAS='' AUTOREPLY='no' FWD='' FWD_ONLY='' MD5='{SHA512-CRYPT}$pass' QUOTA='unlimited' U_DISK='0' SUSPENDED='no' TIME='$time' DATE='$date'" + # echo $newline + escaped=$(printf '%s\n' "$newline" | sed -e 's/[\/&]/\\&/g') + escaped2=$(printf '%s\n' "$newline2" | sed -e 's/[\/&]/\\&/g') + sed -i "s/^${sk_mail_account}:.*/$escaped/g" /home/${sk_cp_user}/conf/mail/${sk_maild}/passwd + sed -i "s/^ACCOUNT='${sk_mail_account}.*/$escaped2/g" /usr/local/vesta/data/users/${sk_cp_user}/mail/${sk_maild}.conf done fi #else From 2ac72e00fb914eee6632ee0937782ceede89ee4f Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 30 Sep 2021 11:02:23 +0200 Subject: [PATCH 290/984] Fix Autoreply issue with Exim 4.94+ --- bin/v-add-mail-account | 2 ++ bin/v-add-mail-domain | 2 ++ bin/v-delete-mail-account | 1 + func/rebuild.sh | 6 ++++++ install/debian/11/exim/exim4.conf.template | 4 ++-- install/vst-install-debian.sh | 1 + src/deb/vesta/postinst | 11 +++++++++++ 7 files changed, 25 insertions(+), 2 deletions(-) diff --git a/bin/v-add-mail-account b/bin/v-add-mail-account index 1675d5d7..81da9e71 100755 --- a/bin/v-add-mail-account +++ b/bin/v-add-mail-account @@ -61,6 +61,8 @@ if [[ "$MAIL_SYSTEM" =~ exim ]]; then fi str="$account:$md5:$user:mail::$HOMEDIR/$user:$quota" echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd + userstr="$account:$account:$user:mail:$HOMEDIR/$user" + echo $userstr >> $HOMEDIR/$user/conf/mail/$domain/accounts fi # Create mail account folder (mailbox) diff --git a/bin/v-add-mail-domain b/bin/v-add-mail-domain index 7c9dbc36..c26dadb2 100755 --- a/bin/v-add-mail-domain +++ b/bin/v-add-mail-domain @@ -91,6 +91,7 @@ if [[ "$MAIL_SYSTEM" =~ exim ]]; then touch $HOMEDIR/$user/conf/mail/$domain/aliases touch $HOMEDIR/$user/conf/mail/$domain/passwd touch $HOMEDIR/$user/conf/mail/$domain/fwd_only + touch $HOMEDIR/$user/conf/mail/$domain/accounts ln -s $HOMEDIR/$user/conf/mail/$domain \ /etc/$MAIL_SYSTEM/domains/$domain_idn @@ -119,6 +120,7 @@ if [[ "$MAIL_SYSTEM" =~ exim ]]; then # Set ownership chown -R $MAIL_USER:mail $HOMEDIR/$user/conf/mail/$domain chown -R dovecot:mail $HOMEDIR/$user/conf/mail/$domain/passwd + chown $MAIL_USER:mail $HOMEDIR/$user/conf/mail/$domain/accounts chown $user:mail $HOMEDIR/$user/mail/$domain_idn fi diff --git a/bin/v-delete-mail-account b/bin/v-delete-mail-account index f0da423c..09c41b50 100755 --- a/bin/v-delete-mail-account +++ b/bin/v-delete-mail-account @@ -53,6 +53,7 @@ if [[ "$MAIL_SYSTEM" =~ exim ]]; then sed -i "/^$account@$domain_idn:/d" $HOMEDIR/$user/conf/mail/$domain/aliases sed -i "/^$account:/d" $HOMEDIR/$user/conf/mail/$domain/passwd + sed -i "/^$account:/d" $HOMEDIR/$user/conf/mail/$domain/accounts rm -rf $HOMEDIR/$user/mail/$domain/$account fi diff --git a/func/rebuild.sh b/func/rebuild.sh index b4df3d20..bf04dda0 100644 --- a/func/rebuild.sh +++ b/func/rebuild.sh @@ -445,9 +445,12 @@ rebuild_mail_domain_conf() { rm -f $HOMEDIR/$user/conf/mail/$domain/protection rm -f $HOMEDIR/$user/conf/mail/$domain/passwd rm -f $HOMEDIR/$user/conf/mail/$domain/fwd_only + rm -f $HOMEDIR/$user/conf/mail/$domain/accounts + touch $HOMEDIR/$user/conf/mail/$domain/aliases touch $HOMEDIR/$user/conf/mail/$domain/passwd touch $HOMEDIR/$user/conf/mail/$domain/fwd_only + touch $HOMEDIR/$user/conf/mail/$domain/accounts # Adding antispam protection if [ "$ANTISPAM" = 'yes' ]; then @@ -506,6 +509,8 @@ rebuild_mail_domain_conf() { fi str="$account:$MD5:$user:mail::$HOMEDIR/$user:$QUOTA" echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd + userstr="$account:$account:$user:mail:$HOMEDIR/$user" + echo $userstr >> $HOMEDIR/$user/conf/mail/$domain/accounts for malias in ${ALIAS//,/ }; do echo "$malias@$domain_idn:$account@$domain_idn" >> $dom_aliases done @@ -527,6 +532,7 @@ rebuild_mail_domain_conf() { chmod 770 $HOMEDIR/$user/mail/$domain_idn chown -R $MAIL_USER:mail $HOMEDIR/$user/conf/mail/$domain chown -R dovecot:mail $HOMEDIR/$user/conf/mail/$domain/passwd + chown $MAIL_USER:mail $HOMEDIR/$user/conf/mail/$domain/accounts chown $user:mail $HOMEDIR/$user/mail/$domain_idn fi diff --git a/install/debian/11/exim/exim4.conf.template b/install/debian/11/exim/exim4.conf.template index 977dc661..d8bca393 100644 --- a/install/debian/11/exim/exim4.conf.template +++ b/install/debian/11/exim/exim4.conf.template @@ -381,8 +381,8 @@ address_reply: userautoreply: driver = autoreply - file = /etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/autoreply.${lookup{$local_part}dsearch{${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}}/mail/${lookup{$domain}dsearch{/etc/exim4/domains/}}}}.msg - from = "${lookup{$local_part}dsearch{${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}}/mail/${lookup{$domain}dsearch{/etc/exim4/domains/}}}}@${lookup{$domain}dsearch{/etc/exim4/domains/}}" + file = /etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/autoreply.${extract{1}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/accounts}}}}.msg + from = "${extract{1}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/accounts}}}}@${lookup{$domain}dsearch{/etc/exim4/domains/}}" headers = Content-Type: text/plain; charset=utf-8;\nContent-Transfer-Encoding: 8bit subject = "${if def:h_Subject: {Autoreply: \"${rfc2047:$h_Subject:}\"} {Autoreply Message}}" to = "${sender_address}" diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index 231e2aa3..b73c929f 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -1734,6 +1734,7 @@ touch /usr/local/vesta/data/upgrades/apache_status_public_access touch /usr/local/vesta/data/upgrades/update-cloudflare-ips touch /usr/local/vesta/data/upgrades/enable-tls-in-proftpd touch /usr/local/vesta/data/upgrades/enable_cookie_httponly +touch /usr/local/vesta/data/upgrades/fix_exim_494_autoreply # Secret URL secretquery='' diff --git a/src/deb/vesta/postinst b/src/deb/vesta/postinst index dbb7cbd2..906cd305 100755 --- a/src/deb/vesta/postinst +++ b/src/deb/vesta/postinst @@ -23,6 +23,17 @@ fi echo "1" > /usr/local/vesta/data/upgrades/show_changelog chmod a=rw /usr/local/vesta/data/upgrades/show_changelog +# Fix Autoreply issue with Exim 4.94+ +if [ ! -f "/usr/local/vesta/data/upgrades/fix_exim_494_autoreply" ]; then + touch /usr/local/vesta/data/upgrades/fix_exim_494_autoreply + if [ -f "/etc/exim4/exim4.conf.template" ]; then + echo "== Fix Autoreply issue with Exim 4.94+" + sed -i 's|file = /etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/autoreply.${lookup{$local_part}dsearch{${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}}/mail/${lookup{$domain}dsearch{/etc/exim4/domains/}}}}.msg|file = /etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/autoreply.${extract{1}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/accounts}}}}.msg|g' /etc/exim4/exim4.conf.template + sed -i 's| from = "${lookup{$local_part}dsearch{${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}}/mail/${lookup{$domain}dsearch{/etc/exim4/domains/}}}}@${lookup{$domain}dsearch{/etc/exim4/domains/}}"| from = "${extract{1}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/accounts}}}}@${lookup{$domain}dsearch{/etc/exim4/domains/}}"|g' /etc/exim4/exim4.conf.template + systemctl restart exim4 + fi +fi + # Enabling session.cookie_httponly and session.cookie_secure in myvesta php-fpm if [ ! -f "/usr/local/vesta/data/upgrades/enable_cookie_httponly" ]; then touch /usr/local/vesta/data/upgrades/enable_cookie_httponly From f236015bdf806bbb8b438b601af9bcad91eef1b6 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 30 Sep 2021 13:40:01 +0200 Subject: [PATCH 291/984] Update process for Autoreply fix with Exim 4.94+ --- src/deb/vesta/postinst | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/deb/vesta/postinst b/src/deb/vesta/postinst index 906cd305..b644a3cd 100755 --- a/src/deb/vesta/postinst +++ b/src/deb/vesta/postinst @@ -25,12 +25,20 @@ chmod a=rw /usr/local/vesta/data/upgrades/show_changelog # Fix Autoreply issue with Exim 4.94+ if [ ! -f "/usr/local/vesta/data/upgrades/fix_exim_494_autoreply" ]; then - touch /usr/local/vesta/data/upgrades/fix_exim_494_autoreply - if [ -f "/etc/exim4/exim4.conf.template" ]; then - echo "== Fix Autoreply issue with Exim 4.94+" - sed -i 's|file = /etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/autoreply.${lookup{$local_part}dsearch{${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}}/mail/${lookup{$domain}dsearch{/etc/exim4/domains/}}}}.msg|file = /etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/autoreply.${extract{1}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/accounts}}}}.msg|g' /etc/exim4/exim4.conf.template - sed -i 's| from = "${lookup{$local_part}dsearch{${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}}/mail/${lookup{$domain}dsearch{/etc/exim4/domains/}}}}@${lookup{$domain}dsearch{/etc/exim4/domains/}}"| from = "${extract{1}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/accounts}}}}@${lookup{$domain}dsearch{/etc/exim4/domains/}}"|g' /etc/exim4/exim4.conf.template - systemctl restart exim4 + if [ "$release" -eq 11 ]; then + touch /usr/local/vesta/data/upgrades/fix_exim_494_autoreply + if [ -f "/etc/exim4/exim4.conf.template" ]; then + echo "== Fix Autoreply issue with Exim 4.94+" + sed -i 's|file = /etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/autoreply.${lookup{$local_part}dsearch{${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}}/mail/${lookup{$domain}dsearch{/etc/exim4/domains/}}}}.msg|file = /etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/autoreply.${extract{1}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/accounts}}}}.msg|g' /etc/exim4/exim4.conf.template + sed -i 's| from = "${lookup{$local_part}dsearch{${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}}/mail/${lookup{$domain}dsearch{/etc/exim4/domains/}}}}@${lookup{$domain}dsearch{/etc/exim4/domains/}}"| from = "${extract{1}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/accounts}}}}@${lookup{$domain}dsearch{/etc/exim4/domains/}}"|g' /etc/exim4/exim4.conf.template + for user in $(grep '@' /etc/passwd |cut -f1 -d:); do + if [ ! -f "/usr/local/vesta/data/users/$user/user.conf" ]; then + continue; + fi + v-rebuild-mail-domains $user + done + systemctl restart exim4 + fi fi fi From fd8a44ae23884f345626ffd50bcf47dd11eb95fd Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 30 Sep 2021 13:43:51 +0200 Subject: [PATCH 292/984] Update postinst --- src/deb/vesta/postinst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/vesta/postinst b/src/deb/vesta/postinst index b644a3cd..8649087b 100755 --- a/src/deb/vesta/postinst +++ b/src/deb/vesta/postinst @@ -35,7 +35,7 @@ if [ ! -f "/usr/local/vesta/data/upgrades/fix_exim_494_autoreply" ]; then if [ ! -f "/usr/local/vesta/data/users/$user/user.conf" ]; then continue; fi - v-rebuild-mail-domains $user + /usr/local/vesta/bin/v-rebuild-mail-domains $user done systemctl restart exim4 fi From 9eb21cef4cf2c23c7476de7e4c95d73f2ded53db Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 30 Sep 2021 15:44:18 +0200 Subject: [PATCH 293/984] Define mail user in rebuild_mail_domain_conf() --- func/rebuild.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/func/rebuild.sh b/func/rebuild.sh index bf04dda0..23f9d4d7 100644 --- a/func/rebuild.sh +++ b/func/rebuild.sh @@ -523,6 +523,12 @@ rebuild_mail_domain_conf() { fi done + # Define mail user + if [ "$MAIL_SYSTEM" = 'exim4' ]; then + MAIL_USER=Debian-exim + else + MAIL_USER=exim + fi # Set permissions and ownership if [[ "$MAIL_SYSTEM" =~ exim ]]; then chmod 660 $USER_DATA/mail/$domain.* From 402131c22b352e9200c8f141aa516aff53692fec Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 30 Sep 2021 16:41:36 +0200 Subject: [PATCH 294/984] Moving v-install-wordpress to --parameters --- bin/v-install-wordpress | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/bin/v-install-wordpress b/bin/v-install-wordpress index 8e60dc6f..82c8e6ac 100644 --- a/bin/v-install-wordpress +++ b/bin/v-install-wordpress @@ -17,14 +17,15 @@ fi # Argument definition domain=$1 -database="wp"; -if [ $# -gt 1 ]; then - database=$2 +# take --parameters +source /usr/local/vesta/func/handle_parameters.sh + +if [ -z "$database" ]; then + database="wp" fi -email="info@$domain"; -if [ $# -gt 2 ]; then - email=$3 +if [ -z "$emil" ]; then + email="info@$domain"; fi user=$(/usr/local/vesta/bin/v-search-domain-owner $domain) @@ -83,11 +84,15 @@ PASSWDDB=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 8 | head -n 1) #----------------------------------------------------------# PROTOCOL='http' -if [ ! -f "/home/$user/conf/web/ssl.$domain.ca" ]; then - /usr/local/vesta/bin/v-add-letsencrypt-domain "$user" "$domain" "www.$domain" "yes" +if [ -z "$SKIP_LE" ]; then + if [ ! -f "/home/$user/conf/web/ssl.$domain.ca" ]; then + /usr/local/vesta/bin/v-add-letsencrypt-domain "$user" "$domain" "www.$domain" "yes" + fi +else + PROTOCOL='https' fi -if [ -f "/home/$user/conf/web/ssl.$domain.ca" ]; then +if [ -f "/home/$user/conf/web/ssl.$domain.ca" ] || [ ! -z "$SKIP_LE" ]; then PROTOCOL='https' if [ -f "/usr/local/vesta/data/templates/web/nginx/force-https.stpl" ]; then /usr/local/vesta/bin/v-change-web-domain-proxy-tpl "$user" "$domain" "force-https" "jpeg,jpg,png,gif,bmp,ico,svg,tif,tiff,css,js,ttf,otf,webp,txt,csv,rtf,doc,docx,xls,xlsx,ppt,pptx,odf,odp,ods,odt,pdf,psd,ai,eot,eps,ps,zip,tar,tgz,gz,rar,bz2,7z,aac,m4a,mp3,mp4,ogg,wav,wma,3gp,avi,flv,m4v,mkv,mov,mpeg,mpg,wmv,exe,iso,dmg,swf,woff,woff2" "yes" From def46e8cd7b738b5dce9d94b9a29358e4232af19 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 12 Oct 2021 11:41:04 +0200 Subject: [PATCH 295/984] Update v-install-wordpress --- bin/v-install-wordpress | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/bin/v-install-wordpress b/bin/v-install-wordpress index 82c8e6ac..d558dd35 100644 --- a/bin/v-install-wordpress +++ b/bin/v-install-wordpress @@ -17,17 +17,6 @@ fi # Argument definition domain=$1 -# take --parameters -source /usr/local/vesta/func/handle_parameters.sh - -if [ -z "$database" ]; then - database="wp" -fi - -if [ -z "$emil" ]; then - email="info@$domain"; -fi - user=$(/usr/local/vesta/bin/v-search-domain-owner $domain) if [ -z "$user" ]; then check_result $E_NOTEXIST "domain $domain doesn't exist" @@ -49,6 +38,17 @@ is_format_valid 'domain' 'database' 'email' is_object_valid 'user' 'USER' "$user" is_object_unsuspended 'user' 'USER' "$user" +# take --parameters +source /usr/local/vesta/func/handle_parameters.sh + +if [ -z "$database" ]; then + database="wp" +fi + +if [ -z "$emil" ]; then + email="info@$domain"; +fi + if [ ! -d "/home/$user" ]; then echo "User doesn't exist"; exit 1; From 8bbfc1255ffacc02c2e45617320b29dd92adbb4d Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 15 Oct 2021 10:33:21 +0200 Subject: [PATCH 296/984] Avoiding error if unzip destination exists --- bin/v-extract-fs-archive | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-extract-fs-archive b/bin/v-extract-fs-archive index ec70baba..1ea608af 100755 --- a/bin/v-extract-fs-archive +++ b/bin/v-extract-fs-archive @@ -82,7 +82,7 @@ fi # Extracting ziped archive if [ ! -z "$(echo $src_file |grep -i '.zip')" ]; then sudo -u $user mkdir -p "$dst_dir" >/dev/null 2>&1 - sudo -u $user unzip "$src_file" -d "$dst_dir" >/dev/null 2>&1 + sudo -u $user unzip -o "$src_file" -d "$dst_dir" >/dev/null 2>&1 rc=$? fi From a493c140cea6ac604938273c244128fac9d7c807 Mon Sep 17 00:00:00 2001 From: Jaap Marcus <9754650+jaapmarcus@users.noreply.github.com> Date: Mon, 18 Oct 2021 09:31:48 +0200 Subject: [PATCH 297/984] Regex string threaded literally instead as regex During shellcheck of Hestia source code I noticed the following error matching the line: ^----^ SC2076: Don't quote right-hand side of =~, it'll match literally rather than as a regex. ^--------------^ SC2076: Don't quote right-hand side of =~, it'll match literally rather Proof of concept: root@dev:~# v-add-web-domain jaap jaap..nu Error: nginx restart failed root@dev:~# v-add-web-domain jaap jaap..nu Error: invalid domain format :: jaap..nu --- func/main.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/func/main.sh b/func/main.sh index 5f71bb1f..a92bb59a 100644 --- a/func/main.sh +++ b/func/main.sh @@ -551,7 +551,7 @@ is_user_format_valid() { is_domain_format_valid() { object_name=${2-domain} exclude="[!|@|#|$|^|&|*|(|)|+|=|{|}|:|,|<|>|?|_|/|\|\"|'|;|%|\`| ]" - if [[ $1 =~ $exclude ]] || [[ $1 =~ ^[0-9]+$ ]] || [[ $1 =~ "\.\." ]] || [[ $1 =~ "$(printf '\t')" ]]; then + if [[ $1 =~ $exclude ]] || [[ $1 =~ ^[0-9]+$ ]] || [[ $1 =~ \.\. ]] || [[ $1 =~ $(printf '\t') ]]; then check_result $E_INVALID "invalid $object_name format :: $1" fi } From f68d0178c810d5353434d9a1f4becb4ef80233c3 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Wed, 20 Oct 2021 21:51:17 +0200 Subject: [PATCH 298/984] Update multi-php-install.sh --- src/deb/for-download/tools/multi-php-install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/for-download/tools/multi-php-install.sh b/src/deb/for-download/tools/multi-php-install.sh index ce04f573..4dd830c1 100644 --- a/src/deb/for-download/tools/multi-php-install.sh +++ b/src/deb/for-download/tools/multi-php-install.sh @@ -293,6 +293,6 @@ if [ $debian_version -eq 10 ]; then a2dismod php8.0 a2dismod mpm_prefork a2enmod mpm_event - apt-get -y remove libapache2-mod-php8.0 + apt-get -y remove libapache2-mod-php* service apache2 restart fi From e2537d902655ccd90dcf3930d3925896c7ceefe7 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Wed, 20 Oct 2021 23:34:42 +0200 Subject: [PATCH 299/984] Set default php in installer --- install/vst-install-debian.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index b73c929f..4f48ca0b 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -1637,7 +1637,9 @@ if [ "$release" -eq 9 ]; then patch -p1 --directory=/ < /root/vesta-temp-dl/vesta/patch/php7.0-dedi.patch fi fi + update-alternatives --set php /usr/bin/php7.0 fi + if [ "$release" -eq 10 ]; then if [ $memory -lt 10000000 ]; then echo "=== Patching php7.3-vps" @@ -1647,8 +1649,10 @@ if [ "$release" -eq 10 ]; then echo "=== Patching php7.3-dedi" patch /etc/php/7.3/fpm/php.ini < $vestacp/php/php7.3-dedi.patch fi + update-alternatives --set php /usr/bin/php7.3 service php7.3-fpm restart fi + if [ "$release" -eq 11 ]; then if [ $memory -lt 10000000 ]; then echo "=== Patching php7.4-vps" @@ -1658,6 +1662,7 @@ if [ "$release" -eq 11 ]; then echo "=== Patching php7.4-dedi" patch /etc/php/7.4/fpm/php.ini < $vestacp/php/php7.4-dedi.patch fi + update-alternatives --set php /usr/bin/php7.4 service php7.4-fpm restart fi From 5633b839e5e3821784aa880c6c35b04038e70039 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Wed, 20 Oct 2021 23:36:26 +0200 Subject: [PATCH 300/984] Update multi-php-install.sh --- src/deb/for-download/tools/multi-php-install.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/deb/for-download/tools/multi-php-install.sh b/src/deb/for-download/tools/multi-php-install.sh index 4dd830c1..6d30ab25 100644 --- a/src/deb/for-download/tools/multi-php-install.sh +++ b/src/deb/for-download/tools/multi-php-install.sh @@ -281,7 +281,7 @@ fi apt update apt upgrade -y -if [ $debian_version -eq 10 ]; then +if [ $debian_version -ge 10 ]; then a2dismod ruid2 a2dismod suexec a2dismod php5.6 @@ -291,6 +291,7 @@ if [ $debian_version -eq 10 ]; then a2dismod php7.3 a2dismod php7.4 a2dismod php8.0 + a2dismod php8.1 a2dismod mpm_prefork a2enmod mpm_event apt-get -y remove libapache2-mod-php* From bc9ca52c3736bd9dc46df38eed98b6231c0dc58a Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Wed, 20 Oct 2021 23:48:42 +0200 Subject: [PATCH 301/984] Create v-clean-garbage --- bin/v-clean-garbage | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 bin/v-clean-garbage diff --git a/bin/v-clean-garbage b/bin/v-clean-garbage new file mode 100644 index 00000000..fc354210 --- /dev/null +++ b/bin/v-clean-garbage @@ -0,0 +1,35 @@ +#!/bin/bash + +nice -n 19 ionice -c 3 find /home/*/tmp/ -type f -delete +find /home/ -name '.wp-cli' -type d -exec rm -rf {} \; + +rm /var/backups/* +rm /var/cache/apt/archives/* +cd /var/log +truncate -s 0 xferlog lastlog faillog btmp syslog; +find /var/log/ -name "*.log" -type f -exec truncate -s 0 {} \; +find /var/log/ -name "*.err" -type f -exec truncate -s 0 {} \; +find /var/log/ -name "errors" -type f -exec truncate -s 0 {} \; +find /var/log/ -name "*.info" -type f -exec truncate -s 0 {} \; +find /var/log/ -name "*.warn" -type f -exec truncate -s 0 {} \; +find /var/log/ -type f -name "*.1" -delete +find /var/log/ -type f -name "*.2" -delete +find /var/log/ -type f -name "*.3" -delete +find /var/log/ -type f -name "*.4" -delete +find /var/log/ -type f -name "*.5" -delete +find /var/log/ -type f -name "*.6" -delete +find /var/log/ -type f -name "*.7" -delete +find /var/log/ -name "*.gz" -type f -delete +find /usr/local/vesta/log/ -type f -name "*.log" -exec truncate -s 0 {} \; +find /usr/local/vesta/log/ -type f -not -name "*.log" -delete +find /var/log/exim4/ -type f -exec truncate -s 0 {} \; + +find /home/*/web/*/public_html/wp-content/aiowps_backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete +find /home/*/web/*/public_html/wp-content/envato-backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete +find /home/*/web/*/public_html/wp-content/ai1wm-backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete +find /home/*/web/*/public_html/wp-content/updraft/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete +find /home/*/web/*/public_html/ -type f -name "error_log" -delete +find /home/*/web/*/public_html/ -type f -name "error_log.txt" -delete +find /home/ -type f -name "*.log" -delete + +echo "=== Garbage cleaned ===" From 39c9ebc2a7edbb1dd17fd5b4e6110cb065fba852 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 7 Nov 2021 00:33:45 +0100 Subject: [PATCH 302/984] curl --silent in v-add-letsencrypt-domain --- bin/v-add-letsencrypt-domain | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-add-letsencrypt-domain b/bin/v-add-letsencrypt-domain index 3a7b10b8..0cea207c 100755 --- a/bin/v-add-letsencrypt-domain +++ b/bin/v-add-letsencrypt-domain @@ -287,7 +287,7 @@ for auth in $authz; do check_result $E_CONNECT "Let's Encrypt domain validation timeout" fi echo "[$(date)] : curl: $url2 :" >> /usr/local/vesta/log/letsencrypt.log - get_answer=$(curl -S "$url2") + get_answer=$(curl --silent -S "$url2") echo "[$(date)] : get_answer=$get_answer" >> /usr/local/vesta/log/letsencrypt.log sleeping=$((i*2)) echo "[$(date)] : sleep $sleeping (i=$i)" >> /usr/local/vesta/log/letsencrypt.log From 4bb53ff28f22fe5f18a50da493683cfba19983c0 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 7 Nov 2021 14:26:16 +0100 Subject: [PATCH 303/984] Properly rebuild_mysql_database password for MariaDB > 10.4 --- func/rebuild.sh | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/func/rebuild.sh b/func/rebuild.sh index 23f9d4d7..eeef03ee 100644 --- a/func/rebuild.sh +++ b/func/rebuild.sh @@ -568,21 +568,30 @@ rebuild_mysql_database() { fi else # mariadb - if [ "$(echo $mysql_ver |cut -d '.' -f1)" -eq 5 ]; then + mysql_ver_sub=$(echo $mysql_ver |cut -d '.' -f1) + mysql_ver_sub_sub=$(echo $mysql_ver |cut -d '.' -f2) + if [ "$mysql_ver_sub" -eq 5 ]; then # mariadb = 5 mysql_query "CREATE USER \`$DBUSER\`" > /dev/null mysql_query "CREATE USER \`$DBUSER\`@localhost" > /dev/null + query="UPDATE mysql.user SET Password='$MD5' WHERE User='$DBUSER'" else # mariadb = 10 mysql_query "CREATE USER IF NOT EXISTS \`$DBUSER\`" > /dev/null mysql_query "CREATE USER IF NOT EXISTS \`$DBUSER\`@localhost" > /dev/null + query="UPDATE mysql.user SET Password='$MD5' WHERE User='$DBUSER'" + if [ "$mysql_ver_sub_sub" -ge 4 ]; then + query="SET PASSWORD FOR '$DBUSER'@'%' = '$MD5';" + query2="SET PASSWORD FOR '$DBUSER'@'localhost' = '$MD5';" + fi fi - # mariadb any version - query="UPDATE mysql.user SET Password='$MD5' WHERE User='$DBUSER'" fi mysql_query "GRANT ALL ON \`$DB\`.* TO \`$DBUSER\`@\`%\`" >/dev/null mysql_query "GRANT ALL ON \`$DB\`.* TO \`$DBUSER\`@localhost" >/dev/null mysql_query "$query" >/dev/null + if [ ! -z "$query2" ]; then + mysql_query "$query2" >/dev/null + fi mysql_query "FLUSH PRIVILEGES" >/dev/null } From 14ba4ab999869dacabe670e41a22ebf9e7b1a3e4 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 7 Nov 2021 21:46:52 +0100 Subject: [PATCH 304/984] Version 0.9.8-26-50 --- src/deb/latest.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/latest.txt b/src/deb/latest.txt index efd44125..53712deb 100644 --- a/src/deb/latest.txt +++ b/src/deb/latest.txt @@ -1 +1 @@ -vesta-0.9.8-26-49 +vesta-0.9.8-26-50 From c0cebf526438aac378862e45ac16d6fe774cb6fe Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 7 Nov 2021 21:48:46 +0100 Subject: [PATCH 305/984] Update Changelog.md --- Changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Changelog.md b/Changelog.md index 647187e0..4ecfde8f 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,7 @@ +Version 0.9.8-26-50 [07-Nov-2021] +================================================== +* Many small bugfixes and CSRF fixes + Version 0.9.8-26-49 [17-Jul-2021] ================================================== * Support for Debian 11 From aba861c8143c0b23a3d327636bf79ebe13cc897d Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 11 Nov 2021 22:54:42 +0100 Subject: [PATCH 306/984] check spam if email smaller than 600 KB --- install/debian/10/exim/exim4.conf.template | 2 +- install/debian/11/exim/exim4.conf.template | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/install/debian/10/exim/exim4.conf.template b/install/debian/10/exim/exim4.conf.template index cb79ab3c..70577b6e 100644 --- a/install/debian/10/exim/exim4.conf.template +++ b/install/debian/10/exim/exim4.conf.template @@ -174,7 +174,7 @@ acl_check_data: .ifdef SPAMASSASSIN warn !authenticated = * hosts = !+relay_from_hosts - condition = ${if < {$message_size}{100K}} + condition = ${if < {$message_size}{600K}} condition = ${if eq{$acl_m1}{yes}{yes}{no}} spam = nobody:true/defer_ok add_header = X-Spam-Score: $spam_score_int diff --git a/install/debian/11/exim/exim4.conf.template b/install/debian/11/exim/exim4.conf.template index d8bca393..a041b329 100644 --- a/install/debian/11/exim/exim4.conf.template +++ b/install/debian/11/exim/exim4.conf.template @@ -174,7 +174,7 @@ acl_check_data: .ifdef SPAMASSASSIN warn !authenticated = * hosts = !+relay_from_hosts - condition = ${if < {$message_size}{100K}} + condition = ${if < {$message_size}{600K}} condition = ${if eq{$acl_m1}{yes}{yes}{no}} spam = nobody:true/defer_ok add_header = X-Spam-Score: $spam_score_int From 8c4be97720bdda6f25db0a94c7150d779679d2f0 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 12 Nov 2021 23:04:46 +0100 Subject: [PATCH 307/984] Fix for "chmod: changing permissions" --- bin/v-add-web-domain | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-add-web-domain b/bin/v-add-web-domain index aab09e6a..72de559a 100755 --- a/bin/v-add-web-domain +++ b/bin/v-add-web-domain @@ -90,7 +90,7 @@ done # Changing file owner & permission chown -R $user:$user $HOMEDIR/$user/web/$domain chown root:$user /var/log/$WEB_SYSTEM/domains/$domain.* $conf -sudo -u $user chmod 640 /var/log/$WEB_SYSTEM/domains/$domain.* +chmod 640 /var/log/$WEB_SYSTEM/domains/$domain.* sudo -u $user chmod 751 $HOMEDIR/$user/web/$domain $HOMEDIR/$user/web/$domain/* sudo -u $user chmod 551 $HOMEDIR/$user/web/$domain/stats $HOMEDIR/$user/web/$domain/logs sudo -u $user chmod 644 $HOMEDIR/$user/web/$domain/public_*html/*.* From 302e351252d2afa3428381bd11d72a03729a2438 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 14 Nov 2021 19:47:54 +0100 Subject: [PATCH 308/984] Many fixes for v-list-sys-services --- bin/v-list-sys-services | 142 ++++++++++++++++++++++--- web/templates/admin/list_services.html | 12 ++- 2 files changed, 133 insertions(+), 21 deletions(-) diff --git a/bin/v-list-sys-services b/bin/v-list-sys-services index 93f01a11..71133ac4 100755 --- a/bin/v-list-sys-services +++ b/bin/v-list-sys-services @@ -18,6 +18,8 @@ source $VESTA/conf/vesta.conf export PATH=$PATH:/sbin +debug=0 + # JSON list function json_list() { IFS=$'\n' @@ -50,6 +52,9 @@ shell_list() { echo "---- ----- --- --- ------" while read str; do eval $str + if [ "$STATE" = "stopped" ]; then + STATE='off' + fi echo "$NAME $STATE $CPU $MEM $RTIME" done < <(echo -e "$data" |grep NAME) } @@ -77,8 +82,17 @@ csv_list() { get_srv_state() { srv=$1 name=${2-$1} + procfolder=$4 + procfile=$5 state='running' + mem=0 + cpu=0 + rtime="0" + if [ $debug -eq 1 ]; then + echo "---------------------" + echo "$srv = $name" + fi # Searching related pids if [ -z $3 ]; then pids=$(pidof $name |tr ' ' '|') @@ -88,10 +102,23 @@ get_srv_state() { if [ -z "$pids" ] && [ "$name" != 'nginx' ]; then pids=$(pgrep $name |tr '\n' '|') fi + if [ "$name" = 'elasticsearch' ]; then + pids=$(ps -Af | grep 'elasticsearch' | grep -v 'grep' | awk '{print $2}' | tr '\n' '|') + fi + if [ "$name" = 'vesta-nginx' ]; then + pids=$(ps -Af | grep 'vesta/nginx' | grep -v 'grep' | awk '{print $2}' | tr '\n' '|') + fi + if [ "$name" = 'vesta-php' ]; then + pids=$(ps -Af | grep 'vesta/php' | grep -v 'grep' | awk '{print $2}' | tr '\n' '|') + fi + if [ $debug -eq 1 ]; then + echo "pids = $pids" + fi # Checking pid - if [ ! -z "$pids" ]; then + if [ -n "$pids" ]; then pid=$(echo "$pids" |cut -f 1 -d '|') + pids=${pids%|} pids=$(egrep "$pids" $tmp_file) # Calculating CPU usage @@ -103,7 +130,22 @@ get_srv_state() { # Searching pid file pid_file='' - if [ -e "/var/run/$srv.pid" ]; then + if [ ! -z "$procfolder" ]; then + if [ -f "/var/run/$procfolder/$srv.pid" ]; then + pid_file="/var/run/$procfolder/$srv.pid" + fi + fi + if [ -z "$pid_file" ] && [ ! -z "$procfolder" ] && [ ! -z "$procfile" ]; then + if [ -f "/var/run/$procfolder/$procfile.pid" ]; then + pid_file="/var/run/$procfolder/$procfile.pid" + fi + fi + if [ -z "$pid_file" ] && [ -z "$procfolder" ] && [ ! -z "$procfile" ]; then + if [ -f "/var/run/$procfile.pid" ]; then + pid_file="/var/run/$procfile.pid" + fi + fi + if [ -z "$pid_file" ] && [ -e "/var/run/$srv.pid" ]; then pid_file="/var/run/$srv.pid" fi if [ -z "$pid_file" ] && [ -e "/var/run/$srv/$srv.pid" ]; then @@ -112,18 +154,31 @@ get_srv_state() { if [ -z "$pid_file" ] && [ -e "/var/run/$name/$name.pid" ]; then pid_file="/var/run/$name/$name.pid" fi + if [ -z "$pid_file" ] && [ -f "/var/run/$name.pid" ]; then + pid_file="/var/run/$name.pid" + fi if [ -z "$pid_file" ] && [ -e "/proc/$pid" ]; then pid_file="/proc/$pid" fi + if [ $debug -eq 1 ]; then + echo "$srv = $name = $pid_file" + fi # Calculating uptime - if [ ! -z "$pid_file" ]; then + if [ -n "$pid_file" ]; then mtime=$(stat -c "%Y" $pid_file) rtime=$((ctime - mtime)) rtime=$((rtime / 60)) else rtime=0 fi + if [ "$pid_file" = "/proc/$pid" ]; then + if [ $debug -eq 1 ]; then + echo "getting pid lifetime via ps" + fi + rtime=$(ps -p 2877633 -o etimes | tail -n 1 | awk '{print $1}') + rtime=$((rtime / 60)) + fi else state='stopped' mem=0 @@ -151,14 +206,6 @@ if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'remote' ]; then data="$data MEM='$mem' RTIME='$rtime'" fi -# Checking WEB Backend -if [ ! -z "$WEB_BACKEND" ] && [ "$WEB_BACKEND" != 'remote' ]; then - proc_name=$(ls /usr/sbin/php*fpm* | rev | cut -d'/' -f 1 | rev) - get_srv_state $proc_name - data="$data\nNAME='$WEB_BACKEND' SYSTEM='backend server' STATE='$state'" - data="$data CPU='$cpu' MEM='$mem' RTIME='$rtime'" -fi - # Checking WEB Proxy if [ ! -z "$PROXY_SYSTEM" ] && [ "$PROXY_SYSTEM" != 'remote' ]; then get_srv_state $PROXY_SYSTEM @@ -166,6 +213,18 @@ if [ ! -z "$PROXY_SYSTEM" ] && [ "$PROXY_SYSTEM" != 'remote' ]; then data="$data CPU='$cpu' MEM='$mem' RTIME='$rtime'" fi +# Checking WEB Backend +if [ "$WEB_BACKEND" != 'remote' ]; then + php_versions=$(ls /usr/sbin/php*fpm* | cut -d'/' -f4 | sed 's|php-fpm||') + for version in $php_versions; do + proc_name="php-fpm${version}" + service_name="php${version}-fpm" + get_srv_state "$service_name" "$proc_name" '' 'php' + data="$data\nNAME='$service_name' SYSTEM='backend server' STATE='$state'" + data="$data CPU='$cpu' MEM='$mem' RTIME='$rtime'" + done +fi + # DNS service=$DNS_SYSTEM if [ ! -z "$service" ] && [ "$service" != 'remote' ]; then @@ -177,14 +236,22 @@ fi # Checking MAIL system if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'remote' ]; then - get_srv_state $MAIL_SYSTEM + if [ "$MAIL_SYSTEM" = "exim4" ]; then + get_srv_state "$MAIL_SYSTEM" "$MAIL_SYSTEM" '' 'exim4' 'exim' + else + get_srv_state $MAIL_SYSTEM + fi data="$data\nNAME='$MAIL_SYSTEM' SYSTEM='mail server' STATE='$state'" data="$data CPU='$cpu' MEM='$mem' RTIME='$rtime'" fi # Checking MAIL IMAP if [ ! -z "$IMAP_SYSTEM" ] && [ "$IMAP_SYSTEM" != 'remote' ]; then - get_srv_state $IMAP_SYSTEM + if [ "$IMAP_SYSTEM" = "dovecot" ]; then + get_srv_state "$IMAP_SYSTEM" "$IMAP_SYSTEM" '' 'dovecot' 'master' + else + get_srv_state $IMAP_SYSTEM + fi data="$data\nNAME='$IMAP_SYSTEM' SYSTEM='pop/imap server' STATE='$state'" data="$data CPU='$cpu' MEM='$mem' RTIME='$rtime'" fi @@ -200,11 +267,19 @@ if [ ! -z "$ANTIVIRUS_SYSTEM" ] && [ "$ANTIVIRUS_SYSTEM" != 'remote' ]; then if [ "$ANTIVIRUS_SYSTEM" == 'clamav-daemon' ];then proc_name='clamd' fi - get_srv_state $ANTIVIRUS_SYSTEM $proc_name + get_srv_state $ANTIVIRUS_SYSTEM $proc_name '' 'clamav' 'clamd' fi data="$data\nNAME='$ANTIVIRUS_SYSTEM' SYSTEM='email antivirus'" data="$data STATE='$state' CPU='$cpu' MEM='$mem' RTIME='$rtime'" proc_name='' + if [ ! -d "/etc/sysconfig" ]; then + if [ "$ANTIVIRUS_SYSTEM" == 'clamav-daemon' ];then + get_srv_state "clamav-freshclam" "freshclam" + data="$data\nNAME='clamav-freshclam' SYSTEM='email antivirus updater'" + data="$data STATE='$state' CPU='$cpu' MEM='$mem' RTIME='$rtime'" + proc_name='' + fi + fi fi # Checking MAIL ANTISPAM @@ -220,6 +295,7 @@ if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'remote' ]; then proc_name='' service="$db" if [ "$service" = 'mysql' ]; then + proc_name='mysqld' release=$(cat /etc/debian_version | tr "." "\n" | head -n1) if [ "$release" -eq 11 ]; then service='mariadb' @@ -243,7 +319,7 @@ if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'remote' ]; then proc_name='postgres' fi fi - get_srv_state $service $proc_name + get_srv_state $service $proc_name '' 'mysqld' 'mysqld' data="$data\nNAME='$service' SYSTEM='database server' STATE='$state'" data="$data CPU='$cpu' MEM='$mem' RTIME='$rtime'" proc_name='' @@ -259,11 +335,28 @@ fi # Checking CRON system if [ ! -z "$CRON_SYSTEM" ] && [ "$CRON_SYSTEM" != 'remote' ]; then - get_srv_state $CRON_SYSTEM + get_srv_state "$CRON_SYSTEM" "$CRON_SYSTEM" '' '' 'crond' data="$data\nNAME='$CRON_SYSTEM' SYSTEM='job scheduler' STATE='$state'" data="$data CPU='$cpu' MEM='$mem' RTIME='$rtime'" fi +# Checking SSH daemon +if [ -e "/etc/ssh/sshd_config" ]; then + get_srv_state 'ssh' 'ssh' '' '' 'sshd' + data="$data\nNAME='ssh' SYSTEM='SSH Access' STATE='$state'" + data="$data CPU='$cpu' MEM='$mem' RTIME='$rtime'" +fi + +# Checking Vesta nginx +get_srv_state 'vesta' 'vesta-nginx' '' '' 'vesta-nginx' +data="$data\nNAME='vesta-nginx' SYSTEM='Vesta nginx service' STATE='$state'" +data="$data CPU='$cpu' MEM='$mem' RTIME='$rtime'" + +# Checking Vesta php-fpm +get_srv_state 'vesta' 'vesta-php' '' '' 'vesta-php' +data="$data\nNAME='vesta-php' SYSTEM='Vesta php service' STATE='$state'" +data="$data CPU='$cpu' MEM='$mem' RTIME='$rtime'" + # Checking FIREWALL system if [ ! -z "$FIREWALL_SYSTEM" ] && [ "$FIREWALL_SYSTEM" != 'remote' ]; then state="stopped" @@ -277,11 +370,26 @@ fi # Checking FIREWALL Fail2ban extention if [ ! -z "$FIREWALL_EXTENSION" ]; then - get_srv_state $FIREWALL_EXTENSION fail2ban-server script + get_srv_state "$FIREWALL_EXTENSION" 'fail2ban-server' 'script' data="$data\nNAME='$FIREWALL_EXTENSION' SYSTEM='brute-force monitor'" data="$data STATE='$state' CPU='$cpu' MEM='$mem' RTIME='$rtime'" fi +# Checking ElasticSearch +if [ -d "/etc/elasticsearch" ]; then + get_srv_state 'elasticsearch' + data="$data\nNAME='elasticsearch' SYSTEM='ElasticSearch' STATE='$state'" + data="$data CPU='$cpu' MEM='$mem' RTIME='$rtime'" +fi + +# Checking Redis +if [ -d "/etc/redis" ]; then + get_srv_state 'redis' 'redis-server' '' 'redis' 'redis-server' + data="$data\nNAME='redis' SYSTEM='Redis' STATE='$state'" + data="$data CPU='$cpu' MEM='$mem' RTIME='$rtime'" +fi + + # Listing data case $format in json) json_list ;; diff --git a/web/templates/admin/list_services.html b/web/templates/admin/list_services.html index 6012d2a3..45d6b18a 100644 --- a/web/templates/admin/list_services.html +++ b/web/templates/admin/list_services.html @@ -121,7 +121,11 @@ $status = 'suspended'; $action = 'start'; } - + + $realservice=$key; + if ($realservice=="vesta-php") $realservice="vesta"; + if ($realservice=="vesta-nginx") $realservice="vesta"; + $cpu = $data[$key]['CPU'] / 10; $cpu = number_format($cpu, 1); if ($cpu == '0.0') $cpu = 0; @@ -137,9 +141,9 @@
-
 ↵
-
 S
-
 R
+
 ↵
+
 S
+
 R
From d9202d91b9a0d334db272b738f2996f38fb1a6d9 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 14 Nov 2021 20:01:21 +0100 Subject: [PATCH 309/984] Avoid clamav fixes if clamav is disabled --- src/deb/vesta/postinst | 119 +++++++++++++++++++++-------------------- 1 file changed, 61 insertions(+), 58 deletions(-) diff --git a/src/deb/vesta/postinst b/src/deb/vesta/postinst index 8649087b..c9b9732c 100755 --- a/src/deb/vesta/postinst +++ b/src/deb/vesta/postinst @@ -141,48 +141,68 @@ if [ "$check_cron" -eq 0 ]; then crontab -l | { cat; echo "10 2 * * 6 sudo find /home/*/tmp/ -type f -mtime +5 -exec rm {} \;"; } | crontab - fi -# make sure clamav-daemon.service has mkdir fix -if [ -f "/lib/systemd/system/clamav-daemon.service" ]; then - check_grep=$(grep -c 'mkdir' /lib/systemd/system/clamav-daemon.service) - if [ "$check_grep" -eq 0 ]; then - echo "=== patching clamav-daemon.service" - exec_pre1='ExecStartPre=-/bin/mkdir -p /var/run/clamav' - exec_pre2='ExecStartPre=-/bin/chown -R clamav:clamav /var/run/clamav' - sed -i "s|\[Service\]|[Service]\n$exec_pre1\n$exec_pre2|g" /lib/systemd/system/clamav-daemon.service - systemctl daemon-reload - systemctl restart clamav-daemon - systemctl restart clamav-freshclam - fi -fi - -# reverting to default clamd sock -if [ ! -f "/usr/local/vesta/data/upgrades/change-clamav-socket-v3" ]; then - touch /usr/local/vesta/data/upgrades/change-clamav-socket-v3 - if [ -f "/etc/clamav/clamd.conf" ]; then - sed -i "s#/var/lib/clamav/clamd.sock#/var/run/clamav/clamd.ctl#g" /etc/clamav/clamd.conf - if [ -f "/etc/exim4/exim4.conf.template" ]; then - sed -i "s#/var/lib/clamav/clamd.sock#/var/run/clamav/clamd.ctl#g" /etc/exim4/exim4.conf.template - fi - if [ -f "/lib/systemd/system/clamav-daemon.socket" ]; then - sed -i "s#/var/lib/clamav/clamd.sock#/run/clamav/clamd.ctl#g" /lib/systemd/system/clamav-daemon.socket - fi - systemctl daemon-reload - systemctl restart clamav-daemon - systemctl restart clamav-freshclam - if [ -f "/etc/exim4/exim4.conf.template" ]; then - systemctl restart exim4 - fi - fi -fi - -# reverting to default clamd sock -if [ ! -f "/usr/local/vesta/data/upgrades/change-clamav-socket-v4" ]; then - touch /usr/local/vesta/data/upgrades/change-clamav-socket-v4 - if [ -f "/etc/clamav/clamd.conf" ]; then - check_grep=$(grep -c '/var/lib/clamav/clamd.ctl' /etc/clamav/clamd.conf) - if [ "$check_grep" -eq 1 ]; then - sed -i "s#/var/lib/clamav/clamd.ctl#/var/run/clamav/clamd.ctl#g" /etc/clamav/clamd.conf +unit_files="$(systemctl list-unit-files | grep clamav-daemon)" +if [[ ! "$unit_files" =~ "disabled" ]]; then + # make sure clamav-daemon.service has mkdir fix + if [ -f "/lib/systemd/system/clamav-daemon.service" ]; then + check_grep=$(grep -c 'mkdir' /lib/systemd/system/clamav-daemon.service) + if [ "$check_grep" -eq 0 ]; then + echo "=== patching clamav-daemon.service" + exec_pre1='ExecStartPre=-/bin/mkdir -p /var/run/clamav' + exec_pre2='ExecStartPre=-/bin/chown -R clamav:clamav /var/run/clamav' + sed -i "s|\[Service\]|[Service]\n$exec_pre1\n$exec_pre2|g" /lib/systemd/system/clamav-daemon.service + systemctl daemon-reload systemctl restart clamav-daemon + systemctl restart clamav-freshclam + fi + fi + + # reverting to default clamd sock + if [ ! -f "/usr/local/vesta/data/upgrades/change-clamav-socket-v3" ]; then + touch /usr/local/vesta/data/upgrades/change-clamav-socket-v3 + if [ -f "/etc/clamav/clamd.conf" ]; then + sed -i "s#/var/lib/clamav/clamd.sock#/var/run/clamav/clamd.ctl#g" /etc/clamav/clamd.conf + if [ -f "/etc/exim4/exim4.conf.template" ]; then + sed -i "s#/var/lib/clamav/clamd.sock#/var/run/clamav/clamd.ctl#g" /etc/exim4/exim4.conf.template + fi + if [ -f "/lib/systemd/system/clamav-daemon.socket" ]; then + sed -i "s#/var/lib/clamav/clamd.sock#/run/clamav/clamd.ctl#g" /lib/systemd/system/clamav-daemon.socket + fi + systemctl daemon-reload + systemctl restart clamav-daemon + systemctl restart clamav-freshclam + if [ -f "/etc/exim4/exim4.conf.template" ]; then + systemctl restart exim4 + fi + fi + fi + + # reverting to default clamd sock + if [ ! -f "/usr/local/vesta/data/upgrades/change-clamav-socket-v4" ]; then + touch /usr/local/vesta/data/upgrades/change-clamav-socket-v4 + if [ -f "/etc/clamav/clamd.conf" ]; then + check_grep=$(grep -c '/var/lib/clamav/clamd.ctl' /etc/clamav/clamd.conf) + if [ "$check_grep" -eq 1 ]; then + sed -i "s#/var/lib/clamav/clamd.ctl#/var/run/clamav/clamd.ctl#g" /etc/clamav/clamd.conf + systemctl restart clamav-daemon + fi + fi + fi + + # Block executable files inside zip/rar/tar archives in ClamAV + if [ ! -f "/usr/local/vesta/data/upgrades/clamav_block_exe_in_archives" ]; then + touch /usr/local/vesta/data/upgrades/clamav_block_exe_in_archives + if [ -f "/etc/exim4/exim4.conf.template" ]; then + check_grep=$(grep -c '#CLAMD' /etc/exim4/exim4.conf.template) + if [ "$check_grep" -eq 0 ]; then + folder="/var/lib/clamav" + if [ -d "$folder" ]; then + echo "=== Blocking executable files inside zip/rar/tar archives in ClamAV" + wget -nv -O $folder/foxhole_all.cdb http://c.myvestacp.com/tools/clamav/foxhole_all.cdb + chown clamav:clamav $folder/foxhole_all.cdb + service clamav-daemon restart + fi + fi fi fi fi @@ -204,23 +224,6 @@ if [ "$release" -eq 9 ] || [ "$release" -eq 10 ]; then fi fi -# Block executable files inside zip/rar/tar archives in ClamAV -if [ ! -f "/usr/local/vesta/data/upgrades/clamav_block_exe_in_archives" ]; then - touch /usr/local/vesta/data/upgrades/clamav_block_exe_in_archives - if [ -f "/etc/exim4/exim4.conf.template" ]; then - check_grep=$(grep -c '#CLAMD' /etc/exim4/exim4.conf.template) - if [ "$check_grep" -eq 0 ]; then - folder="/var/lib/clamav" - if [ -d "$folder" ]; then - echo "=== Blocking executable files inside zip/rar/tar archives in ClamAV" - wget -nv -O $folder/foxhole_all.cdb http://c.myvestacp.com/tools/clamav/foxhole_all.cdb - chown clamav:clamav $folder/foxhole_all.cdb - service clamav-daemon restart - fi - fi - fi -fi - # Clearing letsencrypt pipe if [ ! -f "/usr/local/vesta/data/upgrades/clearing-letsencrypt-pipe" ]; then touch /usr/local/vesta/data/upgrades/clearing-letsencrypt-pipe From b42d607ad141e2f82088a2ba629b508cdb812f39 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 14 Nov 2021 20:05:49 +0100 Subject: [PATCH 310/984] Version 0.9.8-26-51 --- src/deb/latest.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/latest.txt b/src/deb/latest.txt index 53712deb..af812423 100644 --- a/src/deb/latest.txt +++ b/src/deb/latest.txt @@ -1 +1 @@ -vesta-0.9.8-26-50 +vesta-0.9.8-26-51 From a7d96a479bfb039b01a75f1845c568e7f9d65fbc Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 14 Nov 2021 20:16:27 +0100 Subject: [PATCH 311/984] Fixes only if ClamAV is enabled --- src/deb/vesta/postinst | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/deb/vesta/postinst b/src/deb/vesta/postinst index c9b9732c..d06501bd 100755 --- a/src/deb/vesta/postinst +++ b/src/deb/vesta/postinst @@ -141,8 +141,9 @@ if [ "$check_cron" -eq 0 ]; then crontab -l | { cat; echo "10 2 * * 6 sudo find /home/*/tmp/ -type f -mtime +5 -exec rm {} \;"; } | crontab - fi -unit_files="$(systemctl list-unit-files | grep clamav-daemon)" -if [[ ! "$unit_files" =~ "disabled" ]]; then +if [ $(systemctl list-unit-files | grep clamav-daemon | grep -c "disabled") -eq 0 ]; then + # Fixes only if ClamAV is enabled + # make sure clamav-daemon.service has mkdir fix if [ -f "/lib/systemd/system/clamav-daemon.service" ]; then check_grep=$(grep -c 'mkdir' /lib/systemd/system/clamav-daemon.service) From b62486ddd291382abccf162f2d542942152e613b Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 14 Nov 2021 20:20:29 +0100 Subject: [PATCH 312/984] Update Changelog.md --- Changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Changelog.md b/Changelog.md index 4ecfde8f..3cf4b126 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,7 @@ +Version 0.9.8-26-51 [14-Nov-2021] +================================================== +* Many fixes for "List services" page (v-list-sys-services function) + Version 0.9.8-26-50 [07-Nov-2021] ================================================== * Many small bugfixes and CSRF fixes From de5f28459e7e2d53927f100e6ddc05ffc517d4ad Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 14 Nov 2021 21:11:34 +0100 Subject: [PATCH 313/984] $pid fix in v-list-sys-services --- bin/v-list-sys-services | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-list-sys-services b/bin/v-list-sys-services index 71133ac4..2b7e7890 100755 --- a/bin/v-list-sys-services +++ b/bin/v-list-sys-services @@ -176,7 +176,7 @@ get_srv_state() { if [ $debug -eq 1 ]; then echo "getting pid lifetime via ps" fi - rtime=$(ps -p 2877633 -o etimes | tail -n 1 | awk '{print $1}') + rtime=$(ps -p $pid -o etimes | tail -n 1 | awk '{print $1}') rtime=$((rtime / 60)) fi else From 8f6fe21dbf10e03705f649bd0e1538698e37cafc Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Wed, 17 Nov 2021 15:15:23 +0100 Subject: [PATCH 314/984] Dont match wildcardly *domains and databases* while restoring --- bin/v-restore-user | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bin/v-restore-user b/bin/v-restore-user index e9861d46..af451d88 100755 --- a/bin/v-restore-user +++ b/bin/v-restore-user @@ -476,7 +476,7 @@ if [ "$dns" != 'no' ] && [ ! -z "$DNS_SYSTEM" ]; then if [ -z "$dns" ] || [ "$dns" = '*' ]; then domains="$backup_domains" else - echo "$dns" |tr ',' '\n' > $tmpdir/selected.txt + echo "$dns" | tr ',' '\n' | sed -e "s/^/^/" > $tmpdir/selected.txt domains=$(echo "$backup_domains" |egrep -f $tmpdir/selected.txt) fi @@ -556,7 +556,7 @@ if [ "$mail" != 'no' ] && [ ! -z "$MAIL_SYSTEM" ]; then if [ -z "$mail" ] || [ "$mail" = '*' ]; then domains="$backup_domains" else - echo "$mail" |tr ',' '\n' > $tmpdir/selected.txt + echo "$mail" | tr ',' '\n' | sed -e "s/^/^/" > $tmpdir/selected.txt domains=$(echo "$backup_domains" |egrep -f $tmpdir/selected.txt) fi @@ -653,7 +653,7 @@ if [ "$db" != 'no' ] && [ ! -z "$DB_SYSTEM" ]; then if [ -z "$db" ] || [ "$db" = '*' ]; then databases="$backup_databases" else - echo "$db" |tr ',' '\n' > $tmpdir/selected.txt + echo "$db" |tr ',' '\n' | sed -e "s/$/$/" > $tmpdir/selected.txt databases=$(echo "$backup_databases" |egrep -f $tmpdir/selected.txt) fi From d36f1a355b3bcb1d37f6a9015b9c81c245f320e6 Mon Sep 17 00:00:00 2001 From: Anton Reutov Date: Fri, 19 Nov 2021 21:28:19 +0300 Subject: [PATCH 315/984] Small improvmemts for login form --- web/css/styles.min.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/css/styles.min.css b/web/css/styles.min.css index 302f9c01..edc706d5 100644 --- a/web/css/styles.min.css +++ b/web/css/styles.min.css @@ -2917,7 +2917,7 @@ a.button.cancel { padding: 0; text-align: left; vertical-align: top; - width: 500px; + width: 550px; } .login a.error { @@ -2940,7 +2940,7 @@ a.button.cancel { padding: 0 26px 0 0; text-align: right; vertical-align: top; - width: 474px; + width: 520px; } .l-unit.selected { From 47f2ca1d378668ac4882e360ccacbbb172fe8005 Mon Sep 17 00:00:00 2001 From: Anton Reutov Date: Fri, 19 Nov 2021 21:29:42 +0300 Subject: [PATCH 316/984] Small improvmemts for login form --- web/templates/login.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/templates/login.html b/web/templates/login.html index 47e004de..1fd923fb 100644 --- a/web/templates/login.html +++ b/web/templates/login.html @@ -7,7 +7,7 @@
-
Vesta Control Panel +
From a30d8b8233b78106b9ec7fa79943383550032e99 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 21 Nov 2021 13:41:48 +0100 Subject: [PATCH 317/984] Update v-normalize-restored-user --- bin/v-normalize-restored-user | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-normalize-restored-user b/bin/v-normalize-restored-user index 86e1f0b8..5da14543 100644 --- a/bin/v-normalize-restored-user +++ b/bin/v-normalize-restored-user @@ -45,7 +45,7 @@ NEWNS2=${arrNS[1]} for domain in $(/usr/local/vesta/bin/v-list-web-domains $user plain |cut -f 1); do if [ -f "/usr/local/vesta/data/users/$user/dns/$domain.conf" ]; then - NEWIPV4=$(v-list-dns-domain "$user" "$domain" | grep 'IP:' | awk '{print $2}') + NEWIPV4=$(/usr/local/vesta/bin/v-list-dns-domain "$user" "$domain" | grep 'IP:' | awk '{print $2}') res=$(grep "'www'" /usr/local/vesta/data/users/$user/dns/$domain.conf) eval $res OLDIPV4=$VALUE From dba6c79f71983d45610860ed896ae215c19602be Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 21 Nov 2021 13:43:01 +0100 Subject: [PATCH 318/984] Update v-normalize-restored-user --- bin/v-normalize-restored-user | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-normalize-restored-user b/bin/v-normalize-restored-user index 5da14543..91ef29c9 100644 --- a/bin/v-normalize-restored-user +++ b/bin/v-normalize-restored-user @@ -79,7 +79,7 @@ sed -i "s#$OLDIPV4#$NEWIPV4#g" /usr/local/vesta/data/users/$user/dns.conf sed -i "s#$OLDNS1#$NEWNS1#g" /usr/local/vesta/data/users/$user/dns.conf sed -i "s#$OLDNS1#$NEWNS1#g" /usr/local/vesta/data/users/$user/user.conf sed -i "s#$OLDNS2#$NEWNS2#g" /usr/local/vesta/data/users/$user/user.conf -service bind9 reload +systemctl reload bind9 echo "Done!" From fb0e127adfe42f5f2f6a8204b3890a0abfd21604 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 23 Nov 2021 13:33:34 +0100 Subject: [PATCH 319/984] Added memcached to v-list-sys-services --- bin/v-list-sys-services | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/bin/v-list-sys-services b/bin/v-list-sys-services index 2b7e7890..b7a9f351 100755 --- a/bin/v-list-sys-services +++ b/bin/v-list-sys-services @@ -389,6 +389,13 @@ if [ -d "/etc/redis" ]; then data="$data CPU='$cpu' MEM='$mem' RTIME='$rtime'" fi +# Checking Memcached +if [ -f "/etc/memcached.conf" ]; then + get_srv_state 'memcached' + data="$data\nNAME='memcached' SYSTEM='Memcached' STATE='$state'" + data="$data CPU='$cpu' MEM='$mem' RTIME='$rtime'" +fi + # Listing data case $format in From 706fe4a5e7fc83ee5d1b6758b50b334ff6e31fcc Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 23 Nov 2021 13:37:32 +0100 Subject: [PATCH 320/984] Update Changelog.md --- Changelog.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Changelog.md b/Changelog.md index 3cf4b126..9e9a1390 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,8 @@ +Version 0.9.8-26-52 [23-Nov-2021] +================================================== +* Fix for not to match wildcard "*domains" and "databases*" while restoring +* Added memcached to v-list-sys-services + Version 0.9.8-26-51 [14-Nov-2021] ================================================== * Many fixes for "List services" page (v-list-sys-services function) From cf4f5af280f820b9fc36009374f7a530ce57445a Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 23 Nov 2021 13:38:12 +0100 Subject: [PATCH 321/984] Update latest.txt --- src/deb/latest.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/latest.txt b/src/deb/latest.txt index af812423..e61c21d3 100644 --- a/src/deb/latest.txt +++ b/src/deb/latest.txt @@ -1 +1 @@ -vesta-0.9.8-26-51 +vesta-0.9.8-26-52 From 591bd21615b67b7ebe049afe51555421556c85aa Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 12 Dec 2021 16:24:23 +0100 Subject: [PATCH 322/984] default pool.d www.conf files --- .../tools/default-pool.d/5.6/www.conf | 417 ++++++++++++++++ .../tools/default-pool.d/7.0/www.conf | 420 ++++++++++++++++ .../tools/default-pool.d/7.1/www.conf | 420 ++++++++++++++++ .../tools/default-pool.d/7.3/www.conf | 439 +++++++++++++++++ .../tools/default-pool.d/7.4/www.conf | 439 +++++++++++++++++ .../tools/default-pool.d/8.0/www.conf | 455 +++++++++++++++++ .../tools/default-pool.d/8.1/www.conf | 463 ++++++++++++++++++ 7 files changed, 3053 insertions(+) create mode 100644 src/deb/for-download/tools/default-pool.d/5.6/www.conf create mode 100644 src/deb/for-download/tools/default-pool.d/7.0/www.conf create mode 100644 src/deb/for-download/tools/default-pool.d/7.1/www.conf create mode 100644 src/deb/for-download/tools/default-pool.d/7.3/www.conf create mode 100644 src/deb/for-download/tools/default-pool.d/7.4/www.conf create mode 100644 src/deb/for-download/tools/default-pool.d/8.0/www.conf create mode 100644 src/deb/for-download/tools/default-pool.d/8.1/www.conf diff --git a/src/deb/for-download/tools/default-pool.d/5.6/www.conf b/src/deb/for-download/tools/default-pool.d/5.6/www.conf new file mode 100644 index 00000000..6bc161d0 --- /dev/null +++ b/src/deb/for-download/tools/default-pool.d/5.6/www.conf @@ -0,0 +1,417 @@ +; Start a new pool named 'www'. +; the variable $pool can we used in any directive and will be replaced by the +; pool name ('www' here) +[www] + +; Per pool prefix +; It only applies on the following directives: +; - 'access.log' +; - 'slowlog' +; - 'listen' (unixsocket) +; - 'chroot' +; - 'chdir' +; - 'php_values' +; - 'php_admin_values' +; When not set, the global prefix (or /usr) applies instead. +; Note: This directive can also be relative to the global prefix. +; Default Value: none +;prefix = /path/to/pools/$pool + +; Unix user/group of processes +; Note: The user is mandatory. If the group is not set, the default user's group +; will be used. +user = www-data +group = www-data + +; The address on which to accept FastCGI requests. +; Valid syntaxes are: +; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on +; a specific port; +; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on +; a specific port; +; 'port' - to listen on a TCP socket to all IPv4 addresses on a +; specific port; +; '[::]:port' - to listen on a TCP socket to all addresses +; (IPv6 and IPv4-mapped) on a specific port; +; '/path/to/unix/socket' - to listen on a unix socket. +; Note: This value is mandatory. +listen = /run/php/php5.6-fpm.sock + +; Set listen(2) backlog. +; Default Value: 65535 (-1 on FreeBSD and OpenBSD) +;listen.backlog = 65535 + +; Set permissions for unix socket, if one is used. In Linux, read/write +; permissions must be set in order to allow connections from a web server. Many +; BSD-derived systems allow connections regardless of permissions. +; Default Values: user and group are set as the running user +; mode is set to 0660 +listen.owner = www-data +listen.group = www-data +;listen.mode = 0660 +; When POSIX Access Control Lists are supported you can set them using +; these options, value is a comma separated list of user/group names. +; When set, listen.owner and listen.group are ignored +;listen.acl_users = +;listen.acl_groups = + +; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. +; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original +; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address +; must be separated by a comma. If this value is left blank, connections will be +; accepted from any ip address. +; Default Value: any +;listen.allowed_clients = 127.0.0.1 + +; Specify the nice(2) priority to apply to the pool processes (only if set) +; The value can vary from -19 (highest priority) to 20 (lower priority) +; Note: - It will only work if the FPM master process is launched as root +; - The pool processes will inherit the master process priority +; unless it specified otherwise +; Default Value: no set +; process.priority = -19 + +; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user +; or group is differrent than the master process user. It allows to create process +; core dump and ptrace the process for the pool user. +; Default Value: no +; process.dumpable = yes + +; Choose how the process manager will control the number of child processes. +; Possible Values: +; static - a fixed number (pm.max_children) of child processes; +; dynamic - the number of child processes are set dynamically based on the +; following directives. With this process management, there will be +; always at least 1 children. +; pm.max_children - the maximum number of children that can +; be alive at the same time. +; pm.start_servers - the number of children created on startup. +; pm.min_spare_servers - the minimum number of children in 'idle' +; state (waiting to process). If the number +; of 'idle' processes is less than this +; number then some children will be created. +; pm.max_spare_servers - the maximum number of children in 'idle' +; state (waiting to process). If the number +; of 'idle' processes is greater than this +; number then some children will be killed. +; ondemand - no children are created at startup. Children will be forked when +; new requests will connect. The following parameter are used: +; pm.max_children - the maximum number of children that +; can be alive at the same time. +; pm.process_idle_timeout - The number of seconds after which +; an idle process will be killed. +; Note: This value is mandatory. +pm = dynamic + +; The number of child processes to be created when pm is set to 'static' and the +; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. +; This value sets the limit on the number of simultaneous requests that will be +; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. +; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP +; CGI. The below defaults are based on a server without much resources. Don't +; forget to tweak pm.* to fit your needs. +; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' +; Note: This value is mandatory. +pm.max_children = 5 + +; The number of child processes created on startup. +; Note: Used only when pm is set to 'dynamic' +; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 +pm.start_servers = 2 + +; The desired minimum number of idle server processes. +; Note: Used only when pm is set to 'dynamic' +; Note: Mandatory when pm is set to 'dynamic' +pm.min_spare_servers = 1 + +; The desired maximum number of idle server processes. +; Note: Used only when pm is set to 'dynamic' +; Note: Mandatory when pm is set to 'dynamic' +pm.max_spare_servers = 3 + +; The number of seconds after which an idle process will be killed. +; Note: Used only when pm is set to 'ondemand' +; Default Value: 10s +;pm.process_idle_timeout = 10s; + +; The number of requests each child process should execute before respawning. +; This can be useful to work around memory leaks in 3rd party libraries. For +; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. +; Default Value: 0 +;pm.max_requests = 500 + +; The URI to view the FPM status page. If this value is not set, no URI will be +; recognized as a status page. It shows the following informations: +; pool - the name of the pool; +; process manager - static, dynamic or ondemand; +; start time - the date and time FPM has started; +; start since - number of seconds since FPM has started; +; accepted conn - the number of request accepted by the pool; +; listen queue - the number of request in the queue of pending +; connections (see backlog in listen(2)); +; max listen queue - the maximum number of requests in the queue +; of pending connections since FPM has started; +; listen queue len - the size of the socket queue of pending connections; +; idle processes - the number of idle processes; +; active processes - the number of active processes; +; total processes - the number of idle + active processes; +; max active processes - the maximum number of active processes since FPM +; has started; +; max children reached - number of times, the process limit has been reached, +; when pm tries to start more children (works only for +; pm 'dynamic' and 'ondemand'); +; Value are updated in real time. +; Example output: +; pool: www +; process manager: static +; start time: 01/Jul/2011:17:53:49 +0200 +; start since: 62636 +; accepted conn: 190460 +; listen queue: 0 +; max listen queue: 1 +; listen queue len: 42 +; idle processes: 4 +; active processes: 11 +; total processes: 15 +; max active processes: 12 +; max children reached: 0 +; +; By default the status page output is formatted as text/plain. Passing either +; 'html', 'xml' or 'json' in the query string will return the corresponding +; output syntax. Example: +; http://www.foo.bar/status +; http://www.foo.bar/status?json +; http://www.foo.bar/status?html +; http://www.foo.bar/status?xml +; +; By default the status page only outputs short status. Passing 'full' in the +; query string will also return status for each pool process. +; Example: +; http://www.foo.bar/status?full +; http://www.foo.bar/status?json&full +; http://www.foo.bar/status?html&full +; http://www.foo.bar/status?xml&full +; The Full status returns for each process: +; pid - the PID of the process; +; state - the state of the process (Idle, Running, ...); +; start time - the date and time the process has started; +; start since - the number of seconds since the process has started; +; requests - the number of requests the process has served; +; request duration - the duration in µs of the requests; +; request method - the request method (GET, POST, ...); +; request URI - the request URI with the query string; +; content length - the content length of the request (only with POST); +; user - the user (PHP_AUTH_USER) (or '-' if not set); +; script - the main script called (or '-' if not set); +; last request cpu - the %cpu the last request consumed +; it's always 0 if the process is not in Idle state +; because CPU calculation is done when the request +; processing has terminated; +; last request memory - the max amount of memory the last request consumed +; it's always 0 if the process is not in Idle state +; because memory calculation is done when the request +; processing has terminated; +; If the process is in Idle state, then informations are related to the +; last request the process has served. Otherwise informations are related to +; the current request being served. +; Example output: +; ************************ +; pid: 31330 +; state: Running +; start time: 01/Jul/2011:17:53:49 +0200 +; start since: 63087 +; requests: 12808 +; request duration: 1250261 +; request method: GET +; request URI: /test_mem.php?N=10000 +; content length: 0 +; user: - +; script: /home/fat/web/docs/php/test_mem.php +; last request cpu: 0.00 +; last request memory: 0 +; +; Note: There is a real-time FPM status monitoring sample web page available +; It's available in: /usr/share/php/5.6/fpm/status.html +; +; Note: The value must start with a leading slash (/). The value can be +; anything, but it may not be a good idea to use the .php extension or it +; may conflict with a real PHP file. +; Default Value: not set +;pm.status_path = /status + +; The ping URI to call the monitoring page of FPM. If this value is not set, no +; URI will be recognized as a ping page. This could be used to test from outside +; that FPM is alive and responding, or to +; - create a graph of FPM availability (rrd or such); +; - remove a server from a group if it is not responding (load balancing); +; - trigger alerts for the operating team (24/7). +; Note: The value must start with a leading slash (/). The value can be +; anything, but it may not be a good idea to use the .php extension or it +; may conflict with a real PHP file. +; Default Value: not set +;ping.path = /ping + +; This directive may be used to customize the response of a ping request. The +; response is formatted as text/plain with a 200 response code. +; Default Value: pong +;ping.response = pong + +; The access log file +; Default: not set +;access.log = log/$pool.access.log + +; The access log format. +; The following syntax is allowed +; %%: the '%' character +; %C: %CPU used by the request +; it can accept the following format: +; - %{user}C for user CPU only +; - %{system}C for system CPU only +; - %{total}C for user + system CPU (default) +; %d: time taken to serve the request +; it can accept the following format: +; - %{seconds}d (default) +; - %{miliseconds}d +; - %{mili}d +; - %{microseconds}d +; - %{micro}d +; %e: an environment variable (same as $_ENV or $_SERVER) +; it must be associated with embraces to specify the name of the env +; variable. Some exemples: +; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e +; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e +; %f: script filename +; %l: content-length of the request (for POST request only) +; %m: request method +; %M: peak of memory allocated by PHP +; it can accept the following format: +; - %{bytes}M (default) +; - %{kilobytes}M +; - %{kilo}M +; - %{megabytes}M +; - %{mega}M +; %n: pool name +; %o: output header +; it must be associated with embraces to specify the name of the header: +; - %{Content-Type}o +; - %{X-Powered-By}o +; - %{Transfert-Encoding}o +; - .... +; %p: PID of the child that serviced the request +; %P: PID of the parent of the child that serviced the request +; %q: the query string +; %Q: the '?' character if query string exists +; %r: the request URI (without the query string, see %q and %Q) +; %R: remote IP address +; %s: status (response code) +; %t: server time the request was received +; it can accept a strftime(3) format: +; %d/%b/%Y:%H:%M:%S %z (default) +; %T: time the log has been written (the request has finished) +; it can accept a strftime(3) format: +; %d/%b/%Y:%H:%M:%S %z (default) +; %u: remote user +; +; Default: "%R - %u %t \"%m %r\" %s" +;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" + +; The log file for slow requests +; Default Value: not set +; Note: slowlog is mandatory if request_slowlog_timeout is set +;slowlog = log/$pool.log.slow + +; The timeout for serving a single request after which a PHP backtrace will be +; dumped to the 'slowlog' file. A value of '0s' means 'off'. +; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) +; Default Value: 0 +;request_slowlog_timeout = 0 + +; The timeout for serving a single request after which the worker process will +; be killed. This option should be used when the 'max_execution_time' ini option +; does not stop script execution for some reason. A value of '0' means 'off'. +; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) +; Default Value: 0 +;request_terminate_timeout = 0 + +; Set open file descriptor rlimit. +; Default Value: system defined value +;rlimit_files = 1024 + +; Set max core size rlimit. +; Possible Values: 'unlimited' or an integer greater or equal to 0 +; Default Value: system defined value +;rlimit_core = 0 + +; Chroot to this directory at the start. This value must be defined as an +; absolute path. When this value is not set, chroot is not used. +; Note: you can prefix with '$prefix' to chroot to the pool prefix or one +; of its subdirectories. If the pool prefix is not set, the global prefix +; will be used instead. +; Note: chrooting is a great security feature and should be used whenever +; possible. However, all PHP paths will be relative to the chroot +; (error_log, sessions.save_path, ...). +; Default Value: not set +;chroot = + +; Chdir to this directory at the start. +; Note: relative path can be used. +; Default Value: current directory or / when chroot +;chdir = /var/www + +; Redirect worker stdout and stderr into main error log. If not set, stdout and +; stderr will be redirected to /dev/null according to FastCGI specs. +; Note: on highloaded environement, this can cause some delay in the page +; process time (several ms). +; Default Value: no +;catch_workers_output = yes + +; Clear environment in FPM workers +; Prevents arbitrary environment variables from reaching FPM worker processes +; by clearing the environment in workers before env vars specified in this +; pool configuration are added. +; Setting to "no" will make all environment variables available to PHP code +; via getenv(), $_ENV and $_SERVER. +; Default Value: yes +;clear_env = no + +; Limits the extensions of the main script FPM will allow to parse. This can +; prevent configuration mistakes on the web server side. You should only limit +; FPM to .php extensions to prevent malicious users to use other extensions to +; exectute php code. +; Note: set an empty value to allow all extensions. +; Default Value: .php +;security.limit_extensions = .php .php3 .php4 .php5 + +; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from +; the current environment. +; Default Value: clean env +;env[HOSTNAME] = $HOSTNAME +;env[PATH] = /usr/local/bin:/usr/bin:/bin +;env[TMP] = /tmp +;env[TMPDIR] = /tmp +;env[TEMP] = /tmp + +; Additional php.ini defines, specific to this pool of workers. These settings +; overwrite the values previously defined in the php.ini. The directives are the +; same as the PHP SAPI: +; php_value/php_flag - you can set classic ini defines which can +; be overwritten from PHP call 'ini_set'. +; php_admin_value/php_admin_flag - these directives won't be overwritten by +; PHP call 'ini_set' +; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. + +; Defining 'extension' will load the corresponding shared extension from +; extension_dir. Defining 'disable_functions' or 'disable_classes' will not +; overwrite previously defined php.ini values, but will append the new value +; instead. + +; Note: path INI options can be relative and will be expanded with the prefix +; (pool, global or /usr) + +; Default Value: nothing is defined by default except the values in php.ini and +; specified at startup with the -d argument +;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com +;php_flag[display_errors] = off +;php_admin_value[error_log] = /var/log/fpm-php.www.log +;php_admin_flag[log_errors] = on +;php_admin_value[memory_limit] = 32M diff --git a/src/deb/for-download/tools/default-pool.d/7.0/www.conf b/src/deb/for-download/tools/default-pool.d/7.0/www.conf new file mode 100644 index 00000000..5eafe960 --- /dev/null +++ b/src/deb/for-download/tools/default-pool.d/7.0/www.conf @@ -0,0 +1,420 @@ +; Start a new pool named 'www'. +; the variable $pool can be used in any directive and will be replaced by the +; pool name ('www' here) +[www] + +; Per pool prefix +; It only applies on the following directives: +; - 'access.log' +; - 'slowlog' +; - 'listen' (unixsocket) +; - 'chroot' +; - 'chdir' +; - 'php_values' +; - 'php_admin_values' +; When not set, the global prefix (or /usr) applies instead. +; Note: This directive can also be relative to the global prefix. +; Default Value: none +;prefix = /path/to/pools/$pool + +; Unix user/group of processes +; Note: The user is mandatory. If the group is not set, the default user's group +; will be used. +user = www-data +group = www-data + +; The address on which to accept FastCGI requests. +; Valid syntaxes are: +; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on +; a specific port; +; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on +; a specific port; +; 'port' - to listen on a TCP socket to all addresses +; (IPv6 and IPv4-mapped) on a specific port; +; '/path/to/unix/socket' - to listen on a unix socket. +; Note: This value is mandatory. +listen = /run/php/php7.0-fpm.sock + +; Set listen(2) backlog. +; Default Value: 511 (-1 on FreeBSD and OpenBSD) +;listen.backlog = 511 + +; Set permissions for unix socket, if one is used. In Linux, read/write +; permissions must be set in order to allow connections from a web server. Many +; BSD-derived systems allow connections regardless of permissions. The owner +; and group can be specified either by name or by their numeric IDs. +; Default Values: user and group are set as the running user +; mode is set to 0660 +listen.owner = www-data +listen.group = www-data +;listen.mode = 0660 +; When POSIX Access Control Lists are supported you can set them using +; these options, value is a comma separated list of user/group names. +; When set, listen.owner and listen.group are ignored +;listen.acl_users = +;listen.acl_groups = + +; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. +; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original +; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address +; must be separated by a comma. If this value is left blank, connections will be +; accepted from any ip address. +; Default Value: any +;listen.allowed_clients = 127.0.0.1 + +; Specify the nice(2) priority to apply to the pool processes (only if set) +; The value can vary from -19 (highest priority) to 20 (lower priority) +; Note: - It will only work if the FPM master process is launched as root +; - The pool processes will inherit the master process priority +; unless it specified otherwise +; Default Value: no set +; process.priority = -19 + +; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user +; or group is differrent than the master process user. It allows to create process +; core dump and ptrace the process for the pool user. +; Default Value: no +; process.dumpable = yes + +; Choose how the process manager will control the number of child processes. +; Possible Values: +; static - a fixed number (pm.max_children) of child processes; +; dynamic - the number of child processes are set dynamically based on the +; following directives. With this process management, there will be +; always at least 1 children. +; pm.max_children - the maximum number of children that can +; be alive at the same time. +; pm.start_servers - the number of children created on startup. +; pm.min_spare_servers - the minimum number of children in 'idle' +; state (waiting to process). If the number +; of 'idle' processes is less than this +; number then some children will be created. +; pm.max_spare_servers - the maximum number of children in 'idle' +; state (waiting to process). If the number +; of 'idle' processes is greater than this +; number then some children will be killed. +; ondemand - no children are created at startup. Children will be forked when +; new requests will connect. The following parameter are used: +; pm.max_children - the maximum number of children that +; can be alive at the same time. +; pm.process_idle_timeout - The number of seconds after which +; an idle process will be killed. +; Note: This value is mandatory. +pm = dynamic + +; The number of child processes to be created when pm is set to 'static' and the +; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. +; This value sets the limit on the number of simultaneous requests that will be +; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. +; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP +; CGI. The below defaults are based on a server without much resources. Don't +; forget to tweak pm.* to fit your needs. +; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' +; Note: This value is mandatory. +pm.max_children = 5 + +; The number of child processes created on startup. +; Note: Used only when pm is set to 'dynamic' +; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 +pm.start_servers = 2 + +; The desired minimum number of idle server processes. +; Note: Used only when pm is set to 'dynamic' +; Note: Mandatory when pm is set to 'dynamic' +pm.min_spare_servers = 1 + +; The desired maximum number of idle server processes. +; Note: Used only when pm is set to 'dynamic' +; Note: Mandatory when pm is set to 'dynamic' +pm.max_spare_servers = 3 + +; The number of seconds after which an idle process will be killed. +; Note: Used only when pm is set to 'ondemand' +; Default Value: 10s +;pm.process_idle_timeout = 10s; + +; The number of requests each child process should execute before respawning. +; This can be useful to work around memory leaks in 3rd party libraries. For +; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. +; Default Value: 0 +;pm.max_requests = 500 + +; The URI to view the FPM status page. If this value is not set, no URI will be +; recognized as a status page. It shows the following informations: +; pool - the name of the pool; +; process manager - static, dynamic or ondemand; +; start time - the date and time FPM has started; +; start since - number of seconds since FPM has started; +; accepted conn - the number of request accepted by the pool; +; listen queue - the number of request in the queue of pending +; connections (see backlog in listen(2)); +; max listen queue - the maximum number of requests in the queue +; of pending connections since FPM has started; +; listen queue len - the size of the socket queue of pending connections; +; idle processes - the number of idle processes; +; active processes - the number of active processes; +; total processes - the number of idle + active processes; +; max active processes - the maximum number of active processes since FPM +; has started; +; max children reached - number of times, the process limit has been reached, +; when pm tries to start more children (works only for +; pm 'dynamic' and 'ondemand'); +; Value are updated in real time. +; Example output: +; pool: www +; process manager: static +; start time: 01/Jul/2011:17:53:49 +0200 +; start since: 62636 +; accepted conn: 190460 +; listen queue: 0 +; max listen queue: 1 +; listen queue len: 42 +; idle processes: 4 +; active processes: 11 +; total processes: 15 +; max active processes: 12 +; max children reached: 0 +; +; By default the status page output is formatted as text/plain. Passing either +; 'html', 'xml' or 'json' in the query string will return the corresponding +; output syntax. Example: +; http://www.foo.bar/status +; http://www.foo.bar/status?json +; http://www.foo.bar/status?html +; http://www.foo.bar/status?xml +; +; By default the status page only outputs short status. Passing 'full' in the +; query string will also return status for each pool process. +; Example: +; http://www.foo.bar/status?full +; http://www.foo.bar/status?json&full +; http://www.foo.bar/status?html&full +; http://www.foo.bar/status?xml&full +; The Full status returns for each process: +; pid - the PID of the process; +; state - the state of the process (Idle, Running, ...); +; start time - the date and time the process has started; +; start since - the number of seconds since the process has started; +; requests - the number of requests the process has served; +; request duration - the duration in µs of the requests; +; request method - the request method (GET, POST, ...); +; request URI - the request URI with the query string; +; content length - the content length of the request (only with POST); +; user - the user (PHP_AUTH_USER) (or '-' if not set); +; script - the main script called (or '-' if not set); +; last request cpu - the %cpu the last request consumed +; it's always 0 if the process is not in Idle state +; because CPU calculation is done when the request +; processing has terminated; +; last request memory - the max amount of memory the last request consumed +; it's always 0 if the process is not in Idle state +; because memory calculation is done when the request +; processing has terminated; +; If the process is in Idle state, then informations are related to the +; last request the process has served. Otherwise informations are related to +; the current request being served. +; Example output: +; ************************ +; pid: 31330 +; state: Running +; start time: 01/Jul/2011:17:53:49 +0200 +; start since: 63087 +; requests: 12808 +; request duration: 1250261 +; request method: GET +; request URI: /test_mem.php?N=10000 +; content length: 0 +; user: - +; script: /home/fat/web/docs/php/test_mem.php +; last request cpu: 0.00 +; last request memory: 0 +; +; Note: There is a real-time FPM status monitoring sample web page available +; It's available in: /usr/share/php/7.0/fpm/status.html +; +; Note: The value must start with a leading slash (/). The value can be +; anything, but it may not be a good idea to use the .php extension or it +; may conflict with a real PHP file. +; Default Value: not set +;pm.status_path = /status + +; The ping URI to call the monitoring page of FPM. If this value is not set, no +; URI will be recognized as a ping page. This could be used to test from outside +; that FPM is alive and responding, or to +; - create a graph of FPM availability (rrd or such); +; - remove a server from a group if it is not responding (load balancing); +; - trigger alerts for the operating team (24/7). +; Note: The value must start with a leading slash (/). The value can be +; anything, but it may not be a good idea to use the .php extension or it +; may conflict with a real PHP file. +; Default Value: not set +;ping.path = /ping + +; This directive may be used to customize the response of a ping request. The +; response is formatted as text/plain with a 200 response code. +; Default Value: pong +;ping.response = pong + +; The access log file +; Default: not set +;access.log = log/$pool.access.log + +; The access log format. +; The following syntax is allowed +; %%: the '%' character +; %C: %CPU used by the request +; it can accept the following format: +; - %{user}C for user CPU only +; - %{system}C for system CPU only +; - %{total}C for user + system CPU (default) +; %d: time taken to serve the request +; it can accept the following format: +; - %{seconds}d (default) +; - %{miliseconds}d +; - %{mili}d +; - %{microseconds}d +; - %{micro}d +; %e: an environment variable (same as $_ENV or $_SERVER) +; it must be associated with embraces to specify the name of the env +; variable. Some exemples: +; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e +; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e +; %f: script filename +; %l: content-length of the request (for POST request only) +; %m: request method +; %M: peak of memory allocated by PHP +; it can accept the following format: +; - %{bytes}M (default) +; - %{kilobytes}M +; - %{kilo}M +; - %{megabytes}M +; - %{mega}M +; %n: pool name +; %o: output header +; it must be associated with embraces to specify the name of the header: +; - %{Content-Type}o +; - %{X-Powered-By}o +; - %{Transfert-Encoding}o +; - .... +; %p: PID of the child that serviced the request +; %P: PID of the parent of the child that serviced the request +; %q: the query string +; %Q: the '?' character if query string exists +; %r: the request URI (without the query string, see %q and %Q) +; %R: remote IP address +; %s: status (response code) +; %t: server time the request was received +; it can accept a strftime(3) format: +; %d/%b/%Y:%H:%M:%S %z (default) +; The strftime(3) format must be encapsuled in a %{}t tag +; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t +; %T: time the log has been written (the request has finished) +; it can accept a strftime(3) format: +; %d/%b/%Y:%H:%M:%S %z (default) +; The strftime(3) format must be encapsuled in a %{}t tag +; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t +; %u: remote user +; +; Default: "%R - %u %t \"%m %r\" %s" +;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" + +; The log file for slow requests +; Default Value: not set +; Note: slowlog is mandatory if request_slowlog_timeout is set +;slowlog = log/$pool.log.slow + +; The timeout for serving a single request after which a PHP backtrace will be +; dumped to the 'slowlog' file. A value of '0s' means 'off'. +; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) +; Default Value: 0 +;request_slowlog_timeout = 0 + +; The timeout for serving a single request after which the worker process will +; be killed. This option should be used when the 'max_execution_time' ini option +; does not stop script execution for some reason. A value of '0' means 'off'. +; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) +; Default Value: 0 +;request_terminate_timeout = 0 + +; Set open file descriptor rlimit. +; Default Value: system defined value +;rlimit_files = 1024 + +; Set max core size rlimit. +; Possible Values: 'unlimited' or an integer greater or equal to 0 +; Default Value: system defined value +;rlimit_core = 0 + +; Chroot to this directory at the start. This value must be defined as an +; absolute path. When this value is not set, chroot is not used. +; Note: you can prefix with '$prefix' to chroot to the pool prefix or one +; of its subdirectories. If the pool prefix is not set, the global prefix +; will be used instead. +; Note: chrooting is a great security feature and should be used whenever +; possible. However, all PHP paths will be relative to the chroot +; (error_log, sessions.save_path, ...). +; Default Value: not set +;chroot = + +; Chdir to this directory at the start. +; Note: relative path can be used. +; Default Value: current directory or / when chroot +;chdir = /var/www + +; Redirect worker stdout and stderr into main error log. If not set, stdout and +; stderr will be redirected to /dev/null according to FastCGI specs. +; Note: on highloaded environement, this can cause some delay in the page +; process time (several ms). +; Default Value: no +;catch_workers_output = yes + +; Clear environment in FPM workers +; Prevents arbitrary environment variables from reaching FPM worker processes +; by clearing the environment in workers before env vars specified in this +; pool configuration are added. +; Setting to "no" will make all environment variables available to PHP code +; via getenv(), $_ENV and $_SERVER. +; Default Value: yes +;clear_env = no + +; Limits the extensions of the main script FPM will allow to parse. This can +; prevent configuration mistakes on the web server side. You should only limit +; FPM to .php extensions to prevent malicious users to use other extensions to +; execute php code. +; Note: set an empty value to allow all extensions. +; Default Value: .php +;security.limit_extensions = .php .php3 .php4 .php5 .php7 + +; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from +; the current environment. +; Default Value: clean env +;env[HOSTNAME] = $HOSTNAME +;env[PATH] = /usr/local/bin:/usr/bin:/bin +;env[TMP] = /tmp +;env[TMPDIR] = /tmp +;env[TEMP] = /tmp + +; Additional php.ini defines, specific to this pool of workers. These settings +; overwrite the values previously defined in the php.ini. The directives are the +; same as the PHP SAPI: +; php_value/php_flag - you can set classic ini defines which can +; be overwritten from PHP call 'ini_set'. +; php_admin_value/php_admin_flag - these directives won't be overwritten by +; PHP call 'ini_set' +; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. + +; Defining 'extension' will load the corresponding shared extension from +; extension_dir. Defining 'disable_functions' or 'disable_classes' will not +; overwrite previously defined php.ini values, but will append the new value +; instead. + +; Note: path INI options can be relative and will be expanded with the prefix +; (pool, global or /usr) + +; Default Value: nothing is defined by default except the values in php.ini and +; specified at startup with the -d argument +;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com +;php_flag[display_errors] = off +;php_admin_value[error_log] = /var/log/fpm-php.www.log +;php_admin_flag[log_errors] = on +;php_admin_value[memory_limit] = 32M diff --git a/src/deb/for-download/tools/default-pool.d/7.1/www.conf b/src/deb/for-download/tools/default-pool.d/7.1/www.conf new file mode 100644 index 00000000..fc09b4c0 --- /dev/null +++ b/src/deb/for-download/tools/default-pool.d/7.1/www.conf @@ -0,0 +1,420 @@ +; Start a new pool named 'www'. +; the variable $pool can be used in any directive and will be replaced by the +; pool name ('www' here) +[www] + +; Per pool prefix +; It only applies on the following directives: +; - 'access.log' +; - 'slowlog' +; - 'listen' (unixsocket) +; - 'chroot' +; - 'chdir' +; - 'php_values' +; - 'php_admin_values' +; When not set, the global prefix (or /usr) applies instead. +; Note: This directive can also be relative to the global prefix. +; Default Value: none +;prefix = /path/to/pools/$pool + +; Unix user/group of processes +; Note: The user is mandatory. If the group is not set, the default user's group +; will be used. +user = www-data +group = www-data + +; The address on which to accept FastCGI requests. +; Valid syntaxes are: +; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on +; a specific port; +; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on +; a specific port; +; 'port' - to listen on a TCP socket to all addresses +; (IPv6 and IPv4-mapped) on a specific port; +; '/path/to/unix/socket' - to listen on a unix socket. +; Note: This value is mandatory. +listen = /run/php/php7.1-fpm.sock + +; Set listen(2) backlog. +; Default Value: 511 (-1 on FreeBSD and OpenBSD) +;listen.backlog = 511 + +; Set permissions for unix socket, if one is used. In Linux, read/write +; permissions must be set in order to allow connections from a web server. Many +; BSD-derived systems allow connections regardless of permissions. The owner +; and group can be specified either by name or by their numeric IDs. +; Default Values: user and group are set as the running user +; mode is set to 0660 +listen.owner = www-data +listen.group = www-data +;listen.mode = 0660 +; When POSIX Access Control Lists are supported you can set them using +; these options, value is a comma separated list of user/group names. +; When set, listen.owner and listen.group are ignored +;listen.acl_users = +;listen.acl_groups = + +; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. +; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original +; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address +; must be separated by a comma. If this value is left blank, connections will be +; accepted from any ip address. +; Default Value: any +;listen.allowed_clients = 127.0.0.1 + +; Specify the nice(2) priority to apply to the pool processes (only if set) +; The value can vary from -19 (highest priority) to 20 (lower priority) +; Note: - It will only work if the FPM master process is launched as root +; - The pool processes will inherit the master process priority +; unless it specified otherwise +; Default Value: no set +; process.priority = -19 + +; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user +; or group is differrent than the master process user. It allows to create process +; core dump and ptrace the process for the pool user. +; Default Value: no +; process.dumpable = yes + +; Choose how the process manager will control the number of child processes. +; Possible Values: +; static - a fixed number (pm.max_children) of child processes; +; dynamic - the number of child processes are set dynamically based on the +; following directives. With this process management, there will be +; always at least 1 children. +; pm.max_children - the maximum number of children that can +; be alive at the same time. +; pm.start_servers - the number of children created on startup. +; pm.min_spare_servers - the minimum number of children in 'idle' +; state (waiting to process). If the number +; of 'idle' processes is less than this +; number then some children will be created. +; pm.max_spare_servers - the maximum number of children in 'idle' +; state (waiting to process). If the number +; of 'idle' processes is greater than this +; number then some children will be killed. +; ondemand - no children are created at startup. Children will be forked when +; new requests will connect. The following parameter are used: +; pm.max_children - the maximum number of children that +; can be alive at the same time. +; pm.process_idle_timeout - The number of seconds after which +; an idle process will be killed. +; Note: This value is mandatory. +pm = dynamic + +; The number of child processes to be created when pm is set to 'static' and the +; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. +; This value sets the limit on the number of simultaneous requests that will be +; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. +; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP +; CGI. The below defaults are based on a server without much resources. Don't +; forget to tweak pm.* to fit your needs. +; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' +; Note: This value is mandatory. +pm.max_children = 5 + +; The number of child processes created on startup. +; Note: Used only when pm is set to 'dynamic' +; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 +pm.start_servers = 2 + +; The desired minimum number of idle server processes. +; Note: Used only when pm is set to 'dynamic' +; Note: Mandatory when pm is set to 'dynamic' +pm.min_spare_servers = 1 + +; The desired maximum number of idle server processes. +; Note: Used only when pm is set to 'dynamic' +; Note: Mandatory when pm is set to 'dynamic' +pm.max_spare_servers = 3 + +; The number of seconds after which an idle process will be killed. +; Note: Used only when pm is set to 'ondemand' +; Default Value: 10s +;pm.process_idle_timeout = 10s; + +; The number of requests each child process should execute before respawning. +; This can be useful to work around memory leaks in 3rd party libraries. For +; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. +; Default Value: 0 +;pm.max_requests = 500 + +; The URI to view the FPM status page. If this value is not set, no URI will be +; recognized as a status page. It shows the following informations: +; pool - the name of the pool; +; process manager - static, dynamic or ondemand; +; start time - the date and time FPM has started; +; start since - number of seconds since FPM has started; +; accepted conn - the number of request accepted by the pool; +; listen queue - the number of request in the queue of pending +; connections (see backlog in listen(2)); +; max listen queue - the maximum number of requests in the queue +; of pending connections since FPM has started; +; listen queue len - the size of the socket queue of pending connections; +; idle processes - the number of idle processes; +; active processes - the number of active processes; +; total processes - the number of idle + active processes; +; max active processes - the maximum number of active processes since FPM +; has started; +; max children reached - number of times, the process limit has been reached, +; when pm tries to start more children (works only for +; pm 'dynamic' and 'ondemand'); +; Value are updated in real time. +; Example output: +; pool: www +; process manager: static +; start time: 01/Jul/2011:17:53:49 +0200 +; start since: 62636 +; accepted conn: 190460 +; listen queue: 0 +; max listen queue: 1 +; listen queue len: 42 +; idle processes: 4 +; active processes: 11 +; total processes: 15 +; max active processes: 12 +; max children reached: 0 +; +; By default the status page output is formatted as text/plain. Passing either +; 'html', 'xml' or 'json' in the query string will return the corresponding +; output syntax. Example: +; http://www.foo.bar/status +; http://www.foo.bar/status?json +; http://www.foo.bar/status?html +; http://www.foo.bar/status?xml +; +; By default the status page only outputs short status. Passing 'full' in the +; query string will also return status for each pool process. +; Example: +; http://www.foo.bar/status?full +; http://www.foo.bar/status?json&full +; http://www.foo.bar/status?html&full +; http://www.foo.bar/status?xml&full +; The Full status returns for each process: +; pid - the PID of the process; +; state - the state of the process (Idle, Running, ...); +; start time - the date and time the process has started; +; start since - the number of seconds since the process has started; +; requests - the number of requests the process has served; +; request duration - the duration in µs of the requests; +; request method - the request method (GET, POST, ...); +; request URI - the request URI with the query string; +; content length - the content length of the request (only with POST); +; user - the user (PHP_AUTH_USER) (or '-' if not set); +; script - the main script called (or '-' if not set); +; last request cpu - the %cpu the last request consumed +; it's always 0 if the process is not in Idle state +; because CPU calculation is done when the request +; processing has terminated; +; last request memory - the max amount of memory the last request consumed +; it's always 0 if the process is not in Idle state +; because memory calculation is done when the request +; processing has terminated; +; If the process is in Idle state, then informations are related to the +; last request the process has served. Otherwise informations are related to +; the current request being served. +; Example output: +; ************************ +; pid: 31330 +; state: Running +; start time: 01/Jul/2011:17:53:49 +0200 +; start since: 63087 +; requests: 12808 +; request duration: 1250261 +; request method: GET +; request URI: /test_mem.php?N=10000 +; content length: 0 +; user: - +; script: /home/fat/web/docs/php/test_mem.php +; last request cpu: 0.00 +; last request memory: 0 +; +; Note: There is a real-time FPM status monitoring sample web page available +; It's available in: /usr/share/php/7.1/fpm/status.html +; +; Note: The value must start with a leading slash (/). The value can be +; anything, but it may not be a good idea to use the .php extension or it +; may conflict with a real PHP file. +; Default Value: not set +;pm.status_path = /status + +; The ping URI to call the monitoring page of FPM. If this value is not set, no +; URI will be recognized as a ping page. This could be used to test from outside +; that FPM is alive and responding, or to +; - create a graph of FPM availability (rrd or such); +; - remove a server from a group if it is not responding (load balancing); +; - trigger alerts for the operating team (24/7). +; Note: The value must start with a leading slash (/). The value can be +; anything, but it may not be a good idea to use the .php extension or it +; may conflict with a real PHP file. +; Default Value: not set +;ping.path = /ping + +; This directive may be used to customize the response of a ping request. The +; response is formatted as text/plain with a 200 response code. +; Default Value: pong +;ping.response = pong + +; The access log file +; Default: not set +;access.log = log/$pool.access.log + +; The access log format. +; The following syntax is allowed +; %%: the '%' character +; %C: %CPU used by the request +; it can accept the following format: +; - %{user}C for user CPU only +; - %{system}C for system CPU only +; - %{total}C for user + system CPU (default) +; %d: time taken to serve the request +; it can accept the following format: +; - %{seconds}d (default) +; - %{miliseconds}d +; - %{mili}d +; - %{microseconds}d +; - %{micro}d +; %e: an environment variable (same as $_ENV or $_SERVER) +; it must be associated with embraces to specify the name of the env +; variable. Some exemples: +; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e +; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e +; %f: script filename +; %l: content-length of the request (for POST request only) +; %m: request method +; %M: peak of memory allocated by PHP +; it can accept the following format: +; - %{bytes}M (default) +; - %{kilobytes}M +; - %{kilo}M +; - %{megabytes}M +; - %{mega}M +; %n: pool name +; %o: output header +; it must be associated with embraces to specify the name of the header: +; - %{Content-Type}o +; - %{X-Powered-By}o +; - %{Transfert-Encoding}o +; - .... +; %p: PID of the child that serviced the request +; %P: PID of the parent of the child that serviced the request +; %q: the query string +; %Q: the '?' character if query string exists +; %r: the request URI (without the query string, see %q and %Q) +; %R: remote IP address +; %s: status (response code) +; %t: server time the request was received +; it can accept a strftime(3) format: +; %d/%b/%Y:%H:%M:%S %z (default) +; The strftime(3) format must be encapsuled in a %{}t tag +; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t +; %T: time the log has been written (the request has finished) +; it can accept a strftime(3) format: +; %d/%b/%Y:%H:%M:%S %z (default) +; The strftime(3) format must be encapsuled in a %{}t tag +; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t +; %u: remote user +; +; Default: "%R - %u %t \"%m %r\" %s" +;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" + +; The log file for slow requests +; Default Value: not set +; Note: slowlog is mandatory if request_slowlog_timeout is set +;slowlog = log/$pool.log.slow + +; The timeout for serving a single request after which a PHP backtrace will be +; dumped to the 'slowlog' file. A value of '0s' means 'off'. +; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) +; Default Value: 0 +;request_slowlog_timeout = 0 + +; The timeout for serving a single request after which the worker process will +; be killed. This option should be used when the 'max_execution_time' ini option +; does not stop script execution for some reason. A value of '0' means 'off'. +; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) +; Default Value: 0 +;request_terminate_timeout = 0 + +; Set open file descriptor rlimit. +; Default Value: system defined value +;rlimit_files = 1024 + +; Set max core size rlimit. +; Possible Values: 'unlimited' or an integer greater or equal to 0 +; Default Value: system defined value +;rlimit_core = 0 + +; Chroot to this directory at the start. This value must be defined as an +; absolute path. When this value is not set, chroot is not used. +; Note: you can prefix with '$prefix' to chroot to the pool prefix or one +; of its subdirectories. If the pool prefix is not set, the global prefix +; will be used instead. +; Note: chrooting is a great security feature and should be used whenever +; possible. However, all PHP paths will be relative to the chroot +; (error_log, sessions.save_path, ...). +; Default Value: not set +;chroot = + +; Chdir to this directory at the start. +; Note: relative path can be used. +; Default Value: current directory or / when chroot +;chdir = /var/www + +; Redirect worker stdout and stderr into main error log. If not set, stdout and +; stderr will be redirected to /dev/null according to FastCGI specs. +; Note: on highloaded environement, this can cause some delay in the page +; process time (several ms). +; Default Value: no +;catch_workers_output = yes + +; Clear environment in FPM workers +; Prevents arbitrary environment variables from reaching FPM worker processes +; by clearing the environment in workers before env vars specified in this +; pool configuration are added. +; Setting to "no" will make all environment variables available to PHP code +; via getenv(), $_ENV and $_SERVER. +; Default Value: yes +;clear_env = no + +; Limits the extensions of the main script FPM will allow to parse. This can +; prevent configuration mistakes on the web server side. You should only limit +; FPM to .php extensions to prevent malicious users to use other extensions to +; execute php code. +; Note: set an empty value to allow all extensions. +; Default Value: .php +;security.limit_extensions = .php .php3 .php4 .php5 .php7 + +; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from +; the current environment. +; Default Value: clean env +;env[HOSTNAME] = $HOSTNAME +;env[PATH] = /usr/local/bin:/usr/bin:/bin +;env[TMP] = /tmp +;env[TMPDIR] = /tmp +;env[TEMP] = /tmp + +; Additional php.ini defines, specific to this pool of workers. These settings +; overwrite the values previously defined in the php.ini. The directives are the +; same as the PHP SAPI: +; php_value/php_flag - you can set classic ini defines which can +; be overwritten from PHP call 'ini_set'. +; php_admin_value/php_admin_flag - these directives won't be overwritten by +; PHP call 'ini_set' +; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. + +; Defining 'extension' will load the corresponding shared extension from +; extension_dir. Defining 'disable_functions' or 'disable_classes' will not +; overwrite previously defined php.ini values, but will append the new value +; instead. + +; Note: path INI options can be relative and will be expanded with the prefix +; (pool, global or /usr) + +; Default Value: nothing is defined by default except the values in php.ini and +; specified at startup with the -d argument +;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com +;php_flag[display_errors] = off +;php_admin_value[error_log] = /var/log/fpm-php.www.log +;php_admin_flag[log_errors] = on +;php_admin_value[memory_limit] = 32M diff --git a/src/deb/for-download/tools/default-pool.d/7.3/www.conf b/src/deb/for-download/tools/default-pool.d/7.3/www.conf new file mode 100644 index 00000000..03ce7b03 --- /dev/null +++ b/src/deb/for-download/tools/default-pool.d/7.3/www.conf @@ -0,0 +1,439 @@ +; Start a new pool named 'www'. +; the variable $pool can be used in any directive and will be replaced by the +; pool name ('www' here) +[www] + +; Per pool prefix +; It only applies on the following directives: +; - 'access.log' +; - 'slowlog' +; - 'listen' (unixsocket) +; - 'chroot' +; - 'chdir' +; - 'php_values' +; - 'php_admin_values' +; When not set, the global prefix (or /usr) applies instead. +; Note: This directive can also be relative to the global prefix. +; Default Value: none +;prefix = /path/to/pools/$pool + +; Unix user/group of processes +; Note: The user is mandatory. If the group is not set, the default user's group +; will be used. +user = www-data +group = www-data + +; The address on which to accept FastCGI requests. +; Valid syntaxes are: +; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on +; a specific port; +; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on +; a specific port; +; 'port' - to listen on a TCP socket to all addresses +; (IPv6 and IPv4-mapped) on a specific port; +; '/path/to/unix/socket' - to listen on a unix socket. +; Note: This value is mandatory. +listen = /run/php/php7.3-fpm.sock + +; Set listen(2) backlog. +; Default Value: 511 (-1 on FreeBSD and OpenBSD) +;listen.backlog = 511 + +; Set permissions for unix socket, if one is used. In Linux, read/write +; permissions must be set in order to allow connections from a web server. Many +; BSD-derived systems allow connections regardless of permissions. The owner +; and group can be specified either by name or by their numeric IDs. +; Default Values: user and group are set as the running user +; mode is set to 0660 +listen.owner = www-data +listen.group = www-data +;listen.mode = 0660 +; When POSIX Access Control Lists are supported you can set them using +; these options, value is a comma separated list of user/group names. +; When set, listen.owner and listen.group are ignored +;listen.acl_users = +;listen.acl_groups = + +; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. +; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original +; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address +; must be separated by a comma. If this value is left blank, connections will be +; accepted from any ip address. +; Default Value: any +;listen.allowed_clients = 127.0.0.1 + +; Specify the nice(2) priority to apply to the pool processes (only if set) +; The value can vary from -19 (highest priority) to 20 (lower priority) +; Note: - It will only work if the FPM master process is launched as root +; - The pool processes will inherit the master process priority +; unless it specified otherwise +; Default Value: no set +; process.priority = -19 + +; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user +; or group is differrent than the master process user. It allows to create process +; core dump and ptrace the process for the pool user. +; Default Value: no +; process.dumpable = yes + +; Choose how the process manager will control the number of child processes. +; Possible Values: +; static - a fixed number (pm.max_children) of child processes; +; dynamic - the number of child processes are set dynamically based on the +; following directives. With this process management, there will be +; always at least 1 children. +; pm.max_children - the maximum number of children that can +; be alive at the same time. +; pm.start_servers - the number of children created on startup. +; pm.min_spare_servers - the minimum number of children in 'idle' +; state (waiting to process). If the number +; of 'idle' processes is less than this +; number then some children will be created. +; pm.max_spare_servers - the maximum number of children in 'idle' +; state (waiting to process). If the number +; of 'idle' processes is greater than this +; number then some children will be killed. +; ondemand - no children are created at startup. Children will be forked when +; new requests will connect. The following parameter are used: +; pm.max_children - the maximum number of children that +; can be alive at the same time. +; pm.process_idle_timeout - The number of seconds after which +; an idle process will be killed. +; Note: This value is mandatory. +pm = dynamic + +; The number of child processes to be created when pm is set to 'static' and the +; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. +; This value sets the limit on the number of simultaneous requests that will be +; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. +; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP +; CGI. The below defaults are based on a server without much resources. Don't +; forget to tweak pm.* to fit your needs. +; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' +; Note: This value is mandatory. +pm.max_children = 5 + +; The number of child processes created on startup. +; Note: Used only when pm is set to 'dynamic' +; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 +pm.start_servers = 2 + +; The desired minimum number of idle server processes. +; Note: Used only when pm is set to 'dynamic' +; Note: Mandatory when pm is set to 'dynamic' +pm.min_spare_servers = 1 + +; The desired maximum number of idle server processes. +; Note: Used only when pm is set to 'dynamic' +; Note: Mandatory when pm is set to 'dynamic' +pm.max_spare_servers = 3 + +; The number of seconds after which an idle process will be killed. +; Note: Used only when pm is set to 'ondemand' +; Default Value: 10s +;pm.process_idle_timeout = 10s; + +; The number of requests each child process should execute before respawning. +; This can be useful to work around memory leaks in 3rd party libraries. For +; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. +; Default Value: 0 +;pm.max_requests = 500 + +; The URI to view the FPM status page. If this value is not set, no URI will be +; recognized as a status page. It shows the following informations: +; pool - the name of the pool; +; process manager - static, dynamic or ondemand; +; start time - the date and time FPM has started; +; start since - number of seconds since FPM has started; +; accepted conn - the number of request accepted by the pool; +; listen queue - the number of request in the queue of pending +; connections (see backlog in listen(2)); +; max listen queue - the maximum number of requests in the queue +; of pending connections since FPM has started; +; listen queue len - the size of the socket queue of pending connections; +; idle processes - the number of idle processes; +; active processes - the number of active processes; +; total processes - the number of idle + active processes; +; max active processes - the maximum number of active processes since FPM +; has started; +; max children reached - number of times, the process limit has been reached, +; when pm tries to start more children (works only for +; pm 'dynamic' and 'ondemand'); +; Value are updated in real time. +; Example output: +; pool: www +; process manager: static +; start time: 01/Jul/2011:17:53:49 +0200 +; start since: 62636 +; accepted conn: 190460 +; listen queue: 0 +; max listen queue: 1 +; listen queue len: 42 +; idle processes: 4 +; active processes: 11 +; total processes: 15 +; max active processes: 12 +; max children reached: 0 +; +; By default the status page output is formatted as text/plain. Passing either +; 'html', 'xml' or 'json' in the query string will return the corresponding +; output syntax. Example: +; http://www.foo.bar/status +; http://www.foo.bar/status?json +; http://www.foo.bar/status?html +; http://www.foo.bar/status?xml +; +; By default the status page only outputs short status. Passing 'full' in the +; query string will also return status for each pool process. +; Example: +; http://www.foo.bar/status?full +; http://www.foo.bar/status?json&full +; http://www.foo.bar/status?html&full +; http://www.foo.bar/status?xml&full +; The Full status returns for each process: +; pid - the PID of the process; +; state - the state of the process (Idle, Running, ...); +; start time - the date and time the process has started; +; start since - the number of seconds since the process has started; +; requests - the number of requests the process has served; +; request duration - the duration in µs of the requests; +; request method - the request method (GET, POST, ...); +; request URI - the request URI with the query string; +; content length - the content length of the request (only with POST); +; user - the user (PHP_AUTH_USER) (or '-' if not set); +; script - the main script called (or '-' if not set); +; last request cpu - the %cpu the last request consumed +; it's always 0 if the process is not in Idle state +; because CPU calculation is done when the request +; processing has terminated; +; last request memory - the max amount of memory the last request consumed +; it's always 0 if the process is not in Idle state +; because memory calculation is done when the request +; processing has terminated; +; If the process is in Idle state, then informations are related to the +; last request the process has served. Otherwise informations are related to +; the current request being served. +; Example output: +; ************************ +; pid: 31330 +; state: Running +; start time: 01/Jul/2011:17:53:49 +0200 +; start since: 63087 +; requests: 12808 +; request duration: 1250261 +; request method: GET +; request URI: /test_mem.php?N=10000 +; content length: 0 +; user: - +; script: /home/fat/web/docs/php/test_mem.php +; last request cpu: 0.00 +; last request memory: 0 +; +; Note: There is a real-time FPM status monitoring sample web page available +; It's available in: /usr/share/php/7.3/fpm/status.html +; +; Note: The value must start with a leading slash (/). The value can be +; anything, but it may not be a good idea to use the .php extension or it +; may conflict with a real PHP file. +; Default Value: not set +;pm.status_path = /status + +; The ping URI to call the monitoring page of FPM. If this value is not set, no +; URI will be recognized as a ping page. This could be used to test from outside +; that FPM is alive and responding, or to +; - create a graph of FPM availability (rrd or such); +; - remove a server from a group if it is not responding (load balancing); +; - trigger alerts for the operating team (24/7). +; Note: The value must start with a leading slash (/). The value can be +; anything, but it may not be a good idea to use the .php extension or it +; may conflict with a real PHP file. +; Default Value: not set +;ping.path = /ping + +; This directive may be used to customize the response of a ping request. The +; response is formatted as text/plain with a 200 response code. +; Default Value: pong +;ping.response = pong + +; The access log file +; Default: not set +;access.log = log/$pool.access.log + +; The access log format. +; The following syntax is allowed +; %%: the '%' character +; %C: %CPU used by the request +; it can accept the following format: +; - %{user}C for user CPU only +; - %{system}C for system CPU only +; - %{total}C for user + system CPU (default) +; %d: time taken to serve the request +; it can accept the following format: +; - %{seconds}d (default) +; - %{miliseconds}d +; - %{mili}d +; - %{microseconds}d +; - %{micro}d +; %e: an environment variable (same as $_ENV or $_SERVER) +; it must be associated with embraces to specify the name of the env +; variable. Some exemples: +; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e +; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e +; %f: script filename +; %l: content-length of the request (for POST request only) +; %m: request method +; %M: peak of memory allocated by PHP +; it can accept the following format: +; - %{bytes}M (default) +; - %{kilobytes}M +; - %{kilo}M +; - %{megabytes}M +; - %{mega}M +; %n: pool name +; %o: output header +; it must be associated with embraces to specify the name of the header: +; - %{Content-Type}o +; - %{X-Powered-By}o +; - %{Transfert-Encoding}o +; - .... +; %p: PID of the child that serviced the request +; %P: PID of the parent of the child that serviced the request +; %q: the query string +; %Q: the '?' character if query string exists +; %r: the request URI (without the query string, see %q and %Q) +; %R: remote IP address +; %s: status (response code) +; %t: server time the request was received +; it can accept a strftime(3) format: +; %d/%b/%Y:%H:%M:%S %z (default) +; The strftime(3) format must be encapsuled in a %{}t tag +; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t +; %T: time the log has been written (the request has finished) +; it can accept a strftime(3) format: +; %d/%b/%Y:%H:%M:%S %z (default) +; The strftime(3) format must be encapsuled in a %{}t tag +; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t +; %u: remote user +; +; Default: "%R - %u %t \"%m %r\" %s" +;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" + +; The log file for slow requests +; Default Value: not set +; Note: slowlog is mandatory if request_slowlog_timeout is set +;slowlog = log/$pool.log.slow + +; The timeout for serving a single request after which a PHP backtrace will be +; dumped to the 'slowlog' file. A value of '0s' means 'off'. +; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) +; Default Value: 0 +;request_slowlog_timeout = 0 + +; Depth of slow log stack trace. +; Default Value: 20 +;request_slowlog_trace_depth = 20 + +; The timeout for serving a single request after which the worker process will +; be killed. This option should be used when the 'max_execution_time' ini option +; does not stop script execution for some reason. A value of '0' means 'off'. +; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) +; Default Value: 0 +;request_terminate_timeout = 0 + +; The timeout set by 'request_terminate_timeout' ini option is not engaged after +; application calls 'fastcgi_finish_request' or when application has finished and +; shutdown functions are being called (registered via register_shutdown_function). +; This option will enable timeout limit to be applied unconditionally +; even in such cases. +; Default Value: no +;request_terminate_timeout_track_finished = no + +; Set open file descriptor rlimit. +; Default Value: system defined value +;rlimit_files = 1024 + +; Set max core size rlimit. +; Possible Values: 'unlimited' or an integer greater or equal to 0 +; Default Value: system defined value +;rlimit_core = 0 + +; Chroot to this directory at the start. This value must be defined as an +; absolute path. When this value is not set, chroot is not used. +; Note: you can prefix with '$prefix' to chroot to the pool prefix or one +; of its subdirectories. If the pool prefix is not set, the global prefix +; will be used instead. +; Note: chrooting is a great security feature and should be used whenever +; possible. However, all PHP paths will be relative to the chroot +; (error_log, sessions.save_path, ...). +; Default Value: not set +;chroot = + +; Chdir to this directory at the start. +; Note: relative path can be used. +; Default Value: current directory or / when chroot +;chdir = /var/www + +; Redirect worker stdout and stderr into main error log. If not set, stdout and +; stderr will be redirected to /dev/null according to FastCGI specs. +; Note: on highloaded environement, this can cause some delay in the page +; process time (several ms). +; Default Value: no +;catch_workers_output = yes + +; Decorate worker output with prefix and suffix containing information about +; the child that writes to the log and if stdout or stderr is used as well as +; log level and time. This options is used only if catch_workers_output is yes. +; Settings to "no" will output data as written to the stdout or stderr. +; Default value: yes +;decorate_workers_output = no + +; Clear environment in FPM workers +; Prevents arbitrary environment variables from reaching FPM worker processes +; by clearing the environment in workers before env vars specified in this +; pool configuration are added. +; Setting to "no" will make all environment variables available to PHP code +; via getenv(), $_ENV and $_SERVER. +; Default Value: yes +;clear_env = no + +; Limits the extensions of the main script FPM will allow to parse. This can +; prevent configuration mistakes on the web server side. You should only limit +; FPM to .php extensions to prevent malicious users to use other extensions to +; execute php code. +; Note: set an empty value to allow all extensions. +; Default Value: .php +;security.limit_extensions = .php .php3 .php4 .php5 .php7 + +; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from +; the current environment. +; Default Value: clean env +;env[HOSTNAME] = $HOSTNAME +;env[PATH] = /usr/local/bin:/usr/bin:/bin +;env[TMP] = /tmp +;env[TMPDIR] = /tmp +;env[TEMP] = /tmp + +; Additional php.ini defines, specific to this pool of workers. These settings +; overwrite the values previously defined in the php.ini. The directives are the +; same as the PHP SAPI: +; php_value/php_flag - you can set classic ini defines which can +; be overwritten from PHP call 'ini_set'. +; php_admin_value/php_admin_flag - these directives won't be overwritten by +; PHP call 'ini_set' +; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. + +; Defining 'extension' will load the corresponding shared extension from +; extension_dir. Defining 'disable_functions' or 'disable_classes' will not +; overwrite previously defined php.ini values, but will append the new value +; instead. + +; Note: path INI options can be relative and will be expanded with the prefix +; (pool, global or /usr) + +; Default Value: nothing is defined by default except the values in php.ini and +; specified at startup with the -d argument +;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com +;php_flag[display_errors] = off +;php_admin_value[error_log] = /var/log/fpm-php.www.log +;php_admin_flag[log_errors] = on +;php_admin_value[memory_limit] = 32M diff --git a/src/deb/for-download/tools/default-pool.d/7.4/www.conf b/src/deb/for-download/tools/default-pool.d/7.4/www.conf new file mode 100644 index 00000000..8ef08a99 --- /dev/null +++ b/src/deb/for-download/tools/default-pool.d/7.4/www.conf @@ -0,0 +1,439 @@ +; Start a new pool named 'www'. +; the variable $pool can be used in any directive and will be replaced by the +; pool name ('www' here) +[www] + +; Per pool prefix +; It only applies on the following directives: +; - 'access.log' +; - 'slowlog' +; - 'listen' (unixsocket) +; - 'chroot' +; - 'chdir' +; - 'php_values' +; - 'php_admin_values' +; When not set, the global prefix (or /usr) applies instead. +; Note: This directive can also be relative to the global prefix. +; Default Value: none +;prefix = /path/to/pools/$pool + +; Unix user/group of processes +; Note: The user is mandatory. If the group is not set, the default user's group +; will be used. +user = www-data +group = www-data + +; The address on which to accept FastCGI requests. +; Valid syntaxes are: +; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on +; a specific port; +; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on +; a specific port; +; 'port' - to listen on a TCP socket to all addresses +; (IPv6 and IPv4-mapped) on a specific port; +; '/path/to/unix/socket' - to listen on a unix socket. +; Note: This value is mandatory. +listen = /run/php/php7.4-fpm.sock + +; Set listen(2) backlog. +; Default Value: 511 (-1 on FreeBSD and OpenBSD) +;listen.backlog = 511 + +; Set permissions for unix socket, if one is used. In Linux, read/write +; permissions must be set in order to allow connections from a web server. Many +; BSD-derived systems allow connections regardless of permissions. The owner +; and group can be specified either by name or by their numeric IDs. +; Default Values: user and group are set as the running user +; mode is set to 0660 +listen.owner = www-data +listen.group = www-data +;listen.mode = 0660 +; When POSIX Access Control Lists are supported you can set them using +; these options, value is a comma separated list of user/group names. +; When set, listen.owner and listen.group are ignored +;listen.acl_users = +;listen.acl_groups = + +; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. +; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original +; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address +; must be separated by a comma. If this value is left blank, connections will be +; accepted from any ip address. +; Default Value: any +;listen.allowed_clients = 127.0.0.1 + +; Specify the nice(2) priority to apply to the pool processes (only if set) +; The value can vary from -19 (highest priority) to 20 (lower priority) +; Note: - It will only work if the FPM master process is launched as root +; - The pool processes will inherit the master process priority +; unless it specified otherwise +; Default Value: no set +; process.priority = -19 + +; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user +; or group is differrent than the master process user. It allows to create process +; core dump and ptrace the process for the pool user. +; Default Value: no +; process.dumpable = yes + +; Choose how the process manager will control the number of child processes. +; Possible Values: +; static - a fixed number (pm.max_children) of child processes; +; dynamic - the number of child processes are set dynamically based on the +; following directives. With this process management, there will be +; always at least 1 children. +; pm.max_children - the maximum number of children that can +; be alive at the same time. +; pm.start_servers - the number of children created on startup. +; pm.min_spare_servers - the minimum number of children in 'idle' +; state (waiting to process). If the number +; of 'idle' processes is less than this +; number then some children will be created. +; pm.max_spare_servers - the maximum number of children in 'idle' +; state (waiting to process). If the number +; of 'idle' processes is greater than this +; number then some children will be killed. +; ondemand - no children are created at startup. Children will be forked when +; new requests will connect. The following parameter are used: +; pm.max_children - the maximum number of children that +; can be alive at the same time. +; pm.process_idle_timeout - The number of seconds after which +; an idle process will be killed. +; Note: This value is mandatory. +pm = dynamic + +; The number of child processes to be created when pm is set to 'static' and the +; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. +; This value sets the limit on the number of simultaneous requests that will be +; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. +; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP +; CGI. The below defaults are based on a server without much resources. Don't +; forget to tweak pm.* to fit your needs. +; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' +; Note: This value is mandatory. +pm.max_children = 5 + +; The number of child processes created on startup. +; Note: Used only when pm is set to 'dynamic' +; Default Value: (min_spare_servers + max_spare_servers) / 2 +pm.start_servers = 2 + +; The desired minimum number of idle server processes. +; Note: Used only when pm is set to 'dynamic' +; Note: Mandatory when pm is set to 'dynamic' +pm.min_spare_servers = 1 + +; The desired maximum number of idle server processes. +; Note: Used only when pm is set to 'dynamic' +; Note: Mandatory when pm is set to 'dynamic' +pm.max_spare_servers = 3 + +; The number of seconds after which an idle process will be killed. +; Note: Used only when pm is set to 'ondemand' +; Default Value: 10s +;pm.process_idle_timeout = 10s; + +; The number of requests each child process should execute before respawning. +; This can be useful to work around memory leaks in 3rd party libraries. For +; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. +; Default Value: 0 +;pm.max_requests = 500 + +; The URI to view the FPM status page. If this value is not set, no URI will be +; recognized as a status page. It shows the following informations: +; pool - the name of the pool; +; process manager - static, dynamic or ondemand; +; start time - the date and time FPM has started; +; start since - number of seconds since FPM has started; +; accepted conn - the number of request accepted by the pool; +; listen queue - the number of request in the queue of pending +; connections (see backlog in listen(2)); +; max listen queue - the maximum number of requests in the queue +; of pending connections since FPM has started; +; listen queue len - the size of the socket queue of pending connections; +; idle processes - the number of idle processes; +; active processes - the number of active processes; +; total processes - the number of idle + active processes; +; max active processes - the maximum number of active processes since FPM +; has started; +; max children reached - number of times, the process limit has been reached, +; when pm tries to start more children (works only for +; pm 'dynamic' and 'ondemand'); +; Value are updated in real time. +; Example output: +; pool: www +; process manager: static +; start time: 01/Jul/2011:17:53:49 +0200 +; start since: 62636 +; accepted conn: 190460 +; listen queue: 0 +; max listen queue: 1 +; listen queue len: 42 +; idle processes: 4 +; active processes: 11 +; total processes: 15 +; max active processes: 12 +; max children reached: 0 +; +; By default the status page output is formatted as text/plain. Passing either +; 'html', 'xml' or 'json' in the query string will return the corresponding +; output syntax. Example: +; http://www.foo.bar/status +; http://www.foo.bar/status?json +; http://www.foo.bar/status?html +; http://www.foo.bar/status?xml +; +; By default the status page only outputs short status. Passing 'full' in the +; query string will also return status for each pool process. +; Example: +; http://www.foo.bar/status?full +; http://www.foo.bar/status?json&full +; http://www.foo.bar/status?html&full +; http://www.foo.bar/status?xml&full +; The Full status returns for each process: +; pid - the PID of the process; +; state - the state of the process (Idle, Running, ...); +; start time - the date and time the process has started; +; start since - the number of seconds since the process has started; +; requests - the number of requests the process has served; +; request duration - the duration in µs of the requests; +; request method - the request method (GET, POST, ...); +; request URI - the request URI with the query string; +; content length - the content length of the request (only with POST); +; user - the user (PHP_AUTH_USER) (or '-' if not set); +; script - the main script called (or '-' if not set); +; last request cpu - the %cpu the last request consumed +; it's always 0 if the process is not in Idle state +; because CPU calculation is done when the request +; processing has terminated; +; last request memory - the max amount of memory the last request consumed +; it's always 0 if the process is not in Idle state +; because memory calculation is done when the request +; processing has terminated; +; If the process is in Idle state, then informations are related to the +; last request the process has served. Otherwise informations are related to +; the current request being served. +; Example output: +; ************************ +; pid: 31330 +; state: Running +; start time: 01/Jul/2011:17:53:49 +0200 +; start since: 63087 +; requests: 12808 +; request duration: 1250261 +; request method: GET +; request URI: /test_mem.php?N=10000 +; content length: 0 +; user: - +; script: /home/fat/web/docs/php/test_mem.php +; last request cpu: 0.00 +; last request memory: 0 +; +; Note: There is a real-time FPM status monitoring sample web page available +; It's available in: /usr/share/php/7.4/fpm/status.html +; +; Note: The value must start with a leading slash (/). The value can be +; anything, but it may not be a good idea to use the .php extension or it +; may conflict with a real PHP file. +; Default Value: not set +;pm.status_path = /status + +; The ping URI to call the monitoring page of FPM. If this value is not set, no +; URI will be recognized as a ping page. This could be used to test from outside +; that FPM is alive and responding, or to +; - create a graph of FPM availability (rrd or such); +; - remove a server from a group if it is not responding (load balancing); +; - trigger alerts for the operating team (24/7). +; Note: The value must start with a leading slash (/). The value can be +; anything, but it may not be a good idea to use the .php extension or it +; may conflict with a real PHP file. +; Default Value: not set +;ping.path = /ping + +; This directive may be used to customize the response of a ping request. The +; response is formatted as text/plain with a 200 response code. +; Default Value: pong +;ping.response = pong + +; The access log file +; Default: not set +;access.log = log/$pool.access.log + +; The access log format. +; The following syntax is allowed +; %%: the '%' character +; %C: %CPU used by the request +; it can accept the following format: +; - %{user}C for user CPU only +; - %{system}C for system CPU only +; - %{total}C for user + system CPU (default) +; %d: time taken to serve the request +; it can accept the following format: +; - %{seconds}d (default) +; - %{miliseconds}d +; - %{mili}d +; - %{microseconds}d +; - %{micro}d +; %e: an environment variable (same as $_ENV or $_SERVER) +; it must be associated with embraces to specify the name of the env +; variable. Some exemples: +; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e +; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e +; %f: script filename +; %l: content-length of the request (for POST request only) +; %m: request method +; %M: peak of memory allocated by PHP +; it can accept the following format: +; - %{bytes}M (default) +; - %{kilobytes}M +; - %{kilo}M +; - %{megabytes}M +; - %{mega}M +; %n: pool name +; %o: output header +; it must be associated with embraces to specify the name of the header: +; - %{Content-Type}o +; - %{X-Powered-By}o +; - %{Transfert-Encoding}o +; - .... +; %p: PID of the child that serviced the request +; %P: PID of the parent of the child that serviced the request +; %q: the query string +; %Q: the '?' character if query string exists +; %r: the request URI (without the query string, see %q and %Q) +; %R: remote IP address +; %s: status (response code) +; %t: server time the request was received +; it can accept a strftime(3) format: +; %d/%b/%Y:%H:%M:%S %z (default) +; The strftime(3) format must be encapsuled in a %{}t tag +; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t +; %T: time the log has been written (the request has finished) +; it can accept a strftime(3) format: +; %d/%b/%Y:%H:%M:%S %z (default) +; The strftime(3) format must be encapsuled in a %{}t tag +; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t +; %u: remote user +; +; Default: "%R - %u %t \"%m %r\" %s" +;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" + +; The log file for slow requests +; Default Value: not set +; Note: slowlog is mandatory if request_slowlog_timeout is set +;slowlog = log/$pool.log.slow + +; The timeout for serving a single request after which a PHP backtrace will be +; dumped to the 'slowlog' file. A value of '0s' means 'off'. +; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) +; Default Value: 0 +;request_slowlog_timeout = 0 + +; Depth of slow log stack trace. +; Default Value: 20 +;request_slowlog_trace_depth = 20 + +; The timeout for serving a single request after which the worker process will +; be killed. This option should be used when the 'max_execution_time' ini option +; does not stop script execution for some reason. A value of '0' means 'off'. +; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) +; Default Value: 0 +;request_terminate_timeout = 0 + +; The timeout set by 'request_terminate_timeout' ini option is not engaged after +; application calls 'fastcgi_finish_request' or when application has finished and +; shutdown functions are being called (registered via register_shutdown_function). +; This option will enable timeout limit to be applied unconditionally +; even in such cases. +; Default Value: no +;request_terminate_timeout_track_finished = no + +; Set open file descriptor rlimit. +; Default Value: system defined value +;rlimit_files = 1024 + +; Set max core size rlimit. +; Possible Values: 'unlimited' or an integer greater or equal to 0 +; Default Value: system defined value +;rlimit_core = 0 + +; Chroot to this directory at the start. This value must be defined as an +; absolute path. When this value is not set, chroot is not used. +; Note: you can prefix with '$prefix' to chroot to the pool prefix or one +; of its subdirectories. If the pool prefix is not set, the global prefix +; will be used instead. +; Note: chrooting is a great security feature and should be used whenever +; possible. However, all PHP paths will be relative to the chroot +; (error_log, sessions.save_path, ...). +; Default Value: not set +;chroot = + +; Chdir to this directory at the start. +; Note: relative path can be used. +; Default Value: current directory or / when chroot +;chdir = /var/www + +; Redirect worker stdout and stderr into main error log. If not set, stdout and +; stderr will be redirected to /dev/null according to FastCGI specs. +; Note: on highloaded environement, this can cause some delay in the page +; process time (several ms). +; Default Value: no +;catch_workers_output = yes + +; Decorate worker output with prefix and suffix containing information about +; the child that writes to the log and if stdout or stderr is used as well as +; log level and time. This options is used only if catch_workers_output is yes. +; Settings to "no" will output data as written to the stdout or stderr. +; Default value: yes +;decorate_workers_output = no + +; Clear environment in FPM workers +; Prevents arbitrary environment variables from reaching FPM worker processes +; by clearing the environment in workers before env vars specified in this +; pool configuration are added. +; Setting to "no" will make all environment variables available to PHP code +; via getenv(), $_ENV and $_SERVER. +; Default Value: yes +;clear_env = no + +; Limits the extensions of the main script FPM will allow to parse. This can +; prevent configuration mistakes on the web server side. You should only limit +; FPM to .php extensions to prevent malicious users to use other extensions to +; execute php code. +; Note: set an empty value to allow all extensions. +; Default Value: .php +;security.limit_extensions = .php .php3 .php4 .php5 .php7 + +; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from +; the current environment. +; Default Value: clean env +;env[HOSTNAME] = $HOSTNAME +;env[PATH] = /usr/local/bin:/usr/bin:/bin +;env[TMP] = /tmp +;env[TMPDIR] = /tmp +;env[TEMP] = /tmp + +; Additional php.ini defines, specific to this pool of workers. These settings +; overwrite the values previously defined in the php.ini. The directives are the +; same as the PHP SAPI: +; php_value/php_flag - you can set classic ini defines which can +; be overwritten from PHP call 'ini_set'. +; php_admin_value/php_admin_flag - these directives won't be overwritten by +; PHP call 'ini_set' +; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. + +; Defining 'extension' will load the corresponding shared extension from +; extension_dir. Defining 'disable_functions' or 'disable_classes' will not +; overwrite previously defined php.ini values, but will append the new value +; instead. + +; Note: path INI options can be relative and will be expanded with the prefix +; (pool, global or /usr) + +; Default Value: nothing is defined by default except the values in php.ini and +; specified at startup with the -d argument +;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com +;php_flag[display_errors] = off +;php_admin_value[error_log] = /var/log/fpm-php.www.log +;php_admin_flag[log_errors] = on +;php_admin_value[memory_limit] = 32M diff --git a/src/deb/for-download/tools/default-pool.d/8.0/www.conf b/src/deb/for-download/tools/default-pool.d/8.0/www.conf new file mode 100644 index 00000000..e21e6158 --- /dev/null +++ b/src/deb/for-download/tools/default-pool.d/8.0/www.conf @@ -0,0 +1,455 @@ +; Start a new pool named 'www'. +; the variable $pool can be used in any directive and will be replaced by the +; pool name ('www' here) +[www] + +; Per pool prefix +; It only applies on the following directives: +; - 'access.log' +; - 'slowlog' +; - 'listen' (unixsocket) +; - 'chroot' +; - 'chdir' +; - 'php_values' +; - 'php_admin_values' +; When not set, the global prefix (or /usr) applies instead. +; Note: This directive can also be relative to the global prefix. +; Default Value: none +;prefix = /path/to/pools/$pool + +; Unix user/group of processes +; Note: The user is mandatory. If the group is not set, the default user's group +; will be used. +user = www-data +group = www-data + +; The address on which to accept FastCGI requests. +; Valid syntaxes are: +; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on +; a specific port; +; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on +; a specific port; +; 'port' - to listen on a TCP socket to all addresses +; (IPv6 and IPv4-mapped) on a specific port; +; '/path/to/unix/socket' - to listen on a unix socket. +; Note: This value is mandatory. +listen = /run/php/php8.0-fpm.sock + +; Set listen(2) backlog. +; Default Value: 511 (-1 on FreeBSD and OpenBSD) +;listen.backlog = 511 + +; Set permissions for unix socket, if one is used. In Linux, read/write +; permissions must be set in order to allow connections from a web server. Many +; BSD-derived systems allow connections regardless of permissions. The owner +; and group can be specified either by name or by their numeric IDs. +; Default Values: user and group are set as the running user +; mode is set to 0660 +listen.owner = www-data +listen.group = www-data +;listen.mode = 0660 +; When POSIX Access Control Lists are supported you can set them using +; these options, value is a comma separated list of user/group names. +; When set, listen.owner and listen.group are ignored +;listen.acl_users = +;listen.acl_groups = + +; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. +; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original +; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address +; must be separated by a comma. If this value is left blank, connections will be +; accepted from any ip address. +; Default Value: any +;listen.allowed_clients = 127.0.0.1 + +; Specify the nice(2) priority to apply to the pool processes (only if set) +; The value can vary from -19 (highest priority) to 20 (lower priority) +; Note: - It will only work if the FPM master process is launched as root +; - The pool processes will inherit the master process priority +; unless it specified otherwise +; Default Value: no set +; process.priority = -19 + +; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user +; or group is different than the master process user. It allows to create process +; core dump and ptrace the process for the pool user. +; Default Value: no +; process.dumpable = yes + +; Choose how the process manager will control the number of child processes. +; Possible Values: +; static - a fixed number (pm.max_children) of child processes; +; dynamic - the number of child processes are set dynamically based on the +; following directives. With this process management, there will be +; always at least 1 children. +; pm.max_children - the maximum number of children that can +; be alive at the same time. +; pm.start_servers - the number of children created on startup. +; pm.min_spare_servers - the minimum number of children in 'idle' +; state (waiting to process). If the number +; of 'idle' processes is less than this +; number then some children will be created. +; pm.max_spare_servers - the maximum number of children in 'idle' +; state (waiting to process). If the number +; of 'idle' processes is greater than this +; number then some children will be killed. +; ondemand - no children are created at startup. Children will be forked when +; new requests will connect. The following parameter are used: +; pm.max_children - the maximum number of children that +; can be alive at the same time. +; pm.process_idle_timeout - The number of seconds after which +; an idle process will be killed. +; Note: This value is mandatory. +pm = dynamic + +; The number of child processes to be created when pm is set to 'static' and the +; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. +; This value sets the limit on the number of simultaneous requests that will be +; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. +; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP +; CGI. The below defaults are based on a server without much resources. Don't +; forget to tweak pm.* to fit your needs. +; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' +; Note: This value is mandatory. +pm.max_children = 5 + +; The number of child processes created on startup. +; Note: Used only when pm is set to 'dynamic' +; Default Value: (min_spare_servers + max_spare_servers) / 2 +pm.start_servers = 2 + +; The desired minimum number of idle server processes. +; Note: Used only when pm is set to 'dynamic' +; Note: Mandatory when pm is set to 'dynamic' +pm.min_spare_servers = 1 + +; The desired maximum number of idle server processes. +; Note: Used only when pm is set to 'dynamic' +; Note: Mandatory when pm is set to 'dynamic' +pm.max_spare_servers = 3 + +; The number of seconds after which an idle process will be killed. +; Note: Used only when pm is set to 'ondemand' +; Default Value: 10s +;pm.process_idle_timeout = 10s; + +; The number of requests each child process should execute before respawning. +; This can be useful to work around memory leaks in 3rd party libraries. For +; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. +; Default Value: 0 +;pm.max_requests = 500 + +; The URI to view the FPM status page. If this value is not set, no URI will be +; recognized as a status page. It shows the following information: +; pool - the name of the pool; +; process manager - static, dynamic or ondemand; +; start time - the date and time FPM has started; +; start since - number of seconds since FPM has started; +; accepted conn - the number of request accepted by the pool; +; listen queue - the number of request in the queue of pending +; connections (see backlog in listen(2)); +; max listen queue - the maximum number of requests in the queue +; of pending connections since FPM has started; +; listen queue len - the size of the socket queue of pending connections; +; idle processes - the number of idle processes; +; active processes - the number of active processes; +; total processes - the number of idle + active processes; +; max active processes - the maximum number of active processes since FPM +; has started; +; max children reached - number of times, the process limit has been reached, +; when pm tries to start more children (works only for +; pm 'dynamic' and 'ondemand'); +; Value are updated in real time. +; Example output: +; pool: www +; process manager: static +; start time: 01/Jul/2011:17:53:49 +0200 +; start since: 62636 +; accepted conn: 190460 +; listen queue: 0 +; max listen queue: 1 +; listen queue len: 42 +; idle processes: 4 +; active processes: 11 +; total processes: 15 +; max active processes: 12 +; max children reached: 0 +; +; By default the status page output is formatted as text/plain. Passing either +; 'html', 'xml' or 'json' in the query string will return the corresponding +; output syntax. Example: +; http://www.foo.bar/status +; http://www.foo.bar/status?json +; http://www.foo.bar/status?html +; http://www.foo.bar/status?xml +; +; By default the status page only outputs short status. Passing 'full' in the +; query string will also return status for each pool process. +; Example: +; http://www.foo.bar/status?full +; http://www.foo.bar/status?json&full +; http://www.foo.bar/status?html&full +; http://www.foo.bar/status?xml&full +; The Full status returns for each process: +; pid - the PID of the process; +; state - the state of the process (Idle, Running, ...); +; start time - the date and time the process has started; +; start since - the number of seconds since the process has started; +; requests - the number of requests the process has served; +; request duration - the duration in µs of the requests; +; request method - the request method (GET, POST, ...); +; request URI - the request URI with the query string; +; content length - the content length of the request (only with POST); +; user - the user (PHP_AUTH_USER) (or '-' if not set); +; script - the main script called (or '-' if not set); +; last request cpu - the %cpu the last request consumed +; it's always 0 if the process is not in Idle state +; because CPU calculation is done when the request +; processing has terminated; +; last request memory - the max amount of memory the last request consumed +; it's always 0 if the process is not in Idle state +; because memory calculation is done when the request +; processing has terminated; +; If the process is in Idle state, then informations are related to the +; last request the process has served. Otherwise informations are related to +; the current request being served. +; Example output: +; ************************ +; pid: 31330 +; state: Running +; start time: 01/Jul/2011:17:53:49 +0200 +; start since: 63087 +; requests: 12808 +; request duration: 1250261 +; request method: GET +; request URI: /test_mem.php?N=10000 +; content length: 0 +; user: - +; script: /home/fat/web/docs/php/test_mem.php +; last request cpu: 0.00 +; last request memory: 0 +; +; Note: There is a real-time FPM status monitoring sample web page available +; It's available in: /usr/share/php/8.0/fpm/status.html +; +; Note: The value must start with a leading slash (/). The value can be +; anything, but it may not be a good idea to use the .php extension or it +; may conflict with a real PHP file. +; Default Value: not set +;pm.status_path = /status + +; The address on which to accept FastCGI status request. This creates a new +; invisible pool that can handle requests independently. This is useful +; if the main pool is busy with long running requests because it is still possible +; to get the status before finishing the long running requests. +; +; Valid syntaxes are: +; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on +; a specific port; +; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on +; a specific port; +; 'port' - to listen on a TCP socket to all addresses +; (IPv6 and IPv4-mapped) on a specific port; +; '/path/to/unix/socket' - to listen on a unix socket. +; Default Value: value of the listen option +;pm.status_listen = 127.0.0.1:9001 + +; The ping URI to call the monitoring page of FPM. If this value is not set, no +; URI will be recognized as a ping page. This could be used to test from outside +; that FPM is alive and responding, or to +; - create a graph of FPM availability (rrd or such); +; - remove a server from a group if it is not responding (load balancing); +; - trigger alerts for the operating team (24/7). +; Note: The value must start with a leading slash (/). The value can be +; anything, but it may not be a good idea to use the .php extension or it +; may conflict with a real PHP file. +; Default Value: not set +;ping.path = /ping + +; This directive may be used to customize the response of a ping request. The +; response is formatted as text/plain with a 200 response code. +; Default Value: pong +;ping.response = pong + +; The access log file +; Default: not set +;access.log = log/$pool.access.log + +; The access log format. +; The following syntax is allowed +; %%: the '%' character +; %C: %CPU used by the request +; it can accept the following format: +; - %{user}C for user CPU only +; - %{system}C for system CPU only +; - %{total}C for user + system CPU (default) +; %d: time taken to serve the request +; it can accept the following format: +; - %{seconds}d (default) +; - %{milliseconds}d +; - %{mili}d +; - %{microseconds}d +; - %{micro}d +; %e: an environment variable (same as $_ENV or $_SERVER) +; it must be associated with embraces to specify the name of the env +; variable. Some examples: +; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e +; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e +; %f: script filename +; %l: content-length of the request (for POST request only) +; %m: request method +; %M: peak of memory allocated by PHP +; it can accept the following format: +; - %{bytes}M (default) +; - %{kilobytes}M +; - %{kilo}M +; - %{megabytes}M +; - %{mega}M +; %n: pool name +; %o: output header +; it must be associated with embraces to specify the name of the header: +; - %{Content-Type}o +; - %{X-Powered-By}o +; - %{Transfert-Encoding}o +; - .... +; %p: PID of the child that serviced the request +; %P: PID of the parent of the child that serviced the request +; %q: the query string +; %Q: the '?' character if query string exists +; %r: the request URI (without the query string, see %q and %Q) +; %R: remote IP address +; %s: status (response code) +; %t: server time the request was received +; it can accept a strftime(3) format: +; %d/%b/%Y:%H:%M:%S %z (default) +; The strftime(3) format must be encapsuled in a %{}t tag +; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t +; %T: time the log has been written (the request has finished) +; it can accept a strftime(3) format: +; %d/%b/%Y:%H:%M:%S %z (default) +; The strftime(3) format must be encapsuled in a %{}t tag +; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t +; %u: remote user +; +; Default: "%R - %u %t \"%m %r\" %s" +;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" + +; The log file for slow requests +; Default Value: not set +; Note: slowlog is mandatory if request_slowlog_timeout is set +;slowlog = log/$pool.log.slow + +; The timeout for serving a single request after which a PHP backtrace will be +; dumped to the 'slowlog' file. A value of '0s' means 'off'. +; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) +; Default Value: 0 +;request_slowlog_timeout = 0 + +; Depth of slow log stack trace. +; Default Value: 20 +;request_slowlog_trace_depth = 20 + +; The timeout for serving a single request after which the worker process will +; be killed. This option should be used when the 'max_execution_time' ini option +; does not stop script execution for some reason. A value of '0' means 'off'. +; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) +; Default Value: 0 +;request_terminate_timeout = 0 + +; The timeout set by 'request_terminate_timeout' ini option is not engaged after +; application calls 'fastcgi_finish_request' or when application has finished and +; shutdown functions are being called (registered via register_shutdown_function). +; This option will enable timeout limit to be applied unconditionally +; even in such cases. +; Default Value: no +;request_terminate_timeout_track_finished = no + +; Set open file descriptor rlimit. +; Default Value: system defined value +;rlimit_files = 1024 + +; Set max core size rlimit. +; Possible Values: 'unlimited' or an integer greater or equal to 0 +; Default Value: system defined value +;rlimit_core = 0 + +; Chroot to this directory at the start. This value must be defined as an +; absolute path. When this value is not set, chroot is not used. +; Note: you can prefix with '$prefix' to chroot to the pool prefix or one +; of its subdirectories. If the pool prefix is not set, the global prefix +; will be used instead. +; Note: chrooting is a great security feature and should be used whenever +; possible. However, all PHP paths will be relative to the chroot +; (error_log, sessions.save_path, ...). +; Default Value: not set +;chroot = + +; Chdir to this directory at the start. +; Note: relative path can be used. +; Default Value: current directory or / when chroot +;chdir = /var/www + +; Redirect worker stdout and stderr into main error log. If not set, stdout and +; stderr will be redirected to /dev/null according to FastCGI specs. +; Note: on highloaded environment, this can cause some delay in the page +; process time (several ms). +; Default Value: no +;catch_workers_output = yes + +; Decorate worker output with prefix and suffix containing information about +; the child that writes to the log and if stdout or stderr is used as well as +; log level and time. This options is used only if catch_workers_output is yes. +; Settings to "no" will output data as written to the stdout or stderr. +; Default value: yes +;decorate_workers_output = no + +; Clear environment in FPM workers +; Prevents arbitrary environment variables from reaching FPM worker processes +; by clearing the environment in workers before env vars specified in this +; pool configuration are added. +; Setting to "no" will make all environment variables available to PHP code +; via getenv(), $_ENV and $_SERVER. +; Default Value: yes +;clear_env = no + +; Limits the extensions of the main script FPM will allow to parse. This can +; prevent configuration mistakes on the web server side. You should only limit +; FPM to .php extensions to prevent malicious users to use other extensions to +; execute php code. +; Note: set an empty value to allow all extensions. +; Default Value: .php +;security.limit_extensions = .php .php3 .php4 .php5 .php7 + +; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from +; the current environment. +; Default Value: clean env +;env[HOSTNAME] = $HOSTNAME +;env[PATH] = /usr/local/bin:/usr/bin:/bin +;env[TMP] = /tmp +;env[TMPDIR] = /tmp +;env[TEMP] = /tmp + +; Additional php.ini defines, specific to this pool of workers. These settings +; overwrite the values previously defined in the php.ini. The directives are the +; same as the PHP SAPI: +; php_value/php_flag - you can set classic ini defines which can +; be overwritten from PHP call 'ini_set'. +; php_admin_value/php_admin_flag - these directives won't be overwritten by +; PHP call 'ini_set' +; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. + +; Defining 'extension' will load the corresponding shared extension from +; extension_dir. Defining 'disable_functions' or 'disable_classes' will not +; overwrite previously defined php.ini values, but will append the new value +; instead. + +; Note: path INI options can be relative and will be expanded with the prefix +; (pool, global or /usr) + +; Default Value: nothing is defined by default except the values in php.ini and +; specified at startup with the -d argument +;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com +;php_flag[display_errors] = off +;php_admin_value[error_log] = /var/log/fpm-php.www.log +;php_admin_flag[log_errors] = on +;php_admin_value[memory_limit] = 32M diff --git a/src/deb/for-download/tools/default-pool.d/8.1/www.conf b/src/deb/for-download/tools/default-pool.d/8.1/www.conf new file mode 100644 index 00000000..5278cea0 --- /dev/null +++ b/src/deb/for-download/tools/default-pool.d/8.1/www.conf @@ -0,0 +1,463 @@ +; Start a new pool named 'www'. +; the variable $pool can be used in any directive and will be replaced by the +; pool name ('www' here) +[www] + +; Per pool prefix +; It only applies on the following directives: +; - 'access.log' +; - 'slowlog' +; - 'listen' (unixsocket) +; - 'chroot' +; - 'chdir' +; - 'php_values' +; - 'php_admin_values' +; When not set, the global prefix (or /usr) applies instead. +; Note: This directive can also be relative to the global prefix. +; Default Value: none +;prefix = /path/to/pools/$pool + +; Unix user/group of processes +; Note: The user is mandatory. If the group is not set, the default user's group +; will be used. +user = www-data +group = www-data + +; The address on which to accept FastCGI requests. +; Valid syntaxes are: +; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on +; a specific port; +; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on +; a specific port; +; 'port' - to listen on a TCP socket to all addresses +; (IPv6 and IPv4-mapped) on a specific port; +; '/path/to/unix/socket' - to listen on a unix socket. +; Note: This value is mandatory. +listen = /run/php/php8.1-fpm.sock + +; Set listen(2) backlog. +; Default Value: 511 (-1 on FreeBSD and OpenBSD) +;listen.backlog = 511 + +; Set permissions for unix socket, if one is used. In Linux, read/write +; permissions must be set in order to allow connections from a web server. Many +; BSD-derived systems allow connections regardless of permissions. The owner +; and group can be specified either by name or by their numeric IDs. +; Default Values: user and group are set as the running user +; mode is set to 0660 +listen.owner = www-data +listen.group = www-data +;listen.mode = 0660 +; When POSIX Access Control Lists are supported you can set them using +; these options, value is a comma separated list of user/group names. +; When set, listen.owner and listen.group are ignored +;listen.acl_users = +;listen.acl_groups = + +; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. +; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original +; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address +; must be separated by a comma. If this value is left blank, connections will be +; accepted from any ip address. +; Default Value: any +;listen.allowed_clients = 127.0.0.1 + +; Specify the nice(2) priority to apply to the pool processes (only if set) +; The value can vary from -19 (highest priority) to 20 (lower priority) +; Note: - It will only work if the FPM master process is launched as root +; - The pool processes will inherit the master process priority +; unless it specified otherwise +; Default Value: no set +; process.priority = -19 + +; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user +; or group is different than the master process user. It allows to create process +; core dump and ptrace the process for the pool user. +; Default Value: no +; process.dumpable = yes + +; Choose how the process manager will control the number of child processes. +; Possible Values: +; static - a fixed number (pm.max_children) of child processes; +; dynamic - the number of child processes are set dynamically based on the +; following directives. With this process management, there will be +; always at least 1 children. +; pm.max_children - the maximum number of children that can +; be alive at the same time. +; pm.start_servers - the number of children created on startup. +; pm.min_spare_servers - the minimum number of children in 'idle' +; state (waiting to process). If the number +; of 'idle' processes is less than this +; number then some children will be created. +; pm.max_spare_servers - the maximum number of children in 'idle' +; state (waiting to process). If the number +; of 'idle' processes is greater than this +; number then some children will be killed. +; pm.max_spawn_rate - the maximum number of rate to spawn child +; processes at once. +; ondemand - no children are created at startup. Children will be forked when +; new requests will connect. The following parameter are used: +; pm.max_children - the maximum number of children that +; can be alive at the same time. +; pm.process_idle_timeout - The number of seconds after which +; an idle process will be killed. +; Note: This value is mandatory. +pm = dynamic + +; The number of child processes to be created when pm is set to 'static' and the +; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. +; This value sets the limit on the number of simultaneous requests that will be +; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. +; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP +; CGI. The below defaults are based on a server without much resources. Don't +; forget to tweak pm.* to fit your needs. +; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' +; Note: This value is mandatory. +pm.max_children = 5 + +; The number of child processes created on startup. +; Note: Used only when pm is set to 'dynamic' +; Default Value: (min_spare_servers + max_spare_servers) / 2 +pm.start_servers = 2 + +; The desired minimum number of idle server processes. +; Note: Used only when pm is set to 'dynamic' +; Note: Mandatory when pm is set to 'dynamic' +pm.min_spare_servers = 1 + +; The desired maximum number of idle server processes. +; Note: Used only when pm is set to 'dynamic' +; Note: Mandatory when pm is set to 'dynamic' +pm.max_spare_servers = 3 + +; The number of rate to spawn child processes at once. +; Note: Used only when pm is set to 'dynamic' +; Note: Mandatory when pm is set to 'dynamic' +; Default Value: 32 +;pm.max_spawn_rate = 32 + +; The number of seconds after which an idle process will be killed. +; Note: Used only when pm is set to 'ondemand' +; Default Value: 10s +;pm.process_idle_timeout = 10s; + +; The number of requests each child process should execute before respawning. +; This can be useful to work around memory leaks in 3rd party libraries. For +; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. +; Default Value: 0 +;pm.max_requests = 500 + +; The URI to view the FPM status page. If this value is not set, no URI will be +; recognized as a status page. It shows the following information: +; pool - the name of the pool; +; process manager - static, dynamic or ondemand; +; start time - the date and time FPM has started; +; start since - number of seconds since FPM has started; +; accepted conn - the number of request accepted by the pool; +; listen queue - the number of request in the queue of pending +; connections (see backlog in listen(2)); +; max listen queue - the maximum number of requests in the queue +; of pending connections since FPM has started; +; listen queue len - the size of the socket queue of pending connections; +; idle processes - the number of idle processes; +; active processes - the number of active processes; +; total processes - the number of idle + active processes; +; max active processes - the maximum number of active processes since FPM +; has started; +; max children reached - number of times, the process limit has been reached, +; when pm tries to start more children (works only for +; pm 'dynamic' and 'ondemand'); +; Value are updated in real time. +; Example output: +; pool: www +; process manager: static +; start time: 01/Jul/2011:17:53:49 +0200 +; start since: 62636 +; accepted conn: 190460 +; listen queue: 0 +; max listen queue: 1 +; listen queue len: 42 +; idle processes: 4 +; active processes: 11 +; total processes: 15 +; max active processes: 12 +; max children reached: 0 +; +; By default the status page output is formatted as text/plain. Passing either +; 'html', 'xml' or 'json' in the query string will return the corresponding +; output syntax. Example: +; http://www.foo.bar/status +; http://www.foo.bar/status?json +; http://www.foo.bar/status?html +; http://www.foo.bar/status?xml +; +; By default the status page only outputs short status. Passing 'full' in the +; query string will also return status for each pool process. +; Example: +; http://www.foo.bar/status?full +; http://www.foo.bar/status?json&full +; http://www.foo.bar/status?html&full +; http://www.foo.bar/status?xml&full +; The Full status returns for each process: +; pid - the PID of the process; +; state - the state of the process (Idle, Running, ...); +; start time - the date and time the process has started; +; start since - the number of seconds since the process has started; +; requests - the number of requests the process has served; +; request duration - the duration in µs of the requests; +; request method - the request method (GET, POST, ...); +; request URI - the request URI with the query string; +; content length - the content length of the request (only with POST); +; user - the user (PHP_AUTH_USER) (or '-' if not set); +; script - the main script called (or '-' if not set); +; last request cpu - the %cpu the last request consumed +; it's always 0 if the process is not in Idle state +; because CPU calculation is done when the request +; processing has terminated; +; last request memory - the max amount of memory the last request consumed +; it's always 0 if the process is not in Idle state +; because memory calculation is done when the request +; processing has terminated; +; If the process is in Idle state, then informations are related to the +; last request the process has served. Otherwise informations are related to +; the current request being served. +; Example output: +; ************************ +; pid: 31330 +; state: Running +; start time: 01/Jul/2011:17:53:49 +0200 +; start since: 63087 +; requests: 12808 +; request duration: 1250261 +; request method: GET +; request URI: /test_mem.php?N=10000 +; content length: 0 +; user: - +; script: /home/fat/web/docs/php/test_mem.php +; last request cpu: 0.00 +; last request memory: 0 +; +; Note: There is a real-time FPM status monitoring sample web page available +; It's available in: /usr/share/php/8.1/fpm/status.html +; +; Note: The value must start with a leading slash (/). The value can be +; anything, but it may not be a good idea to use the .php extension or it +; may conflict with a real PHP file. +; Default Value: not set +;pm.status_path = /status + +; The address on which to accept FastCGI status request. This creates a new +; invisible pool that can handle requests independently. This is useful +; if the main pool is busy with long running requests because it is still possible +; to get the status before finishing the long running requests. +; +; Valid syntaxes are: +; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on +; a specific port; +; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on +; a specific port; +; 'port' - to listen on a TCP socket to all addresses +; (IPv6 and IPv4-mapped) on a specific port; +; '/path/to/unix/socket' - to listen on a unix socket. +; Default Value: value of the listen option +;pm.status_listen = 127.0.0.1:9001 + +; The ping URI to call the monitoring page of FPM. If this value is not set, no +; URI will be recognized as a ping page. This could be used to test from outside +; that FPM is alive and responding, or to +; - create a graph of FPM availability (rrd or such); +; - remove a server from a group if it is not responding (load balancing); +; - trigger alerts for the operating team (24/7). +; Note: The value must start with a leading slash (/). The value can be +; anything, but it may not be a good idea to use the .php extension or it +; may conflict with a real PHP file. +; Default Value: not set +;ping.path = /ping + +; This directive may be used to customize the response of a ping request. The +; response is formatted as text/plain with a 200 response code. +; Default Value: pong +;ping.response = pong + +; The access log file +; Default: not set +;access.log = log/$pool.access.log + +; The access log format. +; The following syntax is allowed +; %%: the '%' character +; %C: %CPU used by the request +; it can accept the following format: +; - %{user}C for user CPU only +; - %{system}C for system CPU only +; - %{total}C for user + system CPU (default) +; %d: time taken to serve the request +; it can accept the following format: +; - %{seconds}d (default) +; - %{milliseconds}d +; - %{milli}d +; - %{microseconds}d +; - %{micro}d +; %e: an environment variable (same as $_ENV or $_SERVER) +; it must be associated with embraces to specify the name of the env +; variable. Some examples: +; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e +; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e +; %f: script filename +; %l: content-length of the request (for POST request only) +; %m: request method +; %M: peak of memory allocated by PHP +; it can accept the following format: +; - %{bytes}M (default) +; - %{kilobytes}M +; - %{kilo}M +; - %{megabytes}M +; - %{mega}M +; %n: pool name +; %o: output header +; it must be associated with embraces to specify the name of the header: +; - %{Content-Type}o +; - %{X-Powered-By}o +; - %{Transfert-Encoding}o +; - .... +; %p: PID of the child that serviced the request +; %P: PID of the parent of the child that serviced the request +; %q: the query string +; %Q: the '?' character if query string exists +; %r: the request URI (without the query string, see %q and %Q) +; %R: remote IP address +; %s: status (response code) +; %t: server time the request was received +; it can accept a strftime(3) format: +; %d/%b/%Y:%H:%M:%S %z (default) +; The strftime(3) format must be encapsulated in a %{}t tag +; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t +; %T: time the log has been written (the request has finished) +; it can accept a strftime(3) format: +; %d/%b/%Y:%H:%M:%S %z (default) +; The strftime(3) format must be encapsulated in a %{}t tag +; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t +; %u: remote user +; +; Default: "%R - %u %t \"%m %r\" %s" +;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{milli}d %{kilo}M %C%%" + +; The log file for slow requests +; Default Value: not set +; Note: slowlog is mandatory if request_slowlog_timeout is set +;slowlog = log/$pool.log.slow + +; The timeout for serving a single request after which a PHP backtrace will be +; dumped to the 'slowlog' file. A value of '0s' means 'off'. +; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) +; Default Value: 0 +;request_slowlog_timeout = 0 + +; Depth of slow log stack trace. +; Default Value: 20 +;request_slowlog_trace_depth = 20 + +; The timeout for serving a single request after which the worker process will +; be killed. This option should be used when the 'max_execution_time' ini option +; does not stop script execution for some reason. A value of '0' means 'off'. +; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) +; Default Value: 0 +;request_terminate_timeout = 0 + +; The timeout set by 'request_terminate_timeout' ini option is not engaged after +; application calls 'fastcgi_finish_request' or when application has finished and +; shutdown functions are being called (registered via register_shutdown_function). +; This option will enable timeout limit to be applied unconditionally +; even in such cases. +; Default Value: no +;request_terminate_timeout_track_finished = no + +; Set open file descriptor rlimit. +; Default Value: system defined value +;rlimit_files = 1024 + +; Set max core size rlimit. +; Possible Values: 'unlimited' or an integer greater or equal to 0 +; Default Value: system defined value +;rlimit_core = 0 + +; Chroot to this directory at the start. This value must be defined as an +; absolute path. When this value is not set, chroot is not used. +; Note: you can prefix with '$prefix' to chroot to the pool prefix or one +; of its subdirectories. If the pool prefix is not set, the global prefix +; will be used instead. +; Note: chrooting is a great security feature and should be used whenever +; possible. However, all PHP paths will be relative to the chroot +; (error_log, sessions.save_path, ...). +; Default Value: not set +;chroot = + +; Chdir to this directory at the start. +; Note: relative path can be used. +; Default Value: current directory or / when chroot +;chdir = /var/www + +; Redirect worker stdout and stderr into main error log. If not set, stdout and +; stderr will be redirected to /dev/null according to FastCGI specs. +; Note: on highloaded environment, this can cause some delay in the page +; process time (several ms). +; Default Value: no +;catch_workers_output = yes + +; Decorate worker output with prefix and suffix containing information about +; the child that writes to the log and if stdout or stderr is used as well as +; log level and time. This options is used only if catch_workers_output is yes. +; Settings to "no" will output data as written to the stdout or stderr. +; Default value: yes +;decorate_workers_output = no + +; Clear environment in FPM workers +; Prevents arbitrary environment variables from reaching FPM worker processes +; by clearing the environment in workers before env vars specified in this +; pool configuration are added. +; Setting to "no" will make all environment variables available to PHP code +; via getenv(), $_ENV and $_SERVER. +; Default Value: yes +;clear_env = no + +; Limits the extensions of the main script FPM will allow to parse. This can +; prevent configuration mistakes on the web server side. You should only limit +; FPM to .php extensions to prevent malicious users to use other extensions to +; execute php code. +; Note: set an empty value to allow all extensions. +; Default Value: .php +;security.limit_extensions = .php .php3 .php4 .php5 .php7 + +; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from +; the current environment. +; Default Value: clean env +;env[HOSTNAME] = $HOSTNAME +;env[PATH] = /usr/local/bin:/usr/bin:/bin +;env[TMP] = /tmp +;env[TMPDIR] = /tmp +;env[TEMP] = /tmp + +; Additional php.ini defines, specific to this pool of workers. These settings +; overwrite the values previously defined in the php.ini. The directives are the +; same as the PHP SAPI: +; php_value/php_flag - you can set classic ini defines which can +; be overwritten from PHP call 'ini_set'. +; php_admin_value/php_admin_flag - these directives won't be overwritten by +; PHP call 'ini_set' +; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. + +; Defining 'extension' will load the corresponding shared extension from +; extension_dir. Defining 'disable_functions' or 'disable_classes' will not +; overwrite previously defined php.ini values, but will append the new value +; instead. + +; Note: path INI options can be relative and will be expanded with the prefix +; (pool, global or /usr) + +; Default Value: nothing is defined by default except the values in php.ini and +; specified at startup with the -d argument +;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com +;php_flag[display_errors] = off +;php_admin_value[error_log] = /var/log/fpm-php.www.log +;php_admin_flag[log_errors] = on +;php_admin_value[memory_limit] = 32M From c7b872b7787c38b89cc2683b2abf369bb920c024 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 12 Dec 2021 16:28:16 +0100 Subject: [PATCH 323/984] check_if_service_exists() function --- func/main.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/func/main.sh b/func/main.sh index a92bb59a..69737c72 100644 --- a/func/main.sh +++ b/func/main.sh @@ -1114,3 +1114,11 @@ send_email_to_admin() { fi echo "$2" | $SENDMAIL -s "$1" "$email" 'yes' } + +check_if_service_exists() { + if [ $(systemctl list-units --all -t service --full --no-legend | grep -c "$1") -gt 0 ]; then + echo "1" + else + echo "0" + fi +} From 77de50a6cd759b0ded4b67f9b5a0dcf522af92b2 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 12 Dec 2021 16:31:21 +0100 Subject: [PATCH 324/984] Create v-ensure-poold-folders-not-empty --- bin/v-ensure-poold-folders-not-empty | 31 ++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 bin/v-ensure-poold-folders-not-empty diff --git a/bin/v-ensure-poold-folders-not-empty b/bin/v-ensure-poold-folders-not-empty new file mode 100644 index 00000000..cb89765f --- /dev/null +++ b/bin/v-ensure-poold-folders-not-empty @@ -0,0 +1,31 @@ +#!/bin/bash +# info: ensure that pool.d folders are not empty +# options: +# +# The function ensure that pool.d folders are not empty + + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +# Includes +source $VESTA/func/main.sh +source $VESTA/func/domain.sh + + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +ensure_poold_folders_not_empty + + +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# + +# Logging +log_event "$OK" "$ARGUMENTS" + +exit From 3c17e159a1ceafd88c627381d29e6608e462f899 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 12 Dec 2021 16:49:24 +0100 Subject: [PATCH 325/984] Ensure that pool.d folders are not empty --- func/domain.sh | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/func/domain.sh b/func/domain.sh index 6bd05b91..9310e9c4 100644 --- a/func/domain.sh +++ b/func/domain.sh @@ -590,3 +590,28 @@ is_domain_new() { get_domain_values() { eval $(grep "DOMAIN='$domain'" $USER_DATA/$1.conf) } + +# Ensure that pool.d folders are not empty +ensure_poold_folders_not_empty () { + for D in /etc/php/*; do + if [ -d "${D}" ]; then + BD=$(basename ${D}) + POOLD="${D}/fpm/pool.d" + if [ -d "$POOLD" ]; then + # echo $POOLD + # service_to_check="php${BD}-fpm" + # service_exists=$(check_if_service_exists $service_to_check) + # if [ $service_exists -eq 1 ]; then + # echo "$BD = $service_to_check = $POOLD = $service_exists" + ls=$(ls $POOLD | grep -c '.conf') + if [ $ls -eq 0 ]; then + # echo "$BD = $POOLD = $ls" + if [ -f "/usr/local/vesta/src/deb/for-download/tools/default-pool.d/$BD/www.conf" ] && [ ! -f "/etc/php/$BD/fpm/pool.d/www.conf" ]; then + cp /usr/local/vesta/src/deb/for-download/tools/default-pool.d/$BD/www.conf /etc/php/$BD/fpm/pool.d/www.conf + fi + fi + # fi + fi + fi + done +} From 9c04bb8417530d31713b0efac416715ea832ad4c Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 12 Dec 2021 17:25:19 +0100 Subject: [PATCH 326/984] Ensure pool.d folders after template changes --- func/domain.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/func/domain.sh b/func/domain.sh index 9310e9c4..f2a45e71 100644 --- a/func/domain.sh +++ b/func/domain.sh @@ -225,6 +225,10 @@ add_web_config() { $user $domain $local_ip $HOMEDIR \ $HOMEDIR/$user/web/$domain/public_html fi + + if [[ "$2" =~ ^PHP-FPM ]]; then + ensure_poold_folders_not_empty + fi } # Get config top and bottom line number From 353526d2897944357275b734c9a410843528ab83 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 12 Dec 2021 17:31:50 +0100 Subject: [PATCH 327/984] Update postinst --- src/deb/vesta/postinst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/deb/vesta/postinst b/src/deb/vesta/postinst index d06501bd..de6fa3b0 100755 --- a/src/deb/vesta/postinst +++ b/src/deb/vesta/postinst @@ -15,6 +15,8 @@ if [ ! -e "/usr/local/vesta/data/users/admin" ]; then exit fi +/usr/local/vesta/bin/v-ensure-poold-folders-not-empty + if [ ! -d "/usr/local/vesta/data/upgrades" ]; then mkdir -p /usr/local/vesta/data/upgrades fi From 3b9d81bc807039483282348abebf9e184e1725cc Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 12 Dec 2021 17:32:45 +0100 Subject: [PATCH 328/984] Version 0.9.8-26-53 --- src/deb/latest.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/latest.txt b/src/deb/latest.txt index e61c21d3..1fa6aa49 100644 --- a/src/deb/latest.txt +++ b/src/deb/latest.txt @@ -1 +1 @@ -vesta-0.9.8-26-52 +vesta-0.9.8-26-53 From 5631e6d732b89ca215ee790321f67bf19f8f25bc Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 12 Dec 2021 17:35:18 +0100 Subject: [PATCH 329/984] Update Changelog.md --- Changelog.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Changelog.md b/Changelog.md index 9e9a1390..ca274724 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,8 @@ +Version 0.9.8-26-53 [12-Dec-2021] +================================================== +* Support for PHP 8.1 +* Function to ensure that pool.d folders are not empty + Version 0.9.8-26-52 [23-Nov-2021] ================================================== * Fix for not to match wildcard "*domains" and "databases*" while restoring From c03d8cd75eab317feb7e0753b40a6c6c3ddfe9af Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 12 Dec 2021 19:25:40 +0100 Subject: [PATCH 330/984] PHP-FPM 8.1 templates --- .../tools/apache-fpm-tpl/PHP-FPM-81-public.sh | 112 ++++++++++++++++++ .../apache-fpm-tpl/PHP-FPM-81-public.stpl | 44 +++++++ .../apache-fpm-tpl/PHP-FPM-81-public.tpl | 38 ++++++ .../tools/apache-fpm-tpl/PHP-FPM-81.sh | 112 ++++++++++++++++++ .../tools/apache-fpm-tpl/PHP-FPM-81.stpl | 44 +++++++ .../tools/apache-fpm-tpl/PHP-FPM-81.tpl | 38 ++++++ 6 files changed, 388 insertions(+) create mode 100644 src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81-public.sh create mode 100644 src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81-public.stpl create mode 100644 src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81-public.tpl create mode 100644 src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81.sh create mode 100644 src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81.stpl create mode 100644 src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81.tpl diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81-public.sh b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81-public.sh new file mode 100644 index 00000000..67c8ccfb --- /dev/null +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81-public.sh @@ -0,0 +1,112 @@ +#!/bin/bash +# Adding php pool conf +user="$1" +domain="$2" +ip="$3" +home_dir="$4" +docroot="$5" + +pool_conf="[$2] + +listen = /run/php/php8.1-fpm-$2.sock +listen.owner = $1 +listen.group = $1 +listen.mode = 0666 + +user = $1 +group = $1 + +pm = ondemand +pm.max_children = 8 +request_terminate_timeout = 90s +pm.max_requests = 4000 +pm.process_idle_timeout = 10s +pm.status_path = /status + +php_admin_value[upload_tmp_dir] = /home/$1/tmp +php_admin_value[session.save_path] = /home/$1/tmp +php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube +php_admin_value[upload_max_filesize] = 80M +php_admin_value[max_execution_time] = 30 +php_admin_value[post_max_size] = 80M +php_admin_value[memory_limit] = 256M +php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" +php_admin_flag[mysql.allow_persistent] = off +php_admin_flag[safe_mode] = off + +env[PATH] = /usr/local/bin:/usr/bin:/bin +env[TMP] = /home/$1/tmp +env[TMPDIR] = /home/$1/tmp +env[TEMP] = /home/$1/tmp +" + +pool_file_56="/etc/php/5.6/fpm/pool.d/$2.conf" +pool_file_70="/etc/php/7.0/fpm/pool.d/$2.conf" +pool_file_71="/etc/php/7.1/fpm/pool.d/$2.conf" +pool_file_72="/etc/php/7.2/fpm/pool.d/$2.conf" +pool_file_73="/etc/php/7.3/fpm/pool.d/$2.conf" +pool_file_74="/etc/php/7.4/fpm/pool.d/$2.conf" +pool_file_80="/etc/php/8.0/fpm/pool.d/$2.conf" +pool_file_81="/etc/php/8.1/fpm/pool.d/$2.conf" + +if [ -f "$pool_file_56" ]; then + rm $pool_file_56 + systemctl reset-failed php5.6-fpm + systemctl restart php5.6-fpm +fi + +if [ -f "$pool_file_70" ]; then + rm $pool_file_70 + systemctl reset-failed php7.0-fpm + systemctl restart php7.0-fpm +fi + +if [ -f "$pool_file_71" ]; then + rm $pool_file_71 + systemctl reset-failed php7.1-fpm + systemctl restart php7.1-fpm +fi + +if [ -f "$pool_file_72" ]; then + rm $pool_file_72 + systemctl reset-failed php7.2-fpm + systemctl restart php7.2-fpm +fi + +if [ -f "$pool_file_73" ]; then + rm $pool_file_73 + systemctl reset-failed php7.3-fpm + systemctl restart php7.3-fpm +fi + +if [ -f "$pool_file_74" ]; then + rm $pool_file_74 + systemctl reset-failed php7.4-fpm + systemctl restart php7.4-fpm +fi + +if [ -f "$pool_file_80" ]; then + rm $pool_file_80 + systemctl reset-failed php8.0-fpm + systemctl restart php8.0-fpm +fi + +write_file=0 +if [ ! -f "$pool_file_81" ]; then + write_file=1 +else + user_count=$(grep -c "/home/$1/" $pool_file_81) + if [ $user_count -eq 0 ]; then + write_file=1 + fi +fi +if [ $write_file -eq 1 ]; then + echo "$pool_conf" > $pool_file_81 + systemctl reset-failed php8.1-fpm + systemctl restart php8.1-fpm +fi +if [ -f "/etc/php/8.1/fpm/pool.d/www.conf" ]; then + rm /etc/php/8.1/fpm/pool.d/www.conf +fi + +exit 0 diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81-public.stpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81-public.stpl new file mode 100644 index 00000000..0d6404ec --- /dev/null +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81-public.stpl @@ -0,0 +1,44 @@ + + + ServerName %domain_idn% + %alias_string% + ServerAdmin %email% + DocumentRoot %sdocroot%/public + ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ + Alias /vstats/ %home%/%user%/web/%domain%/stats/ + Alias /error/ %home%/%user%/web/%domain%/document_errors/ + #SuexecUserGroup %user% %group% + CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes + CustomLog /var/log/%web_system%/domains/%domain%.log combined + ErrorLog /var/log/%web_system%/domains/%domain%.error.log + + AllowOverride All + + + AllowOverride All + SSLRequireSSL + Options +Includes -Indexes +ExecCGI + + SSLEngine on + SSLVerifyClient none + SSLCertificateFile %ssl_crt% + SSLCertificateKeyFile %ssl_key% + %ssl_ca_str%SSLCertificateChainFile %ssl_ca% +# +# RMode config +# RUidGid %user% %group% +# RGroups www-data +# +# +# AssignUserID %user% %group% +# + + + SetHandler "proxy:unix:/run/php/php8.1-fpm-%domain%.sock|fcgi://localhost/" + + SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0 + + IncludeOptional %home%/%user%/conf/web/s%web_system%.%domain%.conf* + + + diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81-public.tpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81-public.tpl new file mode 100644 index 00000000..f2814063 --- /dev/null +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81-public.tpl @@ -0,0 +1,38 @@ + + + ServerName %domain_idn% + %alias_string% + ServerAdmin %email% + DocumentRoot %docroot%/public + ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ + Alias /vstats/ %home%/%user%/web/%domain%/stats/ + Alias /error/ %home%/%user%/web/%domain%/document_errors/ + #SuexecUserGroup %user% %group% + CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes + CustomLog /var/log/%web_system%/domains/%domain%.log combined + ErrorLog /var/log/%web_system%/domains/%domain%.error.log + + AllowOverride All + + + AllowOverride All + Options +Includes -Indexes +ExecCGI + +# +# RMode config +# RUidGid %user% %group% +# RGroups www-data +# +# +# AssignUserID %user% %group% +# + + + SetHandler "proxy:unix:/run/php/php8.1-fpm-%domain%.sock|fcgi://localhost/" + + SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0 + + IncludeOptional %home%/%user%/conf/web/%web_system%.%domain%.conf* + + + diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81.sh b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81.sh new file mode 100644 index 00000000..67c8ccfb --- /dev/null +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81.sh @@ -0,0 +1,112 @@ +#!/bin/bash +# Adding php pool conf +user="$1" +domain="$2" +ip="$3" +home_dir="$4" +docroot="$5" + +pool_conf="[$2] + +listen = /run/php/php8.1-fpm-$2.sock +listen.owner = $1 +listen.group = $1 +listen.mode = 0666 + +user = $1 +group = $1 + +pm = ondemand +pm.max_children = 8 +request_terminate_timeout = 90s +pm.max_requests = 4000 +pm.process_idle_timeout = 10s +pm.status_path = /status + +php_admin_value[upload_tmp_dir] = /home/$1/tmp +php_admin_value[session.save_path] = /home/$1/tmp +php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube +php_admin_value[upload_max_filesize] = 80M +php_admin_value[max_execution_time] = 30 +php_admin_value[post_max_size] = 80M +php_admin_value[memory_limit] = 256M +php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" +php_admin_flag[mysql.allow_persistent] = off +php_admin_flag[safe_mode] = off + +env[PATH] = /usr/local/bin:/usr/bin:/bin +env[TMP] = /home/$1/tmp +env[TMPDIR] = /home/$1/tmp +env[TEMP] = /home/$1/tmp +" + +pool_file_56="/etc/php/5.6/fpm/pool.d/$2.conf" +pool_file_70="/etc/php/7.0/fpm/pool.d/$2.conf" +pool_file_71="/etc/php/7.1/fpm/pool.d/$2.conf" +pool_file_72="/etc/php/7.2/fpm/pool.d/$2.conf" +pool_file_73="/etc/php/7.3/fpm/pool.d/$2.conf" +pool_file_74="/etc/php/7.4/fpm/pool.d/$2.conf" +pool_file_80="/etc/php/8.0/fpm/pool.d/$2.conf" +pool_file_81="/etc/php/8.1/fpm/pool.d/$2.conf" + +if [ -f "$pool_file_56" ]; then + rm $pool_file_56 + systemctl reset-failed php5.6-fpm + systemctl restart php5.6-fpm +fi + +if [ -f "$pool_file_70" ]; then + rm $pool_file_70 + systemctl reset-failed php7.0-fpm + systemctl restart php7.0-fpm +fi + +if [ -f "$pool_file_71" ]; then + rm $pool_file_71 + systemctl reset-failed php7.1-fpm + systemctl restart php7.1-fpm +fi + +if [ -f "$pool_file_72" ]; then + rm $pool_file_72 + systemctl reset-failed php7.2-fpm + systemctl restart php7.2-fpm +fi + +if [ -f "$pool_file_73" ]; then + rm $pool_file_73 + systemctl reset-failed php7.3-fpm + systemctl restart php7.3-fpm +fi + +if [ -f "$pool_file_74" ]; then + rm $pool_file_74 + systemctl reset-failed php7.4-fpm + systemctl restart php7.4-fpm +fi + +if [ -f "$pool_file_80" ]; then + rm $pool_file_80 + systemctl reset-failed php8.0-fpm + systemctl restart php8.0-fpm +fi + +write_file=0 +if [ ! -f "$pool_file_81" ]; then + write_file=1 +else + user_count=$(grep -c "/home/$1/" $pool_file_81) + if [ $user_count -eq 0 ]; then + write_file=1 + fi +fi +if [ $write_file -eq 1 ]; then + echo "$pool_conf" > $pool_file_81 + systemctl reset-failed php8.1-fpm + systemctl restart php8.1-fpm +fi +if [ -f "/etc/php/8.1/fpm/pool.d/www.conf" ]; then + rm /etc/php/8.1/fpm/pool.d/www.conf +fi + +exit 0 diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81.stpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81.stpl new file mode 100644 index 00000000..fb191d03 --- /dev/null +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81.stpl @@ -0,0 +1,44 @@ + + + ServerName %domain_idn% + %alias_string% + ServerAdmin %email% + DocumentRoot %sdocroot% + ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ + Alias /vstats/ %home%/%user%/web/%domain%/stats/ + Alias /error/ %home%/%user%/web/%domain%/document_errors/ + #SuexecUserGroup %user% %group% + CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes + CustomLog /var/log/%web_system%/domains/%domain%.log combined + ErrorLog /var/log/%web_system%/domains/%domain%.error.log + + AllowOverride All + + + AllowOverride All + SSLRequireSSL + Options +Includes -Indexes +ExecCGI + + SSLEngine on + SSLVerifyClient none + SSLCertificateFile %ssl_crt% + SSLCertificateKeyFile %ssl_key% + %ssl_ca_str%SSLCertificateChainFile %ssl_ca% +# +# RMode config +# RUidGid %user% %group% +# RGroups www-data +# +# +# AssignUserID %user% %group% +# + + + SetHandler "proxy:unix:/run/php/php8.1-fpm-%domain%.sock|fcgi://localhost/" + + SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0 + + IncludeOptional %home%/%user%/conf/web/s%web_system%.%domain%.conf* + + + diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81.tpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81.tpl new file mode 100644 index 00000000..1a02ec15 --- /dev/null +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81.tpl @@ -0,0 +1,38 @@ + + + ServerName %domain_idn% + %alias_string% + ServerAdmin %email% + DocumentRoot %docroot% + ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ + Alias /vstats/ %home%/%user%/web/%domain%/stats/ + Alias /error/ %home%/%user%/web/%domain%/document_errors/ + #SuexecUserGroup %user% %group% + CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes + CustomLog /var/log/%web_system%/domains/%domain%.log combined + ErrorLog /var/log/%web_system%/domains/%domain%.error.log + + AllowOverride All + + + AllowOverride All + Options +Includes -Indexes +ExecCGI + +# +# RMode config +# RUidGid %user% %group% +# RGroups www-data +# +# +# AssignUserID %user% %group% +# + + + SetHandler "proxy:unix:/run/php/php8.1-fpm-%domain%.sock|fcgi://localhost/" + + SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0 + + IncludeOptional %home%/%user%/conf/web/%web_system%.%domain%.conf* + + + From a17af106fdf529355f69dc26325263901471524c Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 12 Dec 2021 19:38:43 +0100 Subject: [PATCH 331/984] Support for PHP 8.1 --- .../for-download/tools/multi-php-install.sh | 59 ++++++++++++++----- 1 file changed, 45 insertions(+), 14 deletions(-) diff --git a/src/deb/for-download/tools/multi-php-install.sh b/src/deb/for-download/tools/multi-php-install.sh index 6d30ab25..9380fe25 100644 --- a/src/deb/for-download/tools/multi-php-install.sh +++ b/src/deb/for-download/tools/multi-php-install.sh @@ -11,6 +11,7 @@ inst_72=0 inst_73=0 inst_74=0 inst_80=0 +inst_81=0 ####################################################################### @@ -48,8 +49,11 @@ fi if [ $# -gt 7 ]; then inst_80=$8 fi +if [ $# -gt 8 ]; then + inst_81=$9 +fi -if [ $inst_56 -eq 1 ] || [ $inst_70 -eq 1 ] || [ $inst_71 -eq 1 ] || [ $inst_72 -eq 1 ] || [ $inst_73 -eq 1 ] || [ $inst_74 -eq 1 ] || [ $inst_80 -eq 1 ]; then +if [ $inst_56 -eq 1 ] || [ $inst_70 -eq 1 ] || [ $inst_71 -eq 1 ] || [ $inst_72 -eq 1 ] || [ $inst_73 -eq 1 ] || [ $inst_74 -eq 1 ] || [ $inst_80 -eq 1 ] || [ $inst_81 -eq 1 ]; then inst_repo=1 fi @@ -277,23 +281,50 @@ if [ "$inst_80" -eq 1 ]; then press_enter "=== PHP 8.0 installed, press enter to continue ===============================================================================" fi +if [ "$inst_81" -eq 1 ]; then + press_enter "=== Press enter to install PHP 8.1 ===============================================================================" + apt -y install php8.1-mbstring php8.1-bcmath php8.1-cli php8.1-curl php8.1-fpm php8.1-gd php8.1-intl php8.1-mysql php8.1-soap php8.1-xml php8.1-zip php8.1-memcache php8.1-memcached + update-rc.d php8.1-fpm defaults + a2enconf php8.1-fpm + a2dismod php8.1 + apt-get -y remove libapache2-mod-php8.1 + systemctl restart apache2 + cp -r /etc/php/8.1/ /root/vst_install_backups/php8.1/ + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-81.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-81.stpl + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-81.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-81.tpl + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-81.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-81.sh + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-81-public.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-81-public.stpl + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-81-public.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-81-public.tpl + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-81-public.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-81-public.sh + chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-81.sh + chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-81-public.sh + echo "=== Patching php.ini for php8.1" + wget -nv https://c.myvestacp.com/tools/patches/php8.0.patch -O /root/php8.1.patch + patch /etc/php/8.1/fpm/php.ini < /root/php8.1.patch + if [ $memory -gt 9999999 ]; then + sed -i "s|opcache.memory_consumption=512|opcache.memory_consumption=2048|g" /etc/php/8.1/fpm/php.ini + fi + service php8.1-fpm restart + press_enter "=== PHP 8.1 installed, press enter to continue ===============================================================================" +fi + apt update apt upgrade -y if [ $debian_version -ge 10 ]; then - a2dismod ruid2 - a2dismod suexec - a2dismod php5.6 - a2dismod php7.0 - a2dismod php7.1 - a2dismod php7.2 - a2dismod php7.3 - a2dismod php7.4 - a2dismod php8.0 - a2dismod php8.1 - a2dismod mpm_prefork - a2enmod mpm_event - apt-get -y remove libapache2-mod-php* + a2dismod ruid2 > /dev/null 2>&1 + a2dismod suexec > /dev/null 2>&1 + a2dismod php5.6 > /dev/null 2>&1 + a2dismod php7.0 > /dev/null 2>&1 + a2dismod php7.1 > /dev/null 2>&1 + a2dismod php7.2 > /dev/null 2>&1 + a2dismod php7.3 > /dev/null 2>&1 + a2dismod php7.4 > /dev/null 2>&1 + a2dismod php8.0 > /dev/null 2>&1 + a2dismod php8.1 > /dev/null 2>&1 + a2dismod mpm_prefork > /dev/null 2>&1 + a2enmod mpm_event > /dev/null 2>&1 + apt-get -y remove libapache2-mod-php* > /dev/null 2>&1 service apache2 restart fi From 549ba4e1546437aabdbd2add33a8b3e9e0042341 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 12 Dec 2021 19:39:37 +0100 Subject: [PATCH 332/984] Update multi-php-install.sh --- src/deb/for-download/tools/multi-php-install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/deb/for-download/tools/multi-php-install.sh b/src/deb/for-download/tools/multi-php-install.sh index 9380fe25..20badca8 100644 --- a/src/deb/for-download/tools/multi-php-install.sh +++ b/src/deb/for-download/tools/multi-php-install.sh @@ -309,8 +309,8 @@ if [ "$inst_81" -eq 1 ]; then fi -apt update -apt upgrade -y +apt update > /dev/null 2>&1 +apt upgrade -y > /dev/null 2>&1 if [ $debian_version -ge 10 ]; then a2dismod ruid2 > /dev/null 2>&1 From 71bdbfbcf533b5464b71a1ae0cacb90b0226e2b0 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 12 Dec 2021 20:27:57 +0100 Subject: [PATCH 333/984] php8.1.patch --- .../for-download/tools/patches/php8.1.patch | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 src/deb/for-download/tools/patches/php8.1.patch diff --git a/src/deb/for-download/tools/patches/php8.1.patch b/src/deb/for-download/tools/patches/php8.1.patch new file mode 100644 index 00000000..479af689 --- /dev/null +++ b/src/deb/for-download/tools/patches/php8.1.patch @@ -0,0 +1,77 @@ +--- /etc/php/8.1/fpm/php.ini.orig 2021-11-25 21:48:52.000000000 +0100 ++++ /etc/php/8.1/fpm/php.ini 2021-12-12 20:25:01.000000000 +0100 +@@ -320,7 +320,7 @@ + ; This directive allows you to disable certain functions. + ; It receives a comma-delimited list of function names. + ; https://php.net/disable-functions +-disable_functions = ++disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,exec,system,passthru,shell_exec,proc_open,popen + + ; This directive allows you to disable certain classes. + ; It receives a comma-delimited list of class names. +@@ -423,11 +423,11 @@ + ;max_input_nesting_level = 64 + + ; How many GET/POST/COOKIE input variables may be accepted +-;max_input_vars = 1000 ++max_input_vars = 6000 + + ; Maximum amount of memory a script may consume + ; https://php.net/memory-limit +-memory_limit = 128M ++memory_limit = 256M + + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ; Error handling and logging ; +@@ -695,7 +695,7 @@ + ; Its value may be 0 to disable the limit. It is ignored if POST data reading + ; is disabled through enable_post_data_reading. + ; https://php.net/post-max-size +-post_max_size = 8M ++post_max_size = 50M + + ; Automatically add files before PHP document. + ; https://php.net/auto-prepend-file +@@ -847,7 +847,7 @@ + + ; Maximum allowed size for uploaded files. + ; https://php.net/upload-max-filesize +-upload_max_filesize = 2M ++upload_max_filesize = 50M + + ; Maximum number of files that can be uploaded via a single request + max_file_uploads = 20 +@@ -1093,7 +1093,7 @@ + + ; The path to a log file that will log all mail() calls. Log entries include + ; the full path of the script, line number, To address and headers. +-;mail.log = ++mail.log = /var/log/php-mail.log + ; Log mail to syslog (Event Log on Windows). + ;mail.log = syslog + +@@ -1764,20 +1764,20 @@ + + [opcache] + ; Determines if Zend OPCache is enabled +-;opcache.enable=1 ++opcache.enable=1 + + ; Determines if Zend OPCache is enabled for the CLI version of PHP +-;opcache.enable_cli=0 ++opcache.enable_cli=0 + + ; The OPcache shared memory storage size. +-;opcache.memory_consumption=128 ++opcache.memory_consumption=512 + + ; The amount of memory for interned strings in Mbytes. + ;opcache.interned_strings_buffer=8 + + ; The maximum number of keys (scripts) in the OPcache hash table. + ; Only numbers between 200 and 1000000 are allowed. +-;opcache.max_accelerated_files=10000 ++opcache.max_accelerated_files=100000 + + ; The maximum percentage of "wasted" memory until a restart is scheduled. + ;opcache.max_wasted_percentage=5 From d399d74fd98de86e88e160469cc479021d1c8e08 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 12 Dec 2021 20:29:25 +0100 Subject: [PATCH 334/984] Update multi-php-install.sh --- src/deb/for-download/tools/multi-php-install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/for-download/tools/multi-php-install.sh b/src/deb/for-download/tools/multi-php-install.sh index 20badca8..1b3ff855 100644 --- a/src/deb/for-download/tools/multi-php-install.sh +++ b/src/deb/for-download/tools/multi-php-install.sh @@ -299,7 +299,7 @@ if [ "$inst_81" -eq 1 ]; then chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-81.sh chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-81-public.sh echo "=== Patching php.ini for php8.1" - wget -nv https://c.myvestacp.com/tools/patches/php8.0.patch -O /root/php8.1.patch + wget -nv https://c.myvestacp.com/tools/patches/php8.1.patch -O /root/php8.1.patch patch /etc/php/8.1/fpm/php.ini < /root/php8.1.patch if [ $memory -gt 9999999 ]; then sed -i "s|opcache.memory_consumption=512|opcache.memory_consumption=2048|g" /etc/php/8.1/fpm/php.ini From 4ec64b019162cd6d53a2dd93ea1aa3651e9d6426 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 12 Dec 2021 21:14:15 +0100 Subject: [PATCH 335/984] Update keep_mpm_event.sh --- upd/keep_mpm_event.sh | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/upd/keep_mpm_event.sh b/upd/keep_mpm_event.sh index 36ccae5f..9095a601 100644 --- a/upd/keep_mpm_event.sh +++ b/upd/keep_mpm_event.sh @@ -21,8 +21,8 @@ if [ "$1" = 'background' ]; then if [ "$check_grep" -eq 1 ]; then echo "=== OK, we have Apache2" release=$(cat /etc/debian_version | tr "." "\n" | head -n1) - if [ "$release" -eq 10 ]; then - echo "=== OK, it's Debian 10" + if [ "$release" -ge 10 ]; then + echo "=== OK, it's Debian 10 or 11" switch_to_mpm_event=1 else check_grep=$(/usr/local/vesta/bin/v-list-sys-web-status | grep -c "Server MPM: event") @@ -40,6 +40,7 @@ fi if [ "$switch_to_mpm_event" -eq 1 ]; then echo "=== OK, let's ensure mpm_event" + a2dismod ruid2 > /dev/null 2>&1 a2dismod suexec > /dev/null 2>&1 a2dismod php5.6 > /dev/null 2>&1 @@ -49,10 +50,10 @@ if [ "$switch_to_mpm_event" -eq 1 ]; then a2dismod php7.3 > /dev/null 2>&1 a2dismod php7.4 > /dev/null 2>&1 a2dismod php8.0 > /dev/null 2>&1 + a2dismod php8.1 > /dev/null 2>&1 a2dismod mpm_prefork > /dev/null 2>&1 a2enmod mpm_event > /dev/null 2>&1 - apt-get -y remove libapache2-mod-php7.4 > /dev/null 2>&1 - apt-get -y remove libapache2-mod-php8.0 > /dev/null 2>&1 + apt-get -y remove libapache2-mod-php* > /dev/null 2>&1 service apache2 restart echo "=== Done!" fi From 98dcbbc691549d2145695e3da864a3d79c8cbae6 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 12 Dec 2021 21:16:22 +0100 Subject: [PATCH 336/984] Update postinst --- src/deb/vesta/postinst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/deb/vesta/postinst b/src/deb/vesta/postinst index de6fa3b0..01b6ac48 100755 --- a/src/deb/vesta/postinst +++ b/src/deb/vesta/postinst @@ -211,8 +211,8 @@ if [ $(systemctl list-unit-files | grep clamav-daemon | grep -c "disabled") -eq fi # Making sure mpm_event will stay -if [ ! -f "/usr/local/vesta/data/upgrades/keeping-mpm-event-2" ]; then - touch /usr/local/vesta/data/upgrades/keeping-mpm-event-2 +if [ ! -f "/usr/local/vesta/data/upgrades/keeping-mpm-event-3" ]; then + touch /usr/local/vesta/data/upgrades/keeping-mpm-event-3 echo "=== scheduling keeping-mpm-event check script" echo "bash /usr/local/vesta/upd/keep_mpm_event.sh 'background' >> /usr/local/vesta/data/upgrades/keeping-mpm-event.log 2>&1" >> /usr/local/vesta/data/queue/restart.pipe /usr/local/vesta/bin/v-add-cron-restart-job > /dev/null 2>&1 From 93d8ca4a81f9d9043d70d0feff3019239b71d561 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 12 Dec 2021 21:17:24 +0100 Subject: [PATCH 337/984] Update vst-install-debian.sh --- install/vst-install-debian.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index 4f48ca0b..fef0b8f7 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -1730,6 +1730,7 @@ touch /usr/local/vesta/data/upgrades/change-clamav-socket-v3 touch /usr/local/vesta/data/upgrades/change-clamav-socket-v4 touch /usr/local/vesta/data/upgrades/keeping-mpm-event touch /usr/local/vesta/data/upgrades/keeping-mpm-event-2 +touch /usr/local/vesta/data/upgrades/keeping-mpm-event-3 touch /usr/local/vesta/data/upgrades/fix_ssl_directive_in_templates touch /usr/local/vesta/data/upgrades/clamav_block_exe_in_archives touch /usr/local/vesta/data/upgrades/clearing-letsencrypt-pipe From 39fd40f0cc4e67533d4d39c3ed4dc889604c9e82 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 13 Dec 2021 00:57:03 +0100 Subject: [PATCH 338/984] Update multi-php-install.sh --- src/deb/for-download/tools/multi-php-install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/src/deb/for-download/tools/multi-php-install.sh b/src/deb/for-download/tools/multi-php-install.sh index 1b3ff855..e847df17 100644 --- a/src/deb/for-download/tools/multi-php-install.sh +++ b/src/deb/for-download/tools/multi-php-install.sh @@ -81,6 +81,7 @@ echo "inst_72=$inst_72" echo "inst_73=$inst_73" echo "inst_74=$inst_74" echo "inst_80=$inst_80" +echo "inst_81=$inst_81" echo "wait_to_press_enter=$wait_to_press_enter" press_enter "=== Press enter to continue ===============================================================================" From 11b5f0d9c763d86bf52715fa2107a39ab5ea102a Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 16 Dec 2021 23:53:46 +0100 Subject: [PATCH 339/984] Delete create_wp_http --- src/deb/for-download/tools/create_wp_http | 104 ---------------------- 1 file changed, 104 deletions(-) delete mode 100644 src/deb/for-download/tools/create_wp_http diff --git a/src/deb/for-download/tools/create_wp_http b/src/deb/for-download/tools/create_wp_http deleted file mode 100644 index a3d69cf4..00000000 --- a/src/deb/for-download/tools/create_wp_http +++ /dev/null @@ -1,104 +0,0 @@ -#!/bin/bash - -if [ $# -lt 1 ]; then - echo usage: create_wp_http domain [db_name] [email] - exit 1 -fi - -domain=$1 - -PATH=$PATH:/usr/local/vesta/bin -export PATH - -user=$(/usr/local/vesta/bin/v-search-domain-owner $domain) - -START_DB="wp"; -if [ $# -gt 1 ]; then - START_DB=$2 -fi - -email="info@$domain"; -if [ $# -gt 2 ]; then - email=$3 -fi - -if [ ! -d "/home/$user" ]; then - echo "User doesn't exist"; - exit 1; -fi - -if [ ! -d "/home/$user/web/$domain/public_html" ]; then - echo "Domain doesn't exist"; - exit 1; -fi - -WORKINGDIR="/home/$user/web/$domain/public_html" -# FILE=latest.tar.gz - -rm -rf $WORKINGDIR/* - -#DBUSERSUF=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 5 | head -n 1) -DBUSERSUF="$START_DB"; -DBUSERSUFB="$START_DB"; -DBUSER=$user\_$DBUSERSUFB; -DB_OK=0; -if [ ! -d "/var/lib/mysql/$DBUSER" ]; then - DB_OK=1; -fi - -if [ "$DB_OK" -eq "0" ]; then -i=1; -while [ $i -lt 99 ] -do -i=$((i+1)); -DBUSERSUF="${DBUSERSUFB}${i}"; -DBUSER=$user\_$DBUSERSUF; -if [ ! -d "/var/lib/mysql/$DBUSER" ]; then -break; -fi -done -fi - -PASSWDDB=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 8 | head -n 1) - -v-add-database $user $DBUSERSUF $DBUSERSUF $PASSWDDB mysql - -cd /home/$user - -rm -rf /home/$user/wp -curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -chmod +x wp-cli.phar -sudo mv wp-cli.phar wp - -cd /home/$user/web/$domain/public_html - -sudo -H -u$user /home/$user/wp core download -sudo -H -u$user /home/$user/wp core config --dbname=$DBUSER --dbuser=$DBUSER --dbpass=$PASSWDDB - -password=$(LC_CTYPE=C tr -dc A-Za-z0-9_\!\@\#\$\%\^\&\*\(\)-+= < /dev/urandom | head -c 12) - -sudo -H -u$user /home/$user/wp core install --url="$domain" --title="$domain" --admin_user="admin" --admin_password="$password" --admin_email="$email" --path=$WORKINGDIR - -#FIX za https://github.com/wp-cli/wp-cli/issues/2632 - -mysql -u$DBUSER -p$PASSWDDB -e "USE $DBUSER; update wp_options set option_value = 'http://$domain' where option_name = 'siteurl'; update wp_options set option_value = 'http://$domain' where option_name = 'home';" - -# clear - -echo "=================================================================" -echo "Installation is complete. Your username/password is listed below." -echo "" -echo "Site: http://$domain/" -echo "" -echo "Login: http://$domain/wp-admin/" -echo "Username: admin" -echo "Password: $password" -echo "" -echo "=================================================================" - -chown -R $user:$user $WORKINGDIR - -rm -rf /home/$user/wp - -echo "create_wp: Done." -exit 0 \ No newline at end of file From 5b9672b26f0613a1f4dac641d719e7ebc8744362 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 16 Dec 2021 23:56:59 +0100 Subject: [PATCH 340/984] Add files via upload --- .../for-download/tools/roundcube-filters.tgz | Bin 0 -> 13187 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/deb/for-download/tools/roundcube-filters.tgz diff --git a/src/deb/for-download/tools/roundcube-filters.tgz b/src/deb/for-download/tools/roundcube-filters.tgz new file mode 100644 index 0000000000000000000000000000000000000000..c7c496906d78e603e3ae069f0d5167ecee86d7e1 GIT binary patch literal 13187 zcmV-}GknY+iwFSmiMC+?1MFSva}!6l=WF~|bh)2+|xY|jWjcw zkq{=kQKy2XneKB=pYHzsx~ET%QdHE5s>L@v$J7C7Yi}?A3#sxi|J>Qr+1uOO(X+L; zXG2G4XIJ-@4XF2d8f7O#)3J)s231k?YWc$M|BI%S)&5zWJc`pKc1#i*u7fr3mY$xV z_V4Z9+P$H(ySEeiKu_-$xZc?f-!`C*hFjv3e&_Aq{~EM78ip=F6?t20XRM<^$!HOWo=t)M%S}_@pzVCHI~g}V=~d>f-czIsJ)BH;d%RX ztR1aVg5PfMEag9@Q78Av$VhCYJEo}VcvnY9XZ*k3*?TaVArfw*sRgzfeH$qKnL6Aao#g1u0)toM;M9s%!whpws)GuR+3|ND-KhD2# z8U2Pz2bds@NfM1TI3%VjhAbqFA;Lvk;j(>ihA@)J2-5Ko(iON&kVbSJI*|q+lB@{3 zo>U3e2}%a3gZ%w*w;IqY5-h-9%M}NdA)|b)X&U#{RMkgh?J4 zvvR&}$W&6q7}fjZ<{g#?gKfiPV3dGUtk0k`ZYix$zFpM~6%7(yRfa1SZy`xwt?sT) zj{%sKdL0@%nZZfKxhRF7Z{^2MO%^vCV5 zTzr<=m)S=qx>T|shR_fdsXkgJhFukjSB`z%7UVA7FVZBDHG-gHnFC9+hHqLn`1rLl zXmOm*itXLd#Z@Dg(Iv5U;LUx9(VK&Nhr9djT)gKiI?-5rnjhdwQjvA&HyXD{peh;y z^EeQQB7EJ}8gE6cQP>BT=cRt=Rm8dkg;O*gqjHjsxmKhqB3xx32m0B#Af6J|V5v3x z5zWpGZG{7~ivU9+9pg|GPil!B?=stJFDj74&Rz8tC1T>u19cXa6NeAhSyW5xsu`NVsh)WIP<=&@;KZK?>nkdYiG6$PE1DG(gY_2G6K~Y%VJJFSr<+tI zabSO)MUBLPI@?t{nmD+pzM{ICI8>*bjH8Le+v_VjmPs7?OXQ*lc5UDJ&aRjwM9Q61 zq^ttG1@NWFK_!5GsLHY51;sEe$P!tANh2kiMI?VWs7eG=31BAw@KV1-<$>N8EmxBJ<2$O3bdKCKd+o)VQA8C5wN+5Dl*9%g_=WpS9u+S8(emKQzs{!Ju%{a4oh z4b~B|{_EVb#k2lnj{%zNzja9e;H!yN1_G^psMWJnXx(gP&_}c78QRT7hkf5QX=mA< z+wvf0D?Ca@M-)}iK-+t*jcCkHrK!~wX{17WESX%0Z*B_ z-nTT6W4emVs0p(IDHlwY6<3gF_6ks&BOY0bLECbYq*Wlq^BOIzjDrPtRwlu}w^?xn)tFy7 zwQ>Q0UFCjn`GZ6>jco>&wXl8hy-IFn>RQ2v3s8Q><8xG)XNJtd?R((n2~?O~ndBCL z;z=`OVJ_BMra?23N%)d7L~)c&Lj+ri%hUx{yJ@TCKs4xCs1Rewfr40DaWM}IxBJR{ zuwa=SCfzODY^eYH?NZe)d^2xeB7E@|lmO~I6mh=SEIrV0;NPP5{V%qDB|6krc* zVLGe@4WjbgY$zqT9=Y0hGWFeI!-v<(w0C~xJYpBTVr3;^qC~zUkDQ4b>g{{-d93?)NEMlw!j{HcEX zkjA!#R6nxcC1q2&t8%*hu1)tlb_CM=8$?%0Diy@?dvo_#;E`M}4e!Jn+6_?e@&OXC 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 p&R$jD0RXID9IpTX literal 0 HcmV?d00001 From e44da1ee669cbab77c96e1ed72ddc2f028adac7f Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 17 Dec 2021 00:36:35 +0100 Subject: [PATCH 341/984] Add files via upload --- .../tools/install-new-roundcube.sh | 176 ++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 src/deb/for-download/tools/install-new-roundcube.sh diff --git a/src/deb/for-download/tools/install-new-roundcube.sh b/src/deb/for-download/tools/install-new-roundcube.sh new file mode 100644 index 00000000..a2409e71 --- /dev/null +++ b/src/deb/for-download/tools/install-new-roundcube.sh @@ -0,0 +1,176 @@ +#!/bin/bash + +USER='webmail' +DOMAIN='' # enter domain or subdomain + +VERSION='1.5.1' +DOWNLOAD="https://github.com/roundcube/roundcubemail/releases/download/$VERSION/roundcubemail-$VERSION-complete.tar.gz" + +LOGINMESSAGE1='Click here for NEW Webmail' +LOGINMESSAGE2='(it is adapted to mobile phones)' + +DATABASE_NAME_WITHOUT_PREFIX="roundcube" +DATABASE_NAME="${USER}_roundcube" + +############################################################################################################################# + +if [ $# -gt 0 ]; then + USER=$1 +fi +if [ $# -gt 1 ]; then + DOMAIN=$2 +fi + +if [ -z "$USER" ] || [ -z "$DOMAIN" ]; then + echo "Usage:" + echo "bash install-new-roundcube.sh VESTAUSER YOURDOMAIN.com" + exit 1 +fi + +source /usr/local/vesta/func/main.sh +source /usr/local/vesta/func/db.sh + +# Defining password-gen function +gen_pass() { + MATRIX='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' + LENGTH=32 + while [ ${n:=1} -le $LENGTH ]; do + PASS="$PASS${MATRIX:$(($RANDOM%${#MATRIX})):1}" + let n+=1 + done + echo "$PASS" +} +DATABASE_PASSWORD=$(gen_pass) + +fix_ownership() { + chown -R $USER:$USER /home/$USER/web/$DOMAIN/public_html/ + find /home/$USER/web/$DOMAIN/public_html/ -type d -exec chmod 755 {} + + find /home/$USER/web/$DOMAIN/public_html/ -type f -exec chmod 644 {} + +} + + +if [ ! -d "/home/$USER" ]; then + echo "== Creating user: $USER" + USER_PASSWORD=$(gen_pass) + /usr/local/vesta/bin/v-add-user "$USER" "$USER_PASSWORD" "admin@$DOMAIN" 'default' 'Webmail' 'Roundcube' + /usr/local/vesta/bin/v-change-user-language "$USER" 'en' +fi + +if [ ! -d "/home/$USER/web/$DOMAIN" ]; then + echo "== Adding domain: $DOMAIN" + /usr/local/vesta/bin/v-add-domain "$USER" "$DOMAIN" "" "yes" + if [ ! -d "/home/$USER/web/$DOMAIN" ]; then + echo "ERROR: Can't create domain $DOMAIN, maybe it's already created under the other user?" + exit 1 + fi + if [ -f "/usr/local/vesta/data/templates/web/apache2/PHP-FPM-74.tpl" ]; then + /usr/local/vesta/bin/v-change-web-domain-tpl "$USER" "$DOMAIN" 'PHP-FPM-74' 'yes' + fi +fi + +pub_ip=$(curl -4 -s https://scripts.myvestacp.com/ip.php) +domain_host_ip=$(host $DOMAIN | head -n 1 | awk '{print $NF}') +if [ "$pub_ip" != "$domain_host_ip" ]; then + echo "ERROR:" + echo "$DOMAIN is not pointing to $pub_ip" + echo "I see it is pointing to $domain_host_ip" + read -p "Are you sure you want to continue? (y/n)" answer + if [ "$answer" = "y" ] || [ "$answer" = "Y" ]; then + echo "Okay, we will continue." + else + echo "OK, good bye!" + exit 1 + fi +fi + +number_of_files=$(ls /home/$USER/web/$DOMAIN/public_html | wc -l) +if [ $number_of_files -eq 2 ] && [ -f "/home/$USER/web/$DOMAIN/public_html/index.html" ] && [ -f "/home/$USER/web/$DOMAIN/public_html/robots.txt" ]; then + rm /home/$USER/web/$DOMAIN/public_html/index.html + rm /home/$USER/web/$DOMAIN/public_html/robots.txt +else + echo "== public_html folder is not empty, aborting." + exit 1 +fi + + +if [ ! -f "/home/$USER/conf/web/ssl.$DOMAIN.ca" ]; then + www_host="www.$DOMAIN" + www_host_ip=$(host $www_host | head -n 1 | awk '{print $NF}') + if [ "$www_host_ip" != "$domain_host_ip" ]; then + echo "=== Deleting www" + www_host="" + /usr/local/vesta/bin/v-delete-web-domain-alias "$USER" "$DOMAIN" "$www_host" 'no' + /usr/local/vesta/bin/v-delete-dns-on-web-alias "$USER" "$DOMAIN" "$www_host" 'no' + fi + echo "== Installing LetsEncrypt SSL, please wait..." + /usr/local/vesta/bin/v-add-letsencrypt-domain "$USER" "$DOMAIN" "$www_host" 'yes' + /usr/local/vesta/bin/v-change-web-domain-proxy-tpl "$USER" "$DOMAIN" 'force-https' 'jpg,jpeg,gif,png,ico,svg,css,zip,tgz,gz,rar,bz2,doc,xls,exe,pdf,ppt,txt,odt,ods,odp,odf,tar,wav,bmp,rtf,js,mp3,avi,mpeg,flv,woff,woff2' 'yes' +fi + +echo "== Downloading Roundcube..." +wget -nv "$DOWNLOAD" -O /root/roundcubemail.tar.gz + +echo "== Extracting Roundcube..." +tar --directory /home/$USER/web/$DOMAIN/public_html --strip-components=1 -xzf /root/roundcubemail.tar.gz roundcubemail-$VERSION/ + +fix_ownership + +DB_EXISTS=$(check_if_database_exists "$USER" "$DATABASE_NAME") +if [ "$DB_EXISTS" = "no" ]; then + echo "== Creating database: $DATABASE_NAME" + /usr/local/vesta/bin/v-add-database "$USER" "$DATABASE_NAME_WITHOUT_PREFIX" "$DATABASE_NAME_WITHOUT_PREFIX" "$DATABASE_PASSWORD" 'mysql' 'localhost' 'utf8' +fi + +if [ -f "/usr/local/vesta/data/templates/web/apache2/PHP-FPM-73.tpl" ]; then + echo "================================" + echo "== Installing php7.3-imap module" + apt update + apt install -y php7.3-imap + echo "================================" +fi +if [ -f "/usr/local/vesta/data/templates/web/apache2/PHP-FPM-74.tpl" ]; then + echo "================================" + echo "== Installing php7.4-imap module" + apt update + apt install -y php7.4-imap + echo "================================" +fi + +echo "-------------------------------------" +echo "Go to:" +echo "https://${DOMAIN}/installer/" +echo "... and finish the Roundcube installation." +echo "" +echo "You will be asked for:" +echo "Database user: $DATABASE_NAME" +echo "Database name: $DATABASE_NAME" +echo "Database pass: $DATABASE_PASSWORD" +echo "" +echo "Suggestion: plugins to be enabled: new_user_dialog, password" +echo "-------------------------------------" +echo "" +echo "=== When you click 'Initialize database' button (and see DB Write: OK), you can consider the installation as done." +read -p "=== Then press Enter here, and this script will remove /home/$USER/web/$DOMAIN/public_html/installer folder ===" +rm -rf /home/$USER/web/$DOMAIN/public_html/installer + +if [ -d "/home/$USER/web/$DOMAIN/public_html/plugins/password" ]; then + cp /usr/share/roundcube/plugins/password/config.inc.php /home/$USER/web/$DOMAIN/public_html/plugins/password/config.inc.php + cp /usr/share/roundcube/plugins/password/drivers/vesta.php /home/$USER/web/$DOMAIN/public_html/plugins/password/drivers/vesta.php +fi + +wget -nv https://c.myvestacp.com/tools/roundcube-filters.tgz -O /root/roundcube-filters.tgz +tar --directory /home/$USER/web/$DOMAIN/public_html/plugins -xzf /root/roundcube-filters.tgz + +sed -i "s/\$config\['plugins'\] = \[/\$config['plugins'] = ['filters', /g" /home/$USER/web/$DOMAIN/public_html/config/config.inc.php +echo "\$config['session_lifetime'] = 1080;" >> /home/$USER/web/$DOMAIN/public_html/config/config.inc.php + +fix_ownership + +sed -i "s||

$LOGINMESSAGE1
$LOGINMESSAGE2


\n\n|g" /usr/share/roundcube/skins/larry/templates/login.html + + +echo "-------------------------------------" +echo "Roundcube installed!" +echo "Go to:" +echo "https://${DOMAIN}/" +echo "-------------------------------------" From b965a3d1844e946328ecd25fc561202fd4fc456b Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 17 Dec 2021 00:42:45 +0100 Subject: [PATCH 342/984] Delete install-new-roundcube.sh --- .../tools/install-new-roundcube.sh | 176 ------------------ 1 file changed, 176 deletions(-) delete mode 100644 src/deb/for-download/tools/install-new-roundcube.sh diff --git a/src/deb/for-download/tools/install-new-roundcube.sh b/src/deb/for-download/tools/install-new-roundcube.sh deleted file mode 100644 index a2409e71..00000000 --- a/src/deb/for-download/tools/install-new-roundcube.sh +++ /dev/null @@ -1,176 +0,0 @@ -#!/bin/bash - -USER='webmail' -DOMAIN='' # enter domain or subdomain - -VERSION='1.5.1' -DOWNLOAD="https://github.com/roundcube/roundcubemail/releases/download/$VERSION/roundcubemail-$VERSION-complete.tar.gz" - -LOGINMESSAGE1='Click here for NEW Webmail' -LOGINMESSAGE2='(it is adapted to mobile phones)' - -DATABASE_NAME_WITHOUT_PREFIX="roundcube" -DATABASE_NAME="${USER}_roundcube" - -############################################################################################################################# - -if [ $# -gt 0 ]; then - USER=$1 -fi -if [ $# -gt 1 ]; then - DOMAIN=$2 -fi - -if [ -z "$USER" ] || [ -z "$DOMAIN" ]; then - echo "Usage:" - echo "bash install-new-roundcube.sh VESTAUSER YOURDOMAIN.com" - exit 1 -fi - -source /usr/local/vesta/func/main.sh -source /usr/local/vesta/func/db.sh - -# Defining password-gen function -gen_pass() { - MATRIX='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' - LENGTH=32 - while [ ${n:=1} -le $LENGTH ]; do - PASS="$PASS${MATRIX:$(($RANDOM%${#MATRIX})):1}" - let n+=1 - done - echo "$PASS" -} -DATABASE_PASSWORD=$(gen_pass) - -fix_ownership() { - chown -R $USER:$USER /home/$USER/web/$DOMAIN/public_html/ - find /home/$USER/web/$DOMAIN/public_html/ -type d -exec chmod 755 {} + - find /home/$USER/web/$DOMAIN/public_html/ -type f -exec chmod 644 {} + -} - - -if [ ! -d "/home/$USER" ]; then - echo "== Creating user: $USER" - USER_PASSWORD=$(gen_pass) - /usr/local/vesta/bin/v-add-user "$USER" "$USER_PASSWORD" "admin@$DOMAIN" 'default' 'Webmail' 'Roundcube' - /usr/local/vesta/bin/v-change-user-language "$USER" 'en' -fi - -if [ ! -d "/home/$USER/web/$DOMAIN" ]; then - echo "== Adding domain: $DOMAIN" - /usr/local/vesta/bin/v-add-domain "$USER" "$DOMAIN" "" "yes" - if [ ! -d "/home/$USER/web/$DOMAIN" ]; then - echo "ERROR: Can't create domain $DOMAIN, maybe it's already created under the other user?" - exit 1 - fi - if [ -f "/usr/local/vesta/data/templates/web/apache2/PHP-FPM-74.tpl" ]; then - /usr/local/vesta/bin/v-change-web-domain-tpl "$USER" "$DOMAIN" 'PHP-FPM-74' 'yes' - fi -fi - -pub_ip=$(curl -4 -s https://scripts.myvestacp.com/ip.php) -domain_host_ip=$(host $DOMAIN | head -n 1 | awk '{print $NF}') -if [ "$pub_ip" != "$domain_host_ip" ]; then - echo "ERROR:" - echo "$DOMAIN is not pointing to $pub_ip" - echo "I see it is pointing to $domain_host_ip" - read -p "Are you sure you want to continue? (y/n)" answer - if [ "$answer" = "y" ] || [ "$answer" = "Y" ]; then - echo "Okay, we will continue." - else - echo "OK, good bye!" - exit 1 - fi -fi - -number_of_files=$(ls /home/$USER/web/$DOMAIN/public_html | wc -l) -if [ $number_of_files -eq 2 ] && [ -f "/home/$USER/web/$DOMAIN/public_html/index.html" ] && [ -f "/home/$USER/web/$DOMAIN/public_html/robots.txt" ]; then - rm /home/$USER/web/$DOMAIN/public_html/index.html - rm /home/$USER/web/$DOMAIN/public_html/robots.txt -else - echo "== public_html folder is not empty, aborting." - exit 1 -fi - - -if [ ! -f "/home/$USER/conf/web/ssl.$DOMAIN.ca" ]; then - www_host="www.$DOMAIN" - www_host_ip=$(host $www_host | head -n 1 | awk '{print $NF}') - if [ "$www_host_ip" != "$domain_host_ip" ]; then - echo "=== Deleting www" - www_host="" - /usr/local/vesta/bin/v-delete-web-domain-alias "$USER" "$DOMAIN" "$www_host" 'no' - /usr/local/vesta/bin/v-delete-dns-on-web-alias "$USER" "$DOMAIN" "$www_host" 'no' - fi - echo "== Installing LetsEncrypt SSL, please wait..." - /usr/local/vesta/bin/v-add-letsencrypt-domain "$USER" "$DOMAIN" "$www_host" 'yes' - /usr/local/vesta/bin/v-change-web-domain-proxy-tpl "$USER" "$DOMAIN" 'force-https' 'jpg,jpeg,gif,png,ico,svg,css,zip,tgz,gz,rar,bz2,doc,xls,exe,pdf,ppt,txt,odt,ods,odp,odf,tar,wav,bmp,rtf,js,mp3,avi,mpeg,flv,woff,woff2' 'yes' -fi - -echo "== Downloading Roundcube..." -wget -nv "$DOWNLOAD" -O /root/roundcubemail.tar.gz - -echo "== Extracting Roundcube..." -tar --directory /home/$USER/web/$DOMAIN/public_html --strip-components=1 -xzf /root/roundcubemail.tar.gz roundcubemail-$VERSION/ - -fix_ownership - -DB_EXISTS=$(check_if_database_exists "$USER" "$DATABASE_NAME") -if [ "$DB_EXISTS" = "no" ]; then - echo "== Creating database: $DATABASE_NAME" - /usr/local/vesta/bin/v-add-database "$USER" "$DATABASE_NAME_WITHOUT_PREFIX" "$DATABASE_NAME_WITHOUT_PREFIX" "$DATABASE_PASSWORD" 'mysql' 'localhost' 'utf8' -fi - -if [ -f "/usr/local/vesta/data/templates/web/apache2/PHP-FPM-73.tpl" ]; then - echo "================================" - echo "== Installing php7.3-imap module" - apt update - apt install -y php7.3-imap - echo "================================" -fi -if [ -f "/usr/local/vesta/data/templates/web/apache2/PHP-FPM-74.tpl" ]; then - echo "================================" - echo "== Installing php7.4-imap module" - apt update - apt install -y php7.4-imap - echo "================================" -fi - -echo "-------------------------------------" -echo "Go to:" -echo "https://${DOMAIN}/installer/" -echo "... and finish the Roundcube installation." -echo "" -echo "You will be asked for:" -echo "Database user: $DATABASE_NAME" -echo "Database name: $DATABASE_NAME" -echo "Database pass: $DATABASE_PASSWORD" -echo "" -echo "Suggestion: plugins to be enabled: new_user_dialog, password" -echo "-------------------------------------" -echo "" -echo "=== When you click 'Initialize database' button (and see DB Write: OK), you can consider the installation as done." -read -p "=== Then press Enter here, and this script will remove /home/$USER/web/$DOMAIN/public_html/installer folder ===" -rm -rf /home/$USER/web/$DOMAIN/public_html/installer - -if [ -d "/home/$USER/web/$DOMAIN/public_html/plugins/password" ]; then - cp /usr/share/roundcube/plugins/password/config.inc.php /home/$USER/web/$DOMAIN/public_html/plugins/password/config.inc.php - cp /usr/share/roundcube/plugins/password/drivers/vesta.php /home/$USER/web/$DOMAIN/public_html/plugins/password/drivers/vesta.php -fi - -wget -nv https://c.myvestacp.com/tools/roundcube-filters.tgz -O /root/roundcube-filters.tgz -tar --directory /home/$USER/web/$DOMAIN/public_html/plugins -xzf /root/roundcube-filters.tgz - -sed -i "s/\$config\['plugins'\] = \[/\$config['plugins'] = ['filters', /g" /home/$USER/web/$DOMAIN/public_html/config/config.inc.php -echo "\$config['session_lifetime'] = 1080;" >> /home/$USER/web/$DOMAIN/public_html/config/config.inc.php - -fix_ownership - -sed -i "s||

$LOGINMESSAGE1
$LOGINMESSAGE2


\n\n|g" /usr/share/roundcube/skins/larry/templates/login.html - - -echo "-------------------------------------" -echo "Roundcube installed!" -echo "Go to:" -echo "https://${DOMAIN}/" -echo "-------------------------------------" From 5fa3645004704c48d03bf28d7f4ce8aa7f3feea8 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 17 Dec 2021 00:43:49 +0100 Subject: [PATCH 343/984] Adding install-new-roundcube.sh --- .../tools/install-new-roundcube.sh | 176 ++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 src/deb/for-download/tools/install-new-roundcube.sh diff --git a/src/deb/for-download/tools/install-new-roundcube.sh b/src/deb/for-download/tools/install-new-roundcube.sh new file mode 100644 index 00000000..9e0dc6cc --- /dev/null +++ b/src/deb/for-download/tools/install-new-roundcube.sh @@ -0,0 +1,176 @@ +#!/bin/bash + +USER='webmail' +DOMAIN='' # enter domain or subdomain + +VERSION='1.5.1' +DOWNLOAD="https://github.com/roundcube/roundcubemail/releases/download/$VERSION/roundcubemail-$VERSION-complete.tar.gz" + +LOGINMESSAGE1='Click here for NEW Webmail' +LOGINMESSAGE2='(it is adapted to mobile phones)' + +DATABASE_NAME_WITHOUT_PREFIX="roundcube" +DATABASE_NAME="${USER}_roundcube" + +############################################################################################################################# + +if [ $# -gt 0 ]; then + USER=$1 +fi +if [ $# -gt 1 ]; then + DOMAIN=$2 +fi + +if [ -z "$USER" ] || [ -z "$DOMAIN" ]; then + echo "Usage:" + echo "bash install-new-roundcube.sh VESTAUSER YOURDOMAIN.com" + exit 1 +fi + +source /usr/local/vesta/func/main.sh +source /usr/local/vesta/func/db.sh + +# Defining password-gen function +gen_pass() { + MATRIX='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' + LENGTH=32 + while [ ${n:=1} -le $LENGTH ]; do + PASS="$PASS${MATRIX:$(($RANDOM%${#MATRIX})):1}" + let n+=1 + done + echo "$PASS" +} +DATABASE_PASSWORD=$(gen_pass) + +fix_ownership() { + chown -R $USER:$USER /home/$USER/web/$DOMAIN/public_html/ + find /home/$USER/web/$DOMAIN/public_html/ -type d -exec chmod 755 {} + + find /home/$USER/web/$DOMAIN/public_html/ -type f -exec chmod 644 {} + +} + + +if [ ! -d "/home/$USER" ]; then + echo "== Creating user: $USER" + USER_PASSWORD=$(gen_pass) + /usr/local/vesta/bin/v-add-user "$USER" "$USER_PASSWORD" "admin@$DOMAIN" 'default' 'Webmail' 'Roundcube' + /usr/local/vesta/bin/v-change-user-language "$USER" 'en' +fi + +if [ ! -d "/home/$USER/web/$DOMAIN" ]; then + echo "== Adding domain: $DOMAIN" + /usr/local/vesta/bin/v-add-domain "$USER" "$DOMAIN" "" "yes" + if [ ! -d "/home/$USER/web/$DOMAIN" ]; then + echo "ERROR: Can't create domain $DOMAIN, maybe it's already created under the other user?" + exit 1 + fi + if [ -f "/usr/local/vesta/data/templates/web/apache2/PHP-FPM-74.tpl" ]; then + /usr/local/vesta/bin/v-change-web-domain-tpl "$USER" "$DOMAIN" 'PHP-FPM-74' 'yes' + fi +fi + +pub_ip=$(curl -4 -s https://scripts.myvestacp.com/ip.php) +domain_host_ip=$(host $DOMAIN | head -n 1 | awk '{print $NF}') +if [ "$pub_ip" != "$domain_host_ip" ]; then + echo "ERROR:" + echo "$DOMAIN is not pointing to $pub_ip" + echo "I see it is pointing to $domain_host_ip" + read -p "Are you sure you want to continue? (y/n)" answer + if [ "$answer" = "y" ] || [ "$answer" = "Y" ]; then + echo "Okay, we will continue." + else + echo "OK, good bye!" + exit 1 + fi +fi + +number_of_files=$(ls /home/$USER/web/$DOMAIN/public_html | wc -l) +if [ $number_of_files -eq 2 ] && [ -f "/home/$USER/web/$DOMAIN/public_html/index.html" ] && [ -f "/home/$USER/web/$DOMAIN/public_html/robots.txt" ]; then + rm /home/$USER/web/$DOMAIN/public_html/index.html + rm /home/$USER/web/$DOMAIN/public_html/robots.txt +else + echo "== public_html folder is not empty, aborting." + exit 1 +fi + + +if [ ! -f "/home/$USER/conf/web/ssl.$DOMAIN.ca" ]; then + www_host="www.$DOMAIN" + www_host_ip=$(host $www_host | head -n 1 | awk '{print $NF}') + if [ "$www_host_ip" != "$domain_host_ip" ]; then + echo "=== Deleting www" + www_host="" + /usr/local/vesta/bin/v-delete-web-domain-alias "$USER" "$DOMAIN" "$www_host" 'no' + /usr/local/vesta/bin/v-delete-dns-on-web-alias "$USER" "$DOMAIN" "$www_host" 'no' + fi + echo "== Installing LetsEncrypt SSL, please wait..." + /usr/local/vesta/bin/v-add-letsencrypt-domain "$USER" "$DOMAIN" "$www_host" 'yes' + /usr/local/vesta/bin/v-change-web-domain-proxy-tpl "$USER" "$DOMAIN" 'force-https' 'jpg,jpeg,gif,png,ico,svg,css,zip,tgz,gz,rar,bz2,doc,xls,exe,pdf,ppt,txt,odt,ods,odp,odf,tar,wav,bmp,rtf,js,mp3,avi,mpeg,flv,woff,woff2' 'yes' +fi + +echo "== Downloading Roundcube..." +wget -nv "$DOWNLOAD" -O /root/roundcubemail.tar.gz + +echo "== Extracting Roundcube..." +tar --directory /home/$USER/web/$DOMAIN/public_html --strip-components=1 -xzf /root/roundcubemail.tar.gz roundcubemail-$VERSION/ + +fix_ownership + +DB_EXISTS=$(check_if_database_exists "$USER" "$DATABASE_NAME") +if [ "$DB_EXISTS" = "no" ]; then + echo "== Creating database: $DATABASE_NAME" + /usr/local/vesta/bin/v-add-database "$USER" "$DATABASE_NAME_WITHOUT_PREFIX" "$DATABASE_NAME_WITHOUT_PREFIX" "$DATABASE_PASSWORD" 'mysql' 'localhost' 'utf8' +fi + +if [ -f "/usr/local/vesta/data/templates/web/apache2/PHP-FPM-73.tpl" ]; then + echo "================================" + echo "== Installing php7.3-imap module" + apt update + apt install -y php7.3-imap + echo "================================" +fi +if [ -f "/usr/local/vesta/data/templates/web/apache2/PHP-FPM-74.tpl" ]; then + echo "================================" + echo "== Installing php7.4-imap module" + apt update + apt install -y php7.4-imap + echo "================================" +fi + +echo "-------------------------------------" +echo "Go to:" +echo "https://${DOMAIN}/installer/" +echo "... and finish the Roundcube installation." +echo "" +echo "You will be asked for:" +echo "Database user: $DATABASE_NAME" +echo "Database name: $DATABASE_NAME" +echo "Database pass: $DATABASE_PASSWORD" +echo "" +echo "Suggestion: plugins to be enabled: new_user_dialog, password" +echo "-------------------------------------" +echo "" +echo "=== When you click 'Initialize database' button (and see DB Write: OK), you can consider the installation as done." +read -p "=== Then press Enter here, and this script will remove /home/$USER/web/$DOMAIN/public_html/installer folder ===" +rm -rf /home/$USER/web/$DOMAIN/public_html/installer + +if [ -d "/home/$USER/web/$DOMAIN/public_html/plugins/password" ]; then + cp /usr/share/roundcube/plugins/password/config.inc.php /home/$USER/web/$DOMAIN/public_html/plugins/password/config.inc.php + cp /usr/share/roundcube/plugins/password/drivers/vesta.php /home/$USER/web/$DOMAIN/public_html/plugins/password/drivers/vesta.php +fi + +wget -nv https://c.myvestacp.com/tools/roundcube-filters.tgz -O /root/roundcube-filters.tgz +tar --directory /home/$USER/web/$DOMAIN/public_html/plugins -xzf /root/roundcube-filters.tgz + +sed -i "s/\$config\['plugins'\] = \[/\$config['plugins'] = ['filters', /g" /home/$USER/web/$DOMAIN/public_html/config/config.inc.php +echo "\$config['session_lifetime'] = 1080;" >> /home/$USER/web/$DOMAIN/public_html/config/config.inc.php + +fix_ownership + +sed -i "s||

$LOGINMESSAGE1
$LOGINMESSAGE2


\n\n|g" /usr/share/roundcube/skins/larry/templates/login.html + + +echo "-------------------------------------" +echo "Roundcube installed!" +echo "Go to:" +echo "https://${DOMAIN}/" +echo "-------------------------------------" From 774faa2d982069e2524dc64aec3dae38b0bbbfe7 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 17 Dec 2021 01:18:49 +0100 Subject: [PATCH 344/984] Update install-new-roundcube.sh --- src/deb/for-download/tools/install-new-roundcube.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/for-download/tools/install-new-roundcube.sh b/src/deb/for-download/tools/install-new-roundcube.sh index 9e0dc6cc..d545973c 100644 --- a/src/deb/for-download/tools/install-new-roundcube.sh +++ b/src/deb/for-download/tools/install-new-roundcube.sh @@ -7,7 +7,7 @@ VERSION='1.5.1' DOWNLOAD="https://github.com/roundcube/roundcubemail/releases/download/$VERSION/roundcubemail-$VERSION-complete.tar.gz" LOGINMESSAGE1='Click here for NEW Webmail' -LOGINMESSAGE2='(it is adapted to mobile phones)' +LOGINMESSAGE2='(it is adapted for mobile phones too)' DATABASE_NAME_WITHOUT_PREFIX="roundcube" DATABASE_NAME="${USER}_roundcube" From 6db07c4aa57bddc62cacdadc5e142467ff52f44d Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 17 Dec 2021 16:38:43 +0100 Subject: [PATCH 345/984] Starting FreshClam during myVesta installation --- install/vst-install-debian.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index fef0b8f7..34b55527 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -1321,6 +1321,11 @@ if [ "$clamd" = 'yes' ]; then fi service clamav-daemon start check_result $? "clamav-daeom start failed" + + systemctl status clamav-freshclam.service > /dev/null 2>&1 + if [ $? -ne 0 ]; then + systemctl start clamav-freshclam.service + fi fi From e0530d895ad942df180a0d9f6ac34d35bf896c0d Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 17 Dec 2021 18:12:47 +0100 Subject: [PATCH 346/984] Update vst-install-debian.sh --- install/vst-install-debian.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index 34b55527..a90414e0 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -1746,6 +1746,7 @@ touch /usr/local/vesta/data/upgrades/update-cloudflare-ips touch /usr/local/vesta/data/upgrades/enable-tls-in-proftpd touch /usr/local/vesta/data/upgrades/enable_cookie_httponly touch /usr/local/vesta/data/upgrades/fix_exim_494_autoreply +touch /usr/local/vesta/data/upgrades/freshclam_start # Secret URL secretquery='' From 5d87f24b3f1be07e7013747ad06e4efb26c19559 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 17 Dec 2021 18:19:25 +0100 Subject: [PATCH 347/984] Checking if FreshClam is started after installation --- src/deb/vesta/postinst | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/deb/vesta/postinst b/src/deb/vesta/postinst index 01b6ac48..e2a1219c 100755 --- a/src/deb/vesta/postinst +++ b/src/deb/vesta/postinst @@ -25,6 +25,18 @@ fi echo "1" > /usr/local/vesta/data/upgrades/show_changelog chmod a=rw /usr/local/vesta/data/upgrades/show_changelog +# Checking if FreshClam is started after installation +if [ ! -f "/usr/local/vesta/data/upgrades/freshclam_start" ]; then + clamavup=$(/usr/local/vesta/bin/v-list-sys-services | grep 'clamav-daemon' | grep -c 'running') + freshclamdown=$(/usr/local/vesta/bin/v-list-sys-services | grep 'clamav-freshclam' | grep -c 'off') + if [ $clamavup -eq 1 ] && [ $freshclamdown -eq 1 ]; then + echo "== Starting FreshClam" + systemctl enable clamav-freshclam.service + systemctl start clamav-freshclam.service + fi + touch /usr/local/vesta/data/upgrades/freshclam_start +fi + # Fix Autoreply issue with Exim 4.94+ if [ ! -f "/usr/local/vesta/data/upgrades/fix_exim_494_autoreply" ]; then if [ "$release" -eq 11 ]; then From a0ad0c6101c40f88ec04a18f44925234c039503b Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 17 Dec 2021 19:16:50 +0100 Subject: [PATCH 348/984] Update sr.php --- web/inc/i18n/sr.php | 48 ++++++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/web/inc/i18n/sr.php b/web/inc/i18n/sr.php index 4cb8db27..dc215f26 100644 --- a/web/inc/i18n/sr.php +++ b/web/inc/i18n/sr.php @@ -26,7 +26,7 @@ $LANG['sr'] = array( 'BACKUP' => 'BACKUP', 'LOGIN' => 'LOGIN', - 'RESET PASSWORD' => 'PROMENA ŠIFRE', + 'RESET PASSWORD' => 'PROMENA PASSWORDA', 'SEARCH' => 'PRETRAGA', 'PACKAGE' => 'PAKET', 'RRD' => 'RRD', @@ -278,8 +278,8 @@ $LANG['sr'] = array( 'Release' => 'Distribucija', 'Architecture' => 'Arhitektura', 'Object' => 'Predmet', - 'Username' => 'Korisničko ime', - 'Password' => 'Šifra', + 'Username' => 'Username', + 'Password' => 'Password', 'Email' => 'Email', 'Package' => 'Paket', 'Language' => 'Jezik', @@ -303,7 +303,7 @@ $LANG['sr'] = array( 'Statistics Authorization' => 'Autorizacija za statistiku', 'Statistics Auth' => 'Autorizacija statistiku', 'Account' => 'Nalog', - 'Prefix will be automaticaly added to username' => 'Prefiks %s će automatski biti pridodat korisničkom imenu', + 'Prefix will be automaticaly added to username' => 'Prefiks %s će automatski biti pridodat username-u', 'Send FTP credentials to email' => 'Pošalji FTP login podatke na mail adresu', 'Expiration Date' => 'Datum isteka', 'YYYY-MM-DD' => 'YYYY-MM-DD', @@ -316,7 +316,7 @@ $LANG['sr'] = array( 'Message' => 'Poruka', 'use local-part' => 'unesi samo početni deo (bez @domen.com dela)', 'one or more email addresses' => 'jedna ili više email adresa', - 'Prefix will be automaticaly added to database name and database user' => 'Prefiks %s se automatski dodaje na ime baze i na korisničko ime baze', + 'Prefix will be automaticaly added to database name and database user' => 'Prefiks %s se automatski dodaje na ime baze i na username baze', 'Database' => 'Baza podataka', 'Type' => 'Tip', 'Minute' => 'Minut', @@ -346,8 +346,8 @@ $LANG['sr'] = array( 'aliases' => 'aliasa', 'records' => 'zapisa', 'jobs' => 'jobs', - 'username' => 'korisničko ime', - 'password' => 'šifra', + 'username' => 'username', + 'password' => 'password', 'type' => 'tip', 'charset' => 'charset', 'domain' => 'domen', @@ -366,10 +366,10 @@ $LANG['sr'] = array( 'account' => 'nalog', 'ssl certificate' => 'ssl certifikat', 'ssl key' => 'ssl ključ', - 'stats user password' => 'šifra za korisničku statistiku', - 'stats username' => 'stats korisničko ime', - 'stats password' => 'stats šifra', - 'ftp user password' => 'ftp šifra', + 'stats user password' => 'password za korisničku statistiku', + 'stats username' => 'stats username', + 'stats password' => 'stats password', + 'ftp user password' => 'ftp password', 'ftp user' => 'ftp username', 'Last 70 lines of %s.%s.log' => 'Zadnjih 70. redova od %s.%s.log', 'AccessLog' => 'AccessLog', @@ -490,11 +490,11 @@ $LANG['sr'] = array( 'LOGGED_IN_AS' => 'Ulogovani ste kao %s', 'Error' => 'Greška', 'Invalid username or password' => 'Pogrešni login podaci', - 'Invalid username or code' => 'Pogrešno korisničko ime ili kod', + 'Invalid username or code' => 'Pogrešan username ili kod', 'Passwords not match' => 'Passwordi se ne poklapaju', 'Please enter valid email address.' => 'Potrebno je uneti validnu email adresu.', 'Field "%s" can not be blank.' => 'Polja "%s" ne smeju biti prazna.', - 'Password is too short.' => 'Šifra je previše kratka (najmanje 6 znakova)', + 'Password is too short.' => 'Password je previše kratak (najmanje 6 znakova)', 'Error code:' => 'Greška koda: %s', 'SERVICE_ACTION_FAILED' => '"%s" "%s" nije uspelo', 'IP address is in use' => 'IP adresa se već koristi', @@ -510,28 +510,28 @@ $LANG['sr'] = array( 'CRON_EXCLUSIONS' => 'Da bi izuzeo sve cron-job-ove unesi zvezdicu *', 'USER_EXCLUSIONS' => 'Unesi direktorijume, po jedan u svakoj liniji. Da bi izuzeo sve direktorijume unesi zvezdicu *', - 'Welcome to Vesta Control Panel' => 'Dobrodošli u Vesta kontrolni panel', - 'MAIL_FROM' => 'Vesta kontrolni panel ', + 'Welcome to Vesta Control Panel' => 'Dobrodošli u myVesta kontrolni panel', + 'MAIL_FROM' => 'myVesta kontrolni panel ', 'GREETINGS_GORDON_FREEMAN' => "Poštovani %s %s,\n", 'GREETINGS' => "Poštovani,\n", - 'ACCOUNT_READY' => "Vaš hosting nalog je kreiran i spreman za korišćenje.\n\nhttps://%s/login/\nKorisničko ime: %s\nŠifra: %s\n\n--\nVesta kontrolni panel\n", + 'ACCOUNT_READY' => "Vaš hosting nalog je kreiran i spreman za korišćenje.\n\nhttps://%s/login/\nUsername: %s\nPassword: %s\n\n--\nmyVesta kontrolni panel\n", 'FTP login credentials' => 'FTP podaci', - 'FTP_ACCOUNT_READY' => "FTP nalog je kreiran. Koristite sledeće podatke kako biste se ulogovali:\n\nHostname: %s\nKorisničko ime: %s_%s\nŠifra: %s\n\n--\nVesta kontrolni panel\n", + 'FTP_ACCOUNT_READY' => "FTP nalog je kreiran. Koristite sledeće podatke kako biste se ulogovali:\n\nHostname: %s\nUsername: %s_%s\nPassword: %s\n\n--\nmyVesta kontrolni panel\n", 'Database Credentials' => 'Podaci baze podataka', - 'DATABASE_READY' => "Baza podataka je kreirana. Koristite sledeće podatke kako biste se ulogovali:\n\nDatabase: %s\nKorisničko ime: %s\nŠifra: %s\n%s\n\n--\nVesta kontrolni panel\n", + 'DATABASE_READY' => "Baza podataka je kreirana. Koristite sledeće podatke kako biste se ulogovali:\n\nDatabase: %s\nUsername: %s\nPassword: %s\n%s\n\n--\nmyVesta kontrolni panel\n", - 'forgot password' => 'zaboravljena šifra', + 'forgot password' => 'zaboravljen password', 'Confirm' => 'Potvrditi', - 'New Password' => 'Nova šifra', - 'Confirm Password' => 'Potvrdi šifru', + 'New Password' => 'Nov password', + 'Confirm Password' => 'Potvrdi password', 'Reset' => 'Reset', 'Reset Code' => 'Resetuj kod', 'RESET_NOTICE' => '', - 'RESET_CODE_SENT' => 'Kod resetovane šifre je poslat na vašu email adresu
', - 'MAIL_RESET_SUBJECT' => 'Šifra je resetovana %s', - 'PASSWORD_RESET_REQUEST' => "Za resetovanje šifre sledite link:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nIli, možete ići na https://%s/reset/?action=code&user=%s i uneti kod:\n%s\n\nAko niste tražili resetovanje šifre, ignorišite ovu poruku i prihvatite naše izvinjenje.\n\n--\nVesta kontrolni panel\n", + 'RESET_CODE_SENT' => 'Kod resetovanog passworda je poslat na vašu email adresu
', + 'MAIL_RESET_SUBJECT' => 'Password je resetovan %s', + 'PASSWORD_RESET_REQUEST' => "Za resetovanje passworda sledite link:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nIli, možete ići na https://%s/reset/?action=code&user=%s i uneti kod:\n%s\n\nAko niste tražili resetovanje passworda, ignorišite ovu poruku i prihvatite naše izvinjenje.\n\n--\nmyVesta kontrolni panel\n", 'Jan' => 'Jan', 'Feb' => 'Feb', From ecc06404159bb0c3978af10c8249de2cc96b7a1b Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 17 Dec 2021 19:35:20 +0100 Subject: [PATCH 349/984] Update Changelog.md --- Changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Changelog.md b/Changelog.md index ca274724..a25b40bc 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,7 @@ +Version 0.9.8-26-54 [17-Dec-2021] +================================================== +* Checking if FreshClam is started after installation + Version 0.9.8-26-53 [12-Dec-2021] ================================================== * Support for PHP 8.1 From d89da4f51b34116bbed949566305762e8da3cde1 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 17 Dec 2021 19:36:17 +0100 Subject: [PATCH 350/984] Version 0.9.8-26-54 --- src/deb/latest.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/latest.txt b/src/deb/latest.txt index 1fa6aa49..2c883b97 100644 --- a/src/deb/latest.txt +++ b/src/deb/latest.txt @@ -1 +1 @@ -vesta-0.9.8-26-53 +vesta-0.9.8-26-54 From 2ee193873ffc473b6e33476846a7f57f357ab12b Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 17 Dec 2021 22:36:49 +0100 Subject: [PATCH 351/984] Update install-new-roundcube.sh --- src/deb/for-download/tools/install-new-roundcube.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/for-download/tools/install-new-roundcube.sh b/src/deb/for-download/tools/install-new-roundcube.sh index d545973c..7350db16 100644 --- a/src/deb/for-download/tools/install-new-roundcube.sh +++ b/src/deb/for-download/tools/install-new-roundcube.sh @@ -98,9 +98,9 @@ if [ ! -f "/home/$USER/conf/web/ssl.$DOMAIN.ca" ]; then www_host_ip=$(host $www_host | head -n 1 | awk '{print $NF}') if [ "$www_host_ip" != "$domain_host_ip" ]; then echo "=== Deleting www" - www_host="" /usr/local/vesta/bin/v-delete-web-domain-alias "$USER" "$DOMAIN" "$www_host" 'no' /usr/local/vesta/bin/v-delete-dns-on-web-alias "$USER" "$DOMAIN" "$www_host" 'no' + www_host="" fi echo "== Installing LetsEncrypt SSL, please wait..." /usr/local/vesta/bin/v-add-letsencrypt-domain "$USER" "$DOMAIN" "$www_host" 'yes' From 90db1084ec0bdbcfd262797e5ad4693a4f678025 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 19 Dec 2021 01:08:43 +0100 Subject: [PATCH 352/984] Update install-new-roundcube.sh --- .../for-download/tools/install-new-roundcube.sh | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/deb/for-download/tools/install-new-roundcube.sh b/src/deb/for-download/tools/install-new-roundcube.sh index 7350db16..42ac73a0 100644 --- a/src/deb/for-download/tools/install-new-roundcube.sh +++ b/src/deb/for-download/tools/install-new-roundcube.sh @@ -84,15 +84,16 @@ if [ "$pub_ip" != "$domain_host_ip" ]; then fi number_of_files=$(ls /home/$USER/web/$DOMAIN/public_html | wc -l) -if [ $number_of_files -eq 2 ] && [ -f "/home/$USER/web/$DOMAIN/public_html/index.html" ] && [ -f "/home/$USER/web/$DOMAIN/public_html/robots.txt" ]; then - rm /home/$USER/web/$DOMAIN/public_html/index.html - rm /home/$USER/web/$DOMAIN/public_html/robots.txt -else - echo "== public_html folder is not empty, aborting." - exit 1 +if [ $number_of_files -ne 0 ]; then + if [ $number_of_files -eq 2 ] && [ -f "/home/$USER/web/$DOMAIN/public_html/index.html" ] && [ -f "/home/$USER/web/$DOMAIN/public_html/robots.txt" ]; then + rm /home/$USER/web/$DOMAIN/public_html/index.html + rm /home/$USER/web/$DOMAIN/public_html/robots.txt + else + echo "== public_html folder is not empty, aborting." + exit 1 + fi fi - if [ ! -f "/home/$USER/conf/web/ssl.$DOMAIN.ca" ]; then www_host="www.$DOMAIN" www_host_ip=$(host $www_host | head -n 1 | awk '{print $NF}') From fee11ca777397a693307912643b31c89fe642602 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 19 Dec 2021 01:56:35 +0100 Subject: [PATCH 353/984] Update install-new-roundcube.sh --- src/deb/for-download/tools/install-new-roundcube.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/deb/for-download/tools/install-new-roundcube.sh b/src/deb/for-download/tools/install-new-roundcube.sh index 42ac73a0..95e1d1cd 100644 --- a/src/deb/for-download/tools/install-new-roundcube.sh +++ b/src/deb/for-download/tools/install-new-roundcube.sh @@ -120,6 +120,9 @@ DB_EXISTS=$(check_if_database_exists "$USER" "$DATABASE_NAME") if [ "$DB_EXISTS" = "no" ]; then echo "== Creating database: $DATABASE_NAME" /usr/local/vesta/bin/v-add-database "$USER" "$DATABASE_NAME_WITHOUT_PREFIX" "$DATABASE_NAME_WITHOUT_PREFIX" "$DATABASE_PASSWORD" 'mysql' 'localhost' 'utf8' +else + echo "== Database $DATABASE_NAME already exists, and it's maybe used by another site. I will not continue. Please edit this script and enter other database name." + exit 1 fi if [ -f "/usr/local/vesta/data/templates/web/apache2/PHP-FPM-73.tpl" ]; then @@ -167,7 +170,10 @@ echo "\$config['session_lifetime'] = 1080;" >> /home/$USER/web/$DOMAIN/public_ht fix_ownership -sed -i "s||

$LOGINMESSAGE1
$LOGINMESSAGE2


\n\n|g" /usr/share/roundcube/skins/larry/templates/login.html +check_grep=$(grep -c 'color: white; font-size: 12pt' /usr/share/roundcube/skins/larry/templates/login.html) +if [ "$check_grep" -eq 0 ]; then + sed -i "s||

$LOGINMESSAGE1
$LOGINMESSAGE2


\n\n|g" /usr/share/roundcube/skins/larry/templates/login.html +fi echo "-------------------------------------" From 909619ef6916ad320efeed4fc956a1674e7eec48 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 19 Dec 2021 16:06:13 +0100 Subject: [PATCH 354/984] Update v-clean-garbage --- bin/v-clean-garbage | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bin/v-clean-garbage b/bin/v-clean-garbage index fc354210..1a98759d 100644 --- a/bin/v-clean-garbage +++ b/bin/v-clean-garbage @@ -28,8 +28,8 @@ find /home/*/web/*/public_html/wp-content/aiowps_backups/ -type f -not -name ".h find /home/*/web/*/public_html/wp-content/envato-backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete find /home/*/web/*/public_html/wp-content/ai1wm-backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete find /home/*/web/*/public_html/wp-content/updraft/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete -find /home/*/web/*/public_html/ -type f -name "error_log" -delete -find /home/*/web/*/public_html/ -type f -name "error_log.txt" -delete -find /home/ -type f -name "*.log" -delete +find /home/*/web/*/public_html/ -type f -name "error_log" -exec truncate -s 0 {} \; +find /home/*/web/*/public_html/ -type f -name "error_log.txt" -exec truncate -s 0 {} \; +find /home/ -type f -name "*.log" -exec truncate -s 0 {} \; echo "=== Garbage cleaned ===" From aa85d2e58177f32f84f91cd837e032db9ef33bb8 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 25 Dec 2021 13:36:08 +0100 Subject: [PATCH 355/984] Update install-softaculous.sh --- src/deb/for-download/tools/install-softaculous.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/deb/for-download/tools/install-softaculous.sh b/src/deb/for-download/tools/install-softaculous.sh index ba586930..b209c68d 100644 --- a/src/deb/for-download/tools/install-softaculous.sh +++ b/src/deb/for-download/tools/install-softaculous.sh @@ -15,7 +15,7 @@ rm -rf /usr/local/vesta/web/softaculous/ apt update -apt install --reinstall vesta-php +# apt install --reinstall vesta-php apt install --reinstall vesta-ioncube vesta-softaculous @@ -28,7 +28,11 @@ if [ -f "/usr/local/vesta/web/inc/login_url.php-bak" ]; then mv /usr/local/vesta/web/inc/login_url.php-bak /usr/local/vesta/web/inc/login_url.php fi +echo "" +echo "" echo "=== Softaculous installation done ===" +echo "" echo "Wait for about 5 minutes so softaculous-cron download all packages." echo "You can check if it is still downloading packages by running command:" -echo 'ps -Af | grep "cron.php" | grep -v "grep"' +echo 'ps -Af | grep "cron.php" | grep -v "grep"' +echo "" From 91fe4bc7c5f90a1fd692e10b5f7da9012d23d176 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 9 Jan 2022 14:43:45 +0100 Subject: [PATCH 356/984] Exclude /var/log/apt/* while cleaning garbage --- bin/v-clean-garbage | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-clean-garbage b/bin/v-clean-garbage index 1a98759d..ccee5fb5 100644 --- a/bin/v-clean-garbage +++ b/bin/v-clean-garbage @@ -7,7 +7,7 @@ rm /var/backups/* rm /var/cache/apt/archives/* cd /var/log truncate -s 0 xferlog lastlog faillog btmp syslog; -find /var/log/ -name "*.log" -type f -exec truncate -s 0 {} \; +find /var/log/ -name "*.log" -not -path "/var/log/apt/*" -type f -exec truncate -s 0 {} \; find /var/log/ -name "*.err" -type f -exec truncate -s 0 {} \; find /var/log/ -name "errors" -type f -exec truncate -s 0 {} \; find /var/log/ -name "*.info" -type f -exec truncate -s 0 {} \; From d30c9f584e455fe0175fc4da0dd329e09eca2654 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 22 Jan 2022 16:15:24 +0100 Subject: [PATCH 357/984] Update install-new-roundcube.sh --- src/deb/for-download/tools/install-new-roundcube.sh | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/deb/for-download/tools/install-new-roundcube.sh b/src/deb/for-download/tools/install-new-roundcube.sh index 95e1d1cd..ff218ccb 100644 --- a/src/deb/for-download/tools/install-new-roundcube.sh +++ b/src/deb/for-download/tools/install-new-roundcube.sh @@ -155,6 +155,18 @@ echo "-------------------------------------" echo "" echo "=== When you click 'Initialize database' button (and see DB Write: OK), you can consider the installation as done." read -p "=== Then press Enter here, and this script will remove /home/$USER/web/$DOMAIN/public_html/installer folder ===" + +if [ ! -f "/home/$USER/web/$DOMAIN/public_html/config/config.inc.php" ]; then + echo "=== ERROR: You didn't finish the installation." + echo "=== Please read carefully what is written above." + read -p "=== Then press Enter when you finish installation ===" +fi +if [ ! -f "/home/$USER/web/$DOMAIN/public_html/config/config.inc.php" ]; then + echo "=== ERROR: You didn't finish the installation." + echo "=== Sorry, the script will exit now." + exit 1; +fi + rm -rf /home/$USER/web/$DOMAIN/public_html/installer if [ -d "/home/$USER/web/$DOMAIN/public_html/plugins/password" ]; then From e91976613c9921e7270ec4dd52ae1dd7bcc844c6 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 23 Jan 2022 15:41:28 +0100 Subject: [PATCH 358/984] mysql8 create user, set password, grant --- func/db.sh | 125 ++++++++++++++++++++++++++++++++++++++---------- func/rebuild.sh | 18 ++++--- 2 files changed, 113 insertions(+), 30 deletions(-) diff --git a/func/db.sh b/func/db.sh index 1373d741..deb9e5b8 100644 --- a/func/db.sh +++ b/func/db.sh @@ -202,21 +202,57 @@ decrease_dbhost_values() { add_mysql_database() { mysql_connect $host + mysql_ver_sub=$(echo $mysql_ver |cut -d '.' -f1) + mysql_ver_sub_sub=$(echo $mysql_ver |cut -d '.' -f2) + query="CREATE DATABASE \`$database\` CHARACTER SET $charset" mysql_query "$query" > /dev/null - query="GRANT ALL ON \`$database\`.* TO \`$dbuser\`@\`%\` - IDENTIFIED BY '$dbpass'" - mysql_query "$query" > /dev/null + if [ "$mysql_fork" = "mysql" ] && [ "$mysql_ver_sub" -ge 8 ] ; then + query="CREATE USER \`$dbuser\`@\`%\` + IDENTIFIED BY '$dbpass'" + mysql_query "$query" > /dev/null - query="GRANT ALL ON \`$database\`.* TO \`$dbuser\`@localhost - IDENTIFIED BY '$dbpass'" - mysql_query "$query" > /dev/null + query="CREATE USER \`$dbuser\`@localhost + IDENTIFIED BY '$dbpass'" + mysql_query "$query" > /dev/null - if [ "$(echo $mysql_ver |cut -d '.' -f2)" -ge 7 ]; then - md5=$(mysql_query "SHOW CREATE USER \`$dbuser\`" 2>/dev/null) - md5=$(echo "$md5" |grep password |cut -f8 -d \') + query="GRANT ALL ON \`$database\`.* TO \`$dbuser\`@\`%\`" + mysql_query "$query" > /dev/null + + query="GRANT ALL ON \`$database\`.* TO \`$dbuser\`@localhost" + mysql_query "$query" > /dev/null else + query="GRANT ALL ON \`$database\`.* TO \`$dbuser\`@\`%\` + IDENTIFIED BY '$dbpass'" + mysql_query "$query" > /dev/null + + query="GRANT ALL ON \`$database\`.* TO \`$dbuser\`@localhost + IDENTIFIED BY '$dbpass'" + mysql_query "$query" > /dev/null + fi + + if [ "$mysql_fork" = "mysql" ]; then + # mysql + if [ "$mysql_ver_sub" -ge 8 ] || { [ "$mysql_ver_sub" -eq 5 ] && [ "$mysql_ver_sub_sub" -ge 7 ]; } then + if [ "$mysql_ver_sub" -ge 8 ]; then + # mysql >= 8 + md5=$(mysql_query "SHOW CREATE USER \`$dbuser\`" 2>/dev/null) + # echo $md5 + md5=$(echo "$md5" |grep password |cut -f4 -d \') + # echo $md5 + else + # mysql < 8 + md5=$(mysql_query "SHOW CREATE USER \`$dbuser\`" 2>/dev/null) + md5=$(echo "$md5" |grep password |cut -f8 -d \') + fi + else + # mysql < 5.7 + md5=$(mysql_query "SHOW GRANTS FOR \`$dbuser\`" 2>/dev/null) + md5=$(echo "$md5" |grep PASSW|tr ' ' '\n' |tail -n1 |cut -f 2 -d \') + fi + else + # mariadb md5=$(mysql_query "SHOW GRANTS FOR \`$dbuser\`" 2>/dev/null) md5=$(echo "$md5" |grep PASSW|tr ' ' '\n' |tail -n1 |cut -f 2 -d \') fi @@ -267,22 +303,63 @@ get_database_values() { # Change MySQL database password change_mysql_password() { mysql_connect $HOST - query="GRANT ALL ON \`$database\`.* TO \`$DBUSER\`@\`%\` - IDENTIFIED BY '$dbpass'" - mysql_query "$query" > /dev/null - - query="GRANT ALL ON \`$database\`.* TO \`$DBUSER\`@localhost - IDENTIFIED BY '$dbpass'" - mysql_query "$query" > /dev/null -if [ "$(echo $mysql_ver |cut -d '.' -f2)" -ge 7 ]; then - - md5=$(mysql_query "SHOW CREATE USER \`$DBUSER\`" 2>/dev/null) - md5=$(echo "$md5" |grep password |cut -f8 -d \') -else - md5=$(mysql_query "SHOW GRANTS FOR \`$DBUSER\`" 2>/dev/null) - md5=$(echo "$md5" |grep PASSW|tr ' ' '\n' |tail -n1 |cut -f 2 -d \') -fi + mysql_ver_sub=$(echo $mysql_ver |cut -d '.' -f1) + mysql_ver_sub_sub=$(echo $mysql_ver |cut -d '.' -f2) + + if [ "$mysql_fork" = "mysql" ]; then + # mysql + if [ "$mysql_ver_sub" -ge 8 ]; then + # mysql >= 8 + query="SET PASSWORD FOR \`$DBUSER\`@\`%\` = '$dbpass'" + mysql_query "$query" > /dev/null + query="SET PASSWORD FOR \`$DBUSER\`@localhost = '$dbpass'" + mysql_query "$query" > /dev/null + else + # mysql < 8 + query="GRANT ALL ON \`$database\`.* TO \`$DBUSER\`@\`%\` + IDENTIFIED BY '$dbpass'" + mysql_query "$query" > /dev/null + + query="GRANT ALL ON \`$database\`.* TO \`$DBUSER\`@localhost + IDENTIFIED BY '$dbpass'" + mysql_query "$query" > /dev/null + fi + else + # mariadb + query="GRANT ALL ON \`$database\`.* TO \`$DBUSER\`@\`%\` + IDENTIFIED BY '$dbpass'" + mysql_query "$query" > /dev/null + + query="GRANT ALL ON \`$database\`.* TO \`$DBUSER\`@localhost + IDENTIFIED BY '$dbpass'" + mysql_query "$query" > /dev/null + fi + + if [ "$mysql_fork" = "mysql" ]; then + # mysql + if [ "$mysql_ver_sub" -ge 8 ] || { [ "$mysql_ver_sub" -eq 5 ] && [ "$mysql_ver_sub_sub" -ge 7 ]; } then + if [ "$mysql_ver_sub" -ge 8 ]; then + # mysql >= 8 + md5=$(mysql_query "SHOW CREATE USER \`$DBUSER\`" 2>/dev/null) + # echo $md5 + md5=$(echo "$md5" |grep password |cut -f4 -d \') + # echo $md5 + else + # mysql < 8 + md5=$(mysql_query "SHOW CREATE USER \`$DBUSER\`" 2>/dev/null) + md5=$(echo "$md5" |grep password |cut -f8 -d \') + fi + else + # mysql < 5.7 + md5=$(mysql_query "SHOW GRANTS FOR \`$DBUSER\`" 2>/dev/null) + md5=$(echo "$md5" |grep PASSW|tr ' ' '\n' |tail -n1 |cut -f 2 -d \') + fi + else + # mariadb + md5=$(mysql_query "SHOW GRANTS FOR \`$DBUSER\`" 2>/dev/null) + md5=$(echo "$md5" |grep PASSW|tr ' ' '\n' |tail -n1 |cut -f 2 -d \') + fi } # Change PostgreSQL database password diff --git a/func/rebuild.sh b/func/rebuild.sh index eeef03ee..b4a5f73d 100644 --- a/func/rebuild.sh +++ b/func/rebuild.sh @@ -556,12 +556,15 @@ rebuild_mysql_database() { mysql_query "CREATE DATABASE \`$DB\` CHARACTER SET $CHARSET" >/dev/null if [ "$mysql_fork" = "mysql" ]; then # mysql - if [ "$(echo $mysql_ver |cut -d '.' -f2)" -ge 7 ]; then + mysql_ver_sub=$(echo $mysql_ver |cut -d '.' -f1) + mysql_ver_sub_sub=$(echo $mysql_ver |cut -d '.' -f2) + if [ "$mysql_ver_sub" -ge 8 ] || { [ "$mysql_ver_sub" -eq 5 ] && [ "$mysql_ver_sub_sub" -ge 7 ]; } then # mysql >= 5.7 - mysql_query "CREATE USER IF NOT EXISTS \`$DBUSER\`" > /dev/null - mysql_query "CREATE USER IF NOT EXISTS \`$DBUSER\`@localhost" > /dev/null - query="UPDATE mysql.user SET authentication_string='$MD5'" - query="$query WHERE User='$DBUSER'" + # if [ "$mysql_ver_sub" -eq 5 ] && [ "$mysql_ver_sub_sub" -ge 7 ]; then + mysql_query "CREATE USER IF NOT EXISTS \`$DBUSER\`" > /dev/null + mysql_query "CREATE USER IF NOT EXISTS \`$DBUSER\`@localhost" > /dev/null + query="UPDATE mysql.user SET authentication_string='$MD5'" + query="$query WHERE User='$DBUSER'" else # mysql < 5.7 query="UPDATE mysql.user SET Password='$MD5' WHERE User='$DBUSER'" @@ -579,10 +582,13 @@ rebuild_mysql_database() { # mariadb = 10 mysql_query "CREATE USER IF NOT EXISTS \`$DBUSER\`" > /dev/null mysql_query "CREATE USER IF NOT EXISTS \`$DBUSER\`@localhost" > /dev/null - query="UPDATE mysql.user SET Password='$MD5' WHERE User='$DBUSER'" if [ "$mysql_ver_sub_sub" -ge 4 ]; then + # mariadb >= 10.4 query="SET PASSWORD FOR '$DBUSER'@'%' = '$MD5';" query2="SET PASSWORD FOR '$DBUSER'@'localhost' = '$MD5';" + else + # mariadb < 10.4 + query="UPDATE mysql.user SET Password='$MD5' WHERE User='$DBUSER'" fi fi fi From f0f28da12e886c3a284d4e304a767c35dd5ffd74 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 23 Jan 2022 23:46:17 +0100 Subject: [PATCH 359/984] phpmyadmin installer mysql8 suppodrt --- install/debian/10/pma/pma.sh | 10 ++++++++++ install/debian/11/pma/pma.sh | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/install/debian/10/pma/pma.sh b/install/debian/10/pma/pma.sh index eb4be110..f04f3f8e 100644 --- a/install/debian/10/pma/pma.sh +++ b/install/debian/10/pma/pma.sh @@ -146,12 +146,22 @@ CREATE DATABASE $PMADB; MYSQL_PMA2 #GRANT PMA USE SOME RIGHTS +if [ ! -f "/etc/apt/sources.list.d/mysql.list" ]; then +# MariaDB mysql -uroot < Date: Mon, 24 Jan 2022 20:41:48 +0100 Subject: [PATCH 360/984] Detection of MySQL 8 in v-list-sys-services --- bin/v-list-sys-services | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-list-sys-services b/bin/v-list-sys-services index b7a9f351..cddb59be 100755 --- a/bin/v-list-sys-services +++ b/bin/v-list-sys-services @@ -297,7 +297,7 @@ if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'remote' ]; then if [ "$service" = 'mysql' ]; then proc_name='mysqld' release=$(cat /etc/debian_version | tr "." "\n" | head -n1) - if [ "$release" -eq 11 ]; then + if [ "$release" -eq 11 ] && [ ! -f "/etc/apt/sources.list.d/mysql.list" ]; then service='mariadb' proc_name='mariadbd' fi From 9090a21bc7aa2fee1b33d6d17dfe6212a21e186d Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 24 Jan 2022 20:43:41 +0100 Subject: [PATCH 361/984] MySQL 8 support as installer option --- install/vst-install-debian.sh | 437 ++++++++++++++++++++++------------ 1 file changed, 287 insertions(+), 150 deletions(-) diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index a90414e0..f4920005 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -1,6 +1,6 @@ #!/bin/bash -# myVesta Debian installer v.05 +# myVesta Debian installer v 0.9 #----------------------------------------------------------# # Variables&Functions # @@ -89,7 +89,8 @@ help() { -v, --vsftpd Install Vsftpd [yes|no] default: no -j, --proftpd Install ProFTPD [yes|no] default: yes -k, --named Install Bind [yes|no] default: yes - -m, --mysql Install MySQL [yes|no] default: yes + -m, --mysql Install MariaDB [yes|no] default: yes + -d, --mysql8 Install MySQL 8 [yes|no] default: no -g, --postgresql Install PostgreSQL [yes|no] default: no -x, --exim Install Exim [yes|no] default: yes -z, --dovecot Install Dovecot [yes|no] default: yes @@ -159,6 +160,25 @@ set_default_lang() { fi } +ensure_startup() { + echo "- making sure startup is enabled for: $1" + currentservice=$1 + unit_files="$(systemctl list-unit-files |grep $currentservice)" + if [[ "$unit_files" =~ "disabled" ]]; then + systemctl enable $currentservice + fi +} + +ensure_start() { + echo "- making sure $1 is started" + currentservice=$1 + systemctl status $currentservice.service > /dev/null 2>&1 + r=$? + if [ $r -ne 0 ]; then + systemctl start $currentservice + check_result $? "$currentservice start failed" + fi +} #----------------------------------------------------------# # Verifications # @@ -178,6 +198,7 @@ for arg; do --proftpd) args="${args}-j " ;; --named) args="${args}-k " ;; --mysql) args="${args}-m " ;; + --mysql8) args="${args}-d " ;; --postgresql) args="${args}-g " ;; --mongodb) args="${args}-d " ;; --exim) args="${args}-x " ;; @@ -213,7 +234,8 @@ while getopts "a:n:w:v:j:k:m:g:d:x:z:c:t:i:b:r:o:q:l:y:s:e:p:u:1:fh" Option; do v) vsftpd=$OPTARG ;; # Vsftpd j) proftpd=$OPTARG ;; # Proftpd k) named=$OPTARG ;; # Named - m) mysql=$OPTARG ;; # MySQL + m) mysql=$OPTARG ;; # MariaDB + d) mysql8=$OPTARG ;; # MySQL8 g) postgresql=$OPTARG ;; # PostgreSQL d) mongodb=$OPTARG ;; # MongoDB (unsupported) x) exim=$OPTARG ;; # Exim @@ -246,6 +268,7 @@ set_default_value 'vsftpd' 'no' set_default_value 'proftpd' 'yes' set_default_value 'named' 'yes' set_default_value 'mysql' 'yes' +set_default_value 'mysql8' 'no' set_default_value 'postgresql' 'no' set_default_value 'mongodb' 'no' set_default_value 'exim' 'yes' @@ -280,6 +303,9 @@ fi if [ "$iptables" = 'no' ]; then fail2ban='no' fi +if [ "$mysql8" = 'yes' ]; then + mysql='no' +fi # Checking root permissions if [ "x$(id -u)" != 'x0' ]; then @@ -412,7 +438,10 @@ fi # DB stack if [ "$mysql" = 'yes' ]; then - echo ' - MySQL Database server' + echo ' - MariaDB Database server' +fi +if [ "$mysql8" = 'yes' ]; then + echo ' - MySQL 8 Database server' fi if [ "$postgresql" = 'yes' ]; then echo ' - PostgreSQL Database server' @@ -519,8 +548,8 @@ sleep 5 # Checking swap # #----------------------------------------------------------# -# Checking swap on small instances if [ -z "$(swapon -s)" ] && [ $memory -lt 1000000 ]; then + echo "== Checking swap on small instances" fallocate -l 1G /swapfile chmod 600 /swapfile mkswap /swapfile @@ -533,19 +562,17 @@ fi # Install repository # #----------------------------------------------------------# -# Updating system +echo "=== Updating system (apt-get -y upgrade)" apt-get -y upgrade check_result $? 'apt-get upgrade failed' -# Installing nginx repo +echo "=== Installing nginx repo" apt=/etc/apt/sources.list.d -# if [ "$release" -ne 11 ]; then - echo "deb http://nginx.org/packages/debian/ $codename nginx" > $apt/nginx.list - wget http://nginx.org/keys/nginx_signing.key -O /tmp/nginx_signing.key - apt-key add /tmp/nginx_signing.key -# fi +echo "deb http://nginx.org/packages/debian/ $codename nginx" > $apt/nginx.list +wget http://nginx.org/keys/nginx_signing.key -O /tmp/nginx_signing.key +apt-key add /tmp/nginx_signing.key -# Installing vesta repo +echo "=== Installing myVesta repo" echo "deb http://$RHOST/$codename/ $codename vesta" > $apt/vesta.list wget $CHOST/deb_signing.key -O deb_signing.key apt-key add deb_signing.key @@ -566,12 +593,13 @@ fi # Backup # #----------------------------------------------------------# -# Creating backup directory tree +echo "=== Creating backup directory tree" mkdir -p $vst_backups cd $vst_backups mkdir nginx apache2 php php5 php5-fpm vsftpd proftpd bind exim4 dovecot clamd mkdir spamassassin mysql postgresql mongodb vesta +echo "=== Backing up old configs" # Backing up Nginx configuration service nginx stop > /dev/null 2>&1 cp -r /etc/nginx/* $vst_backups/nginx >/dev/null 2>&1 @@ -689,9 +717,47 @@ if [ "$mysql" = 'no' ]; then software=$(echo "$software" | sed -e 's/mysql-server//') software=$(echo "$software" | sed -e 's/mysql-client//') software=$(echo "$software" | sed -e 's/mysql-common//') + software=$(echo "$software" | sed -e 's/mariadb-server//') + software=$(echo "$software" | sed -e 's/mariadb-client//') + software=$(echo "$software" | sed -e 's/mariadb-common//') software=$(echo "$software" | sed -e 's/php5-mysql//') software=$(echo "$software" | sed -e 's/php-mysql//') software=$(echo "$software" | sed -e 's/phpMyAdmin//') + software=$(echo "$software" | sed -e 's/phpmyadmin//') + software=$(echo "$software" | sed -e 's/roundcube-mysql//') +fi +if [ "$mysql8" = 'yes' ]; then + echo "=== Preparing MySQL 8 apt repo" + software=$(echo "$software" | sed -e 's/exim4-daemon-heavy//') + software=$(echo "$software" | sed -e 's/exim4//') + #software="$software php-mysql roundcube-mysql" + echo "### THIS FILE IS AUTOMATICALLY CONFIGURED ###" > /etc/apt/sources.list.d/mysql.list + echo "# You may comment out entries below, but any other modifications may be lost." >> /etc/apt/sources.list.d/mysql.list + echo "# Use command 'dpkg-reconfigure mysql-apt-config' as root for modifications." >> /etc/apt/sources.list.d/mysql.list + echo "deb http://repo.mysql.com/apt/debian/ $codename mysql-apt-config" >> /etc/apt/sources.list.d/mysql.list + echo "deb http://repo.mysql.com/apt/debian/ $codename mysql-8.0" >> /etc/apt/sources.list.d/mysql.list + echo "deb http://repo.mysql.com/apt/debian/ $codename mysql-tools" >> /etc/apt/sources.list.d/mysql.list + echo "#deb http://repo.mysql.com/apt/debian/ $codename mysql-tools-preview" >> /etc/apt/sources.list.d/mysql.list + echo "deb-src http://repo.mysql.com/apt/debian/ $codename mysql-8.0" >> /etc/apt/sources.list.d/mysql.list + + # apt-key adv --keyserver pgp.mit.edu --recv-keys 3A79BD29 + key="467B942D3A79BD29" + readonly key + GNUPGHOME="$(mktemp -d)" + export GNUPGHOME + for keyserver in $(shuf -e ha.pool.sks-keyservers.net hkp://p80.pool.sks-keyservers.net:80 keyserver.ubuntu.com hkp://keyserver.ubuntu.com:80) + do + gpg --keyserver "${keyserver}" --recv-keys "${key}" 2>&1 && break + done + gpg --export "${key}" > /etc/apt/trusted.gpg.d/mysql.gpg + gpgconf --kill all + rm -rf "${GNUPGHOME}" + unset GNUPGHOME + + mpass=$(gen_pass) + debconf-set-selections <<< "mysql-community-server mysql-community-server/root-pass password $mpass" + debconf-set-selections <<< "mysql-community-server mysql-community-server/re-root-pass password $mpass" + debconf-set-selections <<< "mysql-community-server mysql-server/default-auth-override select Use Legacy Authentication Method (Retain MySQL 5.x Compatibility)" fi if [ "$postgresql" = 'no' ]; then software=$(echo "$software" | sed -e 's/postgresql-contrib//') @@ -713,17 +779,42 @@ fi #----------------------------------------------------------# # Update system packages +echo "=== Running: apt-get update" apt-get update -# Disable daemon autostart /usr/share/doc/sysv-rc/README.policy-rc.d.gz +echo "=== Disable daemon autostart /usr/share/doc/sysv-rc/README.policy-rc.d.gz" echo -e '#!/bin/sh \nexit 101' > /usr/sbin/policy-rc.d chmod a+x /usr/sbin/policy-rc.d -# Install apt packages +if [ "$mysql8" = 'yes' ]; then + echo "=== Installing MySQL 8" + apt-get -y install mysql-server mysql-client mysql-common + #update-rc.d mysql defaults + currentservice='mysql' + ensure_startup $currentservice + ensure_start $currentservice + echo -e "[client]\npassword='$mpass'\n" > /root/.my.cnf + chmod 600 /root/.my.cnf + mysqladmin -u root password $mpass +fi + +echo "=== Installing all apt packages" +# echo "apt-get -y install $software" apt-get -y install $software + check_result $? "apt-get install failed" -# Restore policy +if [ "$mysql8" = 'yes' ]; then + if [ "$exim" = 'yes' ]; then + echo "=== Installing exim4" + apt-get -y install exim4 exim4-daemon-heavy + fi + echo "=== Installing phpmyadmin" + #apt-get -y --no-install-recommends install phpmyadmin + apt-get -y install phpmyadmin +fi + +echo "=== Enabling daemon autostart" rm -f /usr/sbin/policy-rc.d @@ -731,21 +822,21 @@ rm -f /usr/sbin/policy-rc.d # Configure system # #----------------------------------------------------------# -# Enable SSH password auth +echo "== Enable SSH password auth" sed -i "s/rdAuthentication no/rdAuthentication yes/g" /etc/ssh/sshd_config -service ssh restart +systemctl restart ssh -# Disable awstats cron +echo "== Disable awstats cron" rm -f /etc/cron.d/awstats -# Set directory color +echo "== Set directory color" echo 'LS_COLORS="$LS_COLORS:di=00;33"' >> /etc/profile -# Register /sbin/nologin and /usr/sbin/nologin +echo "== Register /sbin/nologin and /usr/sbin/nologin" echo "/sbin/nologin" >> /etc/shells echo "/usr/sbin/nologin" >> /etc/shells -# NTP Synchronization +echo "== NTP Synchronization" echo '#!/bin/sh' > /etc/cron.daily/ntpdate echo "$(which ntpdate) -s pool.ntp.org" >> /etc/cron.daily/ntpdate chmod 775 /etc/cron.daily/ntpdate @@ -766,12 +857,12 @@ fi # Configure VESTA # #----------------------------------------------------------# -# Installing sudo configuration +echo "== Installing sudo configuration" mkdir -p /etc/sudoers.d cp -f $vestacp/sudo/admin /etc/sudoers.d/ chmod 440 /etc/sudoers.d/admin -# Configuring system env +echo "== Configuring system env" echo "export VESTA='$VESTA'" > /etc/profile.d/vesta.sh chmod 755 /etc/profile.d/vesta.sh source /etc/profile.d/vesta.sh @@ -779,10 +870,10 @@ echo 'PATH=$PATH:'$VESTA'/bin' >> /root/.bash_profile echo 'export PATH' >> /root/.bash_profile source /root/.bash_profile -# Configuring logrotate for Vesta logs +echo "== Copying logrotate for myVesta logs" cp -f $vestacp/logrotate/vesta /etc/logrotate.d/ -# Building directory tree and creating some blank files for vesta +echo "== Building directory tree and creating some blank files for myVesta" mkdir -p $VESTA/conf $VESTA/log $VESTA/ssl $VESTA/data/ips \ $VESTA/data/queue $VESTA/data/users $VESTA/data/firewall \ $VESTA/data/sessions @@ -797,7 +888,7 @@ rm -f /var/log/vesta ln -s $VESTA/log /var/log/vesta chmod 770 $VESTA/data/sessions -# Generating vesta configuration +echo "== Generating vesta.conf" rm -f $VESTA/conf/vesta.conf 2>/dev/null touch $VESTA/conf/vesta.conf chmod 660 $VESTA/conf/vesta.conf @@ -891,14 +982,14 @@ echo "LANGUAGE='$lang'" >> $VESTA/conf/vesta.conf # Version echo "VERSION='0.9.8'" >> $VESTA/conf/vesta.conf -# Installing hosting packages +echo "== Copying packages" cp -rf $vestacp/packages $VESTA/data/ -# Installing templates +echo "== Copying templates" cp -rf $vestacp/templates $VESTA/data/ if [ "$release" -eq 10 ]; then - # Symlink missing templates + echo "== Symlink missing templates" ln -s /usr/local/vesta/data/templates/web/nginx/hosting.sh /usr/local/vesta/data/templates/web/nginx/default.sh ln -s /usr/local/vesta/data/templates/web/nginx/hosting.tpl /usr/local/vesta/data/templates/web/nginx/default.tpl ln -s /usr/local/vesta/data/templates/web/nginx/hosting.stpl /usr/local/vesta/data/templates/web/nginx/default.stpl @@ -914,7 +1005,7 @@ if [ "$release" -eq 10 ]; then ln -s /usr/local/vesta/data/templates/web/nginx/php-fpm/default.tpl /usr/local/vesta/data/templates/web/nginx/php-fpm/PHP-FPM-73.tpl fi if [ "$release" -eq 11 ]; then - # Symlink missing templates + echo "== Symlink missing templates" ln -s /usr/local/vesta/data/templates/web/nginx/hosting.sh /usr/local/vesta/data/templates/web/nginx/default.sh ln -s /usr/local/vesta/data/templates/web/nginx/hosting.tpl /usr/local/vesta/data/templates/web/nginx/default.tpl ln -s /usr/local/vesta/data/templates/web/nginx/hosting.stpl /usr/local/vesta/data/templates/web/nginx/default.stpl @@ -930,7 +1021,7 @@ if [ "$release" -eq 11 ]; then ln -s /usr/local/vesta/data/templates/web/nginx/php-fpm/default.tpl /usr/local/vesta/data/templates/web/nginx/php-fpm/PHP-FPM-74.tpl fi -# Set nameservers +echo "== Set nameservers address" sed -i "s/YOURHOSTNAME1/ns1.$servername/" /usr/local/vesta/data/packages/default.pkg sed -i "s/YOURHOSTNAME2/ns2.$servername/" /usr/local/vesta/data/packages/default.pkg sed -i "s/ns1.domain.tld/ns1.$servername/" /usr/local/vesta/data/packages/default.pkg @@ -938,17 +1029,17 @@ sed -i "s/ns2.domain.tld/ns2.$servername/" /usr/local/vesta/data/packages/defaul sed -i "s/ns1.example.com/ns1.$servername/" /usr/local/vesta/data/packages/default.pkg sed -i "s/ns2.example.com/ns2.$servername/" /usr/local/vesta/data/packages/default.pkg -# Copying index.html to default documentroot +echo "== Copying index.html to default documentroot" cp $VESTA/data/templates/web/skel/public_html/index.html /var/www/ sed -i 's/%domain%/It worked!/g' /var/www/index.html -# Installing firewall rules +echo "== Copying firewall rules" cp -rf $vestacp/firewall $VESTA/data/ -# Configuring server hostname +echo "== Configuring server hostname: $servername" $VESTA/bin/v-change-sys-hostname $servername 2>/dev/null -# Generating SSL certificate +echo "== Generating myVesta unsigned SSL certificate" $VESTA/bin/v-generate-ssl-cert $(hostname) $email 'US' 'California' \ 'San Francisco' 'Vesta Control Panel' 'IT' > /tmp/vst.pem @@ -957,7 +1048,6 @@ crt_end=$(grep -n "END CERTIFICATE-" /tmp/vst.pem |cut -f 1 -d:) key_start=$(grep -n "BEGIN RSA" /tmp/vst.pem |cut -f 1 -d:) key_end=$(grep -n "END RSA" /tmp/vst.pem |cut -f 1 -d:) -# Adding SSL certificate cd $VESTA/ssl sed -n "1,${crt_end}p" /tmp/vst.pem > certificate.crt sed -n "$key_start,${key_end}p" /tmp/vst.pem > certificate.key @@ -971,6 +1061,7 @@ rm /tmp/vst.pem #----------------------------------------------------------# if [ "$nginx" = 'yes' ]; then + echo "=== Configure nginx" rm -f /etc/nginx/conf.d/*.conf cp -f $vestacp/nginx/nginx.conf /etc/nginx/ cp -f $vestacp/nginx/status.conf /etc/nginx/conf.d/ @@ -980,9 +1071,11 @@ if [ "$nginx" = 'yes' ]; then cp -f $vestacp/logrotate/nginx /etc/logrotate.d/ echo > /etc/nginx/conf.d/vesta.conf mkdir -p /var/log/nginx/domains - update-rc.d nginx defaults - service nginx start - check_result $? "nginx start failed" + #update-rc.d nginx defaults + #service nginx start + currentservice='nginx' + ensure_startup $currentservice + ensure_start $currentservice fi @@ -991,6 +1084,7 @@ fi #----------------------------------------------------------# if [ "$apache" = 'yes' ]; then + echo "=== Configure Apache" cp -f $vestacp/apache2/apache2.conf /etc/apache2/ cp -f $vestacp/apache2/status.conf /etc/apache2/mods-enabled/ cp -f $vestacp/logrotate/apache2 /etc/logrotate.d/ @@ -1013,12 +1107,16 @@ if [ "$apache" = 'yes' ]; then chmod a+x /var/log/apache2 chmod 640 /var/log/apache2/access.log /var/log/apache2/error.log chmod 751 /var/log/apache2/domains - update-rc.d apache2 defaults - service apache2 start - check_result $? "apache2 start failed" + #update-rc.d apache2 defaults + #service apache2 start + currentservice='apache2' + ensure_startup $currentservice + ensure_start $currentservice else - update-rc.d apache2 disable >/dev/null 2>&1 - service apache2 stop >/dev/null 2>&1 + #update-rc.d apache2 disable >/dev/null 2>&1 + #service apache2 stop >/dev/null 2>&1 + systemctl disable apache2 + systemctl stop apache2 fi @@ -1027,26 +1125,31 @@ fi #----------------------------------------------------------# if [ "$phpfpm" = 'yes' ]; then + echo "=== Configure PHP-FPM" if [ "$release" -eq 11 ]; then cp -f $vestacp/php-fpm/www.conf /etc/php/7.4/fpm/pool.d/www.conf - update-rc.d php7.4-fpm defaults - service php7.4-fpm start - check_result $? "php-fpm start failed" + #update-rc.d php7.4-fpm defaults + currentservice='php7.4-fpm' + ensure_startup $currentservice + ensure_start $currentservice elif [ "$release" -eq 10 ]; then cp -f $vestacp/php-fpm/www.conf /etc/php/7.3/fpm/pool.d/www.conf - update-rc.d php7.3-fpm defaults - service php7.3-fpm start - check_result $? "php-fpm start failed" + #update-rc.d php7.3-fpm defaults + currentservice='php7.3-fpm' + ensure_startup $currentservice + ensure_start $currentservice elif [ "$release" -eq 9 ]; then cp -f $vestacp/php-fpm/www.conf /etc/php/7.0/fpm/pool.d/www.conf - update-rc.d php7.0-fpm defaults - service php7.0-fpm start - check_result $? "php-fpm start failed" + #update-rc.d php7.0-fpm defaults + currentservice='php7.0-fpm' + ensure_startup $currentservice + ensure_start $currentservice else cp -f $vestacp/php5-fpm/www.conf /etc/php5/fpm/pool.d/www.conf - update-rc.d php5-fpm defaults - service php5-fpm start - check_result $? "php-fpm start failed" + #update-rc.d php5-fpm defaults + currentservice='php5-fpm' + ensure_startup $currentservice + ensure_start $currentservice fi fi @@ -1055,6 +1158,7 @@ fi # Configure PHP # #----------------------------------------------------------# +echo "=== Configure PHP timezone" ZONE=$(timedatectl 2>/dev/null|grep Timezone|awk '{print $2}') if [ -z "$ZONE" ]; then ZONE='UTC' @@ -1070,10 +1174,12 @@ done #----------------------------------------------------------# if [ "$vsftpd" = 'yes' ]; then + echo "=== Configure VSFTPD" cp -f $vestacp/vsftpd/vsftpd.conf /etc/ - update-rc.d vsftpd defaults - service vsftpd start - check_result $? "vsftpd start failed" + #update-rc.d vsftpd defaults + currentservice='vsftpd' + ensure_startup $currentservice + ensure_start $currentservice # To be deleted after release 0.9.8-18 echo "/sbin/nologin" >> /etc/shells @@ -1085,18 +1191,14 @@ fi #----------------------------------------------------------# if [ "$proftpd" = 'yes' ]; then + echo "=== Configure ProFTPD" echo "127.0.0.1 $servername" >> /etc/hosts cp -f $vestacp/proftpd/proftpd.conf /etc/proftpd/ cp -f $vestacp/proftpd/tls.conf /etc/proftpd/ - update-rc.d proftpd defaults - service proftpd start - check_result $? "proftpd start failed" - if [ "$release" -eq 11 ]; then - unit_files="$(systemctl list-unit-files |grep proftpd)" - if [[ "$unit_files" =~ "disabled" ]]; then - systemctl enable proftpd - fi - fi + #update-rc.d proftpd defaults + currentservice='proftpd' + ensure_startup $currentservice + ensure_start $currentservice fi @@ -1104,34 +1206,39 @@ fi # Configure MySQL/MariaDB # #----------------------------------------------------------# -if [ "$mysql" = 'yes' ]; then - mycnf="my-small.cnf" - if [ $memory -gt 1200000 ]; then - mycnf="my-medium.cnf" - fi - if [ $memory -gt 3900000 ]; then - mycnf="my-large.cnf" - fi +if [ "$mysql" = 'yes' ] || [ "$mysql8" = 'yes' ]; then + if [ "$mysql" = 'yes' ]; then + echo "=== Configure MariaDB" + mycnf="my-small.cnf" + if [ $memory -gt 1200000 ]; then + mycnf="my-medium.cnf" + fi + if [ $memory -gt 3900000 ]; then + mycnf="my-large.cnf" + fi - # MySQL configuration - cp -f $vestacp/mysql/$mycnf /etc/mysql/my.cnf - mysql_install_db - update-rc.d mysql defaults - service mysql start - check_result $? "mysql start failed" + # MySQL configuration + cp -f $vestacp/mysql/$mycnf /etc/mysql/my.cnf + mysql_install_db + # update-rc.d mysql defaults + currentservice='mysql' + ensure_startup $currentservice + ensure_start $currentservice - # Securing MySQL installation - mpass=$(gen_pass) - mysqladmin -u root password $mpass - echo -e "[client]\npassword='$mpass'\n" > /root/.my.cnf - chmod 600 /root/.my.cnf - mysql -e "DELETE FROM mysql.user WHERE User=''" - mysql -e "DROP DATABASE test" >/dev/null 2>&1 - mysql -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'" - mysql -e "DELETE FROM mysql.user WHERE user='' or password='';" - mysql -e "FLUSH PRIVILEGES" + # Securing MySQL installation + mpass=$(gen_pass) + mysqladmin -u root password $mpass + echo -e "[client]\npassword='$mpass'\n" > /root/.my.cnf + chmod 600 /root/.my.cnf + mysql -e "DELETE FROM mysql.user WHERE User=''" + mysql -e "DROP DATABASE test" >/dev/null 2>&1 + mysql -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'" + mysql -e "DELETE FROM mysql.user WHERE user='' or password='';" + mysql -e "FLUSH PRIVILEGES" + fi # Configuring phpMyAdmin + echo "=== Configure phpMyAdmin" if [ "$release" -eq 10 ]; then mkdir /etc/phpmyadmin mkdir -p /var/lib/phpmyadmin/tmp @@ -1148,7 +1255,7 @@ if [ "$mysql" = 'yes' ]; then mkdir /usr/share/phpmyadmin pma_v='4.9.7' - echo "(*) Installing phpMyAdmin version v$pma_v..." + echo "=== Installing phpMyAdmin version v$pma_v (Debian10 custom part)" cd /root/phpmyadmin @@ -1183,6 +1290,7 @@ if [ "$mysql" = 'yes' ]; then echo "\$cfg['blowfish_secret'] = '$blowfish';" >> /etc/phpmyadmin/config.inc.php fi if [ "$release" -eq 11 ]; then + echo "=== Configure phpMyAdmin (Debian11 custom part)" # Set config and log directory sed -i "s|define('CONFIG_DIR', '');|define('CONFIG_DIR', '/etc/phpmyadmin/');|" /usr/share/phpmyadmin/libraries/vendor_config.php sed -i "s|define('TEMP_DIR', './tmp/');|define('TEMP_DIR', '/var/lib/phpmyadmin/tmp/');|" /usr/share/phpmyadmin/libraries/vendor_config.php @@ -1205,9 +1313,12 @@ fi #----------------------------------------------------------# if [ "$postgresql" = 'yes' ]; then + echo "=== Configure PostgreSQL" ppass=$(gen_pass) cp -f $vestacp/postgresql/pg_hba.conf /etc/postgresql/*/main/ - service postgresql restart + currentservice='postgresql' + ensure_startup $currentservice + ensure_start $currentservice sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD '$ppass'" # Configuring phpPgAdmin @@ -1223,6 +1334,7 @@ fi #----------------------------------------------------------# if [ "$named" = 'yes' ]; then + echo "=== Configure Bind9" cp -f $vestacp/bind/named.conf /etc/bind/ sed -i "s%listen-on%//listen%" /etc/bind/named.conf.options chown root:bind /etc/bind/named.conf @@ -1237,9 +1349,10 @@ if [ "$named" = 'yes' ]; then service apparmor restart # fi fi - update-rc.d bind9 defaults - service bind9 start - check_result $? "bind9 start failed" + # update-rc.d bind9 defaults + currentservice='bind9' + ensure_startup $currentservice + ensure_start $currentservice fi #----------------------------------------------------------# @@ -1247,6 +1360,7 @@ fi #----------------------------------------------------------# if [ "$exim" = 'yes' ]; then + echo "=== Configure Exim" gpasswd -a Debian-exim mail cp -f $vestacp/exim/exim4.conf.template /etc/exim4/ cp -f $vestacp/exim/dnsbl.conf /etc/exim4/ @@ -1272,8 +1386,10 @@ if [ "$exim" = 'yes' ]; then update-rc.d -f postfix remove > /dev/null 2>&1 service postfix stop > /dev/null 2>&1 - update-rc.d exim4 defaults - service exim4 start + #update-rc.d exim4 defaults + currentservice='exim4' + ensure_startup $currentservice + ensure_start $currentservice fi @@ -1282,13 +1398,15 @@ fi #----------------------------------------------------------# if [ "$dovecot" = 'yes' ]; then + echo "=== Configure Dovecot" gpasswd -a dovecot mail cp -rf $vestacp/dovecot /etc/ cp -f $vestacp/logrotate/dovecot /etc/logrotate.d/ chown -R root:root /etc/dovecot* - update-rc.d dovecot defaults - service dovecot start - check_result $? "dovecot start failed" + # update-rc.d dovecot defaults + currentservice='dovecot' + ensure_startup $currentservice + ensure_start $currentservice fi @@ -1297,13 +1415,20 @@ fi #----------------------------------------------------------# if [ "$clamd" = 'yes' ]; then + echo "=== Configure ClamAV" gpasswd -a clamav mail gpasswd -a clamav Debian-exim cp -f $vestacp/clamav/clamd.conf /etc/clamav/ mkdir -p /var/lib/clamav /usr/bin/freshclam - update-rc.d clamav-daemon defaults - if [ ! -d "/var/run/clamav" ]; then + + # update-rc.d clamav-daemon defaults + currentservice='clamav-daemon' + ensure_startup $currentservice + currentservice='clamav-freshclam' + ensure_startup $currentservice + + if [ ! -d "/var/run/clamav" ]; then mkdir /var/run/clamav fi chown -R clamav:clamav /var/run/clamav @@ -1319,13 +1444,11 @@ if [ "$clamd" = 'yes' ]; then wget -nv -O $clamavfolder/foxhole_all.cdb http://c.myvestacp.com/tools/clamav/foxhole_all.cdb chown clamav:clamav $clamavfolder/foxhole_all.cdb fi - service clamav-daemon start - check_result $? "clamav-daeom start failed" - systemctl status clamav-freshclam.service > /dev/null 2>&1 - if [ $? -ne 0 ]; then - systemctl start clamav-freshclam.service - fi + currentservice='clamav-daemon' + ensure_start $currentservice + currentservice='clamav-freshclam' + ensure_start $currentservice fi @@ -1334,14 +1457,12 @@ fi #----------------------------------------------------------# if [ "$spamd" = 'yes' ]; then - update-rc.d spamassassin defaults + echo "=== Configure SpamAssassin" + #update-rc.d spamassassin defaults sed -i "s/ENABLED=0/ENABLED=1/" /etc/default/spamassassin - service spamassassin start - check_result $? "spamassassin start failed" - unit_files="$(systemctl list-unit-files |grep spamassassin)" - if [[ "$unit_files" =~ "disabled" ]]; then - systemctl enable spamassassin - fi + currentservice='spamassassin' + ensure_startup $currentservice + ensure_start $currentservice fi @@ -1349,7 +1470,8 @@ fi # Configure RoundCube # #----------------------------------------------------------# -if [ "$exim" = 'yes' ] && [ "$mysql" = 'yes' ]; then +if [ "$exim" = 'yes' ] && { [ "$mysql" = 'yes' ] || [ "$mysql8" = 'yes' ]; } then + echo "=== Configure RoundCube" if [ "$apache" = 'yes' ]; then cp -f $vestacp/roundcube/apache.conf /etc/roundcube/ ln -s /etc/roundcube/apache.conf /etc/apache2/conf.d/roundcube.conf @@ -1365,8 +1487,14 @@ if [ "$exim" = 'yes' ] && [ "$mysql" = 'yes' ]; then cp -f $vestacp/roundcube/config.inc.php /etc/roundcube/plugins/password/ r="$(gen_pass)" mysql -e "CREATE DATABASE roundcube" - mysql -e "GRANT ALL ON roundcube.* - TO roundcube@localhost IDENTIFIED BY '$r'" + if [ "$mysql8" = 'yes' ]; then + mysql -e "CREATE USER 'roundcube'@'localhost' IDENTIFIED BY '$r';" + mysql -e "GRANT ALL ON roundcube.* + TO roundcube@localhost" + else + mysql -e "GRANT ALL ON roundcube.* + TO roundcube@localhost IDENTIFIED BY '$r'" + fi sed -i "s/%password%/$r/g" /etc/roundcube/db.inc.php sed -i "s/localhost/$servername/g" \ /etc/roundcube/plugins/password/config.inc.php @@ -1415,6 +1543,7 @@ fi #----------------------------------------------------------# if [ "$fail2ban" = 'yes' ]; then + echo "=== Configure Fail2Ban" cp -rf $vestacp/fail2ban /etc/ if [ "$dovecot" = 'no' ]; then fline=$(cat /etc/fail2ban/jail.local |grep -n dovecot-iptables -A 2) @@ -1435,9 +1564,11 @@ if [ "$fail2ban" = 'yes' ]; then fline=$(echo "$fline" |grep enabled |tail -n1 |cut -f 1 -d -) sed -i "${fline}s/false/true/" /etc/fail2ban/jail.local fi - update-rc.d fail2ban defaults - service fail2ban start - check_result $? "fail2ban start failed" + #update-rc.d fail2ban defaults + currentservice='fail2ban' + ensure_startup $currentservice + ensure_start $currentservice + echo "- leaving fail2ban config" fi @@ -1445,12 +1576,13 @@ fi # Configure Admin User # #----------------------------------------------------------# +echo "=== Configure Admin User" if [ "$release" -eq 11 ]; then - # Switching to sha512 + echo "=== Switching to sha512" sed -i "s/yescrypt/sha512/g" /etc/pam.d/common-password fi -# Deleting old admin user +echo "== Deleting old admin user" if [ ! -z "$(grep ^admin: /etc/passwd)" ] && [ "$force" = 'yes' ]; then chattr -i /home/admin/conf > /dev/null 2>&1 userdel -f admin >/dev/null 2>&1 @@ -1462,14 +1594,14 @@ if [ ! -z "$(grep ^admin: /etc/group)" ]; then groupdel admin > /dev/null 2>&1 fi -# Adding vesta account +echo "== Adding vesta account" $VESTA/bin/v-add-user admin $vpass $email default System Administrator check_result $? "can't create admin user" $VESTA/bin/v-change-user-shell admin bash $VESTA/bin/v-change-user-language admin $lang -# RoundCube permissions fix -if [ "$exim" = 'yes' ] && [ "$mysql" = 'yes' ]; then +if [ "$exim" = 'yes' ] && { [ "$mysql" = 'yes' ] || [ "$mysql8" = 'yes' ]; } then + echo "== RoundCube permissions fix" if [ ! -d "/var/log/roundcube" ]; then mkdir /var/log/roundcube fi @@ -1479,28 +1611,30 @@ fi # Vesta data sessions permissions chown admin:admin $VESTA/data/sessions -# Configuring system ips +echo "== Configuring system ips" $VESTA/bin/v-update-sys-ip -# Get main ip +echo "== Get main ip" ip=$(ip addr|grep 'inet '|grep global|head -n1|awk '{print $2}'|cut -f1 -d/) local_ip=$ip # Firewall configuration if [ "$iptables" = 'yes' ]; then + echo "== Firewall configuration" $VESTA/bin/v-update-firewall fi -# Get public ip +echo "== Get public ip" pub_ip=$(curl -4 -s https://scripts.myvestacp.com/ip.php) if [ ! -z "$pub_ip" ] && [ "$pub_ip" != "$ip" ]; then + echo "== NAT detected" $VESTA/bin/v-change-sys-ip-nat $ip $pub_ip ip=$pub_ip fi -# Configuring libapache2-mod-remoteip if [ "$apache" = 'yes' ] && [ "$nginx" = 'yes' ] ; then + echo "== Configuring libapache2-mod-remoteip" cd /etc/apache2/mods-available echo "" > remoteip.conf echo " RemoteIPHeader X-Real-IP" >> remoteip.conf @@ -1519,30 +1653,31 @@ if [ "$apache" = 'yes' ] && [ "$nginx" = 'yes' ] ; then service apache2 restart fi -# Configuring mysql host -if [ "$mysql" = 'yes' ]; then - $VESTA/bin/v-add-database-host mysql localhost root $mpass - # $VESTA/bin/v-add-database admin default default $(gen_pass) mysql +if [ "$mysql" = 'yes' ] || [ "$mysql8" = 'yes' ]; then + echo "== Configuring mysql host" + $VESTA/bin/v-add-database-host mysql localhost root $mpass + # $VESTA/bin/v-add-database admin default default $(gen_pass) mysql fi -# Configuring pgsql host if [ "$postgresql" = 'yes' ]; then + echo "== Configuring pgsql host" $VESTA/bin/v-add-database-host pgsql localhost postgres $ppass $VESTA/bin/v-add-database admin db db $(gen_pass) pgsql fi -# Adding default domain +echo "== Adding default domain" $VESTA/bin/v-add-domain admin $servername check_result $? "can't create $servername domain" if [ "$named" = 'yes' ]; then - # Adding ns1 and ns2 A records + echo "== Adding ns1 and ns2 A records" /usr/local/vesta/bin/v-add-dns-record 'admin' "$servername" 'ns1' 'A' "$pub_ip" /usr/local/vesta/bin/v-add-dns-record 'admin' "$servername" 'ns2' 'A' "$pub_ip" fi if [ "$release" -eq 10 ]; then if [ -f "/etc/php/7.3/fpm/pool.d/$servername.conf" ]; then + echo "== FPM pool.d $servername tweaks" sed -i "/^group =/c\group = www-data" /etc/php/7.3/fpm/pool.d/$servername.conf sed -i "/max_execution_time/c\php_admin_value[max_execution_time] = 900" /etc/php/7.3/fpm/pool.d/$servername.conf sed -i "/request_terminate_timeout/c\request_terminate_timeout = 900s" /etc/php/7.3/fpm/pool.d/$servername.conf @@ -1555,6 +1690,7 @@ if [ "$release" -eq 10 ]; then fi if [ "$release" -eq 11 ]; then if [ -f "/etc/php/7.4/fpm/pool.d/$servername.conf" ]; then + echo "== FPM pool.d $servername tweaks" sed -i "/^group =/c\group = www-data" /etc/php/7.4/fpm/pool.d/$servername.conf sed -i "/max_execution_time/c\php_admin_value[max_execution_time] = 900" /etc/php/7.4/fpm/pool.d/$servername.conf sed -i "/request_terminate_timeout/c\request_terminate_timeout = 900s" /etc/php/7.4/fpm/pool.d/$servername.conf @@ -1566,7 +1702,7 @@ if [ "$release" -eq 11 ]; then fi fi -# Adding cron jobs +echo "== Adding cron jobs" command="sudo $VESTA/bin/v-update-sys-queue disk" $VESTA/bin/v-add-cron-job 'admin' '15' '02' '*' '*' '*' "$command" command="sudo $VESTA/bin/v-update-sys-queue traffic" @@ -1583,29 +1719,30 @@ command="sudo $VESTA/bin/v-update-sys-rrd" $VESTA/bin/v-add-cron-job 'admin' '*/5' '*' '*' '*' '*' "$command" service cron restart -# Building inititall rrd images +echo "== Building inititall rrd images" $VESTA/bin/v-update-sys-rrd -# Enabling file system quota if [ "$quota" = 'yes' ]; then + echo "== Enabling file system quota" $VESTA/bin/v-add-sys-quota fi -# Enabling softaculous plugin +echo "== Enabling softaculous plugin" if [ "$softaculous" = 'yes' ]; then $VESTA/bin/v-add-vesta-softaculous fi # Starting vesta service -update-rc.d vesta defaults -service vesta start -check_result $? "vesta start failed" +#update-rc.d vesta defaults +currentservice='vesta' +ensure_startup $currentservice +ensure_start $currentservice chown admin:admin $VESTA/data/sessions -# Adding notifications +echo "== Adding notifications" $VESTA/upd/add_notifications.sh -# Adding cronjob for autoupdates +echo "== Adding cronjob for autoupdates" $VESTA/bin/v-add-cron-vesta-autoupdate From 5a0914b71b35999440bd00e30618dfca1d3caa44 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 24 Jan 2022 23:20:31 +0100 Subject: [PATCH 362/984] Update vst-install-debian.sh --- install/vst-install-debian.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index f4920005..2dbd2c11 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -1568,7 +1568,6 @@ if [ "$fail2ban" = 'yes' ]; then currentservice='fail2ban' ensure_startup $currentservice ensure_start $currentservice - echo "- leaving fail2ban config" fi From a4251739e9b979a43e929e6be7dc71c8fd67b921 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 1 Feb 2022 16:19:16 +0100 Subject: [PATCH 363/984] Update install-new-roundcube.sh --- src/deb/for-download/tools/install-new-roundcube.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/deb/for-download/tools/install-new-roundcube.sh b/src/deb/for-download/tools/install-new-roundcube.sh index ff218ccb..2494e590 100644 --- a/src/deb/for-download/tools/install-new-roundcube.sh +++ b/src/deb/for-download/tools/install-new-roundcube.sh @@ -187,6 +187,11 @@ if [ "$check_grep" -eq 0 ]; then sed -i "s||

$LOGINMESSAGE1
$LOGINMESSAGE2


\n\n|g" /usr/share/roundcube/skins/larry/templates/login.html fi +check_grep=$(grep -c 'MAIL_URL=' /usr/local/vesta/conf/vesta.conf) +if [ "$check_grep" -eq 0 ]; then + echo "MAIL_URL='https://$DOMAIN/'" >> /usr/local/vesta/conf/vesta.conf +fi + echo "-------------------------------------" echo "Roundcube installed!" From 29b83e7f7629a3d482e7d49bad3ce60b53eaced0 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 8 Feb 2022 11:39:03 +0100 Subject: [PATCH 364/984] Update install-new-roundcube.sh --- src/deb/for-download/tools/install-new-roundcube.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/for-download/tools/install-new-roundcube.sh b/src/deb/for-download/tools/install-new-roundcube.sh index 2494e590..8996fa75 100644 --- a/src/deb/for-download/tools/install-new-roundcube.sh +++ b/src/deb/for-download/tools/install-new-roundcube.sh @@ -3,7 +3,7 @@ USER='webmail' DOMAIN='' # enter domain or subdomain -VERSION='1.5.1' +VERSION='1.5.2' DOWNLOAD="https://github.com/roundcube/roundcubemail/releases/download/$VERSION/roundcubemail-$VERSION-complete.tar.gz" LOGINMESSAGE1='Click here for NEW Webmail' From 8c186156fd71b8fdb97b62ff818dc73303efd2ae Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 11 Feb 2022 16:43:39 +0100 Subject: [PATCH 365/984] Update v-clean-garbage --- bin/v-clean-garbage | 1 + 1 file changed, 1 insertion(+) diff --git a/bin/v-clean-garbage b/bin/v-clean-garbage index ccee5fb5..067ecd58 100644 --- a/bin/v-clean-garbage +++ b/bin/v-clean-garbage @@ -27,6 +27,7 @@ find /var/log/exim4/ -type f -exec truncate -s 0 {} \; find /home/*/web/*/public_html/wp-content/aiowps_backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete find /home/*/web/*/public_html/wp-content/envato-backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete find /home/*/web/*/public_html/wp-content/ai1wm-backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete +find /home/*/web/*/public_html/wp-content/wpvividbackups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete find /home/*/web/*/public_html/wp-content/updraft/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete find /home/*/web/*/public_html/ -type f -name "error_log" -exec truncate -s 0 {} \; find /home/*/web/*/public_html/ -type f -name "error_log.txt" -exec truncate -s 0 {} \; From 2f115195d4870a0cb11c92f01f8f5249ee7a05f0 Mon Sep 17 00:00:00 2001 From: Umut Korkmaz Date: Wed, 16 Feb 2022 20:24:10 +0300 Subject: [PATCH 366/984] Update v-install-wordpress if the user reached the database limit abort the installation --- bin/v-install-wordpress | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/bin/v-install-wordpress b/bin/v-install-wordpress index d558dd35..95f6f353 100644 --- a/bin/v-install-wordpress +++ b/bin/v-install-wordpress @@ -29,6 +29,12 @@ source /etc/profile source /usr/local/vesta/func/main.sh source /usr/local/vesta/func/db.sh + +if [[ $(is_package_full 'DATABASES') = *reached* ]]; then + echo "Database limit is reached. Delete database or upgrade user package." + exit +fi + #----------------------------------------------------------# # Verifications # #----------------------------------------------------------# From 7331a39aceca45c2d46590ef6338cba2f83593b1 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 4 Mar 2022 18:53:06 +0100 Subject: [PATCH 367/984] srdb cli in v-clone-website --- bin/v-clone-website | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/bin/v-clone-website b/bin/v-clone-website index 7ed3046c..93e5ffc4 100644 --- a/bin/v-clone-website +++ b/bin/v-clone-website @@ -222,12 +222,11 @@ fi if [ $IT_IS_WP -eq 0 ]; then if [ ! -f "/root/Search-Replace-DB-master/srdb.cli.php" ]; then - echo "Please download https://interconnectit.com/products/search-and-replace-for-wordpress-databases/ and extract to /root/Search-Replace-DB-master/" - exit 13 - fi - if [ ! -f "/usr/bin/php7.0" ]; then - echo "Please download https://c.myvestacp.com/tools/multi-php-install.sh and install php 7.0" - exit 14 + if [ ! -f "/usr/bin/git" ]; then + apt-get update > /dev/null 2>&1 + apt-get -y install git > /dev/null 2>&1 + fi + git clone https://github.com/interconnectit/Search-Replace-DB.git fi else if [ ! -f "/usr/local/bin/wp" ]; then @@ -338,7 +337,7 @@ fi if [ $IT_IS_WP -eq 0 ]; then echo "=== Replacing $FROM_DOMAIN to $TO_DOMAIN in database $TO_DATABASE_NAME" - php7.0 /root/Search-Replace-DB-master/srdb.cli.php -h localhost -n "$TO_DATABASE_NAME" -u "$TO_DATABASE_USERNAME" -p "$TO_DATABASE_PASSWORD" -s "$FROM_DOMAIN" -r "$TO_DOMAIN" + php /root/Search-Replace-DB/srdb.cli.php -h localhost -n "$TO_DATABASE_NAME" -u "$TO_DATABASE_USERNAME" -p "$TO_DATABASE_PASSWORD" -s "$FROM_DOMAIN" -r "$TO_DOMAIN" if [ "$FROM_USER" != "$TO_USER" ]; then echo "=== Replacing /home/$FROM_USER/ to /home/$TO_USER/ in database $TO_DATABASE_NAME" php7.0 /root/Search-Replace-DB-master/srdb.cli.php -h localhost -n "$TO_DATABASE_NAME" -u "$TO_DATABASE_USERNAME" -p "$TO_DATABASE_PASSWORD" -s "/home/$FROM_USER/" -r "/home/$TO_USER/" From 81b63267cfea7d3e81422d85f60ea2b96f04d1c7 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 4 Mar 2022 18:54:15 +0100 Subject: [PATCH 368/984] Update v-clone-website --- bin/v-clone-website | 1 + 1 file changed, 1 insertion(+) diff --git a/bin/v-clone-website b/bin/v-clone-website index 93e5ffc4..8247d78d 100644 --- a/bin/v-clone-website +++ b/bin/v-clone-website @@ -226,6 +226,7 @@ if [ $IT_IS_WP -eq 0 ]; then apt-get update > /dev/null 2>&1 apt-get -y install git > /dev/null 2>&1 fi + cd /root git clone https://github.com/interconnectit/Search-Replace-DB.git fi else From dd09dbe748e16bdcd2244ef4205d6bd1e642a69b Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 4 Mar 2022 20:30:40 +0100 Subject: [PATCH 369/984] Update v-clone-website --- bin/v-clone-website | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/v-clone-website b/bin/v-clone-website index 8247d78d..e055d1a3 100644 --- a/bin/v-clone-website +++ b/bin/v-clone-website @@ -221,7 +221,7 @@ fi # ----------- CHECK ------------- if [ $IT_IS_WP -eq 0 ]; then - if [ ! -f "/root/Search-Replace-DB-master/srdb.cli.php" ]; then + if [ ! -f "/root/Search-Replace-DB/srdb.cli.php" ]; then if [ ! -f "/usr/bin/git" ]; then apt-get update > /dev/null 2>&1 apt-get -y install git > /dev/null 2>&1 @@ -341,7 +341,7 @@ if [ $IT_IS_WP -eq 0 ]; then php /root/Search-Replace-DB/srdb.cli.php -h localhost -n "$TO_DATABASE_NAME" -u "$TO_DATABASE_USERNAME" -p "$TO_DATABASE_PASSWORD" -s "$FROM_DOMAIN" -r "$TO_DOMAIN" if [ "$FROM_USER" != "$TO_USER" ]; then echo "=== Replacing /home/$FROM_USER/ to /home/$TO_USER/ in database $TO_DATABASE_NAME" - php7.0 /root/Search-Replace-DB-master/srdb.cli.php -h localhost -n "$TO_DATABASE_NAME" -u "$TO_DATABASE_USERNAME" -p "$TO_DATABASE_PASSWORD" -s "/home/$FROM_USER/" -r "/home/$TO_USER/" + php /root/Search-Replace-DB/srdb.cli.php -h localhost -n "$TO_DATABASE_NAME" -u "$TO_DATABASE_USERNAME" -p "$TO_DATABASE_PASSWORD" -s "/home/$FROM_USER/" -r "/home/$TO_USER/" fi else cd $TO_FOLDER From 54c3fd1e13297a6451e92c69a246763064b4069d Mon Sep 17 00:00:00 2001 From: myvesta Date: Fri, 11 Mar 2022 15:55:00 +0100 Subject: [PATCH 370/984] Blocking in nginx everything that begins with dot --- install/debian/10/templates/web/nginx/caching.stpl | 2 +- install/debian/10/templates/web/nginx/caching.tpl | 2 +- install/debian/10/templates/web/nginx/force-https-legacy.stpl | 2 +- install/debian/10/templates/web/nginx/force-https-public.stpl | 2 +- .../10/templates/web/nginx/force-https-webmail-phpmyadmin.stpl | 2 +- install/debian/10/templates/web/nginx/force-https.stpl | 2 +- install/debian/10/templates/web/nginx/hosting-legacy.stpl | 2 +- install/debian/10/templates/web/nginx/hosting-legacy.tpl | 2 +- install/debian/10/templates/web/nginx/hosting-public.stpl | 2 +- install/debian/10/templates/web/nginx/hosting-public.tpl | 2 +- .../10/templates/web/nginx/hosting-webmail-phpmyadmin.stpl | 2 +- .../10/templates/web/nginx/hosting-webmail-phpmyadmin.tpl | 2 +- install/debian/10/templates/web/nginx/hosting.stpl | 2 +- install/debian/10/templates/web/nginx/hosting.tpl | 2 +- install/debian/10/templates/web/nginx/private-force-https.stpl | 2 +- install/debian/10/templates/web/nginx/private-hosting.stpl | 2 +- install/debian/10/templates/web/nginx/private-hosting.tpl | 2 +- install/debian/11/templates/web/nginx/caching.stpl | 2 +- install/debian/11/templates/web/nginx/caching.tpl | 2 +- install/debian/11/templates/web/nginx/force-https-legacy.stpl | 2 +- install/debian/11/templates/web/nginx/force-https-public.stpl | 2 +- .../11/templates/web/nginx/force-https-webmail-phpmyadmin.stpl | 2 +- install/debian/11/templates/web/nginx/force-https.stpl | 2 +- install/debian/11/templates/web/nginx/hosting-legacy.stpl | 2 +- install/debian/11/templates/web/nginx/hosting-legacy.tpl | 2 +- install/debian/11/templates/web/nginx/hosting-public.stpl | 2 +- install/debian/11/templates/web/nginx/hosting-public.tpl | 2 +- .../11/templates/web/nginx/hosting-webmail-phpmyadmin.stpl | 2 +- .../11/templates/web/nginx/hosting-webmail-phpmyadmin.tpl | 2 +- install/debian/11/templates/web/nginx/hosting.stpl | 2 +- install/debian/11/templates/web/nginx/hosting.tpl | 2 +- install/debian/11/templates/web/nginx/private-force-https.stpl | 2 +- install/debian/11/templates/web/nginx/private-hosting.stpl | 2 +- install/debian/11/templates/web/nginx/private-hosting.tpl | 2 +- install/debian/7/templates/web/nginx/caching.stpl | 2 +- install/debian/7/templates/web/nginx/caching.tpl | 2 +- install/debian/7/templates/web/nginx/default.stpl | 2 +- install/debian/7/templates/web/nginx/default.tpl | 2 +- install/debian/7/templates/web/nginx/hosting.stpl | 2 +- install/debian/7/templates/web/nginx/hosting.tpl | 2 +- install/debian/7/templates/web/nginx/http2.stpl | 2 +- install/debian/7/templates/web/nginx/http2.tpl | 2 +- install/debian/8/templates/web/nginx/caching.stpl | 2 +- install/debian/8/templates/web/nginx/caching.tpl | 2 +- install/debian/8/templates/web/nginx/default.stpl | 2 +- install/debian/8/templates/web/nginx/default.tpl | 2 +- install/debian/8/templates/web/nginx/hosting.stpl | 2 +- install/debian/8/templates/web/nginx/hosting.tpl | 2 +- install/debian/8/templates/web/nginx/http2.stpl | 2 +- install/debian/8/templates/web/nginx/http2.tpl | 2 +- install/debian/9/templates/web/nginx/caching.stpl | 2 +- install/debian/9/templates/web/nginx/caching.tpl | 2 +- install/debian/9/templates/web/nginx/default.stpl | 2 +- install/debian/9/templates/web/nginx/default.tpl | 2 +- install/debian/9/templates/web/nginx/hosting.stpl | 2 +- install/debian/9/templates/web/nginx/hosting.tpl | 2 +- install/debian/9/templates/web/nginx/http2.stpl | 2 +- install/debian/9/templates/web/nginx/http2.tpl | 2 +- install/rhel/5/templates/web/nginx/caching.stpl | 2 +- install/rhel/5/templates/web/nginx/caching.tpl | 2 +- install/rhel/5/templates/web/nginx/default.stpl | 2 +- install/rhel/5/templates/web/nginx/default.tpl | 2 +- install/rhel/5/templates/web/nginx/hosting.stpl | 2 +- install/rhel/5/templates/web/nginx/hosting.tpl | 2 +- install/rhel/5/templates/web/nginx/http2.stpl | 2 +- install/rhel/5/templates/web/nginx/http2.tpl | 2 +- install/rhel/6/templates/web/nginx/caching.stpl | 2 +- install/rhel/6/templates/web/nginx/caching.tpl | 2 +- install/rhel/6/templates/web/nginx/default.stpl | 2 +- install/rhel/6/templates/web/nginx/default.tpl | 2 +- install/rhel/6/templates/web/nginx/hosting.stpl | 2 +- install/rhel/6/templates/web/nginx/hosting.tpl | 2 +- install/rhel/6/templates/web/nginx/http2.stpl | 2 +- install/rhel/6/templates/web/nginx/http2.tpl | 2 +- install/rhel/7/templates/web/nginx/caching.stpl | 2 +- install/rhel/7/templates/web/nginx/caching.tpl | 2 +- install/rhel/7/templates/web/nginx/default.stpl | 2 +- install/rhel/7/templates/web/nginx/default.tpl | 2 +- install/rhel/7/templates/web/nginx/hosting.stpl | 2 +- install/rhel/7/templates/web/nginx/hosting.tpl | 2 +- install/rhel/7/templates/web/nginx/http2.stpl | 2 +- install/rhel/7/templates/web/nginx/http2.tpl | 2 +- install/ubuntu/12.04/templates/web/nginx/caching.stpl | 2 +- install/ubuntu/12.04/templates/web/nginx/caching.tpl | 2 +- install/ubuntu/12.04/templates/web/nginx/default.stpl | 2 +- install/ubuntu/12.04/templates/web/nginx/default.tpl | 2 +- install/ubuntu/12.04/templates/web/nginx/hosting.stpl | 2 +- install/ubuntu/12.04/templates/web/nginx/hosting.tpl | 2 +- install/ubuntu/12.04/templates/web/nginx/http2.stpl | 2 +- install/ubuntu/12.04/templates/web/nginx/http2.tpl | 2 +- install/ubuntu/12.10/templates/web/nginx/caching.stpl | 2 +- install/ubuntu/12.10/templates/web/nginx/caching.tpl | 2 +- install/ubuntu/12.10/templates/web/nginx/default.stpl | 2 +- install/ubuntu/12.10/templates/web/nginx/default.tpl | 2 +- install/ubuntu/12.10/templates/web/nginx/hosting.stpl | 2 +- install/ubuntu/12.10/templates/web/nginx/hosting.tpl | 2 +- install/ubuntu/12.10/templates/web/nginx/http2.stpl | 2 +- install/ubuntu/12.10/templates/web/nginx/http2.tpl | 2 +- install/ubuntu/13.04/templates/web/nginx/caching.stpl | 2 +- install/ubuntu/13.04/templates/web/nginx/caching.tpl | 2 +- install/ubuntu/13.04/templates/web/nginx/default.stpl | 2 +- install/ubuntu/13.04/templates/web/nginx/default.tpl | 2 +- install/ubuntu/13.04/templates/web/nginx/hosting.stpl | 2 +- install/ubuntu/13.04/templates/web/nginx/hosting.tpl | 2 +- install/ubuntu/13.04/templates/web/nginx/http2.stpl | 2 +- install/ubuntu/13.04/templates/web/nginx/http2.tpl | 2 +- install/ubuntu/13.10/templates/web/nginx/caching.stpl | 2 +- install/ubuntu/13.10/templates/web/nginx/caching.tpl | 2 +- install/ubuntu/13.10/templates/web/nginx/default.stpl | 2 +- install/ubuntu/13.10/templates/web/nginx/default.tpl | 2 +- install/ubuntu/13.10/templates/web/nginx/hosting.stpl | 2 +- install/ubuntu/13.10/templates/web/nginx/hosting.tpl | 2 +- install/ubuntu/13.10/templates/web/nginx/http2.stpl | 2 +- install/ubuntu/13.10/templates/web/nginx/http2.tpl | 2 +- install/ubuntu/14.04/templates/web/nginx/caching.stpl | 2 +- install/ubuntu/14.04/templates/web/nginx/caching.tpl | 2 +- install/ubuntu/14.04/templates/web/nginx/default.stpl | 2 +- install/ubuntu/14.04/templates/web/nginx/default.tpl | 2 +- install/ubuntu/14.04/templates/web/nginx/hosting.stpl | 2 +- install/ubuntu/14.04/templates/web/nginx/hosting.tpl | 2 +- install/ubuntu/14.04/templates/web/nginx/http2.stpl | 2 +- install/ubuntu/14.04/templates/web/nginx/http2.tpl | 2 +- install/ubuntu/14.10/templates/web/nginx/caching.stpl | 2 +- install/ubuntu/14.10/templates/web/nginx/caching.tpl | 2 +- install/ubuntu/14.10/templates/web/nginx/default.stpl | 2 +- install/ubuntu/14.10/templates/web/nginx/default.tpl | 2 +- install/ubuntu/14.10/templates/web/nginx/hosting.stpl | 2 +- install/ubuntu/14.10/templates/web/nginx/hosting.tpl | 2 +- install/ubuntu/14.10/templates/web/nginx/http2.stpl | 2 +- install/ubuntu/14.10/templates/web/nginx/http2.tpl | 2 +- install/ubuntu/15.04/templates/web/nginx/caching.stpl | 2 +- install/ubuntu/15.04/templates/web/nginx/caching.tpl | 2 +- install/ubuntu/15.04/templates/web/nginx/default.stpl | 2 +- install/ubuntu/15.04/templates/web/nginx/default.tpl | 2 +- install/ubuntu/15.04/templates/web/nginx/hosting.stpl | 2 +- install/ubuntu/15.04/templates/web/nginx/hosting.tpl | 2 +- install/ubuntu/15.04/templates/web/nginx/http2.stpl | 2 +- install/ubuntu/15.04/templates/web/nginx/http2.tpl | 2 +- install/ubuntu/15.10/templates/web/nginx/caching.stpl | 2 +- install/ubuntu/15.10/templates/web/nginx/caching.tpl | 2 +- install/ubuntu/15.10/templates/web/nginx/default.stpl | 2 +- install/ubuntu/15.10/templates/web/nginx/default.tpl | 2 +- install/ubuntu/15.10/templates/web/nginx/hosting.stpl | 2 +- install/ubuntu/15.10/templates/web/nginx/hosting.tpl | 2 +- install/ubuntu/15.10/templates/web/nginx/http2.stpl | 2 +- install/ubuntu/15.10/templates/web/nginx/http2.tpl | 2 +- install/ubuntu/16.04/templates/web/nginx/caching.stpl | 2 +- install/ubuntu/16.04/templates/web/nginx/caching.tpl | 2 +- install/ubuntu/16.04/templates/web/nginx/default.stpl | 2 +- install/ubuntu/16.04/templates/web/nginx/default.tpl | 2 +- install/ubuntu/16.04/templates/web/nginx/hosting.stpl | 2 +- install/ubuntu/16.04/templates/web/nginx/hosting.tpl | 2 +- install/ubuntu/16.04/templates/web/nginx/http2.stpl | 2 +- install/ubuntu/16.04/templates/web/nginx/http2.tpl | 2 +- install/ubuntu/16.10/templates/web/nginx/caching.stpl | 2 +- install/ubuntu/16.10/templates/web/nginx/caching.tpl | 2 +- install/ubuntu/16.10/templates/web/nginx/default.stpl | 2 +- install/ubuntu/16.10/templates/web/nginx/default.tpl | 2 +- install/ubuntu/16.10/templates/web/nginx/hosting.stpl | 2 +- install/ubuntu/16.10/templates/web/nginx/hosting.tpl | 2 +- install/ubuntu/16.10/templates/web/nginx/http2.stpl | 2 +- install/ubuntu/16.10/templates/web/nginx/http2.tpl | 2 +- install/ubuntu/17.04/templates/web/nginx/caching.stpl | 2 +- install/ubuntu/17.04/templates/web/nginx/caching.tpl | 2 +- install/ubuntu/17.04/templates/web/nginx/default.stpl | 2 +- install/ubuntu/17.04/templates/web/nginx/default.tpl | 2 +- install/ubuntu/17.04/templates/web/nginx/hosting.stpl | 2 +- install/ubuntu/17.04/templates/web/nginx/hosting.tpl | 2 +- install/ubuntu/17.04/templates/web/nginx/http2.stpl | 2 +- install/ubuntu/17.04/templates/web/nginx/http2.tpl | 2 +- install/ubuntu/17.10/templates/web/nginx/caching.stpl | 2 +- install/ubuntu/17.10/templates/web/nginx/caching.tpl | 2 +- install/ubuntu/17.10/templates/web/nginx/default.stpl | 2 +- install/ubuntu/17.10/templates/web/nginx/default.tpl | 2 +- install/ubuntu/17.10/templates/web/nginx/hosting.stpl | 2 +- install/ubuntu/17.10/templates/web/nginx/hosting.tpl | 2 +- install/ubuntu/17.10/templates/web/nginx/http2.stpl | 2 +- install/ubuntu/17.10/templates/web/nginx/http2.tpl | 2 +- install/ubuntu/18.04/templates/web/nginx/caching.stpl | 2 +- install/ubuntu/18.04/templates/web/nginx/caching.tpl | 2 +- install/ubuntu/18.04/templates/web/nginx/default.stpl | 2 +- install/ubuntu/18.04/templates/web/nginx/default.tpl | 2 +- install/ubuntu/18.04/templates/web/nginx/hosting.stpl | 2 +- install/ubuntu/18.04/templates/web/nginx/hosting.tpl | 2 +- install/ubuntu/18.04/templates/web/nginx/http2.stpl | 2 +- install/ubuntu/18.04/templates/web/nginx/http2.tpl | 2 +- install/ubuntu/18.10/templates/web/nginx/caching.stpl | 2 +- install/ubuntu/18.10/templates/web/nginx/caching.tpl | 2 +- install/ubuntu/18.10/templates/web/nginx/default.stpl | 2 +- install/ubuntu/18.10/templates/web/nginx/default.tpl | 2 +- install/ubuntu/18.10/templates/web/nginx/hosting.stpl | 2 +- install/ubuntu/18.10/templates/web/nginx/hosting.tpl | 2 +- install/ubuntu/18.10/templates/web/nginx/http2.stpl | 2 +- install/ubuntu/18.10/templates/web/nginx/http2.tpl | 2 +- .../nodejs-nginx-templates/node-app-3000-no-https-force.stpl | 2 +- .../nodejs-nginx-templates/node-app-3000-no-https-force.tpl | 2 +- .../nodejs-nginx-templates/node-app-3000-pass-to-https.stpl | 2 +- .../tools/nodejs-nginx-templates/node-app-3000.stpl | 2 +- .../node-app-4000-and-websocket-6001.stpl | 2 +- .../node-app-also-handle-static-files-3000.stpl | 2 +- .../node-app-also-handle-static-files-3000.tpl | 2 +- .../force-https-firewall-burst-2-speed-2-conn-4.stpl | 2 +- .../rate-limit-tpl/force-https-firewall-burst-2-speed-2.stpl | 2 +- .../tools/rate-limit-tpl/force-https-firewall-burst-2.stpl | 2 +- .../for-download/tools/rate-limit-tpl/force-https-firewall.stpl | 2 +- .../rate-limit-tpl/hosting-firewall-burst-2-speed-2-conn-4.stpl | 2 +- .../rate-limit-tpl/hosting-firewall-burst-2-speed-2-conn-4.tpl | 2 +- .../tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2.stpl | 2 +- .../tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2.tpl | 2 +- .../tools/rate-limit-tpl/hosting-firewall-burst-2.stpl | 2 +- .../tools/rate-limit-tpl/hosting-firewall-burst-2.tpl | 2 +- src/deb/for-download/tools/rate-limit-tpl/hosting-firewall.stpl | 2 +- src/deb/for-download/tools/rate-limit-tpl/hosting-firewall.tpl | 2 +- 213 files changed, 213 insertions(+), 213 deletions(-) diff --git a/install/debian/10/templates/web/nginx/caching.stpl b/install/debian/10/templates/web/nginx/caching.stpl index 868e2fe9..2302b419 100644 --- a/install/debian/10/templates/web/nginx/caching.stpl +++ b/install/debian/10/templates/web/nginx/caching.stpl @@ -33,7 +33,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/10/templates/web/nginx/caching.tpl b/install/debian/10/templates/web/nginx/caching.tpl index 36761b65..a1a89549 100644 --- a/install/debian/10/templates/web/nginx/caching.tpl +++ b/install/debian/10/templates/web/nginx/caching.tpl @@ -31,7 +31,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/10/templates/web/nginx/force-https-legacy.stpl b/install/debian/10/templates/web/nginx/force-https-legacy.stpl index 01a4eea3..db3714c2 100644 --- a/install/debian/10/templates/web/nginx/force-https-legacy.stpl +++ b/install/debian/10/templates/web/nginx/force-https-legacy.stpl @@ -25,7 +25,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/10/templates/web/nginx/force-https-public.stpl b/install/debian/10/templates/web/nginx/force-https-public.stpl index 22951ae5..9c11d06d 100644 --- a/install/debian/10/templates/web/nginx/force-https-public.stpl +++ b/install/debian/10/templates/web/nginx/force-https-public.stpl @@ -25,7 +25,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/10/templates/web/nginx/force-https-webmail-phpmyadmin.stpl b/install/debian/10/templates/web/nginx/force-https-webmail-phpmyadmin.stpl index dac7adaf..45e05c3b 100644 --- a/install/debian/10/templates/web/nginx/force-https-webmail-phpmyadmin.stpl +++ b/install/debian/10/templates/web/nginx/force-https-webmail-phpmyadmin.stpl @@ -49,7 +49,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/10/templates/web/nginx/force-https.stpl b/install/debian/10/templates/web/nginx/force-https.stpl index 4a8185c8..2abae221 100644 --- a/install/debian/10/templates/web/nginx/force-https.stpl +++ b/install/debian/10/templates/web/nginx/force-https.stpl @@ -25,7 +25,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/10/templates/web/nginx/hosting-legacy.stpl b/install/debian/10/templates/web/nginx/hosting-legacy.stpl index cc0370c6..16874648 100644 --- a/install/debian/10/templates/web/nginx/hosting-legacy.stpl +++ b/install/debian/10/templates/web/nginx/hosting-legacy.stpl @@ -25,7 +25,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/10/templates/web/nginx/hosting-legacy.tpl b/install/debian/10/templates/web/nginx/hosting-legacy.tpl index 15961c95..541e560a 100644 --- a/install/debian/10/templates/web/nginx/hosting-legacy.tpl +++ b/install/debian/10/templates/web/nginx/hosting-legacy.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/10/templates/web/nginx/hosting-public.stpl b/install/debian/10/templates/web/nginx/hosting-public.stpl index 22951ae5..9c11d06d 100644 --- a/install/debian/10/templates/web/nginx/hosting-public.stpl +++ b/install/debian/10/templates/web/nginx/hosting-public.stpl @@ -25,7 +25,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/10/templates/web/nginx/hosting-public.tpl b/install/debian/10/templates/web/nginx/hosting-public.tpl index 9ff417ba..756ede37 100644 --- a/install/debian/10/templates/web/nginx/hosting-public.tpl +++ b/install/debian/10/templates/web/nginx/hosting-public.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/10/templates/web/nginx/hosting-webmail-phpmyadmin.stpl b/install/debian/10/templates/web/nginx/hosting-webmail-phpmyadmin.stpl index dac7adaf..45e05c3b 100644 --- a/install/debian/10/templates/web/nginx/hosting-webmail-phpmyadmin.stpl +++ b/install/debian/10/templates/web/nginx/hosting-webmail-phpmyadmin.stpl @@ -49,7 +49,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/10/templates/web/nginx/hosting-webmail-phpmyadmin.tpl b/install/debian/10/templates/web/nginx/hosting-webmail-phpmyadmin.tpl index 5f601672..da7dc9b2 100644 --- a/install/debian/10/templates/web/nginx/hosting-webmail-phpmyadmin.tpl +++ b/install/debian/10/templates/web/nginx/hosting-webmail-phpmyadmin.tpl @@ -46,7 +46,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/10/templates/web/nginx/hosting.stpl b/install/debian/10/templates/web/nginx/hosting.stpl index 30fe0f74..e6ce0670 100644 --- a/install/debian/10/templates/web/nginx/hosting.stpl +++ b/install/debian/10/templates/web/nginx/hosting.stpl @@ -25,7 +25,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/10/templates/web/nginx/hosting.tpl b/install/debian/10/templates/web/nginx/hosting.tpl index 262417b1..87c2f824 100644 --- a/install/debian/10/templates/web/nginx/hosting.tpl +++ b/install/debian/10/templates/web/nginx/hosting.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/10/templates/web/nginx/private-force-https.stpl b/install/debian/10/templates/web/nginx/private-force-https.stpl index 2b4e42cc..164cec16 100644 --- a/install/debian/10/templates/web/nginx/private-force-https.stpl +++ b/install/debian/10/templates/web/nginx/private-force-https.stpl @@ -27,7 +27,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/10/templates/web/nginx/private-hosting.stpl b/install/debian/10/templates/web/nginx/private-hosting.stpl index 60b23c55..dbd5bec9 100644 --- a/install/debian/10/templates/web/nginx/private-hosting.stpl +++ b/install/debian/10/templates/web/nginx/private-hosting.stpl @@ -27,7 +27,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/10/templates/web/nginx/private-hosting.tpl b/install/debian/10/templates/web/nginx/private-hosting.tpl index da70045f..5fd75be5 100644 --- a/install/debian/10/templates/web/nginx/private-hosting.tpl +++ b/install/debian/10/templates/web/nginx/private-hosting.tpl @@ -24,7 +24,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/caching.stpl b/install/debian/11/templates/web/nginx/caching.stpl index 868e2fe9..2302b419 100644 --- a/install/debian/11/templates/web/nginx/caching.stpl +++ b/install/debian/11/templates/web/nginx/caching.stpl @@ -33,7 +33,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/caching.tpl b/install/debian/11/templates/web/nginx/caching.tpl index 36761b65..a1a89549 100644 --- a/install/debian/11/templates/web/nginx/caching.tpl +++ b/install/debian/11/templates/web/nginx/caching.tpl @@ -31,7 +31,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/force-https-legacy.stpl b/install/debian/11/templates/web/nginx/force-https-legacy.stpl index 01a4eea3..db3714c2 100644 --- a/install/debian/11/templates/web/nginx/force-https-legacy.stpl +++ b/install/debian/11/templates/web/nginx/force-https-legacy.stpl @@ -25,7 +25,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/force-https-public.stpl b/install/debian/11/templates/web/nginx/force-https-public.stpl index 22951ae5..9c11d06d 100644 --- a/install/debian/11/templates/web/nginx/force-https-public.stpl +++ b/install/debian/11/templates/web/nginx/force-https-public.stpl @@ -25,7 +25,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/force-https-webmail-phpmyadmin.stpl b/install/debian/11/templates/web/nginx/force-https-webmail-phpmyadmin.stpl index dac7adaf..45e05c3b 100644 --- a/install/debian/11/templates/web/nginx/force-https-webmail-phpmyadmin.stpl +++ b/install/debian/11/templates/web/nginx/force-https-webmail-phpmyadmin.stpl @@ -49,7 +49,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/force-https.stpl b/install/debian/11/templates/web/nginx/force-https.stpl index 4a8185c8..2abae221 100644 --- a/install/debian/11/templates/web/nginx/force-https.stpl +++ b/install/debian/11/templates/web/nginx/force-https.stpl @@ -25,7 +25,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/hosting-legacy.stpl b/install/debian/11/templates/web/nginx/hosting-legacy.stpl index cc0370c6..16874648 100644 --- a/install/debian/11/templates/web/nginx/hosting-legacy.stpl +++ b/install/debian/11/templates/web/nginx/hosting-legacy.stpl @@ -25,7 +25,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/hosting-legacy.tpl b/install/debian/11/templates/web/nginx/hosting-legacy.tpl index 15961c95..541e560a 100644 --- a/install/debian/11/templates/web/nginx/hosting-legacy.tpl +++ b/install/debian/11/templates/web/nginx/hosting-legacy.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/hosting-public.stpl b/install/debian/11/templates/web/nginx/hosting-public.stpl index 22951ae5..9c11d06d 100644 --- a/install/debian/11/templates/web/nginx/hosting-public.stpl +++ b/install/debian/11/templates/web/nginx/hosting-public.stpl @@ -25,7 +25,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/hosting-public.tpl b/install/debian/11/templates/web/nginx/hosting-public.tpl index 9ff417ba..756ede37 100644 --- a/install/debian/11/templates/web/nginx/hosting-public.tpl +++ b/install/debian/11/templates/web/nginx/hosting-public.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/hosting-webmail-phpmyadmin.stpl b/install/debian/11/templates/web/nginx/hosting-webmail-phpmyadmin.stpl index dac7adaf..45e05c3b 100644 --- a/install/debian/11/templates/web/nginx/hosting-webmail-phpmyadmin.stpl +++ b/install/debian/11/templates/web/nginx/hosting-webmail-phpmyadmin.stpl @@ -49,7 +49,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/hosting-webmail-phpmyadmin.tpl b/install/debian/11/templates/web/nginx/hosting-webmail-phpmyadmin.tpl index 5f601672..da7dc9b2 100644 --- a/install/debian/11/templates/web/nginx/hosting-webmail-phpmyadmin.tpl +++ b/install/debian/11/templates/web/nginx/hosting-webmail-phpmyadmin.tpl @@ -46,7 +46,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/hosting.stpl b/install/debian/11/templates/web/nginx/hosting.stpl index 30fe0f74..e6ce0670 100644 --- a/install/debian/11/templates/web/nginx/hosting.stpl +++ b/install/debian/11/templates/web/nginx/hosting.stpl @@ -25,7 +25,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/hosting.tpl b/install/debian/11/templates/web/nginx/hosting.tpl index 262417b1..87c2f824 100644 --- a/install/debian/11/templates/web/nginx/hosting.tpl +++ b/install/debian/11/templates/web/nginx/hosting.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/private-force-https.stpl b/install/debian/11/templates/web/nginx/private-force-https.stpl index 2b4e42cc..164cec16 100644 --- a/install/debian/11/templates/web/nginx/private-force-https.stpl +++ b/install/debian/11/templates/web/nginx/private-force-https.stpl @@ -27,7 +27,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/private-hosting.stpl b/install/debian/11/templates/web/nginx/private-hosting.stpl index 60b23c55..dbd5bec9 100644 --- a/install/debian/11/templates/web/nginx/private-hosting.stpl +++ b/install/debian/11/templates/web/nginx/private-hosting.stpl @@ -27,7 +27,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/private-hosting.tpl b/install/debian/11/templates/web/nginx/private-hosting.tpl index da70045f..5fd75be5 100644 --- a/install/debian/11/templates/web/nginx/private-hosting.tpl +++ b/install/debian/11/templates/web/nginx/private-hosting.tpl @@ -24,7 +24,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/7/templates/web/nginx/caching.stpl b/install/debian/7/templates/web/nginx/caching.stpl index e149b98b..62be58ba 100644 --- a/install/debian/7/templates/web/nginx/caching.stpl +++ b/install/debian/7/templates/web/nginx/caching.stpl @@ -33,7 +33,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/7/templates/web/nginx/caching.tpl b/install/debian/7/templates/web/nginx/caching.tpl index 36761b65..a1a89549 100644 --- a/install/debian/7/templates/web/nginx/caching.tpl +++ b/install/debian/7/templates/web/nginx/caching.tpl @@ -31,7 +31,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/7/templates/web/nginx/default.stpl b/install/debian/7/templates/web/nginx/default.stpl index 0e669b3d..7672d9ac 100644 --- a/install/debian/7/templates/web/nginx/default.stpl +++ b/install/debian/7/templates/web/nginx/default.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/7/templates/web/nginx/default.tpl b/install/debian/7/templates/web/nginx/default.tpl index 4d5c774b..0e200e92 100644 --- a/install/debian/7/templates/web/nginx/default.tpl +++ b/install/debian/7/templates/web/nginx/default.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/7/templates/web/nginx/hosting.stpl b/install/debian/7/templates/web/nginx/hosting.stpl index 62620789..3f4ad39b 100644 --- a/install/debian/7/templates/web/nginx/hosting.stpl +++ b/install/debian/7/templates/web/nginx/hosting.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/7/templates/web/nginx/hosting.tpl b/install/debian/7/templates/web/nginx/hosting.tpl index 15961c95..541e560a 100644 --- a/install/debian/7/templates/web/nginx/hosting.tpl +++ b/install/debian/7/templates/web/nginx/hosting.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/7/templates/web/nginx/http2.stpl b/install/debian/7/templates/web/nginx/http2.stpl index f225becd..b694d1c2 100644 --- a/install/debian/7/templates/web/nginx/http2.stpl +++ b/install/debian/7/templates/web/nginx/http2.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/7/templates/web/nginx/http2.tpl b/install/debian/7/templates/web/nginx/http2.tpl index 4d5c774b..0e200e92 100644 --- a/install/debian/7/templates/web/nginx/http2.tpl +++ b/install/debian/7/templates/web/nginx/http2.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/8/templates/web/nginx/caching.stpl b/install/debian/8/templates/web/nginx/caching.stpl index 3c56004d..86ba5c78 100644 --- a/install/debian/8/templates/web/nginx/caching.stpl +++ b/install/debian/8/templates/web/nginx/caching.stpl @@ -33,7 +33,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/8/templates/web/nginx/caching.tpl b/install/debian/8/templates/web/nginx/caching.tpl index 36761b65..a1a89549 100644 --- a/install/debian/8/templates/web/nginx/caching.tpl +++ b/install/debian/8/templates/web/nginx/caching.tpl @@ -31,7 +31,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/8/templates/web/nginx/default.stpl b/install/debian/8/templates/web/nginx/default.stpl index 0e669b3d..7672d9ac 100644 --- a/install/debian/8/templates/web/nginx/default.stpl +++ b/install/debian/8/templates/web/nginx/default.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/8/templates/web/nginx/default.tpl b/install/debian/8/templates/web/nginx/default.tpl index 4d5c774b..0e200e92 100644 --- a/install/debian/8/templates/web/nginx/default.tpl +++ b/install/debian/8/templates/web/nginx/default.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/8/templates/web/nginx/hosting.stpl b/install/debian/8/templates/web/nginx/hosting.stpl index 62620789..3f4ad39b 100644 --- a/install/debian/8/templates/web/nginx/hosting.stpl +++ b/install/debian/8/templates/web/nginx/hosting.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/8/templates/web/nginx/hosting.tpl b/install/debian/8/templates/web/nginx/hosting.tpl index 15961c95..541e560a 100644 --- a/install/debian/8/templates/web/nginx/hosting.tpl +++ b/install/debian/8/templates/web/nginx/hosting.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/8/templates/web/nginx/http2.stpl b/install/debian/8/templates/web/nginx/http2.stpl index f225becd..b694d1c2 100644 --- a/install/debian/8/templates/web/nginx/http2.stpl +++ b/install/debian/8/templates/web/nginx/http2.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/8/templates/web/nginx/http2.tpl b/install/debian/8/templates/web/nginx/http2.tpl index 4d5c774b..0e200e92 100644 --- a/install/debian/8/templates/web/nginx/http2.tpl +++ b/install/debian/8/templates/web/nginx/http2.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/9/templates/web/nginx/caching.stpl b/install/debian/9/templates/web/nginx/caching.stpl index 868e2fe9..2302b419 100644 --- a/install/debian/9/templates/web/nginx/caching.stpl +++ b/install/debian/9/templates/web/nginx/caching.stpl @@ -33,7 +33,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/9/templates/web/nginx/caching.tpl b/install/debian/9/templates/web/nginx/caching.tpl index 36761b65..a1a89549 100644 --- a/install/debian/9/templates/web/nginx/caching.tpl +++ b/install/debian/9/templates/web/nginx/caching.tpl @@ -31,7 +31,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/9/templates/web/nginx/default.stpl b/install/debian/9/templates/web/nginx/default.stpl index f225becd..b694d1c2 100644 --- a/install/debian/9/templates/web/nginx/default.stpl +++ b/install/debian/9/templates/web/nginx/default.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/9/templates/web/nginx/default.tpl b/install/debian/9/templates/web/nginx/default.tpl index 4d5c774b..0e200e92 100644 --- a/install/debian/9/templates/web/nginx/default.tpl +++ b/install/debian/9/templates/web/nginx/default.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/9/templates/web/nginx/hosting.stpl b/install/debian/9/templates/web/nginx/hosting.stpl index 3b0e8ce9..736751d5 100644 --- a/install/debian/9/templates/web/nginx/hosting.stpl +++ b/install/debian/9/templates/web/nginx/hosting.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/9/templates/web/nginx/hosting.tpl b/install/debian/9/templates/web/nginx/hosting.tpl index 15961c95..541e560a 100644 --- a/install/debian/9/templates/web/nginx/hosting.tpl +++ b/install/debian/9/templates/web/nginx/hosting.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/9/templates/web/nginx/http2.stpl b/install/debian/9/templates/web/nginx/http2.stpl index f225becd..b694d1c2 100644 --- a/install/debian/9/templates/web/nginx/http2.stpl +++ b/install/debian/9/templates/web/nginx/http2.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/9/templates/web/nginx/http2.tpl b/install/debian/9/templates/web/nginx/http2.tpl index 4d5c774b..0e200e92 100644 --- a/install/debian/9/templates/web/nginx/http2.tpl +++ b/install/debian/9/templates/web/nginx/http2.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/5/templates/web/nginx/caching.stpl b/install/rhel/5/templates/web/nginx/caching.stpl index 5e1ac757..2d8cb3ca 100755 --- a/install/rhel/5/templates/web/nginx/caching.stpl +++ b/install/rhel/5/templates/web/nginx/caching.stpl @@ -33,7 +33,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/5/templates/web/nginx/caching.tpl b/install/rhel/5/templates/web/nginx/caching.tpl index 6d727c67..677fea6f 100755 --- a/install/rhel/5/templates/web/nginx/caching.tpl +++ b/install/rhel/5/templates/web/nginx/caching.tpl @@ -31,7 +31,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/5/templates/web/nginx/default.stpl b/install/rhel/5/templates/web/nginx/default.stpl index 22bbd55a..cd350432 100755 --- a/install/rhel/5/templates/web/nginx/default.stpl +++ b/install/rhel/5/templates/web/nginx/default.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/5/templates/web/nginx/default.tpl b/install/rhel/5/templates/web/nginx/default.tpl index c1fec114..d7fa634c 100755 --- a/install/rhel/5/templates/web/nginx/default.tpl +++ b/install/rhel/5/templates/web/nginx/default.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/5/templates/web/nginx/hosting.stpl b/install/rhel/5/templates/web/nginx/hosting.stpl index c3414149..8985f0aa 100755 --- a/install/rhel/5/templates/web/nginx/hosting.stpl +++ b/install/rhel/5/templates/web/nginx/hosting.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/5/templates/web/nginx/hosting.tpl b/install/rhel/5/templates/web/nginx/hosting.tpl index 44d87496..41fe0c43 100755 --- a/install/rhel/5/templates/web/nginx/hosting.tpl +++ b/install/rhel/5/templates/web/nginx/hosting.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/5/templates/web/nginx/http2.stpl b/install/rhel/5/templates/web/nginx/http2.stpl index f225becd..b694d1c2 100644 --- a/install/rhel/5/templates/web/nginx/http2.stpl +++ b/install/rhel/5/templates/web/nginx/http2.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/5/templates/web/nginx/http2.tpl b/install/rhel/5/templates/web/nginx/http2.tpl index 4d5c774b..0e200e92 100644 --- a/install/rhel/5/templates/web/nginx/http2.tpl +++ b/install/rhel/5/templates/web/nginx/http2.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/6/templates/web/nginx/caching.stpl b/install/rhel/6/templates/web/nginx/caching.stpl index 5e1ac757..2d8cb3ca 100755 --- a/install/rhel/6/templates/web/nginx/caching.stpl +++ b/install/rhel/6/templates/web/nginx/caching.stpl @@ -33,7 +33,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/6/templates/web/nginx/caching.tpl b/install/rhel/6/templates/web/nginx/caching.tpl index 6d727c67..677fea6f 100755 --- a/install/rhel/6/templates/web/nginx/caching.tpl +++ b/install/rhel/6/templates/web/nginx/caching.tpl @@ -31,7 +31,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/6/templates/web/nginx/default.stpl b/install/rhel/6/templates/web/nginx/default.stpl index 22bbd55a..cd350432 100755 --- a/install/rhel/6/templates/web/nginx/default.stpl +++ b/install/rhel/6/templates/web/nginx/default.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/6/templates/web/nginx/default.tpl b/install/rhel/6/templates/web/nginx/default.tpl index c1fec114..d7fa634c 100755 --- a/install/rhel/6/templates/web/nginx/default.tpl +++ b/install/rhel/6/templates/web/nginx/default.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/6/templates/web/nginx/hosting.stpl b/install/rhel/6/templates/web/nginx/hosting.stpl index c3414149..8985f0aa 100755 --- a/install/rhel/6/templates/web/nginx/hosting.stpl +++ b/install/rhel/6/templates/web/nginx/hosting.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/6/templates/web/nginx/hosting.tpl b/install/rhel/6/templates/web/nginx/hosting.tpl index 44d87496..41fe0c43 100755 --- a/install/rhel/6/templates/web/nginx/hosting.tpl +++ b/install/rhel/6/templates/web/nginx/hosting.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/6/templates/web/nginx/http2.stpl b/install/rhel/6/templates/web/nginx/http2.stpl index cfdb9188..3f13ff22 100644 --- a/install/rhel/6/templates/web/nginx/http2.stpl +++ b/install/rhel/6/templates/web/nginx/http2.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/6/templates/web/nginx/http2.tpl b/install/rhel/6/templates/web/nginx/http2.tpl index b20e2922..b51af9bf 100644 --- a/install/rhel/6/templates/web/nginx/http2.tpl +++ b/install/rhel/6/templates/web/nginx/http2.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/7/templates/web/nginx/caching.stpl b/install/rhel/7/templates/web/nginx/caching.stpl index 5e1ac757..2d8cb3ca 100755 --- a/install/rhel/7/templates/web/nginx/caching.stpl +++ b/install/rhel/7/templates/web/nginx/caching.stpl @@ -33,7 +33,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/7/templates/web/nginx/caching.tpl b/install/rhel/7/templates/web/nginx/caching.tpl index 6d727c67..677fea6f 100755 --- a/install/rhel/7/templates/web/nginx/caching.tpl +++ b/install/rhel/7/templates/web/nginx/caching.tpl @@ -31,7 +31,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/7/templates/web/nginx/default.stpl b/install/rhel/7/templates/web/nginx/default.stpl index 22bbd55a..cd350432 100755 --- a/install/rhel/7/templates/web/nginx/default.stpl +++ b/install/rhel/7/templates/web/nginx/default.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/7/templates/web/nginx/default.tpl b/install/rhel/7/templates/web/nginx/default.tpl index c1fec114..d7fa634c 100755 --- a/install/rhel/7/templates/web/nginx/default.tpl +++ b/install/rhel/7/templates/web/nginx/default.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/7/templates/web/nginx/hosting.stpl b/install/rhel/7/templates/web/nginx/hosting.stpl index c3414149..8985f0aa 100755 --- a/install/rhel/7/templates/web/nginx/hosting.stpl +++ b/install/rhel/7/templates/web/nginx/hosting.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/7/templates/web/nginx/hosting.tpl b/install/rhel/7/templates/web/nginx/hosting.tpl index 44d87496..41fe0c43 100755 --- a/install/rhel/7/templates/web/nginx/hosting.tpl +++ b/install/rhel/7/templates/web/nginx/hosting.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/7/templates/web/nginx/http2.stpl b/install/rhel/7/templates/web/nginx/http2.stpl index f225becd..b694d1c2 100644 --- a/install/rhel/7/templates/web/nginx/http2.stpl +++ b/install/rhel/7/templates/web/nginx/http2.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/7/templates/web/nginx/http2.tpl b/install/rhel/7/templates/web/nginx/http2.tpl index 4d5c774b..0e200e92 100644 --- a/install/rhel/7/templates/web/nginx/http2.tpl +++ b/install/rhel/7/templates/web/nginx/http2.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/12.04/templates/web/nginx/caching.stpl b/install/ubuntu/12.04/templates/web/nginx/caching.stpl index e149b98b..62be58ba 100755 --- a/install/ubuntu/12.04/templates/web/nginx/caching.stpl +++ b/install/ubuntu/12.04/templates/web/nginx/caching.stpl @@ -33,7 +33,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/12.04/templates/web/nginx/caching.tpl b/install/ubuntu/12.04/templates/web/nginx/caching.tpl index 36761b65..a1a89549 100755 --- a/install/ubuntu/12.04/templates/web/nginx/caching.tpl +++ b/install/ubuntu/12.04/templates/web/nginx/caching.tpl @@ -31,7 +31,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/12.04/templates/web/nginx/default.stpl b/install/ubuntu/12.04/templates/web/nginx/default.stpl index 0e669b3d..7672d9ac 100755 --- a/install/ubuntu/12.04/templates/web/nginx/default.stpl +++ b/install/ubuntu/12.04/templates/web/nginx/default.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/12.04/templates/web/nginx/default.tpl b/install/ubuntu/12.04/templates/web/nginx/default.tpl index 4d5c774b..0e200e92 100755 --- a/install/ubuntu/12.04/templates/web/nginx/default.tpl +++ b/install/ubuntu/12.04/templates/web/nginx/default.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/12.04/templates/web/nginx/hosting.stpl b/install/ubuntu/12.04/templates/web/nginx/hosting.stpl index 62620789..3f4ad39b 100755 --- a/install/ubuntu/12.04/templates/web/nginx/hosting.stpl +++ b/install/ubuntu/12.04/templates/web/nginx/hosting.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/12.04/templates/web/nginx/hosting.tpl b/install/ubuntu/12.04/templates/web/nginx/hosting.tpl index 15961c95..541e560a 100755 --- a/install/ubuntu/12.04/templates/web/nginx/hosting.tpl +++ b/install/ubuntu/12.04/templates/web/nginx/hosting.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/12.04/templates/web/nginx/http2.stpl b/install/ubuntu/12.04/templates/web/nginx/http2.stpl index f225becd..b694d1c2 100644 --- a/install/ubuntu/12.04/templates/web/nginx/http2.stpl +++ b/install/ubuntu/12.04/templates/web/nginx/http2.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/12.04/templates/web/nginx/http2.tpl b/install/ubuntu/12.04/templates/web/nginx/http2.tpl index 4d5c774b..0e200e92 100644 --- a/install/ubuntu/12.04/templates/web/nginx/http2.tpl +++ b/install/ubuntu/12.04/templates/web/nginx/http2.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/12.10/templates/web/nginx/caching.stpl b/install/ubuntu/12.10/templates/web/nginx/caching.stpl index e149b98b..62be58ba 100755 --- a/install/ubuntu/12.10/templates/web/nginx/caching.stpl +++ b/install/ubuntu/12.10/templates/web/nginx/caching.stpl @@ -33,7 +33,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/12.10/templates/web/nginx/caching.tpl b/install/ubuntu/12.10/templates/web/nginx/caching.tpl index 36761b65..a1a89549 100755 --- a/install/ubuntu/12.10/templates/web/nginx/caching.tpl +++ b/install/ubuntu/12.10/templates/web/nginx/caching.tpl @@ -31,7 +31,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/12.10/templates/web/nginx/default.stpl b/install/ubuntu/12.10/templates/web/nginx/default.stpl index 0e669b3d..7672d9ac 100755 --- a/install/ubuntu/12.10/templates/web/nginx/default.stpl +++ b/install/ubuntu/12.10/templates/web/nginx/default.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/12.10/templates/web/nginx/default.tpl b/install/ubuntu/12.10/templates/web/nginx/default.tpl index 4d5c774b..0e200e92 100755 --- a/install/ubuntu/12.10/templates/web/nginx/default.tpl +++ b/install/ubuntu/12.10/templates/web/nginx/default.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/12.10/templates/web/nginx/hosting.stpl b/install/ubuntu/12.10/templates/web/nginx/hosting.stpl index 62620789..3f4ad39b 100755 --- a/install/ubuntu/12.10/templates/web/nginx/hosting.stpl +++ b/install/ubuntu/12.10/templates/web/nginx/hosting.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/12.10/templates/web/nginx/hosting.tpl b/install/ubuntu/12.10/templates/web/nginx/hosting.tpl index 15961c95..541e560a 100755 --- a/install/ubuntu/12.10/templates/web/nginx/hosting.tpl +++ b/install/ubuntu/12.10/templates/web/nginx/hosting.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/12.10/templates/web/nginx/http2.stpl b/install/ubuntu/12.10/templates/web/nginx/http2.stpl index f225becd..b694d1c2 100644 --- a/install/ubuntu/12.10/templates/web/nginx/http2.stpl +++ b/install/ubuntu/12.10/templates/web/nginx/http2.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/12.10/templates/web/nginx/http2.tpl b/install/ubuntu/12.10/templates/web/nginx/http2.tpl index 4d5c774b..0e200e92 100644 --- a/install/ubuntu/12.10/templates/web/nginx/http2.tpl +++ b/install/ubuntu/12.10/templates/web/nginx/http2.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/13.04/templates/web/nginx/caching.stpl b/install/ubuntu/13.04/templates/web/nginx/caching.stpl index e149b98b..62be58ba 100755 --- a/install/ubuntu/13.04/templates/web/nginx/caching.stpl +++ b/install/ubuntu/13.04/templates/web/nginx/caching.stpl @@ -33,7 +33,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/13.04/templates/web/nginx/caching.tpl b/install/ubuntu/13.04/templates/web/nginx/caching.tpl index 36761b65..a1a89549 100755 --- a/install/ubuntu/13.04/templates/web/nginx/caching.tpl +++ b/install/ubuntu/13.04/templates/web/nginx/caching.tpl @@ -31,7 +31,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/13.04/templates/web/nginx/default.stpl b/install/ubuntu/13.04/templates/web/nginx/default.stpl index 0e669b3d..7672d9ac 100755 --- a/install/ubuntu/13.04/templates/web/nginx/default.stpl +++ b/install/ubuntu/13.04/templates/web/nginx/default.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/13.04/templates/web/nginx/default.tpl b/install/ubuntu/13.04/templates/web/nginx/default.tpl index 4d5c774b..0e200e92 100755 --- a/install/ubuntu/13.04/templates/web/nginx/default.tpl +++ b/install/ubuntu/13.04/templates/web/nginx/default.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/13.04/templates/web/nginx/hosting.stpl b/install/ubuntu/13.04/templates/web/nginx/hosting.stpl index 62620789..3f4ad39b 100755 --- a/install/ubuntu/13.04/templates/web/nginx/hosting.stpl +++ b/install/ubuntu/13.04/templates/web/nginx/hosting.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/13.04/templates/web/nginx/hosting.tpl b/install/ubuntu/13.04/templates/web/nginx/hosting.tpl index 15961c95..541e560a 100755 --- a/install/ubuntu/13.04/templates/web/nginx/hosting.tpl +++ b/install/ubuntu/13.04/templates/web/nginx/hosting.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/13.04/templates/web/nginx/http2.stpl b/install/ubuntu/13.04/templates/web/nginx/http2.stpl index f225becd..b694d1c2 100644 --- a/install/ubuntu/13.04/templates/web/nginx/http2.stpl +++ b/install/ubuntu/13.04/templates/web/nginx/http2.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/13.04/templates/web/nginx/http2.tpl b/install/ubuntu/13.04/templates/web/nginx/http2.tpl index 4d5c774b..0e200e92 100644 --- a/install/ubuntu/13.04/templates/web/nginx/http2.tpl +++ b/install/ubuntu/13.04/templates/web/nginx/http2.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/13.10/templates/web/nginx/caching.stpl b/install/ubuntu/13.10/templates/web/nginx/caching.stpl index e149b98b..62be58ba 100755 --- a/install/ubuntu/13.10/templates/web/nginx/caching.stpl +++ b/install/ubuntu/13.10/templates/web/nginx/caching.stpl @@ -33,7 +33,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/13.10/templates/web/nginx/caching.tpl b/install/ubuntu/13.10/templates/web/nginx/caching.tpl index 36761b65..a1a89549 100755 --- a/install/ubuntu/13.10/templates/web/nginx/caching.tpl +++ b/install/ubuntu/13.10/templates/web/nginx/caching.tpl @@ -31,7 +31,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/13.10/templates/web/nginx/default.stpl b/install/ubuntu/13.10/templates/web/nginx/default.stpl index 0e669b3d..7672d9ac 100755 --- a/install/ubuntu/13.10/templates/web/nginx/default.stpl +++ b/install/ubuntu/13.10/templates/web/nginx/default.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/13.10/templates/web/nginx/default.tpl b/install/ubuntu/13.10/templates/web/nginx/default.tpl index 4d5c774b..0e200e92 100755 --- a/install/ubuntu/13.10/templates/web/nginx/default.tpl +++ b/install/ubuntu/13.10/templates/web/nginx/default.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/13.10/templates/web/nginx/hosting.stpl b/install/ubuntu/13.10/templates/web/nginx/hosting.stpl index 62620789..3f4ad39b 100755 --- a/install/ubuntu/13.10/templates/web/nginx/hosting.stpl +++ b/install/ubuntu/13.10/templates/web/nginx/hosting.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/13.10/templates/web/nginx/hosting.tpl b/install/ubuntu/13.10/templates/web/nginx/hosting.tpl index 15961c95..541e560a 100755 --- a/install/ubuntu/13.10/templates/web/nginx/hosting.tpl +++ b/install/ubuntu/13.10/templates/web/nginx/hosting.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/13.10/templates/web/nginx/http2.stpl b/install/ubuntu/13.10/templates/web/nginx/http2.stpl index f225becd..b694d1c2 100644 --- a/install/ubuntu/13.10/templates/web/nginx/http2.stpl +++ b/install/ubuntu/13.10/templates/web/nginx/http2.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/13.10/templates/web/nginx/http2.tpl b/install/ubuntu/13.10/templates/web/nginx/http2.tpl index 4d5c774b..0e200e92 100644 --- a/install/ubuntu/13.10/templates/web/nginx/http2.tpl +++ b/install/ubuntu/13.10/templates/web/nginx/http2.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/14.04/templates/web/nginx/caching.stpl b/install/ubuntu/14.04/templates/web/nginx/caching.stpl index e149b98b..62be58ba 100755 --- a/install/ubuntu/14.04/templates/web/nginx/caching.stpl +++ b/install/ubuntu/14.04/templates/web/nginx/caching.stpl @@ -33,7 +33,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/14.04/templates/web/nginx/caching.tpl b/install/ubuntu/14.04/templates/web/nginx/caching.tpl index 36761b65..a1a89549 100755 --- a/install/ubuntu/14.04/templates/web/nginx/caching.tpl +++ b/install/ubuntu/14.04/templates/web/nginx/caching.tpl @@ -31,7 +31,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/14.04/templates/web/nginx/default.stpl b/install/ubuntu/14.04/templates/web/nginx/default.stpl index 0e669b3d..7672d9ac 100755 --- a/install/ubuntu/14.04/templates/web/nginx/default.stpl +++ b/install/ubuntu/14.04/templates/web/nginx/default.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/14.04/templates/web/nginx/default.tpl b/install/ubuntu/14.04/templates/web/nginx/default.tpl index 4d5c774b..0e200e92 100755 --- a/install/ubuntu/14.04/templates/web/nginx/default.tpl +++ b/install/ubuntu/14.04/templates/web/nginx/default.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/14.04/templates/web/nginx/hosting.stpl b/install/ubuntu/14.04/templates/web/nginx/hosting.stpl index 62620789..3f4ad39b 100755 --- a/install/ubuntu/14.04/templates/web/nginx/hosting.stpl +++ b/install/ubuntu/14.04/templates/web/nginx/hosting.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/14.04/templates/web/nginx/hosting.tpl b/install/ubuntu/14.04/templates/web/nginx/hosting.tpl index 15961c95..541e560a 100755 --- a/install/ubuntu/14.04/templates/web/nginx/hosting.tpl +++ b/install/ubuntu/14.04/templates/web/nginx/hosting.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/14.04/templates/web/nginx/http2.stpl b/install/ubuntu/14.04/templates/web/nginx/http2.stpl index f225becd..b694d1c2 100644 --- a/install/ubuntu/14.04/templates/web/nginx/http2.stpl +++ b/install/ubuntu/14.04/templates/web/nginx/http2.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/14.04/templates/web/nginx/http2.tpl b/install/ubuntu/14.04/templates/web/nginx/http2.tpl index 4d5c774b..0e200e92 100644 --- a/install/ubuntu/14.04/templates/web/nginx/http2.tpl +++ b/install/ubuntu/14.04/templates/web/nginx/http2.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/14.10/templates/web/nginx/caching.stpl b/install/ubuntu/14.10/templates/web/nginx/caching.stpl index e149b98b..62be58ba 100755 --- a/install/ubuntu/14.10/templates/web/nginx/caching.stpl +++ b/install/ubuntu/14.10/templates/web/nginx/caching.stpl @@ -33,7 +33,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/14.10/templates/web/nginx/caching.tpl b/install/ubuntu/14.10/templates/web/nginx/caching.tpl index 36761b65..a1a89549 100755 --- a/install/ubuntu/14.10/templates/web/nginx/caching.tpl +++ b/install/ubuntu/14.10/templates/web/nginx/caching.tpl @@ -31,7 +31,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/14.10/templates/web/nginx/default.stpl b/install/ubuntu/14.10/templates/web/nginx/default.stpl index 0e669b3d..7672d9ac 100755 --- a/install/ubuntu/14.10/templates/web/nginx/default.stpl +++ b/install/ubuntu/14.10/templates/web/nginx/default.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/14.10/templates/web/nginx/default.tpl b/install/ubuntu/14.10/templates/web/nginx/default.tpl index 4d5c774b..0e200e92 100755 --- a/install/ubuntu/14.10/templates/web/nginx/default.tpl +++ b/install/ubuntu/14.10/templates/web/nginx/default.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/14.10/templates/web/nginx/hosting.stpl b/install/ubuntu/14.10/templates/web/nginx/hosting.stpl index 62620789..3f4ad39b 100755 --- a/install/ubuntu/14.10/templates/web/nginx/hosting.stpl +++ b/install/ubuntu/14.10/templates/web/nginx/hosting.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/14.10/templates/web/nginx/hosting.tpl b/install/ubuntu/14.10/templates/web/nginx/hosting.tpl index 15961c95..541e560a 100755 --- a/install/ubuntu/14.10/templates/web/nginx/hosting.tpl +++ b/install/ubuntu/14.10/templates/web/nginx/hosting.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/14.10/templates/web/nginx/http2.stpl b/install/ubuntu/14.10/templates/web/nginx/http2.stpl index f225becd..b694d1c2 100644 --- a/install/ubuntu/14.10/templates/web/nginx/http2.stpl +++ b/install/ubuntu/14.10/templates/web/nginx/http2.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/14.10/templates/web/nginx/http2.tpl b/install/ubuntu/14.10/templates/web/nginx/http2.tpl index 4d5c774b..0e200e92 100644 --- a/install/ubuntu/14.10/templates/web/nginx/http2.tpl +++ b/install/ubuntu/14.10/templates/web/nginx/http2.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/15.04/templates/web/nginx/caching.stpl b/install/ubuntu/15.04/templates/web/nginx/caching.stpl index e149b98b..62be58ba 100755 --- a/install/ubuntu/15.04/templates/web/nginx/caching.stpl +++ b/install/ubuntu/15.04/templates/web/nginx/caching.stpl @@ -33,7 +33,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/15.04/templates/web/nginx/caching.tpl b/install/ubuntu/15.04/templates/web/nginx/caching.tpl index 36761b65..a1a89549 100755 --- a/install/ubuntu/15.04/templates/web/nginx/caching.tpl +++ b/install/ubuntu/15.04/templates/web/nginx/caching.tpl @@ -31,7 +31,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/15.04/templates/web/nginx/default.stpl b/install/ubuntu/15.04/templates/web/nginx/default.stpl index 0e669b3d..7672d9ac 100755 --- a/install/ubuntu/15.04/templates/web/nginx/default.stpl +++ b/install/ubuntu/15.04/templates/web/nginx/default.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/15.04/templates/web/nginx/default.tpl b/install/ubuntu/15.04/templates/web/nginx/default.tpl index 4d5c774b..0e200e92 100755 --- a/install/ubuntu/15.04/templates/web/nginx/default.tpl +++ b/install/ubuntu/15.04/templates/web/nginx/default.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/15.04/templates/web/nginx/hosting.stpl b/install/ubuntu/15.04/templates/web/nginx/hosting.stpl index 62620789..3f4ad39b 100755 --- a/install/ubuntu/15.04/templates/web/nginx/hosting.stpl +++ b/install/ubuntu/15.04/templates/web/nginx/hosting.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/15.04/templates/web/nginx/hosting.tpl b/install/ubuntu/15.04/templates/web/nginx/hosting.tpl index 15961c95..541e560a 100755 --- a/install/ubuntu/15.04/templates/web/nginx/hosting.tpl +++ b/install/ubuntu/15.04/templates/web/nginx/hosting.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/15.04/templates/web/nginx/http2.stpl b/install/ubuntu/15.04/templates/web/nginx/http2.stpl index f225becd..b694d1c2 100644 --- a/install/ubuntu/15.04/templates/web/nginx/http2.stpl +++ b/install/ubuntu/15.04/templates/web/nginx/http2.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/15.04/templates/web/nginx/http2.tpl b/install/ubuntu/15.04/templates/web/nginx/http2.tpl index 4d5c774b..0e200e92 100644 --- a/install/ubuntu/15.04/templates/web/nginx/http2.tpl +++ b/install/ubuntu/15.04/templates/web/nginx/http2.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/15.10/templates/web/nginx/caching.stpl b/install/ubuntu/15.10/templates/web/nginx/caching.stpl index e149b98b..62be58ba 100755 --- a/install/ubuntu/15.10/templates/web/nginx/caching.stpl +++ b/install/ubuntu/15.10/templates/web/nginx/caching.stpl @@ -33,7 +33,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/15.10/templates/web/nginx/caching.tpl b/install/ubuntu/15.10/templates/web/nginx/caching.tpl index 36761b65..a1a89549 100755 --- a/install/ubuntu/15.10/templates/web/nginx/caching.tpl +++ b/install/ubuntu/15.10/templates/web/nginx/caching.tpl @@ -31,7 +31,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/15.10/templates/web/nginx/default.stpl b/install/ubuntu/15.10/templates/web/nginx/default.stpl index 0e669b3d..7672d9ac 100755 --- a/install/ubuntu/15.10/templates/web/nginx/default.stpl +++ b/install/ubuntu/15.10/templates/web/nginx/default.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/15.10/templates/web/nginx/default.tpl b/install/ubuntu/15.10/templates/web/nginx/default.tpl index 4d5c774b..0e200e92 100755 --- a/install/ubuntu/15.10/templates/web/nginx/default.tpl +++ b/install/ubuntu/15.10/templates/web/nginx/default.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/15.10/templates/web/nginx/hosting.stpl b/install/ubuntu/15.10/templates/web/nginx/hosting.stpl index 62620789..3f4ad39b 100755 --- a/install/ubuntu/15.10/templates/web/nginx/hosting.stpl +++ b/install/ubuntu/15.10/templates/web/nginx/hosting.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/15.10/templates/web/nginx/hosting.tpl b/install/ubuntu/15.10/templates/web/nginx/hosting.tpl index 15961c95..541e560a 100755 --- a/install/ubuntu/15.10/templates/web/nginx/hosting.tpl +++ b/install/ubuntu/15.10/templates/web/nginx/hosting.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/15.10/templates/web/nginx/http2.stpl b/install/ubuntu/15.10/templates/web/nginx/http2.stpl index f225becd..b694d1c2 100644 --- a/install/ubuntu/15.10/templates/web/nginx/http2.stpl +++ b/install/ubuntu/15.10/templates/web/nginx/http2.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/15.10/templates/web/nginx/http2.tpl b/install/ubuntu/15.10/templates/web/nginx/http2.tpl index 4d5c774b..0e200e92 100644 --- a/install/ubuntu/15.10/templates/web/nginx/http2.tpl +++ b/install/ubuntu/15.10/templates/web/nginx/http2.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/16.04/templates/web/nginx/caching.stpl b/install/ubuntu/16.04/templates/web/nginx/caching.stpl index e149b98b..62be58ba 100755 --- a/install/ubuntu/16.04/templates/web/nginx/caching.stpl +++ b/install/ubuntu/16.04/templates/web/nginx/caching.stpl @@ -33,7 +33,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/16.04/templates/web/nginx/caching.tpl b/install/ubuntu/16.04/templates/web/nginx/caching.tpl index 36761b65..a1a89549 100755 --- a/install/ubuntu/16.04/templates/web/nginx/caching.tpl +++ b/install/ubuntu/16.04/templates/web/nginx/caching.tpl @@ -31,7 +31,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/16.04/templates/web/nginx/default.stpl b/install/ubuntu/16.04/templates/web/nginx/default.stpl index 0e669b3d..7672d9ac 100755 --- a/install/ubuntu/16.04/templates/web/nginx/default.stpl +++ b/install/ubuntu/16.04/templates/web/nginx/default.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/16.04/templates/web/nginx/default.tpl b/install/ubuntu/16.04/templates/web/nginx/default.tpl index 4d5c774b..0e200e92 100755 --- a/install/ubuntu/16.04/templates/web/nginx/default.tpl +++ b/install/ubuntu/16.04/templates/web/nginx/default.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/16.04/templates/web/nginx/hosting.stpl b/install/ubuntu/16.04/templates/web/nginx/hosting.stpl index 62620789..3f4ad39b 100755 --- a/install/ubuntu/16.04/templates/web/nginx/hosting.stpl +++ b/install/ubuntu/16.04/templates/web/nginx/hosting.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/16.04/templates/web/nginx/hosting.tpl b/install/ubuntu/16.04/templates/web/nginx/hosting.tpl index 15961c95..541e560a 100755 --- a/install/ubuntu/16.04/templates/web/nginx/hosting.tpl +++ b/install/ubuntu/16.04/templates/web/nginx/hosting.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/16.04/templates/web/nginx/http2.stpl b/install/ubuntu/16.04/templates/web/nginx/http2.stpl index f225becd..b694d1c2 100644 --- a/install/ubuntu/16.04/templates/web/nginx/http2.stpl +++ b/install/ubuntu/16.04/templates/web/nginx/http2.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/16.04/templates/web/nginx/http2.tpl b/install/ubuntu/16.04/templates/web/nginx/http2.tpl index 4d5c774b..0e200e92 100644 --- a/install/ubuntu/16.04/templates/web/nginx/http2.tpl +++ b/install/ubuntu/16.04/templates/web/nginx/http2.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/16.10/templates/web/nginx/caching.stpl b/install/ubuntu/16.10/templates/web/nginx/caching.stpl index e149b98b..62be58ba 100755 --- a/install/ubuntu/16.10/templates/web/nginx/caching.stpl +++ b/install/ubuntu/16.10/templates/web/nginx/caching.stpl @@ -33,7 +33,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/16.10/templates/web/nginx/caching.tpl b/install/ubuntu/16.10/templates/web/nginx/caching.tpl index 36761b65..a1a89549 100755 --- a/install/ubuntu/16.10/templates/web/nginx/caching.tpl +++ b/install/ubuntu/16.10/templates/web/nginx/caching.tpl @@ -31,7 +31,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/16.10/templates/web/nginx/default.stpl b/install/ubuntu/16.10/templates/web/nginx/default.stpl index 0e669b3d..7672d9ac 100755 --- a/install/ubuntu/16.10/templates/web/nginx/default.stpl +++ b/install/ubuntu/16.10/templates/web/nginx/default.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/16.10/templates/web/nginx/default.tpl b/install/ubuntu/16.10/templates/web/nginx/default.tpl index 4d5c774b..0e200e92 100755 --- a/install/ubuntu/16.10/templates/web/nginx/default.tpl +++ b/install/ubuntu/16.10/templates/web/nginx/default.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/16.10/templates/web/nginx/hosting.stpl b/install/ubuntu/16.10/templates/web/nginx/hosting.stpl index 62620789..3f4ad39b 100755 --- a/install/ubuntu/16.10/templates/web/nginx/hosting.stpl +++ b/install/ubuntu/16.10/templates/web/nginx/hosting.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/16.10/templates/web/nginx/hosting.tpl b/install/ubuntu/16.10/templates/web/nginx/hosting.tpl index 15961c95..541e560a 100755 --- a/install/ubuntu/16.10/templates/web/nginx/hosting.tpl +++ b/install/ubuntu/16.10/templates/web/nginx/hosting.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/16.10/templates/web/nginx/http2.stpl b/install/ubuntu/16.10/templates/web/nginx/http2.stpl index f225becd..b694d1c2 100644 --- a/install/ubuntu/16.10/templates/web/nginx/http2.stpl +++ b/install/ubuntu/16.10/templates/web/nginx/http2.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/16.10/templates/web/nginx/http2.tpl b/install/ubuntu/16.10/templates/web/nginx/http2.tpl index 4d5c774b..0e200e92 100644 --- a/install/ubuntu/16.10/templates/web/nginx/http2.tpl +++ b/install/ubuntu/16.10/templates/web/nginx/http2.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/17.04/templates/web/nginx/caching.stpl b/install/ubuntu/17.04/templates/web/nginx/caching.stpl index e149b98b..62be58ba 100755 --- a/install/ubuntu/17.04/templates/web/nginx/caching.stpl +++ b/install/ubuntu/17.04/templates/web/nginx/caching.stpl @@ -33,7 +33,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/17.04/templates/web/nginx/caching.tpl b/install/ubuntu/17.04/templates/web/nginx/caching.tpl index 36761b65..a1a89549 100755 --- a/install/ubuntu/17.04/templates/web/nginx/caching.tpl +++ b/install/ubuntu/17.04/templates/web/nginx/caching.tpl @@ -31,7 +31,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/17.04/templates/web/nginx/default.stpl b/install/ubuntu/17.04/templates/web/nginx/default.stpl index 0e669b3d..7672d9ac 100755 --- a/install/ubuntu/17.04/templates/web/nginx/default.stpl +++ b/install/ubuntu/17.04/templates/web/nginx/default.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/17.04/templates/web/nginx/default.tpl b/install/ubuntu/17.04/templates/web/nginx/default.tpl index 4d5c774b..0e200e92 100755 --- a/install/ubuntu/17.04/templates/web/nginx/default.tpl +++ b/install/ubuntu/17.04/templates/web/nginx/default.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/17.04/templates/web/nginx/hosting.stpl b/install/ubuntu/17.04/templates/web/nginx/hosting.stpl index 1ef8994b..587b02c7 100755 --- a/install/ubuntu/17.04/templates/web/nginx/hosting.stpl +++ b/install/ubuntu/17.04/templates/web/nginx/hosting.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/17.04/templates/web/nginx/hosting.tpl b/install/ubuntu/17.04/templates/web/nginx/hosting.tpl index 15961c95..541e560a 100755 --- a/install/ubuntu/17.04/templates/web/nginx/hosting.tpl +++ b/install/ubuntu/17.04/templates/web/nginx/hosting.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/17.04/templates/web/nginx/http2.stpl b/install/ubuntu/17.04/templates/web/nginx/http2.stpl index f225becd..b694d1c2 100644 --- a/install/ubuntu/17.04/templates/web/nginx/http2.stpl +++ b/install/ubuntu/17.04/templates/web/nginx/http2.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/17.04/templates/web/nginx/http2.tpl b/install/ubuntu/17.04/templates/web/nginx/http2.tpl index 4d5c774b..0e200e92 100644 --- a/install/ubuntu/17.04/templates/web/nginx/http2.tpl +++ b/install/ubuntu/17.04/templates/web/nginx/http2.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/17.10/templates/web/nginx/caching.stpl b/install/ubuntu/17.10/templates/web/nginx/caching.stpl index e149b98b..62be58ba 100755 --- a/install/ubuntu/17.10/templates/web/nginx/caching.stpl +++ b/install/ubuntu/17.10/templates/web/nginx/caching.stpl @@ -33,7 +33,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/17.10/templates/web/nginx/caching.tpl b/install/ubuntu/17.10/templates/web/nginx/caching.tpl index 36761b65..a1a89549 100755 --- a/install/ubuntu/17.10/templates/web/nginx/caching.tpl +++ b/install/ubuntu/17.10/templates/web/nginx/caching.tpl @@ -31,7 +31,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/17.10/templates/web/nginx/default.stpl b/install/ubuntu/17.10/templates/web/nginx/default.stpl index 0e669b3d..7672d9ac 100755 --- a/install/ubuntu/17.10/templates/web/nginx/default.stpl +++ b/install/ubuntu/17.10/templates/web/nginx/default.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/17.10/templates/web/nginx/default.tpl b/install/ubuntu/17.10/templates/web/nginx/default.tpl index 4d5c774b..0e200e92 100755 --- a/install/ubuntu/17.10/templates/web/nginx/default.tpl +++ b/install/ubuntu/17.10/templates/web/nginx/default.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/17.10/templates/web/nginx/hosting.stpl b/install/ubuntu/17.10/templates/web/nginx/hosting.stpl index 1ef8994b..587b02c7 100755 --- a/install/ubuntu/17.10/templates/web/nginx/hosting.stpl +++ b/install/ubuntu/17.10/templates/web/nginx/hosting.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/17.10/templates/web/nginx/hosting.tpl b/install/ubuntu/17.10/templates/web/nginx/hosting.tpl index 15961c95..541e560a 100755 --- a/install/ubuntu/17.10/templates/web/nginx/hosting.tpl +++ b/install/ubuntu/17.10/templates/web/nginx/hosting.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/17.10/templates/web/nginx/http2.stpl b/install/ubuntu/17.10/templates/web/nginx/http2.stpl index f225becd..b694d1c2 100644 --- a/install/ubuntu/17.10/templates/web/nginx/http2.stpl +++ b/install/ubuntu/17.10/templates/web/nginx/http2.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/17.10/templates/web/nginx/http2.tpl b/install/ubuntu/17.10/templates/web/nginx/http2.tpl index 4d5c774b..0e200e92 100644 --- a/install/ubuntu/17.10/templates/web/nginx/http2.tpl +++ b/install/ubuntu/17.10/templates/web/nginx/http2.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/18.04/templates/web/nginx/caching.stpl b/install/ubuntu/18.04/templates/web/nginx/caching.stpl index e149b98b..62be58ba 100755 --- a/install/ubuntu/18.04/templates/web/nginx/caching.stpl +++ b/install/ubuntu/18.04/templates/web/nginx/caching.stpl @@ -33,7 +33,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/18.04/templates/web/nginx/caching.tpl b/install/ubuntu/18.04/templates/web/nginx/caching.tpl index 36761b65..a1a89549 100755 --- a/install/ubuntu/18.04/templates/web/nginx/caching.tpl +++ b/install/ubuntu/18.04/templates/web/nginx/caching.tpl @@ -31,7 +31,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/18.04/templates/web/nginx/default.stpl b/install/ubuntu/18.04/templates/web/nginx/default.stpl index 0e669b3d..7672d9ac 100755 --- a/install/ubuntu/18.04/templates/web/nginx/default.stpl +++ b/install/ubuntu/18.04/templates/web/nginx/default.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/18.04/templates/web/nginx/default.tpl b/install/ubuntu/18.04/templates/web/nginx/default.tpl index 4d5c774b..0e200e92 100755 --- a/install/ubuntu/18.04/templates/web/nginx/default.tpl +++ b/install/ubuntu/18.04/templates/web/nginx/default.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/18.04/templates/web/nginx/hosting.stpl b/install/ubuntu/18.04/templates/web/nginx/hosting.stpl index 1ef8994b..587b02c7 100755 --- a/install/ubuntu/18.04/templates/web/nginx/hosting.stpl +++ b/install/ubuntu/18.04/templates/web/nginx/hosting.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/18.04/templates/web/nginx/hosting.tpl b/install/ubuntu/18.04/templates/web/nginx/hosting.tpl index 15961c95..541e560a 100755 --- a/install/ubuntu/18.04/templates/web/nginx/hosting.tpl +++ b/install/ubuntu/18.04/templates/web/nginx/hosting.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/18.04/templates/web/nginx/http2.stpl b/install/ubuntu/18.04/templates/web/nginx/http2.stpl index f225becd..b694d1c2 100644 --- a/install/ubuntu/18.04/templates/web/nginx/http2.stpl +++ b/install/ubuntu/18.04/templates/web/nginx/http2.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/18.04/templates/web/nginx/http2.tpl b/install/ubuntu/18.04/templates/web/nginx/http2.tpl index 4d5c774b..0e200e92 100644 --- a/install/ubuntu/18.04/templates/web/nginx/http2.tpl +++ b/install/ubuntu/18.04/templates/web/nginx/http2.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/18.10/templates/web/nginx/caching.stpl b/install/ubuntu/18.10/templates/web/nginx/caching.stpl index e149b98b..62be58ba 100755 --- a/install/ubuntu/18.10/templates/web/nginx/caching.stpl +++ b/install/ubuntu/18.10/templates/web/nginx/caching.stpl @@ -33,7 +33,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/18.10/templates/web/nginx/caching.tpl b/install/ubuntu/18.10/templates/web/nginx/caching.tpl index 36761b65..a1a89549 100755 --- a/install/ubuntu/18.10/templates/web/nginx/caching.tpl +++ b/install/ubuntu/18.10/templates/web/nginx/caching.tpl @@ -31,7 +31,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/18.10/templates/web/nginx/default.stpl b/install/ubuntu/18.10/templates/web/nginx/default.stpl index 0e669b3d..7672d9ac 100755 --- a/install/ubuntu/18.10/templates/web/nginx/default.stpl +++ b/install/ubuntu/18.10/templates/web/nginx/default.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/18.10/templates/web/nginx/default.tpl b/install/ubuntu/18.10/templates/web/nginx/default.tpl index 4d5c774b..0e200e92 100755 --- a/install/ubuntu/18.10/templates/web/nginx/default.tpl +++ b/install/ubuntu/18.10/templates/web/nginx/default.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/18.10/templates/web/nginx/hosting.stpl b/install/ubuntu/18.10/templates/web/nginx/hosting.stpl index 1ef8994b..587b02c7 100755 --- a/install/ubuntu/18.10/templates/web/nginx/hosting.stpl +++ b/install/ubuntu/18.10/templates/web/nginx/hosting.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/18.10/templates/web/nginx/hosting.tpl b/install/ubuntu/18.10/templates/web/nginx/hosting.tpl index 15961c95..541e560a 100755 --- a/install/ubuntu/18.10/templates/web/nginx/hosting.tpl +++ b/install/ubuntu/18.10/templates/web/nginx/hosting.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/18.10/templates/web/nginx/http2.stpl b/install/ubuntu/18.10/templates/web/nginx/http2.stpl index f225becd..b694d1c2 100644 --- a/install/ubuntu/18.10/templates/web/nginx/http2.stpl +++ b/install/ubuntu/18.10/templates/web/nginx/http2.stpl @@ -24,7 +24,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/18.10/templates/web/nginx/http2.tpl b/install/ubuntu/18.10/templates/web/nginx/http2.tpl index 4d5c774b..0e200e92 100644 --- a/install/ubuntu/18.10/templates/web/nginx/http2.tpl +++ b/install/ubuntu/18.10/templates/web/nginx/http2.tpl @@ -22,7 +22,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-no-https-force.stpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-no-https-force.stpl index 85fb4a95..0978f452 100644 --- a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-no-https-force.stpl +++ b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-no-https-force.stpl @@ -41,7 +41,7 @@ server { } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-no-https-force.tpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-no-https-force.tpl index fff0aebb..933eea6d 100644 --- a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-no-https-force.tpl +++ b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-no-https-force.tpl @@ -32,7 +32,7 @@ server { alias %home%/%user%/web/%domain%/document_errors/; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-pass-to-https.stpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-pass-to-https.stpl index a392afef..4e75c188 100644 --- a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-pass-to-https.stpl +++ b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-pass-to-https.stpl @@ -41,7 +41,7 @@ server { } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000.stpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000.stpl index 85fb4a95..0978f452 100644 --- a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000.stpl +++ b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000.stpl @@ -41,7 +41,7 @@ server { } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-4000-and-websocket-6001.stpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-4000-and-websocket-6001.stpl index 0def9f53..d1781ee6 100644 --- a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-4000-and-websocket-6001.stpl +++ b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-4000-and-websocket-6001.stpl @@ -57,7 +57,7 @@ server { } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-also-handle-static-files-3000.stpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-also-handle-static-files-3000.stpl index 9b0a5853..e22d4ccc 100644 --- a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-also-handle-static-files-3000.stpl +++ b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-also-handle-static-files-3000.stpl @@ -26,7 +26,7 @@ server { } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-also-handle-static-files-3000.tpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-also-handle-static-files-3000.tpl index 93267737..bb298e66 100644 --- a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-also-handle-static-files-3000.tpl +++ b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-also-handle-static-files-3000.tpl @@ -17,7 +17,7 @@ server { # try_files $uri $uri/ =404; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2-speed-2-conn-4.stpl b/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2-speed-2-conn-4.stpl index 2597eb7f..c993be39 100644 --- a/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2-speed-2-conn-4.stpl +++ b/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2-speed-2-conn-4.stpl @@ -28,7 +28,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2-speed-2.stpl b/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2-speed-2.stpl index 6d4250ff..2b4fa14e 100644 --- a/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2-speed-2.stpl +++ b/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2-speed-2.stpl @@ -28,7 +28,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2.stpl b/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2.stpl index ab527372..289116df 100644 --- a/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2.stpl +++ b/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2.stpl @@ -28,7 +28,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall.stpl b/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall.stpl index dbb239fb..b06aca58 100644 --- a/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall.stpl +++ b/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall.stpl @@ -28,7 +28,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2-conn-4.stpl b/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2-conn-4.stpl index 87c34de1..05ede9e6 100644 --- a/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2-conn-4.stpl +++ b/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2-conn-4.stpl @@ -28,7 +28,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2-conn-4.tpl b/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2-conn-4.tpl index cfcba2e8..15fe6fe5 100644 --- a/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2-conn-4.tpl +++ b/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2-conn-4.tpl @@ -25,7 +25,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2.stpl b/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2.stpl index 4318c814..e02ce616 100644 --- a/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2.stpl +++ b/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2.stpl @@ -28,7 +28,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2.tpl b/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2.tpl index d09c841b..03426c6e 100644 --- a/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2.tpl +++ b/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2.tpl @@ -25,7 +25,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2.stpl b/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2.stpl index 24bf0c1f..d43b7529 100644 --- a/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2.stpl +++ b/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2.stpl @@ -28,7 +28,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2.tpl b/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2.tpl index 3b382c15..c93bc951 100644 --- a/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2.tpl +++ b/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2.tpl @@ -25,7 +25,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall.stpl b/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall.stpl index a5d163e3..c2274a43 100644 --- a/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall.stpl +++ b/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall.stpl @@ -28,7 +28,7 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall.tpl b/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall.tpl index 1441a6a9..deed2b71 100644 --- a/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall.tpl +++ b/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall.tpl @@ -25,7 +25,7 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\.ht {return 404;} + location ~ /\. {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} From bda54c4ec4194d1a1d994676fab9bae7a08657f4 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 24 Mar 2022 18:20:31 +0100 Subject: [PATCH 371/984] handle --parameters without shifting --- func/handle_parameters.sh | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/func/handle_parameters.sh b/func/handle_parameters.sh index ba5bd36f..32e09312 100644 --- a/func/handle_parameters.sh +++ b/func/handle_parameters.sh @@ -1,4 +1,5 @@ # handle --parameters=val + handle_parameter() { origparam=$1 searchstring="=" @@ -7,14 +8,12 @@ handle_parameter() { var_without_minuses=${origparam:2} var=${var_without_minuses%%=*} val=${origparam#*$searchstring} - #echo $var - #echo $val + # echo "$var = $val" printf -v "$var" '%s' "$val" fi } numargs=$# for ((i=1 ; i <= numargs ; i++)) do - handle_parameter $1 - shift + handle_parameter ${@:$i:1} done From 6523a2daf953409499ab2eb269fdd358d92f2ae1 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 24 Mar 2022 20:26:16 +0100 Subject: [PATCH 372/984] OpenCart detection --- bin/v-get-database-credentials-of-domain | 37 ++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/bin/v-get-database-credentials-of-domain b/bin/v-get-database-credentials-of-domain index 60164226..22550d7a 100644 --- a/bin/v-get-database-credentials-of-domain +++ b/bin/v-get-database-credentials-of-domain @@ -46,11 +46,12 @@ fi # Action # #----------------------------------------------------------# -SITE_FOLDER="/home/$USER/web/$DOMAIN/public_html" +PUBLIC_HTML='public_html'; CHECK_PUBLIC_SHTML=$(/usr/local/vesta/bin/v-list-web-domain "$USER" "$DOMAIN" | grep 'SSL:' | grep -c 'single') if [ $CHECK_PUBLIC_SHTML -eq 1 ]; then - SITE_FOLDER="/home/$USER/web/$DOMAIN/public_shtml" + PUBLIC_HTML='public_shtml'; fi +SITE_FOLDER="/home/$USER/web/$DOMAIN/$PUBLIC_HTML" if [ ! -z "$SUBFOLDER" ]; then SITE_FOLDER="${SITE_FOLDER}/${SUBFOLDER}" @@ -68,6 +69,16 @@ if [ -f "$SITE_FOLDER/configuration.php" ]; then CONFIG_FILE="configuration.php" CONFIG_FILE_FULL_PATH="$SITE_FOLDER/$CONFIG_FILE" fi +if [ -f "$SITE_FOLDER/system/engine/model.php" ]; then + check_grep=$(grep -c 'OpenCart' $SITE_FOLDER/system/engine/model.php) + if [ "$check_grep" -gt 0 ]; then + CMS_TYPE='opencart' + CONFIG_FILE="$PUBLIC_HTML/config.php" + SUBFOLDER='..' + SITE_FOLDER="${SITE_FOLDER}/.." + CONFIG_FILE_FULL_PATH="$SITE_FOLDER/$CONFIG_FILE" + fi +fi if [ "$CMS_TYPE" = "wordpress" ]; then CONFIG_FILE_FULL_PATH_BACKUP="${CONFIG_FILE_FULL_PATH}_backup" @@ -97,6 +108,20 @@ if [ "$CMS_TYPE" = "joomla" ]; then rm $CONFIG_FILE_FULL_PATH_BACKUP fi +if [ "$CMS_TYPE" = "opencart" ]; then + CONFIG_FILE_FULL_PATH_BACKUP="${CONFIG_FILE_FULL_PATH}_backup" + cp $CONFIG_FILE_FULL_PATH $CONFIG_FILE_FULL_PATH_BACKUP + sed -i "s|//.*$||g" $CONFIG_FILE_FULL_PATH_BACKUP + sed -i "s|('|( '|g" $CONFIG_FILE_FULL_PATH_BACKUP + sed -i "s|');|' );|g" $CONFIG_FILE_FULL_PATH_BACKUP + DATABASE_NAME=$(grep 'DB_DATABASE' $CONFIG_FILE_FULL_PATH_BACKUP | awk '{print $3}' | sed -e "s/^'//" -e "s/'$//") + DATABASE_USERNAME=$(grep 'DB_USERNAME' $CONFIG_FILE_FULL_PATH_BACKUP | awk '{print $3}' | sed -e "s/^'//" -e "s/'$//") + DATABASE_PASSWORD=$(grep 'DB_PASSWORD' $CONFIG_FILE_FULL_PATH_BACKUP | awk '{print $3}' | sed -e "s/^'//" -e "s/'$//") + DATABASE_HOSTNAME=$(grep 'DB_HOST' $CONFIG_FILE_FULL_PATH_BACKUP | awk '{print $3}' | sed -e "s/^'//" -e "s/'$//") + rm $CONFIG_FILE_FULL_PATH_BACKUP +fi + + if [ ! -z "$DATABASE_NAME" ]; then DATABASE_NAME_WITHOUT_USER_PREFIX=$(get_database_name_without_user_prefix "$USER" "$DATABASE_NAME") fi @@ -134,9 +159,17 @@ echo "CMS_TYPE=$CMS_TYPE" SITE_FOLDER=$(escape_shell_quote $SITE_FOLDER) echo "SITE_FOLDER=$SITE_FOLDER" +SUBFOLDER=$(escape_shell_quote $SUBFOLDER) +echo "SITE_SUBFOLDER=$SUBFOLDER" + USER=$(escape_shell_quote $USER) echo "SITE_USER=$USER" +if [ "$CMS_TYPE" = "'opencart'" ]; then + echo "SEARCH_FOR_CONFIGS_DATABASE_NAME=1" + echo "SEARCH_FOR_CONFIGS_DATABASE_USERNAME=1" +fi + #----------------------------------------------------------# # Vesta # #----------------------------------------------------------# From ebb6b5406581e79aca4881a67b301c221a28c307 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 24 Mar 2022 20:31:43 +0100 Subject: [PATCH 373/984] Many improvements in v-clone-website --- bin/v-clone-website | 81 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 69 insertions(+), 12 deletions(-) diff --git a/bin/v-clone-website b/bin/v-clone-website index e055d1a3..2c38eef9 100644 --- a/bin/v-clone-website +++ b/bin/v-clone-website @@ -14,11 +14,12 @@ if [ $# -lt 2 ]; then echo "--FROM_DATABASE_NAME=..." echo "--FROM_DATABASE_USERNAME=..." echo "--FROM_DATABASE_PASSWORD=..." - echo "--FROM_CONFIG_FILE=..." + echo "--CONFIG_FILE=..." echo "--TO_USER=..." echo "--TO_DATABASE_NAME=..." echo "--TO_DATABASE_USERNAME=..." echo "--TO_DATABASE_PASSWORD=..." + echo "--SITE_SUBFOLDER=..." exit 1 fi @@ -50,6 +51,9 @@ TO_DATABASE_NAME='' TO_DATABASE_USERNAME='' TO_DATABASE_PASSWORD='' DATABASE_SUFIX='_migrated' +SITE_SUBFOLDER='' +SEARCH_FOR_CONFIGS_DATABASE_NAME='' +SEARCH_FOR_CONFIGS_DATABASE_USERNAME='' #----------------------------------------------------------# # Verifications # @@ -61,7 +65,16 @@ is_domain_format_valid "$TO_DOMAIN" FROM_USER=$user -r=$(/usr/local/vesta/bin/v-get-database-credentials-of-domain "$FROM_DOMAIN") +# take --parameters +source /usr/local/vesta/func/handle_parameters.sh + +if [ -z "$SITE_SUBFOLDER" ]; then + r=$(/usr/local/vesta/bin/v-get-database-credentials-of-domain "$FROM_DOMAIN") +else + r=$(/usr/local/vesta/bin/v-get-database-credentials-of-domain "$FROM_DOMAIN" "$SITE_SUBFOLDER") +fi +#echo $r +#exit eval $r # take --parameters @@ -155,6 +168,9 @@ CHECK_PUBLIC_SHTML=$(/usr/local/vesta/bin/v-list-web-domain "$TO_USER" "$TO_DOMA if [ $CHECK_PUBLIC_SHTML -eq 1 ]; then TO_FOLDER="/home/$TO_USER/web/$TO_DOMAIN/public_shtml" fi +if [ ! -z "$SITE_SUBFOLDER" ]; then + TO_FOLDER="$TO_FOLDER/$SITE_SUBFOLDER" +fi TO_CONFIG_FILE_FULL_PATH="$TO_FOLDER/$FROM_CONFIG_FILE" @@ -218,6 +234,12 @@ if [ $FROM_DOMAIN_HAS_SSL -eq 1 ] && [ $TO_DOMAIN_HAS_SSL -eq 0 ]; then SHOULD_INSTALL_SSL=1 fi +FROM_FPM_VER="" +if [[ $FROM_DOMAIN_TPL == "PHP-FPM-"* ]]; then + FROM_FPM_TPL_VER=${FROM_DOMAIN_TPL:8:2} + FROM_FPM_VER="${FROM_DOMAIN_TPL:8:1}.${FROM_DOMAIN_TPL:9:1}" +fi + # ----------- CHECK ------------- if [ $IT_IS_WP -eq 0 ]; then @@ -240,13 +262,16 @@ fi # ----------- PRINT ------------- echo "===============================================================================" -echo "FROM_DOMAIN = $FROM_DOMAIN" -echo "TO_DOMAIN = $TO_DOMAIN" -echo "FROM_USER = $FROM_USER" -echo "TO_USER = $TO_USER" -echo "FROM_FOLDER = $FROM_FOLDER" -echo "TO_FOLDER = $TO_FOLDER" -echo "IT_IS_WP = $IT_IS_WP" +echo "FROM_DOMAIN = $FROM_DOMAIN" +echo "TO_DOMAIN = $TO_DOMAIN" +echo "FROM_USER = $FROM_USER" +echo "TO_USER = $TO_USER" +echo "SITE_SUBFOLDER = $SITE_SUBFOLDER" +echo "FROM_FOLDER = $FROM_FOLDER" +echo "TO_FOLDER = $TO_FOLDER" +echo "CMS_TYPE = $CMS_TYPE" +echo "IT_IS_WP = $IT_IS_WP" +echo "CONFIG_FILE = $CONFIG_FILE" echo "FROM_CONFIG_FILE_FULL_PATH = $FROM_CONFIG_FILE_FULL_PATH" echo "TO_CONFIG_FILE_FULL_PATH = $TO_CONFIG_FILE_FULL_PATH" echo "FROM_DATABASE_NAME = $FROM_DATABASE_NAME" @@ -264,8 +289,11 @@ echo "CREATE_TO_USER = $CREATE_TO_USER" echo "CREATE_TO_DOMAIN = $CREATE_TO_DOMAIN" echo "SHOULD_INSTALL_SSL = $SHOULD_INSTALL_SSL" echo "FROM_DOMAIN_TPL = $FROM_DOMAIN_TPL" +echo "FROM_FPM_VER = $FROM_FPM_VER" echo "FROM_DOMAIN_PROXY_TPL = $FROM_DOMAIN_PROXY_TPL" echo "FROM_DOMAIN_PROXY_EXT = $FROM_DOMAIN_PROXY_EXT" +echo "SEARCH_FOR_CONFIGS_DATABASE_NAME = $SEARCH_FOR_CONFIGS_DATABASE_NAME" +echo "SEARCH_FOR_CONFIGS_DATABASE_USERNAME = $SEARCH_FOR_CONFIGS_DATABASE_USERNAME" echo "===============================================================================" read -p "=== Press Enter to continue ===" @@ -297,6 +325,15 @@ if [ ! -z "$FROM_DOMAIN_TPL" ]; then echo "=== Set $FROM_DOMAIN_TPL template to domain $TO_DOMAIN" /usr/local/vesta/bin/v-change-web-domain-tpl "$TO_USER" "$TO_DOMAIN" "$FROM_DOMAIN_TPL" "yes" fi +if [ "$SITE_SUBFOLDER" = ".." ]; then + if [ ! -z "$FROM_FPM_VER" ]; then + POOLD_FILE="/etc/php/$FROM_FPM_VER/fpm/pool.d/$TO_DOMAIN.conf" + echo "=== Removing public_html from open_basedir in $POOLD_FILE" + sed -i "s|/public_html:|:|g" $POOLD_FILE + sed -i "s|/public_shtml:|:|g" $POOLD_FILE + systemctl restart php${FROM_FPM_VER}-fpm + fi +fi if [ ! -z "$FROM_DOMAIN_PROXY_TPL" ]; then echo "=== Set $FROM_DOMAIN_PROXY_TPL proxy template to domain $TO_DOMAIN" @@ -320,7 +357,13 @@ echo "=== Importing to database $TO_DATABASE_NAME" mysql $TO_DATABASE_NAME < $FROM_DATABASE_NAME.sql echo "=== Copying files from $FROM_FOLDER to folder $TO_FOLDER" -rsync -a --delete $FROM_FOLDER/ $TO_FOLDER/ +if [ "$SITE_SUBFOLDER" != ".." ]; then + echo "====== Executing: rsync -a --delete $FROM_FOLDER/ $TO_FOLDER/" + rsync -a --delete $FROM_FOLDER/ $TO_FOLDER/ +else + echo "====== Executing: rsync -a --delete --exclude 'logs/*' $FROM_FOLDER/ $TO_FOLDER/" + rsync -a --delete --exclude 'logs/*' $FROM_FOLDER/ $TO_FOLDER/ +fi echo "=== Chowning to $TO_USER:$TO_USER in folder $TO_FOLDER" chown -R $TO_USER:$TO_USER $TO_FOLDER @@ -328,13 +371,27 @@ replace_php_config_value "${FROM_DATABASE_NAME}" "${TO_DATABASE_NAME}" "$TO_CONF replace_php_config_value "${FROM_DATABASE_USERNAME}" "${TO_DATABASE_USERNAME}" "$TO_CONFIG_FILE_FULL_PATH" "yes" replace_php_config_value "${FROM_DATABASE_PASSWORD}" "${TO_DATABASE_PASSWORD}" "$TO_CONFIG_FILE_FULL_PATH" "yes" -echo "=== Replacing $FROM_DOMAIN to $TO_DOMAIN in folder $TO_FOLDER" +echo "=== Replacing $FROM_DOMAIN to $TO_DOMAIN by searching in folder $TO_FOLDER" REGEXP_FROM_DOMAIN="${FROM_DOMAIN//\./\\.}" grep -rl "$REGEXP_FROM_DOMAIN" $TO_FOLDER | xargs sed -i "s#$REGEXP_FROM_DOMAIN#$TO_DOMAIN#g" if [ "$FROM_USER" != "$TO_USER" ]; then - echo "=== Replacing /home/$FROM_USER/ to /home/$TO_USER/ in folder $TO_FOLDER" + echo "=== Replacing /home/$FROM_USER/ to /home/$TO_USER/ by searching in folder $TO_FOLDER" grep -rl "/home/$FROM_USER/" $TO_FOLDER | xargs sed -i "s#/home/$FROM_USER/#/home/$TO_USER/#g" fi +if [ ! -z "$SEARCH_FOR_CONFIGS_DATABASE_NAME" ]; then + echo "=== Replacing ${FROM_DATABASE_NAME} to ${TO_DATABASE_NAME} by searching in folder $TO_FOLDER [SEARCH_FOR_CONFIGS_DATABASE_NAME]" + grep -rl "${FROM_DATABASE_NAME}" $TO_FOLDER | xargs sed -i "s#${FROM_DATABASE_NAME}#${TO_DATABASE_NAME}#g" +fi +if [ ! -z "$SEARCH_FOR_CONFIGS_DATABASE_USERNAME" ]; then + DO_SEARCH_FOR_CONFIGS_DATABASE_USERNAME=1; + if [ ! -z "$SEARCH_FOR_CONFIGS_DATABASE_NAME" ] && [ "$SEARCH_FOR_CONFIGS_DATABASE_NAME" = "$SEARCH_FOR_CONFIGS_DATABASE_USERNAME" ]; then + DO_SEARCH_FOR_CONFIGS_DATABASE_USERNAME=0 + fi + if [ $DO_SEARCH_FOR_CONFIGS_DATABASE_USERNAME -eq 1 ]; then + echo "=== Replacing ${FROM_DATABASE_USERNAME} to ${TO_DATABASE_USERNAME} by searching in folder $TO_FOLDER [SEARCH_FOR_CONFIGS_DATABASE_USERNAME]" + grep -rl "${FROM_DATABASE_USERNAME}" $TO_FOLDER | xargs sed -i "s#${FROM_DATABASE_USERNAME}#${TO_DATABASE_USERNAME}#g" + fi +fi if [ $IT_IS_WP -eq 0 ]; then echo "=== Replacing $FROM_DOMAIN to $TO_DOMAIN in database $TO_DATABASE_NAME" From 355ae012223927707580a75f534b3bee0201e4d6 Mon Sep 17 00:00:00 2001 From: myvesta Date: Wed, 30 Mar 2022 13:50:29 +0200 Subject: [PATCH 374/984] Reverting blocking in nginx everything that begins with dot --- install/debian/10/templates/web/nginx/caching.tpl | 3 ++- install/debian/10/templates/web/nginx/hosting-legacy.tpl | 3 ++- install/debian/10/templates/web/nginx/hosting-public.tpl | 3 ++- .../10/templates/web/nginx/hosting-webmail-phpmyadmin.tpl | 3 ++- install/debian/10/templates/web/nginx/hosting.tpl | 3 ++- install/debian/10/templates/web/nginx/php-fpm/pyrocms.tpl | 2 +- install/debian/10/templates/web/nginx/private-hosting.tpl | 3 ++- install/debian/11/templates/web/nginx/caching.tpl | 3 ++- install/debian/11/templates/web/nginx/hosting-legacy.tpl | 3 ++- install/debian/11/templates/web/nginx/hosting-public.tpl | 3 ++- .../11/templates/web/nginx/hosting-webmail-phpmyadmin.tpl | 3 ++- install/debian/11/templates/web/nginx/hosting.tpl | 3 ++- install/debian/11/templates/web/nginx/php-fpm/pyrocms.tpl | 2 +- install/debian/11/templates/web/nginx/private-hosting.tpl | 3 ++- install/debian/7/templates/web/nginx/caching.tpl | 3 ++- install/debian/7/templates/web/nginx/default.tpl | 3 ++- install/debian/7/templates/web/nginx/hosting.tpl | 3 ++- install/debian/7/templates/web/nginx/http2.tpl | 3 ++- install/debian/7/templates/web/nginx/php5-fpm/pyrocms.tpl | 2 +- install/debian/8/templates/web/nginx/caching.tpl | 3 ++- install/debian/8/templates/web/nginx/default.tpl | 3 ++- install/debian/8/templates/web/nginx/hosting.tpl | 3 ++- install/debian/8/templates/web/nginx/http2.tpl | 3 ++- install/debian/8/templates/web/nginx/php5-fpm/pyrocms.tpl | 2 +- install/debian/9/templates/web/nginx/caching.tpl | 3 ++- install/debian/9/templates/web/nginx/default.tpl | 3 ++- install/debian/9/templates/web/nginx/hosting.tpl | 3 ++- install/debian/9/templates/web/nginx/http2.tpl | 3 ++- install/debian/9/templates/web/nginx/php-fpm/pyrocms.tpl | 2 +- install/rhel/5/templates/web/nginx/caching.tpl | 3 ++- install/rhel/5/templates/web/nginx/default.tpl | 3 ++- install/rhel/5/templates/web/nginx/hosting.tpl | 3 ++- install/rhel/5/templates/web/nginx/http2.tpl | 3 ++- install/rhel/5/templates/web/nginx/php-fpm/pyrocms.tpl | 2 +- install/rhel/6/templates/web/nginx/caching.tpl | 3 ++- install/rhel/6/templates/web/nginx/default.tpl | 3 ++- install/rhel/6/templates/web/nginx/hosting.tpl | 3 ++- install/rhel/6/templates/web/nginx/http2.tpl | 3 ++- install/rhel/6/templates/web/nginx/php-fpm/pyrocms.tpl | 2 +- install/rhel/7/templates/web/nginx/caching.tpl | 3 ++- install/rhel/7/templates/web/nginx/default.tpl | 3 ++- install/rhel/7/templates/web/nginx/hosting.tpl | 3 ++- install/rhel/7/templates/web/nginx/http2.tpl | 3 ++- install/rhel/7/templates/web/nginx/php-fpm/pyrocms.tpl | 2 +- install/ubuntu/12.04/templates/web/nginx/caching.tpl | 3 ++- install/ubuntu/12.04/templates/web/nginx/default.tpl | 3 ++- install/ubuntu/12.04/templates/web/nginx/hosting.tpl | 3 ++- install/ubuntu/12.04/templates/web/nginx/http2.tpl | 3 ++- install/ubuntu/12.04/templates/web/nginx/php-fpm/pyrocms.tpl | 2 +- install/ubuntu/12.10/templates/web/nginx/caching.tpl | 3 ++- install/ubuntu/12.10/templates/web/nginx/default.tpl | 3 ++- install/ubuntu/12.10/templates/web/nginx/hosting.tpl | 3 ++- install/ubuntu/12.10/templates/web/nginx/http2.tpl | 3 ++- install/ubuntu/12.10/templates/web/nginx/php-fpm/pyrocms.tpl | 2 +- install/ubuntu/13.04/templates/web/nginx/caching.tpl | 3 ++- install/ubuntu/13.04/templates/web/nginx/default.tpl | 3 ++- install/ubuntu/13.04/templates/web/nginx/hosting.tpl | 3 ++- install/ubuntu/13.04/templates/web/nginx/http2.tpl | 3 ++- install/ubuntu/13.04/templates/web/nginx/php-fpm/pyrocms.tpl | 2 +- install/ubuntu/13.10/templates/web/nginx/caching.tpl | 3 ++- install/ubuntu/13.10/templates/web/nginx/default.tpl | 3 ++- install/ubuntu/13.10/templates/web/nginx/hosting.tpl | 3 ++- install/ubuntu/13.10/templates/web/nginx/http2.tpl | 3 ++- install/ubuntu/13.10/templates/web/nginx/php-fpm/pyrocms.tpl | 2 +- install/ubuntu/14.04/templates/web/nginx/caching.tpl | 3 ++- install/ubuntu/14.04/templates/web/nginx/default.tpl | 3 ++- install/ubuntu/14.04/templates/web/nginx/hosting.tpl | 3 ++- install/ubuntu/14.04/templates/web/nginx/http2.tpl | 3 ++- install/ubuntu/14.04/templates/web/nginx/php-fpm/pyrocms.tpl | 2 +- install/ubuntu/14.10/templates/web/nginx/caching.tpl | 3 ++- install/ubuntu/14.10/templates/web/nginx/default.tpl | 3 ++- install/ubuntu/14.10/templates/web/nginx/hosting.tpl | 3 ++- install/ubuntu/14.10/templates/web/nginx/http2.tpl | 3 ++- install/ubuntu/14.10/templates/web/nginx/php-fpm/pyrocms.tpl | 2 +- install/ubuntu/15.04/templates/web/nginx/caching.tpl | 3 ++- install/ubuntu/15.04/templates/web/nginx/default.tpl | 3 ++- install/ubuntu/15.04/templates/web/nginx/hosting.tpl | 3 ++- install/ubuntu/15.04/templates/web/nginx/http2.tpl | 3 ++- install/ubuntu/15.04/templates/web/nginx/php-fpm/pyrocms.tpl | 2 +- install/ubuntu/15.10/templates/web/nginx/caching.tpl | 3 ++- install/ubuntu/15.10/templates/web/nginx/default.tpl | 3 ++- install/ubuntu/15.10/templates/web/nginx/hosting.tpl | 3 ++- install/ubuntu/15.10/templates/web/nginx/http2.tpl | 3 ++- install/ubuntu/15.10/templates/web/nginx/php-fpm/pyrocms.tpl | 2 +- install/ubuntu/16.04/templates/web/nginx/caching.tpl | 3 ++- install/ubuntu/16.04/templates/web/nginx/default.tpl | 3 ++- install/ubuntu/16.04/templates/web/nginx/hosting.tpl | 3 ++- install/ubuntu/16.04/templates/web/nginx/http2.tpl | 3 ++- install/ubuntu/16.04/templates/web/nginx/php-fpm/pyrocms.tpl | 2 +- install/ubuntu/16.10/templates/web/nginx/caching.tpl | 3 ++- install/ubuntu/16.10/templates/web/nginx/default.tpl | 3 ++- install/ubuntu/16.10/templates/web/nginx/hosting.tpl | 3 ++- install/ubuntu/16.10/templates/web/nginx/http2.tpl | 3 ++- install/ubuntu/16.10/templates/web/nginx/php-fpm/pyrocms.tpl | 2 +- install/ubuntu/17.04/templates/web/nginx/caching.tpl | 3 ++- install/ubuntu/17.04/templates/web/nginx/default.tpl | 3 ++- install/ubuntu/17.04/templates/web/nginx/hosting.tpl | 3 ++- install/ubuntu/17.04/templates/web/nginx/http2.tpl | 3 ++- install/ubuntu/17.04/templates/web/nginx/php-fpm/pyrocms.tpl | 2 +- install/ubuntu/17.10/templates/web/nginx/caching.tpl | 3 ++- install/ubuntu/17.10/templates/web/nginx/default.tpl | 3 ++- install/ubuntu/17.10/templates/web/nginx/hosting.tpl | 3 ++- install/ubuntu/17.10/templates/web/nginx/http2.tpl | 3 ++- install/ubuntu/17.10/templates/web/nginx/php-fpm/pyrocms.tpl | 2 +- install/ubuntu/18.04/templates/web/nginx/caching.tpl | 3 ++- install/ubuntu/18.04/templates/web/nginx/default.tpl | 3 ++- install/ubuntu/18.04/templates/web/nginx/hosting.tpl | 3 ++- install/ubuntu/18.04/templates/web/nginx/http2.tpl | 3 ++- install/ubuntu/18.04/templates/web/nginx/php-fpm/pyrocms.tpl | 2 +- install/ubuntu/18.10/templates/web/nginx/caching.tpl | 3 ++- install/ubuntu/18.10/templates/web/nginx/default.tpl | 3 ++- install/ubuntu/18.10/templates/web/nginx/hosting.tpl | 3 ++- install/ubuntu/18.10/templates/web/nginx/http2.tpl | 3 ++- install/ubuntu/18.10/templates/web/nginx/php-fpm/pyrocms.tpl | 2 +- .../nodejs-nginx-templates/node-app-3000-no-https-force.tpl | 3 ++- .../node-app-also-handle-static-files-3000.tpl | 3 ++- .../rate-limit-tpl/hosting-firewall-burst-2-speed-2-conn-4.tpl | 3 ++- .../tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2.tpl | 3 ++- .../tools/rate-limit-tpl/hosting-firewall-burst-2.tpl | 3 ++- src/deb/for-download/tools/rate-limit-tpl/hosting-firewall.tpl | 3 ++- 120 files changed, 218 insertions(+), 120 deletions(-) diff --git a/install/debian/10/templates/web/nginx/caching.tpl b/install/debian/10/templates/web/nginx/caching.tpl index a1a89549..73de28d5 100644 --- a/install/debian/10/templates/web/nginx/caching.tpl +++ b/install/debian/10/templates/web/nginx/caching.tpl @@ -31,7 +31,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/10/templates/web/nginx/hosting-legacy.tpl b/install/debian/10/templates/web/nginx/hosting-legacy.tpl index 541e560a..a41d4054 100644 --- a/install/debian/10/templates/web/nginx/hosting-legacy.tpl +++ b/install/debian/10/templates/web/nginx/hosting-legacy.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/10/templates/web/nginx/hosting-public.tpl b/install/debian/10/templates/web/nginx/hosting-public.tpl index 756ede37..f5d8b327 100644 --- a/install/debian/10/templates/web/nginx/hosting-public.tpl +++ b/install/debian/10/templates/web/nginx/hosting-public.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/10/templates/web/nginx/hosting-webmail-phpmyadmin.tpl b/install/debian/10/templates/web/nginx/hosting-webmail-phpmyadmin.tpl index da7dc9b2..f84f4781 100644 --- a/install/debian/10/templates/web/nginx/hosting-webmail-phpmyadmin.tpl +++ b/install/debian/10/templates/web/nginx/hosting-webmail-phpmyadmin.tpl @@ -46,7 +46,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/10/templates/web/nginx/hosting.tpl b/install/debian/10/templates/web/nginx/hosting.tpl index 87c2f824..61469ad2 100644 --- a/install/debian/10/templates/web/nginx/hosting.tpl +++ b/install/debian/10/templates/web/nginx/hosting.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/10/templates/web/nginx/php-fpm/pyrocms.tpl b/install/debian/10/templates/web/nginx/php-fpm/pyrocms.tpl index 297fe0e8..b92861b0 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/pyrocms.tpl +++ b/install/debian/10/templates/web/nginx/php-fpm/pyrocms.tpl @@ -33,7 +33,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/debian/10/templates/web/nginx/private-hosting.tpl b/install/debian/10/templates/web/nginx/private-hosting.tpl index 5fd75be5..a8ee840e 100644 --- a/install/debian/10/templates/web/nginx/private-hosting.tpl +++ b/install/debian/10/templates/web/nginx/private-hosting.tpl @@ -24,7 +24,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/caching.tpl b/install/debian/11/templates/web/nginx/caching.tpl index a1a89549..73de28d5 100644 --- a/install/debian/11/templates/web/nginx/caching.tpl +++ b/install/debian/11/templates/web/nginx/caching.tpl @@ -31,7 +31,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/hosting-legacy.tpl b/install/debian/11/templates/web/nginx/hosting-legacy.tpl index 541e560a..a41d4054 100644 --- a/install/debian/11/templates/web/nginx/hosting-legacy.tpl +++ b/install/debian/11/templates/web/nginx/hosting-legacy.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/hosting-public.tpl b/install/debian/11/templates/web/nginx/hosting-public.tpl index 756ede37..f5d8b327 100644 --- a/install/debian/11/templates/web/nginx/hosting-public.tpl +++ b/install/debian/11/templates/web/nginx/hosting-public.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/hosting-webmail-phpmyadmin.tpl b/install/debian/11/templates/web/nginx/hosting-webmail-phpmyadmin.tpl index da7dc9b2..f84f4781 100644 --- a/install/debian/11/templates/web/nginx/hosting-webmail-phpmyadmin.tpl +++ b/install/debian/11/templates/web/nginx/hosting-webmail-phpmyadmin.tpl @@ -46,7 +46,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/hosting.tpl b/install/debian/11/templates/web/nginx/hosting.tpl index 87c2f824..61469ad2 100644 --- a/install/debian/11/templates/web/nginx/hosting.tpl +++ b/install/debian/11/templates/web/nginx/hosting.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/php-fpm/pyrocms.tpl b/install/debian/11/templates/web/nginx/php-fpm/pyrocms.tpl index 297fe0e8..b92861b0 100644 --- a/install/debian/11/templates/web/nginx/php-fpm/pyrocms.tpl +++ b/install/debian/11/templates/web/nginx/php-fpm/pyrocms.tpl @@ -33,7 +33,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/debian/11/templates/web/nginx/private-hosting.tpl b/install/debian/11/templates/web/nginx/private-hosting.tpl index 5fd75be5..a8ee840e 100644 --- a/install/debian/11/templates/web/nginx/private-hosting.tpl +++ b/install/debian/11/templates/web/nginx/private-hosting.tpl @@ -24,7 +24,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/7/templates/web/nginx/caching.tpl b/install/debian/7/templates/web/nginx/caching.tpl index a1a89549..73de28d5 100644 --- a/install/debian/7/templates/web/nginx/caching.tpl +++ b/install/debian/7/templates/web/nginx/caching.tpl @@ -31,7 +31,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/7/templates/web/nginx/default.tpl b/install/debian/7/templates/web/nginx/default.tpl index 0e200e92..bebd47a2 100644 --- a/install/debian/7/templates/web/nginx/default.tpl +++ b/install/debian/7/templates/web/nginx/default.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/7/templates/web/nginx/hosting.tpl b/install/debian/7/templates/web/nginx/hosting.tpl index 541e560a..a41d4054 100644 --- a/install/debian/7/templates/web/nginx/hosting.tpl +++ b/install/debian/7/templates/web/nginx/hosting.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/7/templates/web/nginx/http2.tpl b/install/debian/7/templates/web/nginx/http2.tpl index 0e200e92..bebd47a2 100644 --- a/install/debian/7/templates/web/nginx/http2.tpl +++ b/install/debian/7/templates/web/nginx/http2.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/7/templates/web/nginx/php5-fpm/pyrocms.tpl b/install/debian/7/templates/web/nginx/php5-fpm/pyrocms.tpl index 297fe0e8..b92861b0 100644 --- a/install/debian/7/templates/web/nginx/php5-fpm/pyrocms.tpl +++ b/install/debian/7/templates/web/nginx/php5-fpm/pyrocms.tpl @@ -33,7 +33,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/debian/8/templates/web/nginx/caching.tpl b/install/debian/8/templates/web/nginx/caching.tpl index a1a89549..73de28d5 100644 --- a/install/debian/8/templates/web/nginx/caching.tpl +++ b/install/debian/8/templates/web/nginx/caching.tpl @@ -31,7 +31,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/8/templates/web/nginx/default.tpl b/install/debian/8/templates/web/nginx/default.tpl index 0e200e92..bebd47a2 100644 --- a/install/debian/8/templates/web/nginx/default.tpl +++ b/install/debian/8/templates/web/nginx/default.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/8/templates/web/nginx/hosting.tpl b/install/debian/8/templates/web/nginx/hosting.tpl index 541e560a..a41d4054 100644 --- a/install/debian/8/templates/web/nginx/hosting.tpl +++ b/install/debian/8/templates/web/nginx/hosting.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/8/templates/web/nginx/http2.tpl b/install/debian/8/templates/web/nginx/http2.tpl index 0e200e92..bebd47a2 100644 --- a/install/debian/8/templates/web/nginx/http2.tpl +++ b/install/debian/8/templates/web/nginx/http2.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/8/templates/web/nginx/php5-fpm/pyrocms.tpl b/install/debian/8/templates/web/nginx/php5-fpm/pyrocms.tpl index 297fe0e8..b92861b0 100644 --- a/install/debian/8/templates/web/nginx/php5-fpm/pyrocms.tpl +++ b/install/debian/8/templates/web/nginx/php5-fpm/pyrocms.tpl @@ -33,7 +33,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/debian/9/templates/web/nginx/caching.tpl b/install/debian/9/templates/web/nginx/caching.tpl index a1a89549..73de28d5 100644 --- a/install/debian/9/templates/web/nginx/caching.tpl +++ b/install/debian/9/templates/web/nginx/caching.tpl @@ -31,7 +31,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/9/templates/web/nginx/default.tpl b/install/debian/9/templates/web/nginx/default.tpl index 0e200e92..bebd47a2 100644 --- a/install/debian/9/templates/web/nginx/default.tpl +++ b/install/debian/9/templates/web/nginx/default.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/9/templates/web/nginx/hosting.tpl b/install/debian/9/templates/web/nginx/hosting.tpl index 541e560a..a41d4054 100644 --- a/install/debian/9/templates/web/nginx/hosting.tpl +++ b/install/debian/9/templates/web/nginx/hosting.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/9/templates/web/nginx/http2.tpl b/install/debian/9/templates/web/nginx/http2.tpl index 0e200e92..bebd47a2 100644 --- a/install/debian/9/templates/web/nginx/http2.tpl +++ b/install/debian/9/templates/web/nginx/http2.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/9/templates/web/nginx/php-fpm/pyrocms.tpl b/install/debian/9/templates/web/nginx/php-fpm/pyrocms.tpl index 297fe0e8..b92861b0 100644 --- a/install/debian/9/templates/web/nginx/php-fpm/pyrocms.tpl +++ b/install/debian/9/templates/web/nginx/php-fpm/pyrocms.tpl @@ -33,7 +33,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/rhel/5/templates/web/nginx/caching.tpl b/install/rhel/5/templates/web/nginx/caching.tpl index 677fea6f..fc721982 100755 --- a/install/rhel/5/templates/web/nginx/caching.tpl +++ b/install/rhel/5/templates/web/nginx/caching.tpl @@ -31,7 +31,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/5/templates/web/nginx/default.tpl b/install/rhel/5/templates/web/nginx/default.tpl index d7fa634c..e49081a5 100755 --- a/install/rhel/5/templates/web/nginx/default.tpl +++ b/install/rhel/5/templates/web/nginx/default.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/5/templates/web/nginx/hosting.tpl b/install/rhel/5/templates/web/nginx/hosting.tpl index 41fe0c43..de42b9df 100755 --- a/install/rhel/5/templates/web/nginx/hosting.tpl +++ b/install/rhel/5/templates/web/nginx/hosting.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/5/templates/web/nginx/http2.tpl b/install/rhel/5/templates/web/nginx/http2.tpl index 0e200e92..bebd47a2 100644 --- a/install/rhel/5/templates/web/nginx/http2.tpl +++ b/install/rhel/5/templates/web/nginx/http2.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/5/templates/web/nginx/php-fpm/pyrocms.tpl b/install/rhel/5/templates/web/nginx/php-fpm/pyrocms.tpl index 297fe0e8..b92861b0 100644 --- a/install/rhel/5/templates/web/nginx/php-fpm/pyrocms.tpl +++ b/install/rhel/5/templates/web/nginx/php-fpm/pyrocms.tpl @@ -33,7 +33,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/rhel/6/templates/web/nginx/caching.tpl b/install/rhel/6/templates/web/nginx/caching.tpl index 677fea6f..fc721982 100755 --- a/install/rhel/6/templates/web/nginx/caching.tpl +++ b/install/rhel/6/templates/web/nginx/caching.tpl @@ -31,7 +31,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/6/templates/web/nginx/default.tpl b/install/rhel/6/templates/web/nginx/default.tpl index d7fa634c..e49081a5 100755 --- a/install/rhel/6/templates/web/nginx/default.tpl +++ b/install/rhel/6/templates/web/nginx/default.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/6/templates/web/nginx/hosting.tpl b/install/rhel/6/templates/web/nginx/hosting.tpl index 41fe0c43..de42b9df 100755 --- a/install/rhel/6/templates/web/nginx/hosting.tpl +++ b/install/rhel/6/templates/web/nginx/hosting.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/6/templates/web/nginx/http2.tpl b/install/rhel/6/templates/web/nginx/http2.tpl index b51af9bf..9344a7a9 100644 --- a/install/rhel/6/templates/web/nginx/http2.tpl +++ b/install/rhel/6/templates/web/nginx/http2.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/6/templates/web/nginx/php-fpm/pyrocms.tpl b/install/rhel/6/templates/web/nginx/php-fpm/pyrocms.tpl index 297fe0e8..b92861b0 100644 --- a/install/rhel/6/templates/web/nginx/php-fpm/pyrocms.tpl +++ b/install/rhel/6/templates/web/nginx/php-fpm/pyrocms.tpl @@ -33,7 +33,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/rhel/7/templates/web/nginx/caching.tpl b/install/rhel/7/templates/web/nginx/caching.tpl index 677fea6f..fc721982 100755 --- a/install/rhel/7/templates/web/nginx/caching.tpl +++ b/install/rhel/7/templates/web/nginx/caching.tpl @@ -31,7 +31,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/7/templates/web/nginx/default.tpl b/install/rhel/7/templates/web/nginx/default.tpl index d7fa634c..e49081a5 100755 --- a/install/rhel/7/templates/web/nginx/default.tpl +++ b/install/rhel/7/templates/web/nginx/default.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/7/templates/web/nginx/hosting.tpl b/install/rhel/7/templates/web/nginx/hosting.tpl index 41fe0c43..de42b9df 100755 --- a/install/rhel/7/templates/web/nginx/hosting.tpl +++ b/install/rhel/7/templates/web/nginx/hosting.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/7/templates/web/nginx/http2.tpl b/install/rhel/7/templates/web/nginx/http2.tpl index 0e200e92..bebd47a2 100644 --- a/install/rhel/7/templates/web/nginx/http2.tpl +++ b/install/rhel/7/templates/web/nginx/http2.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/7/templates/web/nginx/php-fpm/pyrocms.tpl b/install/rhel/7/templates/web/nginx/php-fpm/pyrocms.tpl index 297fe0e8..b92861b0 100644 --- a/install/rhel/7/templates/web/nginx/php-fpm/pyrocms.tpl +++ b/install/rhel/7/templates/web/nginx/php-fpm/pyrocms.tpl @@ -33,7 +33,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/ubuntu/12.04/templates/web/nginx/caching.tpl b/install/ubuntu/12.04/templates/web/nginx/caching.tpl index a1a89549..73de28d5 100755 --- a/install/ubuntu/12.04/templates/web/nginx/caching.tpl +++ b/install/ubuntu/12.04/templates/web/nginx/caching.tpl @@ -31,7 +31,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/12.04/templates/web/nginx/default.tpl b/install/ubuntu/12.04/templates/web/nginx/default.tpl index 0e200e92..bebd47a2 100755 --- a/install/ubuntu/12.04/templates/web/nginx/default.tpl +++ b/install/ubuntu/12.04/templates/web/nginx/default.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/12.04/templates/web/nginx/hosting.tpl b/install/ubuntu/12.04/templates/web/nginx/hosting.tpl index 541e560a..a41d4054 100755 --- a/install/ubuntu/12.04/templates/web/nginx/hosting.tpl +++ b/install/ubuntu/12.04/templates/web/nginx/hosting.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/12.04/templates/web/nginx/http2.tpl b/install/ubuntu/12.04/templates/web/nginx/http2.tpl index 0e200e92..bebd47a2 100644 --- a/install/ubuntu/12.04/templates/web/nginx/http2.tpl +++ b/install/ubuntu/12.04/templates/web/nginx/http2.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/12.04/templates/web/nginx/php-fpm/pyrocms.tpl b/install/ubuntu/12.04/templates/web/nginx/php-fpm/pyrocms.tpl index 297fe0e8..b92861b0 100644 --- a/install/ubuntu/12.04/templates/web/nginx/php-fpm/pyrocms.tpl +++ b/install/ubuntu/12.04/templates/web/nginx/php-fpm/pyrocms.tpl @@ -33,7 +33,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/ubuntu/12.10/templates/web/nginx/caching.tpl b/install/ubuntu/12.10/templates/web/nginx/caching.tpl index a1a89549..73de28d5 100755 --- a/install/ubuntu/12.10/templates/web/nginx/caching.tpl +++ b/install/ubuntu/12.10/templates/web/nginx/caching.tpl @@ -31,7 +31,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/12.10/templates/web/nginx/default.tpl b/install/ubuntu/12.10/templates/web/nginx/default.tpl index 0e200e92..bebd47a2 100755 --- a/install/ubuntu/12.10/templates/web/nginx/default.tpl +++ b/install/ubuntu/12.10/templates/web/nginx/default.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/12.10/templates/web/nginx/hosting.tpl b/install/ubuntu/12.10/templates/web/nginx/hosting.tpl index 541e560a..a41d4054 100755 --- a/install/ubuntu/12.10/templates/web/nginx/hosting.tpl +++ b/install/ubuntu/12.10/templates/web/nginx/hosting.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/12.10/templates/web/nginx/http2.tpl b/install/ubuntu/12.10/templates/web/nginx/http2.tpl index 0e200e92..bebd47a2 100644 --- a/install/ubuntu/12.10/templates/web/nginx/http2.tpl +++ b/install/ubuntu/12.10/templates/web/nginx/http2.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/12.10/templates/web/nginx/php-fpm/pyrocms.tpl b/install/ubuntu/12.10/templates/web/nginx/php-fpm/pyrocms.tpl index 297fe0e8..b92861b0 100644 --- a/install/ubuntu/12.10/templates/web/nginx/php-fpm/pyrocms.tpl +++ b/install/ubuntu/12.10/templates/web/nginx/php-fpm/pyrocms.tpl @@ -33,7 +33,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/ubuntu/13.04/templates/web/nginx/caching.tpl b/install/ubuntu/13.04/templates/web/nginx/caching.tpl index a1a89549..73de28d5 100755 --- a/install/ubuntu/13.04/templates/web/nginx/caching.tpl +++ b/install/ubuntu/13.04/templates/web/nginx/caching.tpl @@ -31,7 +31,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/13.04/templates/web/nginx/default.tpl b/install/ubuntu/13.04/templates/web/nginx/default.tpl index 0e200e92..bebd47a2 100755 --- a/install/ubuntu/13.04/templates/web/nginx/default.tpl +++ b/install/ubuntu/13.04/templates/web/nginx/default.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/13.04/templates/web/nginx/hosting.tpl b/install/ubuntu/13.04/templates/web/nginx/hosting.tpl index 541e560a..a41d4054 100755 --- a/install/ubuntu/13.04/templates/web/nginx/hosting.tpl +++ b/install/ubuntu/13.04/templates/web/nginx/hosting.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/13.04/templates/web/nginx/http2.tpl b/install/ubuntu/13.04/templates/web/nginx/http2.tpl index 0e200e92..bebd47a2 100644 --- a/install/ubuntu/13.04/templates/web/nginx/http2.tpl +++ b/install/ubuntu/13.04/templates/web/nginx/http2.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/13.04/templates/web/nginx/php-fpm/pyrocms.tpl b/install/ubuntu/13.04/templates/web/nginx/php-fpm/pyrocms.tpl index 297fe0e8..b92861b0 100644 --- a/install/ubuntu/13.04/templates/web/nginx/php-fpm/pyrocms.tpl +++ b/install/ubuntu/13.04/templates/web/nginx/php-fpm/pyrocms.tpl @@ -33,7 +33,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/ubuntu/13.10/templates/web/nginx/caching.tpl b/install/ubuntu/13.10/templates/web/nginx/caching.tpl index a1a89549..73de28d5 100755 --- a/install/ubuntu/13.10/templates/web/nginx/caching.tpl +++ b/install/ubuntu/13.10/templates/web/nginx/caching.tpl @@ -31,7 +31,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/13.10/templates/web/nginx/default.tpl b/install/ubuntu/13.10/templates/web/nginx/default.tpl index 0e200e92..bebd47a2 100755 --- a/install/ubuntu/13.10/templates/web/nginx/default.tpl +++ b/install/ubuntu/13.10/templates/web/nginx/default.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/13.10/templates/web/nginx/hosting.tpl b/install/ubuntu/13.10/templates/web/nginx/hosting.tpl index 541e560a..a41d4054 100755 --- a/install/ubuntu/13.10/templates/web/nginx/hosting.tpl +++ b/install/ubuntu/13.10/templates/web/nginx/hosting.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/13.10/templates/web/nginx/http2.tpl b/install/ubuntu/13.10/templates/web/nginx/http2.tpl index 0e200e92..bebd47a2 100644 --- a/install/ubuntu/13.10/templates/web/nginx/http2.tpl +++ b/install/ubuntu/13.10/templates/web/nginx/http2.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/13.10/templates/web/nginx/php-fpm/pyrocms.tpl b/install/ubuntu/13.10/templates/web/nginx/php-fpm/pyrocms.tpl index 297fe0e8..b92861b0 100644 --- a/install/ubuntu/13.10/templates/web/nginx/php-fpm/pyrocms.tpl +++ b/install/ubuntu/13.10/templates/web/nginx/php-fpm/pyrocms.tpl @@ -33,7 +33,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/ubuntu/14.04/templates/web/nginx/caching.tpl b/install/ubuntu/14.04/templates/web/nginx/caching.tpl index a1a89549..73de28d5 100755 --- a/install/ubuntu/14.04/templates/web/nginx/caching.tpl +++ b/install/ubuntu/14.04/templates/web/nginx/caching.tpl @@ -31,7 +31,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/14.04/templates/web/nginx/default.tpl b/install/ubuntu/14.04/templates/web/nginx/default.tpl index 0e200e92..bebd47a2 100755 --- a/install/ubuntu/14.04/templates/web/nginx/default.tpl +++ b/install/ubuntu/14.04/templates/web/nginx/default.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/14.04/templates/web/nginx/hosting.tpl b/install/ubuntu/14.04/templates/web/nginx/hosting.tpl index 541e560a..a41d4054 100755 --- a/install/ubuntu/14.04/templates/web/nginx/hosting.tpl +++ b/install/ubuntu/14.04/templates/web/nginx/hosting.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/14.04/templates/web/nginx/http2.tpl b/install/ubuntu/14.04/templates/web/nginx/http2.tpl index 0e200e92..bebd47a2 100644 --- a/install/ubuntu/14.04/templates/web/nginx/http2.tpl +++ b/install/ubuntu/14.04/templates/web/nginx/http2.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/14.04/templates/web/nginx/php-fpm/pyrocms.tpl b/install/ubuntu/14.04/templates/web/nginx/php-fpm/pyrocms.tpl index 297fe0e8..b92861b0 100644 --- a/install/ubuntu/14.04/templates/web/nginx/php-fpm/pyrocms.tpl +++ b/install/ubuntu/14.04/templates/web/nginx/php-fpm/pyrocms.tpl @@ -33,7 +33,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/ubuntu/14.10/templates/web/nginx/caching.tpl b/install/ubuntu/14.10/templates/web/nginx/caching.tpl index a1a89549..73de28d5 100755 --- a/install/ubuntu/14.10/templates/web/nginx/caching.tpl +++ b/install/ubuntu/14.10/templates/web/nginx/caching.tpl @@ -31,7 +31,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/14.10/templates/web/nginx/default.tpl b/install/ubuntu/14.10/templates/web/nginx/default.tpl index 0e200e92..bebd47a2 100755 --- a/install/ubuntu/14.10/templates/web/nginx/default.tpl +++ b/install/ubuntu/14.10/templates/web/nginx/default.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/14.10/templates/web/nginx/hosting.tpl b/install/ubuntu/14.10/templates/web/nginx/hosting.tpl index 541e560a..a41d4054 100755 --- a/install/ubuntu/14.10/templates/web/nginx/hosting.tpl +++ b/install/ubuntu/14.10/templates/web/nginx/hosting.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/14.10/templates/web/nginx/http2.tpl b/install/ubuntu/14.10/templates/web/nginx/http2.tpl index 0e200e92..bebd47a2 100644 --- a/install/ubuntu/14.10/templates/web/nginx/http2.tpl +++ b/install/ubuntu/14.10/templates/web/nginx/http2.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/14.10/templates/web/nginx/php-fpm/pyrocms.tpl b/install/ubuntu/14.10/templates/web/nginx/php-fpm/pyrocms.tpl index 297fe0e8..b92861b0 100644 --- a/install/ubuntu/14.10/templates/web/nginx/php-fpm/pyrocms.tpl +++ b/install/ubuntu/14.10/templates/web/nginx/php-fpm/pyrocms.tpl @@ -33,7 +33,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/ubuntu/15.04/templates/web/nginx/caching.tpl b/install/ubuntu/15.04/templates/web/nginx/caching.tpl index a1a89549..73de28d5 100755 --- a/install/ubuntu/15.04/templates/web/nginx/caching.tpl +++ b/install/ubuntu/15.04/templates/web/nginx/caching.tpl @@ -31,7 +31,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/15.04/templates/web/nginx/default.tpl b/install/ubuntu/15.04/templates/web/nginx/default.tpl index 0e200e92..bebd47a2 100755 --- a/install/ubuntu/15.04/templates/web/nginx/default.tpl +++ b/install/ubuntu/15.04/templates/web/nginx/default.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/15.04/templates/web/nginx/hosting.tpl b/install/ubuntu/15.04/templates/web/nginx/hosting.tpl index 541e560a..a41d4054 100755 --- a/install/ubuntu/15.04/templates/web/nginx/hosting.tpl +++ b/install/ubuntu/15.04/templates/web/nginx/hosting.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/15.04/templates/web/nginx/http2.tpl b/install/ubuntu/15.04/templates/web/nginx/http2.tpl index 0e200e92..bebd47a2 100644 --- a/install/ubuntu/15.04/templates/web/nginx/http2.tpl +++ b/install/ubuntu/15.04/templates/web/nginx/http2.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/15.04/templates/web/nginx/php-fpm/pyrocms.tpl b/install/ubuntu/15.04/templates/web/nginx/php-fpm/pyrocms.tpl index 297fe0e8..b92861b0 100644 --- a/install/ubuntu/15.04/templates/web/nginx/php-fpm/pyrocms.tpl +++ b/install/ubuntu/15.04/templates/web/nginx/php-fpm/pyrocms.tpl @@ -33,7 +33,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/ubuntu/15.10/templates/web/nginx/caching.tpl b/install/ubuntu/15.10/templates/web/nginx/caching.tpl index a1a89549..73de28d5 100755 --- a/install/ubuntu/15.10/templates/web/nginx/caching.tpl +++ b/install/ubuntu/15.10/templates/web/nginx/caching.tpl @@ -31,7 +31,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/15.10/templates/web/nginx/default.tpl b/install/ubuntu/15.10/templates/web/nginx/default.tpl index 0e200e92..bebd47a2 100755 --- a/install/ubuntu/15.10/templates/web/nginx/default.tpl +++ b/install/ubuntu/15.10/templates/web/nginx/default.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/15.10/templates/web/nginx/hosting.tpl b/install/ubuntu/15.10/templates/web/nginx/hosting.tpl index 541e560a..a41d4054 100755 --- a/install/ubuntu/15.10/templates/web/nginx/hosting.tpl +++ b/install/ubuntu/15.10/templates/web/nginx/hosting.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/15.10/templates/web/nginx/http2.tpl b/install/ubuntu/15.10/templates/web/nginx/http2.tpl index 0e200e92..bebd47a2 100644 --- a/install/ubuntu/15.10/templates/web/nginx/http2.tpl +++ b/install/ubuntu/15.10/templates/web/nginx/http2.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/15.10/templates/web/nginx/php-fpm/pyrocms.tpl b/install/ubuntu/15.10/templates/web/nginx/php-fpm/pyrocms.tpl index 297fe0e8..b92861b0 100644 --- a/install/ubuntu/15.10/templates/web/nginx/php-fpm/pyrocms.tpl +++ b/install/ubuntu/15.10/templates/web/nginx/php-fpm/pyrocms.tpl @@ -33,7 +33,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/ubuntu/16.04/templates/web/nginx/caching.tpl b/install/ubuntu/16.04/templates/web/nginx/caching.tpl index a1a89549..73de28d5 100755 --- a/install/ubuntu/16.04/templates/web/nginx/caching.tpl +++ b/install/ubuntu/16.04/templates/web/nginx/caching.tpl @@ -31,7 +31,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/16.04/templates/web/nginx/default.tpl b/install/ubuntu/16.04/templates/web/nginx/default.tpl index 0e200e92..bebd47a2 100755 --- a/install/ubuntu/16.04/templates/web/nginx/default.tpl +++ b/install/ubuntu/16.04/templates/web/nginx/default.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/16.04/templates/web/nginx/hosting.tpl b/install/ubuntu/16.04/templates/web/nginx/hosting.tpl index 541e560a..a41d4054 100755 --- a/install/ubuntu/16.04/templates/web/nginx/hosting.tpl +++ b/install/ubuntu/16.04/templates/web/nginx/hosting.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/16.04/templates/web/nginx/http2.tpl b/install/ubuntu/16.04/templates/web/nginx/http2.tpl index 0e200e92..bebd47a2 100644 --- a/install/ubuntu/16.04/templates/web/nginx/http2.tpl +++ b/install/ubuntu/16.04/templates/web/nginx/http2.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/16.04/templates/web/nginx/php-fpm/pyrocms.tpl b/install/ubuntu/16.04/templates/web/nginx/php-fpm/pyrocms.tpl index 297fe0e8..b92861b0 100644 --- a/install/ubuntu/16.04/templates/web/nginx/php-fpm/pyrocms.tpl +++ b/install/ubuntu/16.04/templates/web/nginx/php-fpm/pyrocms.tpl @@ -33,7 +33,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/ubuntu/16.10/templates/web/nginx/caching.tpl b/install/ubuntu/16.10/templates/web/nginx/caching.tpl index a1a89549..73de28d5 100755 --- a/install/ubuntu/16.10/templates/web/nginx/caching.tpl +++ b/install/ubuntu/16.10/templates/web/nginx/caching.tpl @@ -31,7 +31,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/16.10/templates/web/nginx/default.tpl b/install/ubuntu/16.10/templates/web/nginx/default.tpl index 0e200e92..bebd47a2 100755 --- a/install/ubuntu/16.10/templates/web/nginx/default.tpl +++ b/install/ubuntu/16.10/templates/web/nginx/default.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/16.10/templates/web/nginx/hosting.tpl b/install/ubuntu/16.10/templates/web/nginx/hosting.tpl index 541e560a..a41d4054 100755 --- a/install/ubuntu/16.10/templates/web/nginx/hosting.tpl +++ b/install/ubuntu/16.10/templates/web/nginx/hosting.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/16.10/templates/web/nginx/http2.tpl b/install/ubuntu/16.10/templates/web/nginx/http2.tpl index 0e200e92..bebd47a2 100644 --- a/install/ubuntu/16.10/templates/web/nginx/http2.tpl +++ b/install/ubuntu/16.10/templates/web/nginx/http2.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/pyrocms.tpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/pyrocms.tpl index 297fe0e8..b92861b0 100644 --- a/install/ubuntu/16.10/templates/web/nginx/php-fpm/pyrocms.tpl +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/pyrocms.tpl @@ -33,7 +33,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/ubuntu/17.04/templates/web/nginx/caching.tpl b/install/ubuntu/17.04/templates/web/nginx/caching.tpl index a1a89549..73de28d5 100755 --- a/install/ubuntu/17.04/templates/web/nginx/caching.tpl +++ b/install/ubuntu/17.04/templates/web/nginx/caching.tpl @@ -31,7 +31,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/17.04/templates/web/nginx/default.tpl b/install/ubuntu/17.04/templates/web/nginx/default.tpl index 0e200e92..bebd47a2 100755 --- a/install/ubuntu/17.04/templates/web/nginx/default.tpl +++ b/install/ubuntu/17.04/templates/web/nginx/default.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/17.04/templates/web/nginx/hosting.tpl b/install/ubuntu/17.04/templates/web/nginx/hosting.tpl index 541e560a..a41d4054 100755 --- a/install/ubuntu/17.04/templates/web/nginx/hosting.tpl +++ b/install/ubuntu/17.04/templates/web/nginx/hosting.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/17.04/templates/web/nginx/http2.tpl b/install/ubuntu/17.04/templates/web/nginx/http2.tpl index 0e200e92..bebd47a2 100644 --- a/install/ubuntu/17.04/templates/web/nginx/http2.tpl +++ b/install/ubuntu/17.04/templates/web/nginx/http2.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/17.04/templates/web/nginx/php-fpm/pyrocms.tpl b/install/ubuntu/17.04/templates/web/nginx/php-fpm/pyrocms.tpl index 297fe0e8..b92861b0 100644 --- a/install/ubuntu/17.04/templates/web/nginx/php-fpm/pyrocms.tpl +++ b/install/ubuntu/17.04/templates/web/nginx/php-fpm/pyrocms.tpl @@ -33,7 +33,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/ubuntu/17.10/templates/web/nginx/caching.tpl b/install/ubuntu/17.10/templates/web/nginx/caching.tpl index a1a89549..73de28d5 100755 --- a/install/ubuntu/17.10/templates/web/nginx/caching.tpl +++ b/install/ubuntu/17.10/templates/web/nginx/caching.tpl @@ -31,7 +31,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/17.10/templates/web/nginx/default.tpl b/install/ubuntu/17.10/templates/web/nginx/default.tpl index 0e200e92..bebd47a2 100755 --- a/install/ubuntu/17.10/templates/web/nginx/default.tpl +++ b/install/ubuntu/17.10/templates/web/nginx/default.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/17.10/templates/web/nginx/hosting.tpl b/install/ubuntu/17.10/templates/web/nginx/hosting.tpl index 541e560a..a41d4054 100755 --- a/install/ubuntu/17.10/templates/web/nginx/hosting.tpl +++ b/install/ubuntu/17.10/templates/web/nginx/hosting.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/17.10/templates/web/nginx/http2.tpl b/install/ubuntu/17.10/templates/web/nginx/http2.tpl index 0e200e92..bebd47a2 100644 --- a/install/ubuntu/17.10/templates/web/nginx/http2.tpl +++ b/install/ubuntu/17.10/templates/web/nginx/http2.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/17.10/templates/web/nginx/php-fpm/pyrocms.tpl b/install/ubuntu/17.10/templates/web/nginx/php-fpm/pyrocms.tpl index 297fe0e8..b92861b0 100644 --- a/install/ubuntu/17.10/templates/web/nginx/php-fpm/pyrocms.tpl +++ b/install/ubuntu/17.10/templates/web/nginx/php-fpm/pyrocms.tpl @@ -33,7 +33,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/ubuntu/18.04/templates/web/nginx/caching.tpl b/install/ubuntu/18.04/templates/web/nginx/caching.tpl index a1a89549..73de28d5 100755 --- a/install/ubuntu/18.04/templates/web/nginx/caching.tpl +++ b/install/ubuntu/18.04/templates/web/nginx/caching.tpl @@ -31,7 +31,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/18.04/templates/web/nginx/default.tpl b/install/ubuntu/18.04/templates/web/nginx/default.tpl index 0e200e92..bebd47a2 100755 --- a/install/ubuntu/18.04/templates/web/nginx/default.tpl +++ b/install/ubuntu/18.04/templates/web/nginx/default.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/18.04/templates/web/nginx/hosting.tpl b/install/ubuntu/18.04/templates/web/nginx/hosting.tpl index 541e560a..a41d4054 100755 --- a/install/ubuntu/18.04/templates/web/nginx/hosting.tpl +++ b/install/ubuntu/18.04/templates/web/nginx/hosting.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/18.04/templates/web/nginx/http2.tpl b/install/ubuntu/18.04/templates/web/nginx/http2.tpl index 0e200e92..bebd47a2 100644 --- a/install/ubuntu/18.04/templates/web/nginx/http2.tpl +++ b/install/ubuntu/18.04/templates/web/nginx/http2.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/18.04/templates/web/nginx/php-fpm/pyrocms.tpl b/install/ubuntu/18.04/templates/web/nginx/php-fpm/pyrocms.tpl index 297fe0e8..b92861b0 100644 --- a/install/ubuntu/18.04/templates/web/nginx/php-fpm/pyrocms.tpl +++ b/install/ubuntu/18.04/templates/web/nginx/php-fpm/pyrocms.tpl @@ -33,7 +33,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/ubuntu/18.10/templates/web/nginx/caching.tpl b/install/ubuntu/18.10/templates/web/nginx/caching.tpl index a1a89549..73de28d5 100755 --- a/install/ubuntu/18.10/templates/web/nginx/caching.tpl +++ b/install/ubuntu/18.10/templates/web/nginx/caching.tpl @@ -31,7 +31,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/18.10/templates/web/nginx/default.tpl b/install/ubuntu/18.10/templates/web/nginx/default.tpl index 0e200e92..bebd47a2 100755 --- a/install/ubuntu/18.10/templates/web/nginx/default.tpl +++ b/install/ubuntu/18.10/templates/web/nginx/default.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/18.10/templates/web/nginx/hosting.tpl b/install/ubuntu/18.10/templates/web/nginx/hosting.tpl index 541e560a..a41d4054 100755 --- a/install/ubuntu/18.10/templates/web/nginx/hosting.tpl +++ b/install/ubuntu/18.10/templates/web/nginx/hosting.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/18.10/templates/web/nginx/http2.tpl b/install/ubuntu/18.10/templates/web/nginx/http2.tpl index 0e200e92..bebd47a2 100644 --- a/install/ubuntu/18.10/templates/web/nginx/http2.tpl +++ b/install/ubuntu/18.10/templates/web/nginx/http2.tpl @@ -22,7 +22,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/18.10/templates/web/nginx/php-fpm/pyrocms.tpl b/install/ubuntu/18.10/templates/web/nginx/php-fpm/pyrocms.tpl index 297fe0e8..b92861b0 100644 --- a/install/ubuntu/18.10/templates/web/nginx/php-fpm/pyrocms.tpl +++ b/install/ubuntu/18.10/templates/web/nginx/php-fpm/pyrocms.tpl @@ -33,7 +33,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-no-https-force.tpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-no-https-force.tpl index 933eea6d..29aadf7b 100644 --- a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-no-https-force.tpl +++ b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-no-https-force.tpl @@ -32,7 +32,8 @@ server { alias %home%/%user%/web/%domain%/document_errors/; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-also-handle-static-files-3000.tpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-also-handle-static-files-3000.tpl index bb298e66..a62f7275 100644 --- a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-also-handle-static-files-3000.tpl +++ b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-also-handle-static-files-3000.tpl @@ -17,7 +17,8 @@ server { # try_files $uri $uri/ =404; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2-conn-4.tpl b/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2-conn-4.tpl index 15fe6fe5..13657bd3 100644 --- a/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2-conn-4.tpl +++ b/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2-conn-4.tpl @@ -25,7 +25,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2.tpl b/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2.tpl index 03426c6e..a4035844 100644 --- a/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2.tpl +++ b/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2.tpl @@ -25,7 +25,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2.tpl b/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2.tpl index c93bc951..9e0edcf8 100644 --- a/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2.tpl +++ b/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2.tpl @@ -25,7 +25,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall.tpl b/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall.tpl index deed2b71..9438e532 100644 --- a/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall.tpl +++ b/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall.tpl @@ -25,7 +25,8 @@ server { proxy_pass http://%ip%:%web_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} From 3cf64450a2f7bac6ba3417e01ee0cd9e1900b524 Mon Sep 17 00:00:00 2001 From: myvesta Date: Wed, 30 Mar 2022 14:12:30 +0200 Subject: [PATCH 375/984] Blocking in nginx .env --- install/debian/10/templates/web/nginx/caching.stpl | 3 ++- install/debian/10/templates/web/nginx/force-https-legacy.stpl | 3 ++- install/debian/10/templates/web/nginx/force-https-public.stpl | 3 ++- .../10/templates/web/nginx/force-https-webmail-phpmyadmin.stpl | 3 ++- install/debian/10/templates/web/nginx/force-https.stpl | 3 ++- install/debian/10/templates/web/nginx/hosting-legacy.stpl | 3 ++- install/debian/10/templates/web/nginx/hosting-public.stpl | 3 ++- .../10/templates/web/nginx/hosting-webmail-phpmyadmin.stpl | 3 ++- install/debian/10/templates/web/nginx/hosting.stpl | 3 ++- install/debian/10/templates/web/nginx/php-fpm/pyrocms.stpl | 2 +- install/debian/10/templates/web/nginx/private-force-https.stpl | 3 ++- install/debian/10/templates/web/nginx/private-hosting.stpl | 3 ++- install/debian/11/templates/web/nginx/caching.stpl | 3 ++- install/debian/11/templates/web/nginx/force-https-legacy.stpl | 3 ++- install/debian/11/templates/web/nginx/force-https-public.stpl | 3 ++- .../11/templates/web/nginx/force-https-webmail-phpmyadmin.stpl | 3 ++- install/debian/11/templates/web/nginx/force-https.stpl | 3 ++- install/debian/11/templates/web/nginx/hosting-legacy.stpl | 3 ++- install/debian/11/templates/web/nginx/hosting-public.stpl | 3 ++- .../11/templates/web/nginx/hosting-webmail-phpmyadmin.stpl | 3 ++- install/debian/11/templates/web/nginx/hosting.stpl | 3 ++- install/debian/11/templates/web/nginx/php-fpm/pyrocms.stpl | 2 +- install/debian/11/templates/web/nginx/private-force-https.stpl | 3 ++- install/debian/11/templates/web/nginx/private-hosting.stpl | 3 ++- install/debian/7/templates/web/nginx/caching.stpl | 3 ++- install/debian/7/templates/web/nginx/default.stpl | 3 ++- install/debian/7/templates/web/nginx/hosting.stpl | 3 ++- install/debian/7/templates/web/nginx/http2.stpl | 3 ++- install/debian/7/templates/web/nginx/php5-fpm/pyrocms.stpl | 2 +- install/debian/8/templates/web/nginx/caching.stpl | 3 ++- install/debian/8/templates/web/nginx/default.stpl | 3 ++- install/debian/8/templates/web/nginx/hosting.stpl | 3 ++- install/debian/8/templates/web/nginx/http2.stpl | 3 ++- install/debian/8/templates/web/nginx/php5-fpm/pyrocms.stpl | 2 +- install/debian/9/templates/web/nginx/caching.stpl | 3 ++- install/debian/9/templates/web/nginx/default.stpl | 3 ++- install/debian/9/templates/web/nginx/hosting.stpl | 3 ++- install/debian/9/templates/web/nginx/http2.stpl | 3 ++- install/debian/9/templates/web/nginx/php-fpm/pyrocms.stpl | 2 +- install/rhel/5/templates/web/nginx/caching.stpl | 3 ++- install/rhel/5/templates/web/nginx/default.stpl | 3 ++- install/rhel/5/templates/web/nginx/hosting.stpl | 3 ++- install/rhel/5/templates/web/nginx/http2.stpl | 3 ++- install/rhel/5/templates/web/nginx/php-fpm/pyrocms.stpl | 2 +- install/rhel/6/templates/web/nginx/caching.stpl | 3 ++- install/rhel/6/templates/web/nginx/default.stpl | 3 ++- install/rhel/6/templates/web/nginx/hosting.stpl | 3 ++- install/rhel/6/templates/web/nginx/http2.stpl | 3 ++- install/rhel/6/templates/web/nginx/php-fpm/pyrocms.stpl | 2 +- install/rhel/7/templates/web/nginx/caching.stpl | 3 ++- install/rhel/7/templates/web/nginx/default.stpl | 3 ++- install/rhel/7/templates/web/nginx/hosting.stpl | 3 ++- install/rhel/7/templates/web/nginx/http2.stpl | 3 ++- install/rhel/7/templates/web/nginx/php-fpm/pyrocms.stpl | 2 +- install/ubuntu/12.04/templates/web/nginx/caching.stpl | 3 ++- install/ubuntu/12.04/templates/web/nginx/default.stpl | 3 ++- install/ubuntu/12.04/templates/web/nginx/hosting.stpl | 3 ++- install/ubuntu/12.04/templates/web/nginx/http2.stpl | 3 ++- install/ubuntu/12.04/templates/web/nginx/php-fpm/pyrocms.stpl | 2 +- install/ubuntu/12.10/templates/web/nginx/caching.stpl | 3 ++- install/ubuntu/12.10/templates/web/nginx/default.stpl | 3 ++- install/ubuntu/12.10/templates/web/nginx/hosting.stpl | 3 ++- install/ubuntu/12.10/templates/web/nginx/http2.stpl | 3 ++- install/ubuntu/12.10/templates/web/nginx/php-fpm/pyrocms.stpl | 2 +- install/ubuntu/13.04/templates/web/nginx/caching.stpl | 3 ++- install/ubuntu/13.04/templates/web/nginx/default.stpl | 3 ++- install/ubuntu/13.04/templates/web/nginx/hosting.stpl | 3 ++- install/ubuntu/13.04/templates/web/nginx/http2.stpl | 3 ++- install/ubuntu/13.04/templates/web/nginx/php-fpm/pyrocms.stpl | 2 +- install/ubuntu/13.10/templates/web/nginx/caching.stpl | 3 ++- install/ubuntu/13.10/templates/web/nginx/default.stpl | 3 ++- install/ubuntu/13.10/templates/web/nginx/hosting.stpl | 3 ++- install/ubuntu/13.10/templates/web/nginx/http2.stpl | 3 ++- install/ubuntu/13.10/templates/web/nginx/php-fpm/pyrocms.stpl | 2 +- install/ubuntu/14.04/templates/web/nginx/caching.stpl | 3 ++- install/ubuntu/14.04/templates/web/nginx/default.stpl | 3 ++- install/ubuntu/14.04/templates/web/nginx/hosting.stpl | 3 ++- install/ubuntu/14.04/templates/web/nginx/http2.stpl | 3 ++- install/ubuntu/14.04/templates/web/nginx/php-fpm/pyrocms.stpl | 2 +- install/ubuntu/14.10/templates/web/nginx/caching.stpl | 3 ++- install/ubuntu/14.10/templates/web/nginx/default.stpl | 3 ++- install/ubuntu/14.10/templates/web/nginx/hosting.stpl | 3 ++- install/ubuntu/14.10/templates/web/nginx/http2.stpl | 3 ++- install/ubuntu/14.10/templates/web/nginx/php-fpm/pyrocms.stpl | 2 +- install/ubuntu/15.04/templates/web/nginx/caching.stpl | 3 ++- install/ubuntu/15.04/templates/web/nginx/default.stpl | 3 ++- install/ubuntu/15.04/templates/web/nginx/hosting.stpl | 3 ++- install/ubuntu/15.04/templates/web/nginx/http2.stpl | 3 ++- install/ubuntu/15.04/templates/web/nginx/php-fpm/pyrocms.stpl | 2 +- install/ubuntu/15.10/templates/web/nginx/caching.stpl | 3 ++- install/ubuntu/15.10/templates/web/nginx/default.stpl | 3 ++- install/ubuntu/15.10/templates/web/nginx/hosting.stpl | 3 ++- install/ubuntu/15.10/templates/web/nginx/http2.stpl | 3 ++- install/ubuntu/15.10/templates/web/nginx/php-fpm/pyrocms.stpl | 2 +- install/ubuntu/16.04/templates/web/nginx/caching.stpl | 3 ++- install/ubuntu/16.04/templates/web/nginx/default.stpl | 3 ++- install/ubuntu/16.04/templates/web/nginx/hosting.stpl | 3 ++- install/ubuntu/16.04/templates/web/nginx/http2.stpl | 3 ++- install/ubuntu/16.04/templates/web/nginx/php-fpm/pyrocms.stpl | 2 +- install/ubuntu/16.10/templates/web/nginx/caching.stpl | 3 ++- install/ubuntu/16.10/templates/web/nginx/default.stpl | 3 ++- install/ubuntu/16.10/templates/web/nginx/hosting.stpl | 3 ++- install/ubuntu/16.10/templates/web/nginx/http2.stpl | 3 ++- install/ubuntu/16.10/templates/web/nginx/php-fpm/pyrocms.stpl | 2 +- install/ubuntu/17.04/templates/web/nginx/caching.stpl | 3 ++- install/ubuntu/17.04/templates/web/nginx/default.stpl | 3 ++- install/ubuntu/17.04/templates/web/nginx/hosting.stpl | 3 ++- install/ubuntu/17.04/templates/web/nginx/http2.stpl | 3 ++- install/ubuntu/17.04/templates/web/nginx/php-fpm/pyrocms.stpl | 2 +- install/ubuntu/17.10/templates/web/nginx/caching.stpl | 3 ++- install/ubuntu/17.10/templates/web/nginx/default.stpl | 3 ++- install/ubuntu/17.10/templates/web/nginx/hosting.stpl | 3 ++- install/ubuntu/17.10/templates/web/nginx/http2.stpl | 3 ++- install/ubuntu/17.10/templates/web/nginx/php-fpm/pyrocms.stpl | 2 +- install/ubuntu/18.04/templates/web/nginx/caching.stpl | 3 ++- install/ubuntu/18.04/templates/web/nginx/default.stpl | 3 ++- install/ubuntu/18.04/templates/web/nginx/hosting.stpl | 3 ++- install/ubuntu/18.04/templates/web/nginx/http2.stpl | 3 ++- install/ubuntu/18.04/templates/web/nginx/php-fpm/pyrocms.stpl | 2 +- install/ubuntu/18.10/templates/web/nginx/caching.stpl | 3 ++- install/ubuntu/18.10/templates/web/nginx/default.stpl | 3 ++- install/ubuntu/18.10/templates/web/nginx/hosting.stpl | 3 ++- install/ubuntu/18.10/templates/web/nginx/http2.stpl | 3 ++- install/ubuntu/18.10/templates/web/nginx/php-fpm/pyrocms.stpl | 2 +- .../nodejs-nginx-templates/node-app-3000-no-https-force.stpl | 3 ++- .../nodejs-nginx-templates/node-app-3000-pass-to-https.stpl | 3 ++- .../tools/nodejs-nginx-templates/node-app-3000.stpl | 3 ++- .../node-app-4000-and-websocket-6001.stpl | 3 ++- .../node-app-also-handle-static-files-3000.stpl | 3 ++- .../force-https-firewall-burst-2-speed-2-conn-4.stpl | 3 ++- .../rate-limit-tpl/force-https-firewall-burst-2-speed-2.stpl | 3 ++- .../tools/rate-limit-tpl/force-https-firewall-burst-2.stpl | 3 ++- .../tools/rate-limit-tpl/force-https-firewall.stpl | 3 ++- .../hosting-firewall-burst-2-speed-2-conn-4.stpl | 3 ++- .../tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2.stpl | 3 ++- .../tools/rate-limit-tpl/hosting-firewall-burst-2.stpl | 3 ++- .../for-download/tools/rate-limit-tpl/hosting-firewall.stpl | 3 ++- 137 files changed, 252 insertions(+), 137 deletions(-) diff --git a/install/debian/10/templates/web/nginx/caching.stpl b/install/debian/10/templates/web/nginx/caching.stpl index 2302b419..f5c9740f 100644 --- a/install/debian/10/templates/web/nginx/caching.stpl +++ b/install/debian/10/templates/web/nginx/caching.stpl @@ -33,7 +33,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/10/templates/web/nginx/force-https-legacy.stpl b/install/debian/10/templates/web/nginx/force-https-legacy.stpl index db3714c2..79e55a26 100644 --- a/install/debian/10/templates/web/nginx/force-https-legacy.stpl +++ b/install/debian/10/templates/web/nginx/force-https-legacy.stpl @@ -25,7 +25,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/10/templates/web/nginx/force-https-public.stpl b/install/debian/10/templates/web/nginx/force-https-public.stpl index 9c11d06d..ac422df6 100644 --- a/install/debian/10/templates/web/nginx/force-https-public.stpl +++ b/install/debian/10/templates/web/nginx/force-https-public.stpl @@ -25,7 +25,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/10/templates/web/nginx/force-https-webmail-phpmyadmin.stpl b/install/debian/10/templates/web/nginx/force-https-webmail-phpmyadmin.stpl index 45e05c3b..7e0e71d1 100644 --- a/install/debian/10/templates/web/nginx/force-https-webmail-phpmyadmin.stpl +++ b/install/debian/10/templates/web/nginx/force-https-webmail-phpmyadmin.stpl @@ -49,7 +49,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/10/templates/web/nginx/force-https.stpl b/install/debian/10/templates/web/nginx/force-https.stpl index 2abae221..33fab443 100644 --- a/install/debian/10/templates/web/nginx/force-https.stpl +++ b/install/debian/10/templates/web/nginx/force-https.stpl @@ -25,7 +25,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/10/templates/web/nginx/hosting-legacy.stpl b/install/debian/10/templates/web/nginx/hosting-legacy.stpl index 16874648..a34b4bf1 100644 --- a/install/debian/10/templates/web/nginx/hosting-legacy.stpl +++ b/install/debian/10/templates/web/nginx/hosting-legacy.stpl @@ -25,7 +25,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/10/templates/web/nginx/hosting-public.stpl b/install/debian/10/templates/web/nginx/hosting-public.stpl index 9c11d06d..ac422df6 100644 --- a/install/debian/10/templates/web/nginx/hosting-public.stpl +++ b/install/debian/10/templates/web/nginx/hosting-public.stpl @@ -25,7 +25,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/10/templates/web/nginx/hosting-webmail-phpmyadmin.stpl b/install/debian/10/templates/web/nginx/hosting-webmail-phpmyadmin.stpl index 45e05c3b..7e0e71d1 100644 --- a/install/debian/10/templates/web/nginx/hosting-webmail-phpmyadmin.stpl +++ b/install/debian/10/templates/web/nginx/hosting-webmail-phpmyadmin.stpl @@ -49,7 +49,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/10/templates/web/nginx/hosting.stpl b/install/debian/10/templates/web/nginx/hosting.stpl index e6ce0670..755caadf 100644 --- a/install/debian/10/templates/web/nginx/hosting.stpl +++ b/install/debian/10/templates/web/nginx/hosting.stpl @@ -25,7 +25,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/10/templates/web/nginx/php-fpm/pyrocms.stpl b/install/debian/10/templates/web/nginx/php-fpm/pyrocms.stpl index 6d44f20f..d26ed9f4 100644 --- a/install/debian/10/templates/web/nginx/php-fpm/pyrocms.stpl +++ b/install/debian/10/templates/web/nginx/php-fpm/pyrocms.stpl @@ -36,7 +36,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/debian/10/templates/web/nginx/private-force-https.stpl b/install/debian/10/templates/web/nginx/private-force-https.stpl index 164cec16..64094fb8 100644 --- a/install/debian/10/templates/web/nginx/private-force-https.stpl +++ b/install/debian/10/templates/web/nginx/private-force-https.stpl @@ -27,7 +27,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/10/templates/web/nginx/private-hosting.stpl b/install/debian/10/templates/web/nginx/private-hosting.stpl index dbd5bec9..fd9471bd 100644 --- a/install/debian/10/templates/web/nginx/private-hosting.stpl +++ b/install/debian/10/templates/web/nginx/private-hosting.stpl @@ -27,7 +27,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/caching.stpl b/install/debian/11/templates/web/nginx/caching.stpl index 2302b419..f5c9740f 100644 --- a/install/debian/11/templates/web/nginx/caching.stpl +++ b/install/debian/11/templates/web/nginx/caching.stpl @@ -33,7 +33,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/force-https-legacy.stpl b/install/debian/11/templates/web/nginx/force-https-legacy.stpl index db3714c2..79e55a26 100644 --- a/install/debian/11/templates/web/nginx/force-https-legacy.stpl +++ b/install/debian/11/templates/web/nginx/force-https-legacy.stpl @@ -25,7 +25,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/force-https-public.stpl b/install/debian/11/templates/web/nginx/force-https-public.stpl index 9c11d06d..ac422df6 100644 --- a/install/debian/11/templates/web/nginx/force-https-public.stpl +++ b/install/debian/11/templates/web/nginx/force-https-public.stpl @@ -25,7 +25,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/force-https-webmail-phpmyadmin.stpl b/install/debian/11/templates/web/nginx/force-https-webmail-phpmyadmin.stpl index 45e05c3b..7e0e71d1 100644 --- a/install/debian/11/templates/web/nginx/force-https-webmail-phpmyadmin.stpl +++ b/install/debian/11/templates/web/nginx/force-https-webmail-phpmyadmin.stpl @@ -49,7 +49,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/force-https.stpl b/install/debian/11/templates/web/nginx/force-https.stpl index 2abae221..33fab443 100644 --- a/install/debian/11/templates/web/nginx/force-https.stpl +++ b/install/debian/11/templates/web/nginx/force-https.stpl @@ -25,7 +25,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/hosting-legacy.stpl b/install/debian/11/templates/web/nginx/hosting-legacy.stpl index 16874648..a34b4bf1 100644 --- a/install/debian/11/templates/web/nginx/hosting-legacy.stpl +++ b/install/debian/11/templates/web/nginx/hosting-legacy.stpl @@ -25,7 +25,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/hosting-public.stpl b/install/debian/11/templates/web/nginx/hosting-public.stpl index 9c11d06d..ac422df6 100644 --- a/install/debian/11/templates/web/nginx/hosting-public.stpl +++ b/install/debian/11/templates/web/nginx/hosting-public.stpl @@ -25,7 +25,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/hosting-webmail-phpmyadmin.stpl b/install/debian/11/templates/web/nginx/hosting-webmail-phpmyadmin.stpl index 45e05c3b..7e0e71d1 100644 --- a/install/debian/11/templates/web/nginx/hosting-webmail-phpmyadmin.stpl +++ b/install/debian/11/templates/web/nginx/hosting-webmail-phpmyadmin.stpl @@ -49,7 +49,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/hosting.stpl b/install/debian/11/templates/web/nginx/hosting.stpl index e6ce0670..755caadf 100644 --- a/install/debian/11/templates/web/nginx/hosting.stpl +++ b/install/debian/11/templates/web/nginx/hosting.stpl @@ -25,7 +25,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/php-fpm/pyrocms.stpl b/install/debian/11/templates/web/nginx/php-fpm/pyrocms.stpl index 6d44f20f..d26ed9f4 100644 --- a/install/debian/11/templates/web/nginx/php-fpm/pyrocms.stpl +++ b/install/debian/11/templates/web/nginx/php-fpm/pyrocms.stpl @@ -36,7 +36,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/debian/11/templates/web/nginx/private-force-https.stpl b/install/debian/11/templates/web/nginx/private-force-https.stpl index 164cec16..64094fb8 100644 --- a/install/debian/11/templates/web/nginx/private-force-https.stpl +++ b/install/debian/11/templates/web/nginx/private-force-https.stpl @@ -27,7 +27,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/11/templates/web/nginx/private-hosting.stpl b/install/debian/11/templates/web/nginx/private-hosting.stpl index dbd5bec9..fd9471bd 100644 --- a/install/debian/11/templates/web/nginx/private-hosting.stpl +++ b/install/debian/11/templates/web/nginx/private-hosting.stpl @@ -27,7 +27,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/7/templates/web/nginx/caching.stpl b/install/debian/7/templates/web/nginx/caching.stpl index 62be58ba..61b74814 100644 --- a/install/debian/7/templates/web/nginx/caching.stpl +++ b/install/debian/7/templates/web/nginx/caching.stpl @@ -33,7 +33,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/7/templates/web/nginx/default.stpl b/install/debian/7/templates/web/nginx/default.stpl index 7672d9ac..418305a8 100644 --- a/install/debian/7/templates/web/nginx/default.stpl +++ b/install/debian/7/templates/web/nginx/default.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/7/templates/web/nginx/hosting.stpl b/install/debian/7/templates/web/nginx/hosting.stpl index 3f4ad39b..fc70c266 100644 --- a/install/debian/7/templates/web/nginx/hosting.stpl +++ b/install/debian/7/templates/web/nginx/hosting.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/7/templates/web/nginx/http2.stpl b/install/debian/7/templates/web/nginx/http2.stpl index b694d1c2..5a958ca4 100644 --- a/install/debian/7/templates/web/nginx/http2.stpl +++ b/install/debian/7/templates/web/nginx/http2.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/7/templates/web/nginx/php5-fpm/pyrocms.stpl b/install/debian/7/templates/web/nginx/php5-fpm/pyrocms.stpl index 5ffc9ed5..a721dd81 100644 --- a/install/debian/7/templates/web/nginx/php5-fpm/pyrocms.stpl +++ b/install/debian/7/templates/web/nginx/php5-fpm/pyrocms.stpl @@ -37,7 +37,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/debian/8/templates/web/nginx/caching.stpl b/install/debian/8/templates/web/nginx/caching.stpl index 86ba5c78..d104643a 100644 --- a/install/debian/8/templates/web/nginx/caching.stpl +++ b/install/debian/8/templates/web/nginx/caching.stpl @@ -33,7 +33,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/8/templates/web/nginx/default.stpl b/install/debian/8/templates/web/nginx/default.stpl index 7672d9ac..418305a8 100644 --- a/install/debian/8/templates/web/nginx/default.stpl +++ b/install/debian/8/templates/web/nginx/default.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/8/templates/web/nginx/hosting.stpl b/install/debian/8/templates/web/nginx/hosting.stpl index 3f4ad39b..fc70c266 100644 --- a/install/debian/8/templates/web/nginx/hosting.stpl +++ b/install/debian/8/templates/web/nginx/hosting.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/8/templates/web/nginx/http2.stpl b/install/debian/8/templates/web/nginx/http2.stpl index b694d1c2..5a958ca4 100644 --- a/install/debian/8/templates/web/nginx/http2.stpl +++ b/install/debian/8/templates/web/nginx/http2.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/8/templates/web/nginx/php5-fpm/pyrocms.stpl b/install/debian/8/templates/web/nginx/php5-fpm/pyrocms.stpl index 5ffc9ed5..a721dd81 100644 --- a/install/debian/8/templates/web/nginx/php5-fpm/pyrocms.stpl +++ b/install/debian/8/templates/web/nginx/php5-fpm/pyrocms.stpl @@ -37,7 +37,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/debian/9/templates/web/nginx/caching.stpl b/install/debian/9/templates/web/nginx/caching.stpl index 2302b419..f5c9740f 100644 --- a/install/debian/9/templates/web/nginx/caching.stpl +++ b/install/debian/9/templates/web/nginx/caching.stpl @@ -33,7 +33,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/9/templates/web/nginx/default.stpl b/install/debian/9/templates/web/nginx/default.stpl index b694d1c2..5a958ca4 100644 --- a/install/debian/9/templates/web/nginx/default.stpl +++ b/install/debian/9/templates/web/nginx/default.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/9/templates/web/nginx/hosting.stpl b/install/debian/9/templates/web/nginx/hosting.stpl index 736751d5..605fa875 100644 --- a/install/debian/9/templates/web/nginx/hosting.stpl +++ b/install/debian/9/templates/web/nginx/hosting.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/9/templates/web/nginx/http2.stpl b/install/debian/9/templates/web/nginx/http2.stpl index b694d1c2..5a958ca4 100644 --- a/install/debian/9/templates/web/nginx/http2.stpl +++ b/install/debian/9/templates/web/nginx/http2.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/debian/9/templates/web/nginx/php-fpm/pyrocms.stpl b/install/debian/9/templates/web/nginx/php-fpm/pyrocms.stpl index 5ffc9ed5..a721dd81 100644 --- a/install/debian/9/templates/web/nginx/php-fpm/pyrocms.stpl +++ b/install/debian/9/templates/web/nginx/php-fpm/pyrocms.stpl @@ -37,7 +37,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/rhel/5/templates/web/nginx/caching.stpl b/install/rhel/5/templates/web/nginx/caching.stpl index 2d8cb3ca..720b880b 100755 --- a/install/rhel/5/templates/web/nginx/caching.stpl +++ b/install/rhel/5/templates/web/nginx/caching.stpl @@ -33,7 +33,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/5/templates/web/nginx/default.stpl b/install/rhel/5/templates/web/nginx/default.stpl index cd350432..92804815 100755 --- a/install/rhel/5/templates/web/nginx/default.stpl +++ b/install/rhel/5/templates/web/nginx/default.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/5/templates/web/nginx/hosting.stpl b/install/rhel/5/templates/web/nginx/hosting.stpl index 8985f0aa..10dae25e 100755 --- a/install/rhel/5/templates/web/nginx/hosting.stpl +++ b/install/rhel/5/templates/web/nginx/hosting.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/5/templates/web/nginx/http2.stpl b/install/rhel/5/templates/web/nginx/http2.stpl index b694d1c2..5a958ca4 100644 --- a/install/rhel/5/templates/web/nginx/http2.stpl +++ b/install/rhel/5/templates/web/nginx/http2.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/5/templates/web/nginx/php-fpm/pyrocms.stpl b/install/rhel/5/templates/web/nginx/php-fpm/pyrocms.stpl index 5ffc9ed5..a721dd81 100644 --- a/install/rhel/5/templates/web/nginx/php-fpm/pyrocms.stpl +++ b/install/rhel/5/templates/web/nginx/php-fpm/pyrocms.stpl @@ -37,7 +37,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/rhel/6/templates/web/nginx/caching.stpl b/install/rhel/6/templates/web/nginx/caching.stpl index 2d8cb3ca..720b880b 100755 --- a/install/rhel/6/templates/web/nginx/caching.stpl +++ b/install/rhel/6/templates/web/nginx/caching.stpl @@ -33,7 +33,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/6/templates/web/nginx/default.stpl b/install/rhel/6/templates/web/nginx/default.stpl index cd350432..92804815 100755 --- a/install/rhel/6/templates/web/nginx/default.stpl +++ b/install/rhel/6/templates/web/nginx/default.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/6/templates/web/nginx/hosting.stpl b/install/rhel/6/templates/web/nginx/hosting.stpl index 8985f0aa..10dae25e 100755 --- a/install/rhel/6/templates/web/nginx/hosting.stpl +++ b/install/rhel/6/templates/web/nginx/hosting.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/6/templates/web/nginx/http2.stpl b/install/rhel/6/templates/web/nginx/http2.stpl index 3f13ff22..0810e9d4 100644 --- a/install/rhel/6/templates/web/nginx/http2.stpl +++ b/install/rhel/6/templates/web/nginx/http2.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/6/templates/web/nginx/php-fpm/pyrocms.stpl b/install/rhel/6/templates/web/nginx/php-fpm/pyrocms.stpl index 5ffc9ed5..a721dd81 100644 --- a/install/rhel/6/templates/web/nginx/php-fpm/pyrocms.stpl +++ b/install/rhel/6/templates/web/nginx/php-fpm/pyrocms.stpl @@ -37,7 +37,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/rhel/7/templates/web/nginx/caching.stpl b/install/rhel/7/templates/web/nginx/caching.stpl index 2d8cb3ca..720b880b 100755 --- a/install/rhel/7/templates/web/nginx/caching.stpl +++ b/install/rhel/7/templates/web/nginx/caching.stpl @@ -33,7 +33,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/7/templates/web/nginx/default.stpl b/install/rhel/7/templates/web/nginx/default.stpl index cd350432..92804815 100755 --- a/install/rhel/7/templates/web/nginx/default.stpl +++ b/install/rhel/7/templates/web/nginx/default.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/7/templates/web/nginx/hosting.stpl b/install/rhel/7/templates/web/nginx/hosting.stpl index 8985f0aa..10dae25e 100755 --- a/install/rhel/7/templates/web/nginx/hosting.stpl +++ b/install/rhel/7/templates/web/nginx/hosting.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/7/templates/web/nginx/http2.stpl b/install/rhel/7/templates/web/nginx/http2.stpl index b694d1c2..5a958ca4 100644 --- a/install/rhel/7/templates/web/nginx/http2.stpl +++ b/install/rhel/7/templates/web/nginx/http2.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/rhel/7/templates/web/nginx/php-fpm/pyrocms.stpl b/install/rhel/7/templates/web/nginx/php-fpm/pyrocms.stpl index 5ffc9ed5..a721dd81 100644 --- a/install/rhel/7/templates/web/nginx/php-fpm/pyrocms.stpl +++ b/install/rhel/7/templates/web/nginx/php-fpm/pyrocms.stpl @@ -37,7 +37,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/ubuntu/12.04/templates/web/nginx/caching.stpl b/install/ubuntu/12.04/templates/web/nginx/caching.stpl index 62be58ba..61b74814 100755 --- a/install/ubuntu/12.04/templates/web/nginx/caching.stpl +++ b/install/ubuntu/12.04/templates/web/nginx/caching.stpl @@ -33,7 +33,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/12.04/templates/web/nginx/default.stpl b/install/ubuntu/12.04/templates/web/nginx/default.stpl index 7672d9ac..418305a8 100755 --- a/install/ubuntu/12.04/templates/web/nginx/default.stpl +++ b/install/ubuntu/12.04/templates/web/nginx/default.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/12.04/templates/web/nginx/hosting.stpl b/install/ubuntu/12.04/templates/web/nginx/hosting.stpl index 3f4ad39b..fc70c266 100755 --- a/install/ubuntu/12.04/templates/web/nginx/hosting.stpl +++ b/install/ubuntu/12.04/templates/web/nginx/hosting.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/12.04/templates/web/nginx/http2.stpl b/install/ubuntu/12.04/templates/web/nginx/http2.stpl index b694d1c2..5a958ca4 100644 --- a/install/ubuntu/12.04/templates/web/nginx/http2.stpl +++ b/install/ubuntu/12.04/templates/web/nginx/http2.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/12.04/templates/web/nginx/php-fpm/pyrocms.stpl b/install/ubuntu/12.04/templates/web/nginx/php-fpm/pyrocms.stpl index 5ffc9ed5..a721dd81 100644 --- a/install/ubuntu/12.04/templates/web/nginx/php-fpm/pyrocms.stpl +++ b/install/ubuntu/12.04/templates/web/nginx/php-fpm/pyrocms.stpl @@ -37,7 +37,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/ubuntu/12.10/templates/web/nginx/caching.stpl b/install/ubuntu/12.10/templates/web/nginx/caching.stpl index 62be58ba..61b74814 100755 --- a/install/ubuntu/12.10/templates/web/nginx/caching.stpl +++ b/install/ubuntu/12.10/templates/web/nginx/caching.stpl @@ -33,7 +33,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/12.10/templates/web/nginx/default.stpl b/install/ubuntu/12.10/templates/web/nginx/default.stpl index 7672d9ac..418305a8 100755 --- a/install/ubuntu/12.10/templates/web/nginx/default.stpl +++ b/install/ubuntu/12.10/templates/web/nginx/default.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/12.10/templates/web/nginx/hosting.stpl b/install/ubuntu/12.10/templates/web/nginx/hosting.stpl index 3f4ad39b..fc70c266 100755 --- a/install/ubuntu/12.10/templates/web/nginx/hosting.stpl +++ b/install/ubuntu/12.10/templates/web/nginx/hosting.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/12.10/templates/web/nginx/http2.stpl b/install/ubuntu/12.10/templates/web/nginx/http2.stpl index b694d1c2..5a958ca4 100644 --- a/install/ubuntu/12.10/templates/web/nginx/http2.stpl +++ b/install/ubuntu/12.10/templates/web/nginx/http2.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/12.10/templates/web/nginx/php-fpm/pyrocms.stpl b/install/ubuntu/12.10/templates/web/nginx/php-fpm/pyrocms.stpl index 5ffc9ed5..a721dd81 100644 --- a/install/ubuntu/12.10/templates/web/nginx/php-fpm/pyrocms.stpl +++ b/install/ubuntu/12.10/templates/web/nginx/php-fpm/pyrocms.stpl @@ -37,7 +37,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/ubuntu/13.04/templates/web/nginx/caching.stpl b/install/ubuntu/13.04/templates/web/nginx/caching.stpl index 62be58ba..61b74814 100755 --- a/install/ubuntu/13.04/templates/web/nginx/caching.stpl +++ b/install/ubuntu/13.04/templates/web/nginx/caching.stpl @@ -33,7 +33,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/13.04/templates/web/nginx/default.stpl b/install/ubuntu/13.04/templates/web/nginx/default.stpl index 7672d9ac..418305a8 100755 --- a/install/ubuntu/13.04/templates/web/nginx/default.stpl +++ b/install/ubuntu/13.04/templates/web/nginx/default.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/13.04/templates/web/nginx/hosting.stpl b/install/ubuntu/13.04/templates/web/nginx/hosting.stpl index 3f4ad39b..fc70c266 100755 --- a/install/ubuntu/13.04/templates/web/nginx/hosting.stpl +++ b/install/ubuntu/13.04/templates/web/nginx/hosting.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/13.04/templates/web/nginx/http2.stpl b/install/ubuntu/13.04/templates/web/nginx/http2.stpl index b694d1c2..5a958ca4 100644 --- a/install/ubuntu/13.04/templates/web/nginx/http2.stpl +++ b/install/ubuntu/13.04/templates/web/nginx/http2.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/13.04/templates/web/nginx/php-fpm/pyrocms.stpl b/install/ubuntu/13.04/templates/web/nginx/php-fpm/pyrocms.stpl index 5ffc9ed5..a721dd81 100644 --- a/install/ubuntu/13.04/templates/web/nginx/php-fpm/pyrocms.stpl +++ b/install/ubuntu/13.04/templates/web/nginx/php-fpm/pyrocms.stpl @@ -37,7 +37,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/ubuntu/13.10/templates/web/nginx/caching.stpl b/install/ubuntu/13.10/templates/web/nginx/caching.stpl index 62be58ba..61b74814 100755 --- a/install/ubuntu/13.10/templates/web/nginx/caching.stpl +++ b/install/ubuntu/13.10/templates/web/nginx/caching.stpl @@ -33,7 +33,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/13.10/templates/web/nginx/default.stpl b/install/ubuntu/13.10/templates/web/nginx/default.stpl index 7672d9ac..418305a8 100755 --- a/install/ubuntu/13.10/templates/web/nginx/default.stpl +++ b/install/ubuntu/13.10/templates/web/nginx/default.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/13.10/templates/web/nginx/hosting.stpl b/install/ubuntu/13.10/templates/web/nginx/hosting.stpl index 3f4ad39b..fc70c266 100755 --- a/install/ubuntu/13.10/templates/web/nginx/hosting.stpl +++ b/install/ubuntu/13.10/templates/web/nginx/hosting.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/13.10/templates/web/nginx/http2.stpl b/install/ubuntu/13.10/templates/web/nginx/http2.stpl index b694d1c2..5a958ca4 100644 --- a/install/ubuntu/13.10/templates/web/nginx/http2.stpl +++ b/install/ubuntu/13.10/templates/web/nginx/http2.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/13.10/templates/web/nginx/php-fpm/pyrocms.stpl b/install/ubuntu/13.10/templates/web/nginx/php-fpm/pyrocms.stpl index 5ffc9ed5..a721dd81 100644 --- a/install/ubuntu/13.10/templates/web/nginx/php-fpm/pyrocms.stpl +++ b/install/ubuntu/13.10/templates/web/nginx/php-fpm/pyrocms.stpl @@ -37,7 +37,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/ubuntu/14.04/templates/web/nginx/caching.stpl b/install/ubuntu/14.04/templates/web/nginx/caching.stpl index 62be58ba..61b74814 100755 --- a/install/ubuntu/14.04/templates/web/nginx/caching.stpl +++ b/install/ubuntu/14.04/templates/web/nginx/caching.stpl @@ -33,7 +33,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/14.04/templates/web/nginx/default.stpl b/install/ubuntu/14.04/templates/web/nginx/default.stpl index 7672d9ac..418305a8 100755 --- a/install/ubuntu/14.04/templates/web/nginx/default.stpl +++ b/install/ubuntu/14.04/templates/web/nginx/default.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/14.04/templates/web/nginx/hosting.stpl b/install/ubuntu/14.04/templates/web/nginx/hosting.stpl index 3f4ad39b..fc70c266 100755 --- a/install/ubuntu/14.04/templates/web/nginx/hosting.stpl +++ b/install/ubuntu/14.04/templates/web/nginx/hosting.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/14.04/templates/web/nginx/http2.stpl b/install/ubuntu/14.04/templates/web/nginx/http2.stpl index b694d1c2..5a958ca4 100644 --- a/install/ubuntu/14.04/templates/web/nginx/http2.stpl +++ b/install/ubuntu/14.04/templates/web/nginx/http2.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/14.04/templates/web/nginx/php-fpm/pyrocms.stpl b/install/ubuntu/14.04/templates/web/nginx/php-fpm/pyrocms.stpl index 5ffc9ed5..a721dd81 100644 --- a/install/ubuntu/14.04/templates/web/nginx/php-fpm/pyrocms.stpl +++ b/install/ubuntu/14.04/templates/web/nginx/php-fpm/pyrocms.stpl @@ -37,7 +37,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/ubuntu/14.10/templates/web/nginx/caching.stpl b/install/ubuntu/14.10/templates/web/nginx/caching.stpl index 62be58ba..61b74814 100755 --- a/install/ubuntu/14.10/templates/web/nginx/caching.stpl +++ b/install/ubuntu/14.10/templates/web/nginx/caching.stpl @@ -33,7 +33,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/14.10/templates/web/nginx/default.stpl b/install/ubuntu/14.10/templates/web/nginx/default.stpl index 7672d9ac..418305a8 100755 --- a/install/ubuntu/14.10/templates/web/nginx/default.stpl +++ b/install/ubuntu/14.10/templates/web/nginx/default.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/14.10/templates/web/nginx/hosting.stpl b/install/ubuntu/14.10/templates/web/nginx/hosting.stpl index 3f4ad39b..fc70c266 100755 --- a/install/ubuntu/14.10/templates/web/nginx/hosting.stpl +++ b/install/ubuntu/14.10/templates/web/nginx/hosting.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/14.10/templates/web/nginx/http2.stpl b/install/ubuntu/14.10/templates/web/nginx/http2.stpl index b694d1c2..5a958ca4 100644 --- a/install/ubuntu/14.10/templates/web/nginx/http2.stpl +++ b/install/ubuntu/14.10/templates/web/nginx/http2.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/14.10/templates/web/nginx/php-fpm/pyrocms.stpl b/install/ubuntu/14.10/templates/web/nginx/php-fpm/pyrocms.stpl index 5ffc9ed5..a721dd81 100644 --- a/install/ubuntu/14.10/templates/web/nginx/php-fpm/pyrocms.stpl +++ b/install/ubuntu/14.10/templates/web/nginx/php-fpm/pyrocms.stpl @@ -37,7 +37,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/ubuntu/15.04/templates/web/nginx/caching.stpl b/install/ubuntu/15.04/templates/web/nginx/caching.stpl index 62be58ba..61b74814 100755 --- a/install/ubuntu/15.04/templates/web/nginx/caching.stpl +++ b/install/ubuntu/15.04/templates/web/nginx/caching.stpl @@ -33,7 +33,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/15.04/templates/web/nginx/default.stpl b/install/ubuntu/15.04/templates/web/nginx/default.stpl index 7672d9ac..418305a8 100755 --- a/install/ubuntu/15.04/templates/web/nginx/default.stpl +++ b/install/ubuntu/15.04/templates/web/nginx/default.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/15.04/templates/web/nginx/hosting.stpl b/install/ubuntu/15.04/templates/web/nginx/hosting.stpl index 3f4ad39b..fc70c266 100755 --- a/install/ubuntu/15.04/templates/web/nginx/hosting.stpl +++ b/install/ubuntu/15.04/templates/web/nginx/hosting.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/15.04/templates/web/nginx/http2.stpl b/install/ubuntu/15.04/templates/web/nginx/http2.stpl index b694d1c2..5a958ca4 100644 --- a/install/ubuntu/15.04/templates/web/nginx/http2.stpl +++ b/install/ubuntu/15.04/templates/web/nginx/http2.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/15.04/templates/web/nginx/php-fpm/pyrocms.stpl b/install/ubuntu/15.04/templates/web/nginx/php-fpm/pyrocms.stpl index 5ffc9ed5..a721dd81 100644 --- a/install/ubuntu/15.04/templates/web/nginx/php-fpm/pyrocms.stpl +++ b/install/ubuntu/15.04/templates/web/nginx/php-fpm/pyrocms.stpl @@ -37,7 +37,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/ubuntu/15.10/templates/web/nginx/caching.stpl b/install/ubuntu/15.10/templates/web/nginx/caching.stpl index 62be58ba..61b74814 100755 --- a/install/ubuntu/15.10/templates/web/nginx/caching.stpl +++ b/install/ubuntu/15.10/templates/web/nginx/caching.stpl @@ -33,7 +33,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/15.10/templates/web/nginx/default.stpl b/install/ubuntu/15.10/templates/web/nginx/default.stpl index 7672d9ac..418305a8 100755 --- a/install/ubuntu/15.10/templates/web/nginx/default.stpl +++ b/install/ubuntu/15.10/templates/web/nginx/default.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/15.10/templates/web/nginx/hosting.stpl b/install/ubuntu/15.10/templates/web/nginx/hosting.stpl index 3f4ad39b..fc70c266 100755 --- a/install/ubuntu/15.10/templates/web/nginx/hosting.stpl +++ b/install/ubuntu/15.10/templates/web/nginx/hosting.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/15.10/templates/web/nginx/http2.stpl b/install/ubuntu/15.10/templates/web/nginx/http2.stpl index b694d1c2..5a958ca4 100644 --- a/install/ubuntu/15.10/templates/web/nginx/http2.stpl +++ b/install/ubuntu/15.10/templates/web/nginx/http2.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/15.10/templates/web/nginx/php-fpm/pyrocms.stpl b/install/ubuntu/15.10/templates/web/nginx/php-fpm/pyrocms.stpl index 5ffc9ed5..a721dd81 100644 --- a/install/ubuntu/15.10/templates/web/nginx/php-fpm/pyrocms.stpl +++ b/install/ubuntu/15.10/templates/web/nginx/php-fpm/pyrocms.stpl @@ -37,7 +37,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/ubuntu/16.04/templates/web/nginx/caching.stpl b/install/ubuntu/16.04/templates/web/nginx/caching.stpl index 62be58ba..61b74814 100755 --- a/install/ubuntu/16.04/templates/web/nginx/caching.stpl +++ b/install/ubuntu/16.04/templates/web/nginx/caching.stpl @@ -33,7 +33,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/16.04/templates/web/nginx/default.stpl b/install/ubuntu/16.04/templates/web/nginx/default.stpl index 7672d9ac..418305a8 100755 --- a/install/ubuntu/16.04/templates/web/nginx/default.stpl +++ b/install/ubuntu/16.04/templates/web/nginx/default.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/16.04/templates/web/nginx/hosting.stpl b/install/ubuntu/16.04/templates/web/nginx/hosting.stpl index 3f4ad39b..fc70c266 100755 --- a/install/ubuntu/16.04/templates/web/nginx/hosting.stpl +++ b/install/ubuntu/16.04/templates/web/nginx/hosting.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/16.04/templates/web/nginx/http2.stpl b/install/ubuntu/16.04/templates/web/nginx/http2.stpl index b694d1c2..5a958ca4 100644 --- a/install/ubuntu/16.04/templates/web/nginx/http2.stpl +++ b/install/ubuntu/16.04/templates/web/nginx/http2.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/16.04/templates/web/nginx/php-fpm/pyrocms.stpl b/install/ubuntu/16.04/templates/web/nginx/php-fpm/pyrocms.stpl index 5ffc9ed5..a721dd81 100644 --- a/install/ubuntu/16.04/templates/web/nginx/php-fpm/pyrocms.stpl +++ b/install/ubuntu/16.04/templates/web/nginx/php-fpm/pyrocms.stpl @@ -37,7 +37,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/ubuntu/16.10/templates/web/nginx/caching.stpl b/install/ubuntu/16.10/templates/web/nginx/caching.stpl index 62be58ba..61b74814 100755 --- a/install/ubuntu/16.10/templates/web/nginx/caching.stpl +++ b/install/ubuntu/16.10/templates/web/nginx/caching.stpl @@ -33,7 +33,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/16.10/templates/web/nginx/default.stpl b/install/ubuntu/16.10/templates/web/nginx/default.stpl index 7672d9ac..418305a8 100755 --- a/install/ubuntu/16.10/templates/web/nginx/default.stpl +++ b/install/ubuntu/16.10/templates/web/nginx/default.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/16.10/templates/web/nginx/hosting.stpl b/install/ubuntu/16.10/templates/web/nginx/hosting.stpl index 3f4ad39b..fc70c266 100755 --- a/install/ubuntu/16.10/templates/web/nginx/hosting.stpl +++ b/install/ubuntu/16.10/templates/web/nginx/hosting.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/16.10/templates/web/nginx/http2.stpl b/install/ubuntu/16.10/templates/web/nginx/http2.stpl index b694d1c2..5a958ca4 100644 --- a/install/ubuntu/16.10/templates/web/nginx/http2.stpl +++ b/install/ubuntu/16.10/templates/web/nginx/http2.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/16.10/templates/web/nginx/php-fpm/pyrocms.stpl b/install/ubuntu/16.10/templates/web/nginx/php-fpm/pyrocms.stpl index 5ffc9ed5..a721dd81 100644 --- a/install/ubuntu/16.10/templates/web/nginx/php-fpm/pyrocms.stpl +++ b/install/ubuntu/16.10/templates/web/nginx/php-fpm/pyrocms.stpl @@ -37,7 +37,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/ubuntu/17.04/templates/web/nginx/caching.stpl b/install/ubuntu/17.04/templates/web/nginx/caching.stpl index 62be58ba..61b74814 100755 --- a/install/ubuntu/17.04/templates/web/nginx/caching.stpl +++ b/install/ubuntu/17.04/templates/web/nginx/caching.stpl @@ -33,7 +33,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/17.04/templates/web/nginx/default.stpl b/install/ubuntu/17.04/templates/web/nginx/default.stpl index 7672d9ac..418305a8 100755 --- a/install/ubuntu/17.04/templates/web/nginx/default.stpl +++ b/install/ubuntu/17.04/templates/web/nginx/default.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/17.04/templates/web/nginx/hosting.stpl b/install/ubuntu/17.04/templates/web/nginx/hosting.stpl index 587b02c7..3e3567d6 100755 --- a/install/ubuntu/17.04/templates/web/nginx/hosting.stpl +++ b/install/ubuntu/17.04/templates/web/nginx/hosting.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/17.04/templates/web/nginx/http2.stpl b/install/ubuntu/17.04/templates/web/nginx/http2.stpl index b694d1c2..5a958ca4 100644 --- a/install/ubuntu/17.04/templates/web/nginx/http2.stpl +++ b/install/ubuntu/17.04/templates/web/nginx/http2.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/17.04/templates/web/nginx/php-fpm/pyrocms.stpl b/install/ubuntu/17.04/templates/web/nginx/php-fpm/pyrocms.stpl index 5ffc9ed5..a721dd81 100644 --- a/install/ubuntu/17.04/templates/web/nginx/php-fpm/pyrocms.stpl +++ b/install/ubuntu/17.04/templates/web/nginx/php-fpm/pyrocms.stpl @@ -37,7 +37,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/ubuntu/17.10/templates/web/nginx/caching.stpl b/install/ubuntu/17.10/templates/web/nginx/caching.stpl index 62be58ba..61b74814 100755 --- a/install/ubuntu/17.10/templates/web/nginx/caching.stpl +++ b/install/ubuntu/17.10/templates/web/nginx/caching.stpl @@ -33,7 +33,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/17.10/templates/web/nginx/default.stpl b/install/ubuntu/17.10/templates/web/nginx/default.stpl index 7672d9ac..418305a8 100755 --- a/install/ubuntu/17.10/templates/web/nginx/default.stpl +++ b/install/ubuntu/17.10/templates/web/nginx/default.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/17.10/templates/web/nginx/hosting.stpl b/install/ubuntu/17.10/templates/web/nginx/hosting.stpl index 587b02c7..3e3567d6 100755 --- a/install/ubuntu/17.10/templates/web/nginx/hosting.stpl +++ b/install/ubuntu/17.10/templates/web/nginx/hosting.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/17.10/templates/web/nginx/http2.stpl b/install/ubuntu/17.10/templates/web/nginx/http2.stpl index b694d1c2..5a958ca4 100644 --- a/install/ubuntu/17.10/templates/web/nginx/http2.stpl +++ b/install/ubuntu/17.10/templates/web/nginx/http2.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/17.10/templates/web/nginx/php-fpm/pyrocms.stpl b/install/ubuntu/17.10/templates/web/nginx/php-fpm/pyrocms.stpl index 5ffc9ed5..a721dd81 100644 --- a/install/ubuntu/17.10/templates/web/nginx/php-fpm/pyrocms.stpl +++ b/install/ubuntu/17.10/templates/web/nginx/php-fpm/pyrocms.stpl @@ -37,7 +37,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/ubuntu/18.04/templates/web/nginx/caching.stpl b/install/ubuntu/18.04/templates/web/nginx/caching.stpl index 62be58ba..61b74814 100755 --- a/install/ubuntu/18.04/templates/web/nginx/caching.stpl +++ b/install/ubuntu/18.04/templates/web/nginx/caching.stpl @@ -33,7 +33,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/18.04/templates/web/nginx/default.stpl b/install/ubuntu/18.04/templates/web/nginx/default.stpl index 7672d9ac..418305a8 100755 --- a/install/ubuntu/18.04/templates/web/nginx/default.stpl +++ b/install/ubuntu/18.04/templates/web/nginx/default.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/18.04/templates/web/nginx/hosting.stpl b/install/ubuntu/18.04/templates/web/nginx/hosting.stpl index 587b02c7..3e3567d6 100755 --- a/install/ubuntu/18.04/templates/web/nginx/hosting.stpl +++ b/install/ubuntu/18.04/templates/web/nginx/hosting.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/18.04/templates/web/nginx/http2.stpl b/install/ubuntu/18.04/templates/web/nginx/http2.stpl index b694d1c2..5a958ca4 100644 --- a/install/ubuntu/18.04/templates/web/nginx/http2.stpl +++ b/install/ubuntu/18.04/templates/web/nginx/http2.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/18.04/templates/web/nginx/php-fpm/pyrocms.stpl b/install/ubuntu/18.04/templates/web/nginx/php-fpm/pyrocms.stpl index c9f91854..b8bf770a 100644 --- a/install/ubuntu/18.04/templates/web/nginx/php-fpm/pyrocms.stpl +++ b/install/ubuntu/18.04/templates/web/nginx/php-fpm/pyrocms.stpl @@ -36,7 +36,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/install/ubuntu/18.10/templates/web/nginx/caching.stpl b/install/ubuntu/18.10/templates/web/nginx/caching.stpl index 62be58ba..61b74814 100755 --- a/install/ubuntu/18.10/templates/web/nginx/caching.stpl +++ b/install/ubuntu/18.10/templates/web/nginx/caching.stpl @@ -33,7 +33,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/18.10/templates/web/nginx/default.stpl b/install/ubuntu/18.10/templates/web/nginx/default.stpl index 7672d9ac..418305a8 100755 --- a/install/ubuntu/18.10/templates/web/nginx/default.stpl +++ b/install/ubuntu/18.10/templates/web/nginx/default.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/18.10/templates/web/nginx/hosting.stpl b/install/ubuntu/18.10/templates/web/nginx/hosting.stpl index 587b02c7..3e3567d6 100755 --- a/install/ubuntu/18.10/templates/web/nginx/hosting.stpl +++ b/install/ubuntu/18.10/templates/web/nginx/hosting.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/18.10/templates/web/nginx/http2.stpl b/install/ubuntu/18.10/templates/web/nginx/http2.stpl index b694d1c2..5a958ca4 100644 --- a/install/ubuntu/18.10/templates/web/nginx/http2.stpl +++ b/install/ubuntu/18.10/templates/web/nginx/http2.stpl @@ -24,7 +24,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/install/ubuntu/18.10/templates/web/nginx/php-fpm/pyrocms.stpl b/install/ubuntu/18.10/templates/web/nginx/php-fpm/pyrocms.stpl index c9f91854..b8bf770a 100644 --- a/install/ubuntu/18.10/templates/web/nginx/php-fpm/pyrocms.stpl +++ b/install/ubuntu/18.10/templates/web/nginx/php-fpm/pyrocms.stpl @@ -36,7 +36,7 @@ server { location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } - location ~ /\. { access_log off; log_not_found off; deny all; } + location ~ /\.ht { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } error_page 403 /error/404.html; diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-no-https-force.stpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-no-https-force.stpl index 0978f452..d66f80be 100644 --- a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-no-https-force.stpl +++ b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-no-https-force.stpl @@ -41,7 +41,8 @@ server { } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-pass-to-https.stpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-pass-to-https.stpl index 4e75c188..27dd354b 100644 --- a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-pass-to-https.stpl +++ b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-pass-to-https.stpl @@ -41,7 +41,8 @@ server { } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000.stpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000.stpl index 0978f452..d66f80be 100644 --- a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000.stpl +++ b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000.stpl @@ -41,7 +41,8 @@ server { } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-4000-and-websocket-6001.stpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-4000-and-websocket-6001.stpl index d1781ee6..d8a23009 100644 --- a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-4000-and-websocket-6001.stpl +++ b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-4000-and-websocket-6001.stpl @@ -57,7 +57,8 @@ server { } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-also-handle-static-files-3000.stpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-also-handle-static-files-3000.stpl index e22d4ccc..a6a0b744 100644 --- a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-also-handle-static-files-3000.stpl +++ b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-also-handle-static-files-3000.stpl @@ -26,7 +26,8 @@ server { } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2-speed-2-conn-4.stpl b/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2-speed-2-conn-4.stpl index c993be39..d770ac6a 100644 --- a/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2-speed-2-conn-4.stpl +++ b/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2-speed-2-conn-4.stpl @@ -28,7 +28,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2-speed-2.stpl b/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2-speed-2.stpl index 2b4fa14e..a2f7f9f2 100644 --- a/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2-speed-2.stpl +++ b/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2-speed-2.stpl @@ -28,7 +28,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2.stpl b/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2.stpl index 289116df..6118fa82 100644 --- a/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2.stpl +++ b/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2.stpl @@ -28,7 +28,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall.stpl b/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall.stpl index b06aca58..b4468a6a 100644 --- a/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall.stpl +++ b/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall.stpl @@ -28,7 +28,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2-conn-4.stpl b/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2-conn-4.stpl index 05ede9e6..df269ad4 100644 --- a/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2-conn-4.stpl +++ b/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2-conn-4.stpl @@ -28,7 +28,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2.stpl b/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2.stpl index e02ce616..8e0a0f5a 100644 --- a/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2.stpl +++ b/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2-speed-2.stpl @@ -28,7 +28,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2.stpl b/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2.stpl index d43b7529..9649671d 100644 --- a/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2.stpl +++ b/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall-burst-2.stpl @@ -28,7 +28,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} diff --git a/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall.stpl b/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall.stpl index c2274a43..21acb34b 100644 --- a/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall.stpl +++ b/src/deb/for-download/tools/rate-limit-tpl/hosting-firewall.stpl @@ -28,7 +28,8 @@ server { proxy_pass https://%ip%:%web_ssl_port%; } - location ~ /\. {return 404;} + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} location ~ /\.svn/ {return 404;} location ~ /\.git/ {return 404;} location ~ /\.hg/ {return 404;} From 1cbd6a57973a34bd29aec16097c7ba24e29ec482 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 31 Mar 2022 16:12:46 +0200 Subject: [PATCH 376/984] Update v-get-database-credentials-of-domain --- bin/v-get-database-credentials-of-domain | 1 + 1 file changed, 1 insertion(+) diff --git a/bin/v-get-database-credentials-of-domain b/bin/v-get-database-credentials-of-domain index 22550d7a..cb5729b0 100644 --- a/bin/v-get-database-credentials-of-domain +++ b/bin/v-get-database-credentials-of-domain @@ -84,6 +84,7 @@ if [ "$CMS_TYPE" = "wordpress" ]; then CONFIG_FILE_FULL_PATH_BACKUP="${CONFIG_FILE_FULL_PATH}_backup" cp $CONFIG_FILE_FULL_PATH $CONFIG_FILE_FULL_PATH_BACKUP sed -i "s|//.*$||g" $CONFIG_FILE_FULL_PATH_BACKUP + sed -i "s|\"|'|g" $CONFIG_FILE_FULL_PATH_BACKUP sed -i "s|('|( '|g" $CONFIG_FILE_FULL_PATH_BACKUP sed -i "s|');|' );|g" $CONFIG_FILE_FULL_PATH_BACKUP DATABASE_NAME=$(grep 'DB_NAME' $CONFIG_FILE_FULL_PATH_BACKUP | awk '{print $3}' | sed -e "s/^'//" -e "s/'$//") From 8bbf4ef361607907971e35203a7214b913a2d987 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 2 Apr 2022 10:12:05 +0200 Subject: [PATCH 377/984] Update install-new-roundcube.sh --- src/deb/for-download/tools/install-new-roundcube.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/deb/for-download/tools/install-new-roundcube.sh b/src/deb/for-download/tools/install-new-roundcube.sh index 8996fa75..4d03160e 100644 --- a/src/deb/for-download/tools/install-new-roundcube.sh +++ b/src/deb/for-download/tools/install-new-roundcube.sh @@ -10,7 +10,6 @@ LOGINMESSAGE1='Click here for NEW Webmail' LOGINMESSAGE2='(it is adapted for mobile phones too)' DATABASE_NAME_WITHOUT_PREFIX="roundcube" -DATABASE_NAME="${USER}_roundcube" ############################################################################################################################# @@ -21,6 +20,8 @@ if [ $# -gt 1 ]; then DOMAIN=$2 fi +DATABASE_NAME="${USER}_roundcube" + if [ -z "$USER" ] || [ -z "$DOMAIN" ]; then echo "Usage:" echo "bash install-new-roundcube.sh VESTAUSER YOURDOMAIN.com" From add252bbd71840f4cfa7c96c7997323d92632e95 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 2 Apr 2022 10:13:37 +0200 Subject: [PATCH 378/984] Update install-new-roundcube.sh --- src/deb/for-download/tools/install-new-roundcube.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/for-download/tools/install-new-roundcube.sh b/src/deb/for-download/tools/install-new-roundcube.sh index 4d03160e..a746ff59 100644 --- a/src/deb/for-download/tools/install-new-roundcube.sh +++ b/src/deb/for-download/tools/install-new-roundcube.sh @@ -20,7 +20,7 @@ if [ $# -gt 1 ]; then DOMAIN=$2 fi -DATABASE_NAME="${USER}_roundcube" +DATABASE_NAME="${USER}_${DATABASE_NAME_WITHOUT_PREFIX}" if [ -z "$USER" ] || [ -z "$DOMAIN" ]; then echo "Usage:" From 547d5f0c5be550028d17d85989792d01cabc4637 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 25 Apr 2022 21:13:46 +0200 Subject: [PATCH 379/984] Preventing brute-force reseting password --- bin/v-change-user-rkey | 60 +++++++++++++++++++ bin/v-log-failed-login | 31 ++++++++++ web/reset/index.php | 114 +++++++++++++++++++++++++++---------- web/templates/reset_1.html | 17 +++++- web/templates/reset_2.html | 5 +- web/templates/reset_3.html | 5 +- 6 files changed, 195 insertions(+), 37 deletions(-) create mode 100644 bin/v-change-user-rkey create mode 100644 bin/v-log-failed-login diff --git a/bin/v-change-user-rkey b/bin/v-change-user-rkey new file mode 100644 index 00000000..6a11eed2 --- /dev/null +++ b/bin/v-change-user-rkey @@ -0,0 +1,60 @@ +#!/bin/bash +# info: change user rkey +# options: USER +# +# The function changes user's RKEY value. + + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +# Argument definition +user=$1 + +# Includes +source $VESTA/func/main.sh +source $VESTA/conf/vesta.conf + + +#----------------------------------------------------------# +# Verifications # +#----------------------------------------------------------# + +if [ "$user" = "root" ]; then + check_result $E_FORBIDEN "Changing root password is forbiden" +fi + +check_args '1' "$#" 'USER' +is_format_valid 'user' +is_object_valid 'user' 'USER' "$user" +is_object_unsuspended 'user' 'USER' "$user" + + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +hash=$(generate_password) +d=$(date +%s) + +# Changing RKEY value +update_user_value "$user" '$RKEY' "$hash" + +#check if RKEYEXP exists +if [ -z "$(grep RKEYEXP $USER_DATA/user.conf)" ]; then + sed -i "s/^RKEY/RKEYEXP='$d'\nRKEY/g" $USER_DATA/user.conf +else + update_user_value "$user" '$RKEYEXP' "$d" +fi + + +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# + +# Logging +log_history "changed rkey" +log_event "$OK" "$ARGUMENTS" + +exit diff --git a/bin/v-log-failed-login b/bin/v-log-failed-login new file mode 100644 index 00000000..76bfd36a --- /dev/null +++ b/bin/v-log-failed-login @@ -0,0 +1,31 @@ +#!/bin/bash +# info: log failed login attempt +# options: USER [IP] +# +# The function log failed login attempt + + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +# Argument definition +user=$1 +ip=${2-127.0.0.1} + +time_n_date=$(date +'%T %F') +time=$(echo "$time_n_date" |cut -f 1 -d \ ) +date=$(echo "$time_n_date" |cut -f 2 -d \ ) + + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +echo "$date $time $user $ip failed to login" >> $VESTA/log/auth.log + +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# + +exit 0 diff --git a/web/reset/index.php b/web/reset/index.php index e4a7608f..9a42b2cb 100644 --- a/web/reset/index.php +++ b/web/reset/index.php @@ -2,6 +2,7 @@ session_start(); define('NO_AUTH_REQUIRED',true); $TAB = 'RESET PASSWORD'; +$v_ip = $_SERVER['REMOTE_ADDR']; if (isset($_SESSION['user'])) { header("Location: /list/user"); @@ -11,35 +12,72 @@ if (isset($_SESSION['user'])) { include($_SERVER['DOCUMENT_ROOT']."/inc/main.php"); if ((!empty($_POST['user'])) && (empty($_POST['code']))) { + + // Check token + if ((!isset($_REQUEST['token'])) || ($_SESSION['token'] != $_REQUEST['token'])) { + die("Wrong token or missing token"); + } + $v_user = escapeshellarg($_POST['user']); $user = $_POST['user']; + $email = $_POST['email']; $cmd="/usr/bin/sudo /usr/local/vesta/bin/v-list-user"; exec ($cmd." ".$v_user." json", $output, $return_var); if ( $return_var == 0 ) { $data = json_decode(implode('', $output), true); - $rkey = $data[$user]['RKEY']; - $fname = $data[$user]['FNAME']; - $lname = $data[$user]['LNAME']; - $contact = $data[$user]['CONTACT']; - $to = $data[$user]['CONTACT']; - $subject = __('MAIL_RESET_SUBJECT',date("Y-m-d H:i:s")); - $hostname = exec('hostname'); - $from = __('MAIL_FROM',$hostname); - if (!empty($fname)) { - $mailtext = __('GREETINGS_GORDON_FREEMAN',$fname,$lname); - } else { - $mailtext = __('GREETINGS'); - } - $mailtext .= __('PASSWORD_RESET_REQUEST',$hostname.":".$_SERVER['SERVER_PORT'],$user,$rkey,$hostname.":".$_SERVER['SERVER_PORT'],$user,$rkey); - if (!empty($rkey)) send_email($to, $subject, $mailtext, $from); unset($output); + exec("/usr/bin/sudo /usr/local/vesta/bin/v-get-user-value ".$v_user." RKEYEXP", $output, $return_var); + $rkeyexp = trim(implode('', $output)); + if (strlen($rkeyexp)>9) $rkeyexp=intval($rkeyexp); + unset($output); + if ($rkeyexp === null || $rkeyexp < time() - 900) { + if ($email == $data[$user]['CONTACT']) { + exec("/usr/bin/sudo /usr/local/vesta/bin/v-change-user-rkey ".$v_user, $output, $return_var); + unset($output); + $CMD="/usr/bin/sudo /usr/local/vesta/bin/v-get-user-value ".$v_user." RKEY"; + exec($CMD, $output, $return_var); + $rkey = trim(implode('', $output)); + //unset($output); + //echo $rkey; exit; + //echo $CMD."\n
"; + //var_dump($rkey); exit; + $fname = $data[$user]['FNAME']; + $lname = $data[$user]['LNAME']; + $contact = $data[$user]['CONTACT']; + $to = $data[$user]['CONTACT']; + $subject = __('MAIL_RESET_SUBJECT',date("Y-m-d H:i:s")); + $hostname = exec('hostname'); + $from = __('MAIL_FROM',$hostname); + if (!empty($fname)) { + $mailtext = __('GREETINGS_GORDON_FREEMAN',$fname,$lname); + } else { + $mailtext = __('GREETINGS'); + } + $mailtext .= __('PASSWORD_RESET_REQUEST',$hostname.":".$_SERVER['SERVER_PORT'],$user,$rkey,$hostname.":".$_SERVER['SERVER_PORT'],$user,$rkey); + if (!empty($rkey)) { + send_email($to, $subject, $mailtext, $from); + header("Location: /reset/?action=code&user=".$_POST['user']); + } + } else { + $ERROR = "".__('User and email not matched').""; + exec("/usr/bin/sudo /usr/local/vesta/bin/v-log-failed-login " . $v_user . " " . $v_ip, $output, $return_var); + } + } else { + $ERROR = "".__('Please wait 15 minutes before sending a new request').""; + } + } else { + $ERROR = "".__('User and email not matched').""; } - - header("Location: /reset/?action=code&user=".$_POST['user']); - exit; + unset($output); } if ((!empty($_POST['user'])) && (!empty($_POST['code'])) && (!empty($_POST['password'])) ) { + + // Check token + if ((!isset($_REQUEST['token'])) || ($_SESSION['token'] != $_REQUEST['token'])) { + die("Wrong token or missing token"); + } + if ( $_POST['password'] == $_POST['password_confirm'] ) { $v_user = escapeshellarg($_POST['user']); $user = $_POST['user']; @@ -47,26 +85,42 @@ if ((!empty($_POST['user'])) && (!empty($_POST['code'])) && (!empty($_POST['pass exec ($cmd." ".$v_user." json", $output, $return_var); if ( $return_var == 0 ) { $data = json_decode(implode('', $output), true); + unset($output); $rkey = $data[$user]['RKEY']; if (hash_equals($rkey, $_POST['code'])) { - $v_password = tempnam("/tmp","vst"); - $fp = fopen($v_password, "w"); - fwrite($fp, $_POST['password']."\n"); - fclose($fp); - $cmd="/usr/bin/sudo /usr/local/vesta/bin/v-change-user-password"; - exec ($cmd." ".$v_user." ".$v_password, $output, $return_var); - unlink($v_password); - if ( $return_var > 0 ) { - $ERROR = "".__('An internal error occurred').""; + unset($output); + exec("/usr/bin/sudo /usr/local/vesta/bin/v-get-user-value ".$v_user." RKEYEXP", $output, $return_var); + $rkeyexp = trim(implode('', $output)); + if (strlen($rkeyexp)>9) $rkeyexp=intval($rkeyexp); + unset($output); + if ($rkeyexp > time() - 900) { + $v_password = tempnam("/tmp","vst"); + $fp = fopen($v_password, "w"); + fwrite($fp, $_POST['password']."\n"); + fclose($fp); + $cmd="/usr/bin/sudo /usr/local/vesta/bin/v-change-user-password"; + exec ($cmd." ".$v_user." ".$v_password, $output, $return_var); + unlink($v_password); + if ( $return_var > 0 ) { + sleep(5); + $ERROR = "".__('An internal error occurred').""; + } else { + $_SESSION['user'] = $_POST['user']; + header("Location: /"); + exit; + } } else { - $_SESSION['user'] = $_POST['user']; - header("Location: /"); - exit; + sleep(5); + $ERROR = "".__('Code has been expired').""; + exec("/usr/bin/sudo /usr/local/vesta/bin/v-log-failed-login " . $v_user . " " . $v_ip, $output, $return_var); } } else { + sleep(5); $ERROR = "".__('Invalid username or code').""; + exec("/usr/bin/sudo /usr/local/vesta/bin/v-log-failed-login " . $v_user . " " . $v_ip, $output, $return_var); } } else { + sleep(5); $ERROR = "".__('Invalid username or code').""; } } else { diff --git a/web/templates/reset_1.html b/web/templates/reset_1.html index b48f3706..87c9235a 100644 --- a/web/templates/reset_1.html +++ b/web/templates/reset_1.html @@ -5,13 +5,14 @@
- Vesta Control Panel + myVesta Control Panel @@ -25,9 +26,19 @@ + + + + + + @@ -39,7 +50,7 @@ diff --git a/web/templates/reset_2.html b/web/templates/reset_2.html index 58c3b94f..94fd9fea 100644 --- a/web/templates/reset_2.html +++ b/web/templates/reset_2.html @@ -5,13 +5,14 @@
- Vesta Control Panel + myVesta Control Panel @@ -39,7 +40,7 @@ diff --git a/web/templates/reset_3.html b/web/templates/reset_3.html index 0cc54bda..3d5ebb9d 100644 --- a/web/templates/reset_3.html +++ b/web/templates/reset_3.html @@ -5,7 +5,7 @@ @@ -47,7 +48,7 @@ From 475b7eac6be1a4e7221b0b1cd288fbadaa60c688 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 25 Apr 2022 21:23:02 +0200 Subject: [PATCH 380/984] Generating 16 chars password for users --- func/main.sh | 2 +- web/js/pages/add_user.js | 2 +- web/js/pages/edit_user.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/func/main.sh b/func/main.sh index 69737c72..9346e918 100644 --- a/func/main.sh +++ b/func/main.sh @@ -152,7 +152,7 @@ generate_password() { matrix=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz fi if [ -z "$lenght" ]; then - lenght=10 + lenght=16 fi i=1 while [ $i -le $lenght ]; do diff --git a/web/js/pages/add_user.js b/web/js/pages/add_user.js index 510ed167..597c869e 100644 --- a/web/js/pages/add_user.js +++ b/web/js/pages/add_user.js @@ -7,7 +7,7 @@ $(function() { randomString = function() { var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz'; - var string_length = 10; + var string_length = 16; var randomstring = ''; for (var i = 0; i < string_length; i++) { var rnum = Math.floor(Math.random() * chars.length); diff --git a/web/js/pages/edit_user.js b/web/js/pages/edit_user.js index 439aeab0..381f4330 100644 --- a/web/js/pages/edit_user.js +++ b/web/js/pages/edit_user.js @@ -1,6 +1,6 @@ function randomString() { var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz'; - var string_length = 10; + var string_length = 16; var randomstring = ''; for (var i = 0; i < string_length; i++) { var rnum = Math.floor(Math.random() * chars.length); From da69aaa7aa1d44d85f68b623ea85db48638ca68d Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 25 Apr 2022 22:09:23 +0200 Subject: [PATCH 381/984] Update v-log-failed-login --- bin/v-log-failed-login | 1 + 1 file changed, 1 insertion(+) diff --git a/bin/v-log-failed-login b/bin/v-log-failed-login index 76bfd36a..c164d060 100644 --- a/bin/v-log-failed-login +++ b/bin/v-log-failed-login @@ -29,3 +29,4 @@ echo "$date $time $user $ip failed to login" >> $VESTA/log/auth.log #----------------------------------------------------------# exit 0 + From 822541d1c57d5926111e8b291a41fdb5a13f6377 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 25 Apr 2022 22:12:19 +0200 Subject: [PATCH 382/984] Delete v-log-failed-login --- bin/v-log-failed-login | 32 -------------------------------- 1 file changed, 32 deletions(-) delete mode 100644 bin/v-log-failed-login diff --git a/bin/v-log-failed-login b/bin/v-log-failed-login deleted file mode 100644 index c164d060..00000000 --- a/bin/v-log-failed-login +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash -# info: log failed login attempt -# options: USER [IP] -# -# The function log failed login attempt - - -#----------------------------------------------------------# -# Variable&Function # -#----------------------------------------------------------# - -# Argument definition -user=$1 -ip=${2-127.0.0.1} - -time_n_date=$(date +'%T %F') -time=$(echo "$time_n_date" |cut -f 1 -d \ ) -date=$(echo "$time_n_date" |cut -f 2 -d \ ) - - -#----------------------------------------------------------# -# Action # -#----------------------------------------------------------# - -echo "$date $time $user $ip failed to login" >> $VESTA/log/auth.log - -#----------------------------------------------------------# -# Vesta # -#----------------------------------------------------------# - -exit 0 - From fca4ca66d4755ea566e2fa26a75689c323fa7e44 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 25 Apr 2022 22:13:46 +0200 Subject: [PATCH 383/984] Delete v-change-user-rkey --- bin/v-change-user-rkey | 60 ------------------------------------------ 1 file changed, 60 deletions(-) delete mode 100644 bin/v-change-user-rkey diff --git a/bin/v-change-user-rkey b/bin/v-change-user-rkey deleted file mode 100644 index 6a11eed2..00000000 --- a/bin/v-change-user-rkey +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/bash -# info: change user rkey -# options: USER -# -# The function changes user's RKEY value. - - -#----------------------------------------------------------# -# Variable&Function # -#----------------------------------------------------------# - -# Argument definition -user=$1 - -# Includes -source $VESTA/func/main.sh -source $VESTA/conf/vesta.conf - - -#----------------------------------------------------------# -# Verifications # -#----------------------------------------------------------# - -if [ "$user" = "root" ]; then - check_result $E_FORBIDEN "Changing root password is forbiden" -fi - -check_args '1' "$#" 'USER' -is_format_valid 'user' -is_object_valid 'user' 'USER' "$user" -is_object_unsuspended 'user' 'USER' "$user" - - -#----------------------------------------------------------# -# Action # -#----------------------------------------------------------# - -hash=$(generate_password) -d=$(date +%s) - -# Changing RKEY value -update_user_value "$user" '$RKEY' "$hash" - -#check if RKEYEXP exists -if [ -z "$(grep RKEYEXP $USER_DATA/user.conf)" ]; then - sed -i "s/^RKEY/RKEYEXP='$d'\nRKEY/g" $USER_DATA/user.conf -else - update_user_value "$user" '$RKEYEXP' "$d" -fi - - -#----------------------------------------------------------# -# Vesta # -#----------------------------------------------------------# - -# Logging -log_history "changed rkey" -log_event "$OK" "$ARGUMENTS" - -exit From 74e9dd4abf6f5137e44944b02fdc501f335bfa8b Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 25 Apr 2022 22:16:34 +0200 Subject: [PATCH 384/984] Linux EOL in v-log-failed-login and v-change-user-rkey --- bin/v-change-user-rkey | 60 ++++++++++++++++++++++++++++++++++++++++++ bin/v-log-failed-login | 31 ++++++++++++++++++++++ 2 files changed, 91 insertions(+) create mode 100644 bin/v-change-user-rkey create mode 100644 bin/v-log-failed-login diff --git a/bin/v-change-user-rkey b/bin/v-change-user-rkey new file mode 100644 index 00000000..38777e4c --- /dev/null +++ b/bin/v-change-user-rkey @@ -0,0 +1,60 @@ +#!/bin/bash +# info: change user rkey +# options: USER +# +# The function changes user's RKEY value. + + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +# Argument definition +user=$1 + +# Includes +source $VESTA/func/main.sh +source $VESTA/conf/vesta.conf + + +#----------------------------------------------------------# +# Verifications # +#----------------------------------------------------------# + +if [ "$user" = "root" ]; then + check_result $E_FORBIDEN "Changing root password is forbiden" +fi + +check_args '1' "$#" 'USER' +is_format_valid 'user' +is_object_valid 'user' 'USER' "$user" +is_object_unsuspended 'user' 'USER' "$user" + + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +hash=$(generate_password) +d=$(date +%s) + +# Changing RKEY value +update_user_value "$user" '$RKEY' "$hash" + +#check if RKEYEXP exists +if [ -z "$(grep RKEYEXP $USER_DATA/user.conf)" ]; then + sed -i "s/^RKEY/RKEYEXP='$d'\nRKEY/g" $USER_DATA/user.conf +else + update_user_value "$user" '$RKEYEXP' "$d" +fi + + +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# + +# Logging +log_history "changed rkey" +log_event "$OK" "$ARGUMENTS" + +exit diff --git a/bin/v-log-failed-login b/bin/v-log-failed-login new file mode 100644 index 00000000..66b9b808 --- /dev/null +++ b/bin/v-log-failed-login @@ -0,0 +1,31 @@ +#!/bin/bash +# info: log failed login attempt +# options: USER [IP] +# +# The function log failed login attempt + + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +# Argument definition +user=$1 +ip=${2-127.0.0.1} + +time_n_date=$(date +'%T %F') +time=$(echo "$time_n_date" |cut -f 1 -d \ ) +date=$(echo "$time_n_date" |cut -f 2 -d \ ) + + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +echo "$date $time $user $ip failed to login" >> $VESTA/log/auth.log + +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# + +exit 0 From 1c4cce181a6a9377b267583e5ebe74a0523a735a Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 25 Apr 2022 22:34:33 +0200 Subject: [PATCH 385/984] Making sure yescrypt is disabled --- src/deb/vesta/postinst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/deb/vesta/postinst b/src/deb/vesta/postinst index e2a1219c..565047f1 100755 --- a/src/deb/vesta/postinst +++ b/src/deb/vesta/postinst @@ -25,6 +25,12 @@ fi echo "1" > /usr/local/vesta/data/upgrades/show_changelog chmod a=rw /usr/local/vesta/data/upgrades/show_changelog + +# Making sure yescrypt is disabled +if [ "$release" -eq 11 ]; then + sed -i "s/yescrypt/sha512/g" /etc/pam.d/common-password +fi + # Checking if FreshClam is started after installation if [ ! -f "/usr/local/vesta/data/upgrades/freshclam_start" ]; then clamavup=$(/usr/local/vesta/bin/v-list-sys-services | grep 'clamav-daemon' | grep -c 'running') From d98d67d5a13f3ec18be234efe75c9770e4ebc51d Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 25 Apr 2022 22:39:52 +0200 Subject: [PATCH 386/984] Update Changelog.md --- Changelog.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Changelog.md b/Changelog.md index a25b40bc..9c98c282 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,9 @@ +Version 0.9.8-26-55 [26-Apr-2022] +================================================== +* Support for MySQL 8 +* Preventing brute-force resetting password +* Many minor bugfixes + Version 0.9.8-26-54 [17-Dec-2021] ================================================== * Checking if FreshClam is started after installation From 247dce94f80c07469e24660ed9e3d8e927e34498 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 25 Apr 2022 22:41:53 +0200 Subject: [PATCH 387/984] Version 0.9.8-26-55 --- src/deb/latest.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/latest.txt b/src/deb/latest.txt index 2c883b97..f9160904 100644 --- a/src/deb/latest.txt +++ b/src/deb/latest.txt @@ -1 +1 @@ -vesta-0.9.8-26-54 +vesta-0.9.8-26-55 From f2809eeb6775da02d63f1a763a49a67326a27150 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 25 Apr 2022 23:38:47 +0200 Subject: [PATCH 388/984] Update Changelog.md --- Changelog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Changelog.md b/Changelog.md index 9c98c282..819eea8c 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,7 +1,7 @@ Version 0.9.8-26-55 [26-Apr-2022] ================================================== * Support for MySQL 8 -* Preventing brute-force resetting password +* Preventing brute-force resetting password (thanks to HestiaCP @hestiacp for fix) * Many minor bugfixes Version 0.9.8-26-54 [17-Dec-2021] From 3a688f33fac01ee2c75c8243598f2f4a9d46d79e Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 7 May 2022 12:45:33 +0200 Subject: [PATCH 389/984] Update vst-install-debian.sh --- install/vst-install-debian.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index 2dbd2c11..6f9410e4 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -1610,7 +1610,7 @@ fi # Vesta data sessions permissions chown admin:admin $VESTA/data/sessions -echo "== Configuring system ips" +echo "== Configuring system ips (this can take a few minutes, relax)" $VESTA/bin/v-update-sys-ip echo "== Get main ip" From aeb210433f28d19b4871750f40e3fcecfdd62419 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 7 May 2022 14:23:11 +0200 Subject: [PATCH 390/984] conf/mariadb_installed and conf/mysql8_installed --- install/vst-install-debian.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index 6f9410e4..8e87f737 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -1207,6 +1207,14 @@ fi #----------------------------------------------------------# if [ "$mysql" = 'yes' ] || [ "$mysql8" = 'yes' ]; then + + if [ "$mysql" = 'yes' ]; then + touch $VESTA/conf/mariadb_installed + fi + if [ "$mysql8" = 'yes' ]; then + touch $VESTA/conf/mysql8_installed + fi + if [ "$mysql" = 'yes' ]; then echo "=== Configure MariaDB" mycnf="my-small.cnf" From 18e42c954060377ca53e9ef80702eb5ccc9a31a5 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 7 May 2022 21:11:10 +0200 Subject: [PATCH 391/984] exim4.conf.template-RC --- install/debian/11/exim/exim4.conf.template-RC | 440 ++++++++++++++++++ 1 file changed, 440 insertions(+) create mode 100644 install/debian/11/exim/exim4.conf.template-RC diff --git a/install/debian/11/exim/exim4.conf.template-RC b/install/debian/11/exim/exim4.conf.template-RC new file mode 100644 index 00000000..9c5fc671 --- /dev/null +++ b/install/debian/11/exim/exim4.conf.template-RC @@ -0,0 +1,440 @@ +###################################################################### +# # +# Exim configuration file for Vesta Control Panel # +# # +###################################################################### + +#SPAMASSASSIN = yes +#SPAM_SCORE = 50 +#CLAMD = yes + +disable_ipv6=true +add_environment=<; PATH=/bin:/usr/bin +keep_environment= + +#local_interfaces = 0.0.0.0 +#smtp_active_hostname = ${lookup{$interface_address}lsearch{/etc/exim4/virtual/helo_data}{$value}} +#smtp_banner = "$smtp_active_hostname ESMTP $tod_full" + +domainlist local_domains = dsearch;/etc/exim4/domains/ +domainlist relay_to_domains = dsearch;/etc/exim4/domains/ +hostlist relay_from_hosts = 127.0.0.1 +hostlist whitelist = net-iplsearch;/etc/exim4/white-blocks.conf +hostlist spammers = net-iplsearch;/etc/exim4/spam-blocks.conf +no_local_from_check +untrusted_set_sender = * +acl_smtp_connect = acl_check_spammers +acl_smtp_mail = acl_check_mail +acl_smtp_rcpt = acl_check_rcpt +acl_smtp_data = acl_check_data +acl_smtp_mime = acl_check_mime + +LIMIT_PER_EMAIL_ACCOUNT_MAX_RECIPIENTS = 15 +LIMIT_PER_HOSTING_ACCOUNT_MAX_RECIPIENTS = 5 +LIMIT_PER_EMAIL_ACCOUNT_MAX_SENT_EMAILS_PER_HOUR = 40 +LIMIT_PER_HOSTING_ACCOUNT_MAX_SENT_EMAILS_PER_HOUR = 40 + +recipients_max = 150 +recipients_max_reject = true + +# log_selector = +smtp_connection +smtp_accept_max = 50 +smtp_accept_max_per_host = 4 + +.ifdef SPAMASSASSIN +spamd_address = 127.0.0.1 783 +.endif + +.ifdef CLAMD +av_scanner = clamd: /var/run/clamav/clamd.ctl +.endif + +tls_advertise_hosts = * +tls_certificate = /usr/local/vesta/ssl/$received_ip_address.crt +tls_privatekey = /usr/local/vesta/ssl/$received_ip_address.key + +daemon_smtp_ports = 25 : 465 : 587 : 2525 +tls_on_connect_ports = 465 +never_users = root +host_lookup = * +rfc1413_hosts = * +rfc1413_query_timeout = 0s +ignore_bounce_errors_after = 2d +timeout_frozen_after = 7d + +DKIM_DOMAIN = ${lc:${domain:$h_from:}} +DKIM_FILE = /etc/exim4/domains/${lookup{${lc:${domain:$h_from:}}}dsearch{/etc/exim4/domains/}}/dkim.pem +DKIM_PRIVATE_KEY = ${if exists{DKIM_FILE}{DKIM_FILE}{0}} + + + +###################################################################### +# ACL CONFIGURATION # +# Specifies access control lists for incoming SMTP mail # +###################################################################### + +acl_not_smtp = acl_not_smtp + +begin acl + +acl_not_smtp: + deny message = Too many recipients, limit is $acl_c_max_recipients recipients + set acl_c_max_recipients=${lookup{$authenticated_id}lsearch{/etc/exim4/limit_per_hosting_account_max_recipients}{$value}{LIMIT_PER_HOSTING_ACCOUNT_MAX_RECIPIENTS}} + condition = ${if >{$rcpt_count}{$acl_c_max_recipients}} + + deny message = Hosting account is sending too much emails [limitlog]: deny / account / $authenticated_id / $sender_rate / $sender_rate_period [limit=$acl_c_limit_per_hour] + set acl_c_limit_per_hour=${lookup{$authenticated_id}lsearch{/etc/exim4/limit_per_hosting_account_max_sent_emails_per_hour}{$value}{LIMIT_PER_HOSTING_ACCOUNT_MAX_SENT_EMAILS_PER_HOUR}} + ratelimit = $acl_c_limit_per_hour / 1h / $authenticated_id + + warn ratelimit = 0 / 1h / strict / $authenticated_id + set acl_c_limit_per_hour=${lookup{$authenticated_id}lsearch{/etc/exim4/limit_per_hosting_account_max_sent_emails_per_hour}{$value}{LIMIT_PER_HOSTING_ACCOUNT_MAX_SENT_EMAILS_PER_HOUR}} + log_message = Sender rate [limitlog]: log / account / $authenticated_id / $sender_rate / $sender_rate_period [limit=$acl_c_limit_per_hour] + + warn set acl_m3 = yes + + accept + +acl_check_spammers: + accept hosts = +whitelist + + drop message = Your host in blacklist on this server. + log_message = Host in blacklist + hosts = +spammers + + accept + + +acl_check_mail: + deny condition = ${if eq{$sender_helo_name}{}} + message = HELO required before MAIL + + drop message = Helo name contains a ip address (HELO was $sender_helo_name) and not is valid + condition = ${if match{$sender_helo_name}{\N((\d{1,3}[.-]\d{1,3}[.-]\d{1,3}[.-]\d{1,3})|([0-9a-f]{8})|([0-9A-F]{8}))\N}{yes}{no}} + condition = ${if match{${lc:$sender_host_name}}{.telenor.rs}{false}{true}} + condition = ${if match {${lookup dnsdb{>: defer_never,ptr=$sender_host_address}}\}{$sender_helo_name}{no}{yes}} + delay = 45s + + drop condition = ${if isip{$sender_helo_name}} + message = Access denied - Invalid HELO name (See RFC2821 4.1.3) + + drop condition = ${if eq{[$interface_address]}{$sender_helo_name}} + message = $interface_address is _my_ address + + accept + + +acl_check_rcpt: + accept hosts = : + + deny message = Too many recipients, limit is $acl_c_max_recipients recipients + set acl_c_max_recipients=${lookup{$authenticated_id}lsearch{/etc/exim4/limit_per_email_account_max_recipients}{$value}{LIMIT_PER_EMAIL_ACCOUNT_MAX_RECIPIENTS}} + condition = ${if >{$rcpt_count}{$acl_c_max_recipients}} + + deny message = Email account is sending too much emails [limitlog]: deny / email / $authenticated_id / $sender_rate / $sender_rate_period [limit=$acl_c_limit_per_hour] + set acl_c_limit_per_hour=${lookup{$authenticated_id}lsearch{/etc/exim4/limit_per_email_account_max_sent_emails_per_hour}{$value}{LIMIT_PER_EMAIL_ACCOUNT_MAX_SENT_EMAILS_PER_HOUR}} + ratelimit = $acl_c_limit_per_hour / 1h / $authenticated_id + + warn ratelimit = 0 / 1h / strict / $authenticated_id + set acl_c_limit_per_hour=${lookup{$authenticated_id}lsearch{/etc/exim4/limit_per_email_account_max_sent_emails_per_hour}{$value}{LIMIT_PER_EMAIL_ACCOUNT_MAX_SENT_EMAILS_PER_HOUR}} + log_message = Sender rate [limitlog]: log / email / $authenticated_id / $sender_rate / $sender_rate_period [limit=$acl_c_limit_per_hour] + + warn set acl_m3 = no + + deny message = Restricted characters in address + domains = +local_domains + local_parts = ^[.] : ^.*[@%!/|] + + deny message = Restricted characters in address + domains = !+local_domains + local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./ + + require verify = sender + + accept hosts = +relay_from_hosts + control = submission + + accept authenticated = * + control = submission/domain= + + deny message = Rejected because $sender_host_address is in a black list at $dnslist_domain\n$dnslist_text + hosts = !+whitelist + dnslists = ${readfile {/etc/exim4/dnsbl.conf}{:}} + + require message = relay not permitted + domains = +local_domains : +relay_to_domains + + deny message = smtp auth requried + sender_domains = +local_domains + !authenticated = * + + require verify = recipient + +.ifdef CLAMD + warn set acl_m0 = no + + warn condition = ${if exists {/etc/exim4/domains/$domain/antivirus}{yes}{no}} + set acl_m0 = yes +.endif + +.ifdef SPAMASSASSIN + warn set acl_m1 = no + + warn condition = ${if exists {/etc/exim4/domains/$domain/antispam}{yes}{no}} + set acl_m1 = yes +.endif + + accept + + +acl_check_data: + + deny senders = /etc/exim4/deny_senders + +.ifdef CLAMD + deny message = Message contains a virus ($malware_name) and has been rejected + malware = */defer_ok + condition = ${if eq{$acl_m0}{yes}{yes}{no}} +.endif + +.ifdef SPAMASSASSIN + warn !authenticated = * + hosts = !+relay_from_hosts + condition = ${if < {$message_size}{600K}} + condition = ${if eq{$acl_m1}{yes}{yes}{no}} + spam = nobody:true/defer_ok + add_header = X-Spam-Score: $spam_score_int + add_header = X-Spam-Bar: $spam_bar + add_header = X-Spam-Report: $spam_report + set acl_m2 = $spam_score_int + + warn condition = ${if !eq{$acl_m2}{} {yes}{no}} + condition = ${if >{$acl_m2}{SPAM_SCORE} {yes}{no}} + add_header = X-Spam-Status: Yes + message = SpamAssassin detected spam (from $sender_address to $recipients). +.endif + + accept + + +acl_check_mime: + deny message = Blacklisted file extension detected + condition = ${if match {${lc:$mime_filename}}{\N(\.ade|\.adp|\.bat|\.chm|\.cmd|\.com|\.cpl|\.exe|\.hta|\.ins|\.isp|\.jse|\.lib|\.lnk|\.mde|\.msc|\.msp|\.mst|\.pif|\.scr|\.sct|\.shb|\.sys|\.vb|\.vbe|\.vbs|\.vxd|\.wsc|\.wsf|\.wsh|\.jar)$\N}{1}{0}} + + accept + + + +###################################################################### +# AUTHENTICATION CONFIGURATION # +###################################################################### +begin authenticators + +dovecot_plain: + driver = dovecot + public_name = PLAIN + server_socket = /var/run/dovecot/auth-client + server_set_id = $auth1 + +dovecot_login: + driver = dovecot + public_name = LOGIN + server_socket = /var/run/dovecot/auth-client + server_set_id = $auth1 + + + +###################################################################### +# ROUTERS CONFIGURATION # +# Specifies how addresses are handled # +###################################################################### +begin routers + +#smarthost: +# driver = manualroute +# domains = ! +local_domains +# transport = remote_smtp +# route_list = * smartrelay.vestacp.com +# no_more +# no_verify + +dnslookup: + driver = dnslookup + domains = !+local_domains + transport = remote_smtp + no_more + +localuser_spam: + driver = accept + transport = local_spam_delivery + condition = ${if eq {${if match{$h_X-Spam-Status:}{\N^Yes\N}{yes}{no}}} {${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}{yes}{no_such_user}}}} + +userforward: + driver = redirect + check_local_user + file = $home/.forward + require_files = ${local_part}:+${home}/.forward + domains = +local_domains + allow_filter + no_verify + no_expn + check_ancestor + file_transport = address_file + pipe_transport = address_pipe + reply_transport = address_reply + +procmail: + driver = accept + check_local_user + require_files = ${local_part}:+${home}/.procmailrc:/usr/bin/procmail + transport = procmail + no_verify + +autoreplay: + driver = accept + require_files = /etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/autoreply.${local_part}.msg + condition = ${if exists{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/autoreply.${local_part}.msg}{yes}{no}} + retry_use_local_part + transport = userautoreply + unseen + +aliases: + driver = redirect + headers_add = X-redirected: yes + data = ${extract{1}{:}{${lookup{$local_part@$domain}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/aliases}}}} + require_files = /etc/exim4/domains/$domain/aliases + redirect_router = dnslookup + pipe_transport = address_pipe + unseen + +localuser_fwd_only: + driver = accept + transport = devnull + condition = ${if exists{/etc/exim4/domains/$domain/fwd_only}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/fwd_only}{true}{false}}}} + +localuser: + driver = accept + transport = local_delivery + condition = ${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}{true}{false}} + +catchall: + driver = redirect + headers_add = X-redirected: yes + require_files = /etc/exim4/domains/$domain/aliases + data = ${extract{1}{:}{${lookup{*@$domain}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/aliases}}}} + file_transport = local_delivery + redirect_router = dnslookup + +terminate_alias: + driver = accept + transport = devnull + condition = ${lookup{$local_part@$domain}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/aliases}{true}{false}} + + + +###################################################################### +# TRANSPORTS CONFIGURATION # +###################################################################### +begin transports + +remote_smtp: + driver = smtp + #interface = ${if eq{$acl_m3}{yes}{FIRSTIP}{${lookup{$sender_address_domain}lsearch{/etc/exim4/virtual/interfaces} {$value}{SECONDIP}}}} + #helo_data = "${if eq{$acl_m3}{yes}{FIRSTHOST}{${lookup{$sending_ip_address}lsearch{/etc/exim4/virtual/helo_data}{$value}{SECONDHOST}}}}" + dkim_domain = DKIM_DOMAIN + dkim_selector = mail + dkim_private_key = DKIM_PRIVATE_KEY + dkim_canon = relaxed + dkim_strict = 0 + hosts_try_chunking = !93.188.3.0/24 + +procmail: + driver = pipe + command = "/usr/bin/procmail -d $local_part" + return_path_add + delivery_date_add + envelope_to_add + user = $local_part + initgroups + return_output + +local_delivery: + driver = appendfile + maildir_format + maildir_use_size_file + user = ${extract{2}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}} + group = mail + create_directory + directory_mode = 770 + mode = 660 + use_lockfile = no + delivery_date_add + envelope_to_add + return_path_add + directory = "${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}}/mail/${lookup{$domain}dsearch{/etc/exim4/domains/}}/${lookup{$local_part}dsearch{${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}}/mail/${lookup{$domain}dsearch{/etc/exim4/domains/}}}}" + quota = ${extract{6}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}}M + quota_warn_threshold = 75% + +local_spam_delivery: + driver = appendfile + maildir_format + maildir_use_size_file + user = ${extract{2}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}} + group = mail + create_directory + directory_mode = 770 + mode = 660 + use_lockfile = no + delivery_date_add + envelope_to_add + return_path_add + directory = "${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}}/mail/${lookup{$domain}dsearch{/etc/exim4/domains/}}/${lookup{$local_part}dsearch{${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}}/mail/${lookup{$domain}dsearch{/etc/exim4/domains/}}}}/.Spam" + quota = ${extract{6}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}}M + quota_directory = "${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}}/mail/${lookup{$domain}dsearch{/etc/exim4/domains/}}/${lookup{$local_part}dsearch{${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}}/mail/${lookup{$domain}dsearch{/etc/exim4/domains/}}}}" + quota_warn_threshold = 75% + +address_pipe: + driver = pipe + return_output + +address_file: + driver = appendfile + delivery_date_add + envelope_to_add + return_path_add + +address_reply: + driver = autoreply + +userautoreply: + driver = autoreply + file = /etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/autoreply.${extract{1}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/accounts}}}}.msg + from = "${extract{1}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/accounts}}}}@${lookup{$domain}dsearch{/etc/exim4/domains/}}" + headers = Content-Type: text/plain; charset=utf-8;\nContent-Transfer-Encoding: 8bit + subject = "${if def:h_Subject: {Autoreply: \"${rfc2047:$h_Subject:}\"} {Autoreply Message}}" + to = "${sender_address}" + +devnull: + driver = appendfile + file = /dev/null + + + +###################################################################### +# RETRY CONFIGURATION # +###################################################################### +begin retry + +# Address or Domain Error Retries +# ----------------- ----- ------- +* * F,2h,15m; G,16h,1h,1.5; F,4d,6h + + + +###################################################################### +# REWRITE CONFIGURATION # +###################################################################### +begin rewrite + + + +###################################################################### From f49479043f1894dd448b13a7c5054157d3d2f235 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 7 May 2022 21:39:40 +0200 Subject: [PATCH 392/984] Update v-make-separated-ip-for-email --- bin/v-make-separated-ip-for-email | 39 ++++++++++++++++++++++++------- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/bin/v-make-separated-ip-for-email b/bin/v-make-separated-ip-for-email index 6ede0d04..6ca4343b 100644 --- a/bin/v-make-separated-ip-for-email +++ b/bin/v-make-separated-ip-for-email @@ -137,18 +137,41 @@ $VESTA/bin/v-make-ip-ssl "$MAIL_USER" "$MAIL_HOSTNAME" check_grep=$(grep -c 'smtp_active_hostname' /etc/exim4/exim4.conf.template) if [ "$check_grep" -eq 0 ]; then echo "=== patching exim4.conf.template" - patch /etc/exim4/exim4.conf.template < /usr/local/vesta/src/deb/for-download/tools/patches/separate-mail-ip.patch + mv /etc/exim4/exim4.conf.template /etc/exim4/exim4.conf.template-backup + cp /usr/local/vesta/install/debian/11/exim/exim4.conf.template-RC /etc/exim4/exim4.conf.template + sed -i "s|FIRSTIP|$HOST_IP|g" /etc/exim4/exim4.conf.template + sed -i "s|SECONDIP|$MAIL_IP|g" /etc/exim4/exim4.conf.template + sed -i "s|FIRSTHOST|$HOSTNAME|g" /etc/exim4/exim4.conf.template + sed -i "s|SECONDHOST|$MAIL_HOSTNAME|g" /etc/exim4/exim4.conf.template + sed -i "s|#local_interfaces|local_interfaces|g" /etc/exim4/exim4.conf.template + sed -i "s|#smtp_active_hostname|smtp_active_hostname|g" /etc/exim4/exim4.conf.template + sed -i "s|#smtp_banner|smtp_banner|g" /etc/exim4/exim4.conf.template + sed -i "s|#interface =|interface =|g" /etc/exim4/exim4.conf.template + sed -i "s|#helo_data =|helo_data =|g" /etc/exim4/exim4.conf.template + touch /etc/exim4/limit_per_email_account_max_sent_emails_per_hour + touch /etc/exim4/limit_per_email_account_max_recipients + touch /etc/exim4/limit_per_hosting_account_max_sent_emails_per_hour + touch /etc/exim4/limit_per_hosting_account_max_recipients + check_grep=$(grep -c '#SPAMASSASSIN' /etc/exim4/exim4.conf.template-backup) + if [ "$check_grep" -eq 0 ]; then + sed -i "s|#SPAMASSASSIN|SPAMASSASSIN|g" /etc/exim4/exim4.conf.template + fi + check_grep=$(grep -c '#SPAM_SCORE' /etc/exim4/exim4.conf.template-backup) + if [ "$check_grep" -eq 0 ]; then + sed -i "s|#SPAM_SCORE|SPAM_SCORE|g" /etc/exim4/exim4.conf.template + fi + check_grep=$(grep -c '#CLAMD' /etc/exim4/exim4.conf.template-backup) + if [ "$check_grep" -eq 0 ]; then + sed -i "s|#CLAMD|CLAMD|g" /etc/exim4/exim4.conf.template + fi + systemctl restart exim4 if [ $? -ne 0 ]; then + cp /etc/exim4/exim4.conf.template-backup /etc/exim4/exim4.conf.template + systemctl restart exim4 echo "=== Patching failed, aborting" exit 1 - else - echo "=== Patching successful" - sed -i "s|IP1|$HOST_IP|g" /etc/exim4/exim4.conf.template - sed -i "s|IP2|$MAIL_IP|g" /etc/exim4/exim4.conf.template - sed -i "s|HOST1|$HOSTNAME|g" /etc/exim4/exim4.conf.template - sed -i "s|HOST2|$MAIL_HOSTNAME|g" /etc/exim4/exim4.conf.template - service exim4 restart fi + echo "=== Patching successful" else echo "=== exim4.conf.template already patched" fi From 23ba131e6978e7bb3fa2b7a5173ebd7d1df93edc Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 7 May 2022 22:21:20 +0200 Subject: [PATCH 393/984] Update v-make-separated-ip-for-email --- bin/v-make-separated-ip-for-email | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-make-separated-ip-for-email b/bin/v-make-separated-ip-for-email index 6ca4343b..69c8565b 100644 --- a/bin/v-make-separated-ip-for-email +++ b/bin/v-make-separated-ip-for-email @@ -40,7 +40,7 @@ fi # Verifications # #----------------------------------------------------------# -check_args '2' "$#" 'MAIL_HOSTNAME MAIL_IP' +check_args '2' "$#" 'MAIL_HOSTNAME MAIL_IP [NETMASK]' is_domain_format_valid "$MAIL_HOSTNAME" is_ip_format_valid "$MAIL_IP" From aaf20378b1a2888f81af624e582486ef6507f849 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 8 May 2022 15:59:46 +0200 Subject: [PATCH 394/984] Create barracuda.cf --- .../for-download/tools/spamassassin/barracuda.cf | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 src/deb/for-download/tools/spamassassin/barracuda.cf diff --git a/src/deb/for-download/tools/spamassassin/barracuda.cf b/src/deb/for-download/tools/spamassassin/barracuda.cf new file mode 100644 index 00000000..8d0fada9 --- /dev/null +++ b/src/deb/for-download/tools/spamassassin/barracuda.cf @@ -0,0 +1,15 @@ +header IN_BCUDA_RBL rbleval:check_rbl('bcuda', 'b.barracudacentral.org') +describe IN_BCUDA_RBL Received via a relay listed by Barracuda BRBL +tflags IN_BCUDA_RBL net + +header RCVD_IN_BCUDA_RELAY rbleval:check_rbl_results_for('bcuda', '127.0.0.2') +describe RCVD_IN_BCUDA_RELAY BCUDA: relay ip is convicted spammer +tflags RCVD_IN_BCUDA_RELAY net + +score RCVD_IN_BCUDA_RBL 1.50 +score RCVD_IN_BCUDA_RELAY 1.50 + +header IN_BCUDA_HOP rbleval:check_rbl('bcuda-notfirsthop', 'b.barracudacentral.org') +describe IN_BCUDA_HOP Received via a relay listed by Barracuda BRBL +tflags IN_BCUDA_HOP net +score RCVD_IN_BCUDA_HOP 1.50 From d8fb531865e8c899e2f5f9e1ceb90bf643b8f507 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 8 May 2022 16:24:56 +0200 Subject: [PATCH 395/984] Update barracuda.cf --- src/deb/for-download/tools/spamassassin/barracuda.cf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/deb/for-download/tools/spamassassin/barracuda.cf b/src/deb/for-download/tools/spamassassin/barracuda.cf index 8d0fada9..4491d645 100644 --- a/src/deb/for-download/tools/spamassassin/barracuda.cf +++ b/src/deb/for-download/tools/spamassassin/barracuda.cf @@ -6,10 +6,10 @@ header RCVD_IN_BCUDA_RELAY rbleval:check_rbl_results_for('bcuda', '127.0.0.2') describe RCVD_IN_BCUDA_RELAY BCUDA: relay ip is convicted spammer tflags RCVD_IN_BCUDA_RELAY net -score RCVD_IN_BCUDA_RBL 1.50 -score RCVD_IN_BCUDA_RELAY 1.50 +score RCVD_IN_BCUDA_RBL 1.00 +score RCVD_IN_BCUDA_RELAY 3.00 header IN_BCUDA_HOP rbleval:check_rbl('bcuda-notfirsthop', 'b.barracudacentral.org') describe IN_BCUDA_HOP Received via a relay listed by Barracuda BRBL tflags IN_BCUDA_HOP net -score RCVD_IN_BCUDA_HOP 1.50 +score RCVD_IN_BCUDA_HOP 1.00 From 360abd80c07a00d9ad7f546f3d2af45bee89b4dd Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 21 May 2022 12:42:29 +0200 Subject: [PATCH 396/984] Update v-make-separated-ip-for-email --- bin/v-make-separated-ip-for-email | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-make-separated-ip-for-email b/bin/v-make-separated-ip-for-email index 69c8565b..a26c68e3 100644 --- a/bin/v-make-separated-ip-for-email +++ b/bin/v-make-separated-ip-for-email @@ -40,7 +40,7 @@ fi # Verifications # #----------------------------------------------------------# -check_args '2' "$#" 'MAIL_HOSTNAME MAIL_IP [NETMASK]' +check_args '2' "$#" 'MAIL_HOSTNAME MAIL_IP [NETMASK] [INTERFACE]' is_domain_format_valid "$MAIL_HOSTNAME" is_ip_format_valid "$MAIL_IP" From 93f2a62ee84e0642a472136549fe9a6f10f2b367 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 27 May 2022 23:28:25 +0200 Subject: [PATCH 397/984] Fixing insane HTML form bug in Lisr backup details page Without this fix, selecting first item and skiping next item and selecting any other item below, resulted with selected only first item in HTML form array --- web/templates/admin/list_backup_detail.html | 46 +++++++++++---------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/web/templates/admin/list_backup_detail.html b/web/templates/admin/list_backup_detail.html index 096f5198..b2f378d0 100644 --- a/web/templates/admin/list_backup_detail.html +++ b/web/templates/admin/list_backup_detail.html @@ -1,15 +1,18 @@ + +

+
- +
- Vesta Control Panel + myVesta Control Panel @@ -15,6 +15,7 @@ +
-
- - - -
@@ -31,7 +34,7 @@ -
+
:
@@ -45,11 +48,11 @@ ++$i; ?> -
+
- +
@@ -96,11 +99,11 @@ if (!empty($key)) { ?> -
+
- +
@@ -144,11 +147,11 @@ if (!empty($key)) { ?> -
+
- +
@@ -191,11 +194,11 @@ if (!empty($key)) { ?> -
+
- +
@@ -239,11 +242,11 @@ if (!empty($key)) { ?> -
+
- +
@@ -287,11 +290,11 @@ if (!empty($key)) { ?> -
+
- +
@@ -326,11 +329,11 @@ -
+
- +
@@ -388,3 +391,4 @@
+ From c787f2c235c366d1dbf1152ae01a18cbefd52861 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 27 May 2022 23:46:39 +0200 Subject: [PATCH 398/984] Adding Barracuda RBL to SpamAssassin --- src/deb/vesta/postinst | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/deb/vesta/postinst b/src/deb/vesta/postinst index 565047f1..8bda7d8d 100755 --- a/src/deb/vesta/postinst +++ b/src/deb/vesta/postinst @@ -31,6 +31,21 @@ if [ "$release" -eq 11 ]; then sed -i "s/yescrypt/sha512/g" /etc/pam.d/common-password fi +# Adding Barracuda RBL to SpamAssassin +if [ ! -f "/usr/local/vesta/data/upgrades/barracuda_rbl" ]; then + spamassassin_installed=$(/usr/local/vesta/bin/v-list-sys-services | grep -c 'spamassassin') + spamassassin_running=$(/usr/local/vesta/bin/v-list-sys-services | grep 'spamassassin' | grep -c 'running') + if [ $spamassassin_installed -eq 1 ]; then + echo "== Adding Barracuda RBL to SpamAssassin" + wget -nv -O /etc/spamassassin/barracuda.cf http://c.myvestacp.com/tools/spamassassin/barracuda.cf + fi + if [ $spamassassin_running -eq 1 ]; then + echo "== Restarting SpamAssassin" + systemctl restart spamassassin + fi + touch /usr/local/vesta/data/upgrades/barracuda_rbl +fi + # Checking if FreshClam is started after installation if [ ! -f "/usr/local/vesta/data/upgrades/freshclam_start" ]; then clamavup=$(/usr/local/vesta/bin/v-list-sys-services | grep 'clamav-daemon' | grep -c 'running') From 67ba371722abf9545b53fbc8c2999654a643d60c Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 27 May 2022 23:50:14 +0200 Subject: [PATCH 399/984] Barracuda RBL in installer --- install/vst-install-debian.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index 8e87f737..aa1d043c 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -1468,9 +1468,11 @@ if [ "$spamd" = 'yes' ]; then echo "=== Configure SpamAssassin" #update-rc.d spamassassin defaults sed -i "s/ENABLED=0/ENABLED=1/" /etc/default/spamassassin + wget -nv -O /etc/spamassassin/barracuda.cf http://c.myvestacp.com/tools/spamassassin/barracuda.cf currentservice='spamassassin' ensure_startup $currentservice - ensure_start $currentservice + # ensure_start $currentservice + systemctl restart spamassassin fi @@ -1891,6 +1893,7 @@ touch /usr/local/vesta/data/upgrades/enable-tls-in-proftpd touch /usr/local/vesta/data/upgrades/enable_cookie_httponly touch /usr/local/vesta/data/upgrades/fix_exim_494_autoreply touch /usr/local/vesta/data/upgrades/freshclam_start +touch /usr/local/vesta/data/upgrades/barracuda_rbl # Secret URL secretquery='' From 748d42ead7d7a49ba376654e99183ab3e460c374 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 27 May 2022 23:55:58 +0200 Subject: [PATCH 400/984] Update Changelog.md --- Changelog.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Changelog.md b/Changelog.md index 819eea8c..002cd045 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,9 @@ +Version 0.9.8-26-56 [28-May-2022] +================================================== +* Adding Barracuda RBL to SpamAssassin +* Fixing insane HTML form bug in List backup items page +* Script for easy adding second IP address for SMTP authenticated users only (v-make-separated-ip-for-email) + Version 0.9.8-26-55 [26-Apr-2022] ================================================== * Support for MySQL 8 From 8dd8cd07679e8d041cd3c8f24fd264cb9b56ffad Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 27 May 2022 23:57:37 +0200 Subject: [PATCH 401/984] Version 0.9.8-26-56 --- src/deb/latest.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/latest.txt b/src/deb/latest.txt index f9160904..2a785f14 100644 --- a/src/deb/latest.txt +++ b/src/deb/latest.txt @@ -1 +1 @@ -vesta-0.9.8-26-55 +vesta-0.9.8-26-56 From 0f86941e8e507e072a9396fa136770c0403a5e7b Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 4 Jun 2022 19:06:23 +0200 Subject: [PATCH 402/984] Fix for Sed Injection Vulnerability --- bin/v-change-sys-config-value | 1 + func/main.sh | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/bin/v-change-sys-config-value b/bin/v-change-sys-config-value index 10657656..3681075c 100755 --- a/bin/v-change-sys-config-value +++ b/bin/v-change-sys-config-value @@ -28,6 +28,7 @@ PATH="$PATH:/usr/local/sbin:/sbin:/usr/sbin:/root/bin" check_args '2' "$#" 'KEY VALUE' is_format_valid 'key' +format_no_quotes "$value" 'value' #----------------------------------------------------------# # Action # diff --git a/func/main.sh b/func/main.sh index 9346e918..c4169b01 100644 --- a/func/main.sh +++ b/func/main.sh @@ -838,6 +838,22 @@ is_format_valid_shell() { exit $E_INVALID fi } + +format_no_quotes() { + exclude="['|\"]" + if [[ "$1" =~ $exclude ]]; then + check_result "$E_INVALID" "Invalid $2 contains qoutes (\" or ') :: $1" + fi + is_no_new_line_format "$1" +} + +is_no_new_line_format() { + test=$(echo "$1" | head -n1 ); + if [[ "$test" != "$1" ]]; then + check_result "$E_INVALID" "invalid value :: $1" + fi +} + # Format validation controller is_format_valid() { for arg_name in $*; do @@ -846,6 +862,7 @@ is_format_valid() { case $arg_name in account) is_user_format_valid "$arg" "$arg_name";; action) is_fw_action_format_valid "$arg";; + alias) is_alias_format_valid "$arg" ;; aliases) is_alias_format_valid "$arg" ;; antispam) is_boolean_format_valid "$arg" 'antispam' ;; antivirus) is_boolean_format_valid "$arg" 'antivirus' ;; From c7aa6ec7494bc3b7ac4885182383c1bf88692c1b Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Wed, 6 Jul 2022 12:48:09 +0200 Subject: [PATCH 403/984] Fix for Exim4 fastopen with Gmail services (Debian11) --- install/debian/11/exim/exim4.conf.template | 1 + 1 file changed, 1 insertion(+) diff --git a/install/debian/11/exim/exim4.conf.template b/install/debian/11/exim/exim4.conf.template index a041b329..4b3c0dd9 100644 --- a/install/debian/11/exim/exim4.conf.template +++ b/install/debian/11/exim/exim4.conf.template @@ -319,6 +319,7 @@ remote_smtp: dkim_private_key = DKIM_PRIVATE_KEY dkim_canon = relaxed dkim_strict = 0 + hosts_try_fastopen = !*.l.google.com hosts_try_chunking = !93.188.3.0/24 procmail: From 2598785a755bc59d2691fc17c6bce400ae188641 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Wed, 6 Jul 2022 13:25:34 +0200 Subject: [PATCH 404/984] Fix for Exim4 fastopen with Gmail services (Debian11) --- install/debian/11/exim/exim4.conf.template-RC | 1 + 1 file changed, 1 insertion(+) diff --git a/install/debian/11/exim/exim4.conf.template-RC b/install/debian/11/exim/exim4.conf.template-RC index 9c5fc671..605d848a 100644 --- a/install/debian/11/exim/exim4.conf.template-RC +++ b/install/debian/11/exim/exim4.conf.template-RC @@ -345,6 +345,7 @@ remote_smtp: dkim_private_key = DKIM_PRIVATE_KEY dkim_canon = relaxed dkim_strict = 0 + hosts_try_fastopen = !*.l.google.com hosts_try_chunking = !93.188.3.0/24 procmail: From cf8a49f7394e91f4d8ee22040695f7ef0d914122 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Wed, 6 Jul 2022 14:38:58 +0200 Subject: [PATCH 405/984] Patch for GMail SMTP timeouts --- src/deb/vesta/postinst | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/deb/vesta/postinst b/src/deb/vesta/postinst index 8bda7d8d..cc798224 100755 --- a/src/deb/vesta/postinst +++ b/src/deb/vesta/postinst @@ -31,6 +31,24 @@ if [ "$release" -eq 11 ]; then sed -i "s/yescrypt/sha512/g" /etc/pam.d/common-password fi +# Fixing Gmail hosts_try_fastopen in Exim4 +if [ "$release" -eq 11 ]; then + if [ -f "/etc/exim4/exim4.conf.template" ]; then + check_grep=$(grep -c 'hosts_try_fastopen' /etc/exim4/exim4.conf.template) + if [ "$check_grep" -eq 0 ]; then + echo "=== Fixing Gmail hosts_try_fastopen in Exim4" + FIND="dkim_strict = 0" + ADD=" hosts_try_fastopen = \!\*.l.google.com" + sed -i "s#$FIND#$FIND\n$ADD#g" /etc/exim4/exim4.conf.template + systemctl restart exim4 + + sed -i "s/net.ipv4.tcp_window_scaling/#net.ipv4.tcp_window_scaling/g" /etc/sysctl.conf + echo 1 > /proc/sys/net/ipv4/tcp_window_scaling + fi + fi +fi + + # Adding Barracuda RBL to SpamAssassin if [ ! -f "/usr/local/vesta/data/upgrades/barracuda_rbl" ]; then spamassassin_installed=$(/usr/local/vesta/bin/v-list-sys-services | grep -c 'spamassassin') From 7f1de189dd0181fde52a7db560122f844e2d344e Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Wed, 6 Jul 2022 15:08:12 +0200 Subject: [PATCH 406/984] Update Changelog.md --- Changelog.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Changelog.md b/Changelog.md index 002cd045..17494c79 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,8 @@ +Version 0.9.8-26-57 [06-Jul-2022] +================================================== +* Fix for GMail SMTP timeouts on Debian11 +* [Security] Fix for Local Sed Injection Vulnerability ( credits to @cleemy-desu-wayo ) + Version 0.9.8-26-56 [28-May-2022] ================================================== * Adding Barracuda RBL to SpamAssassin @@ -7,7 +12,7 @@ Version 0.9.8-26-56 [28-May-2022] Version 0.9.8-26-55 [26-Apr-2022] ================================================== * Support for MySQL 8 -* Preventing brute-force resetting password (thanks to HestiaCP @hestiacp for fix) +* [Security] Preventing brute-force resetting password (thanks to HestiaCP @hestiacp for fix) * Many minor bugfixes Version 0.9.8-26-54 [17-Dec-2021] From 16f18bd8b3d007018c18843a7dea1e8d1c9d7da8 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Wed, 6 Jul 2022 15:09:22 +0200 Subject: [PATCH 407/984] Version 0.9.8-26-57 --- src/deb/latest.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/latest.txt b/src/deb/latest.txt index 2a785f14..162eec34 100644 --- a/src/deb/latest.txt +++ b/src/deb/latest.txt @@ -1 +1 @@ -vesta-0.9.8-26-56 +vesta-0.9.8-26-57 From d3bde491c73460edf0d2e0feff7ca55f8a7920c6 Mon Sep 17 00:00:00 2001 From: Umut Korkmaz Date: Wed, 6 Jul 2022 19:43:11 +0300 Subject: [PATCH 408/984] fix typo --- bin/v-copy-fs-file | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-copy-fs-file b/bin/v-copy-fs-file index 792956ec..87447b40 100755 --- a/bin/v-copy-fs-file +++ b/bin/v-copy-fs-file @@ -43,7 +43,7 @@ fi # Checking destination path rpath=$(readlink -f "$dst_file") if [ -z "$(echo $rpath |egrep "^/tmp|^$homedir")" ]; then - echo "Error: ivalid destination path $dst_file" + echo "Error: invalid destination path $dst_file" exit 2 fi From b13b82112a0b26ec0db5f56f34de75b786ff0da9 Mon Sep 17 00:00:00 2001 From: divinity76 Date: Sat, 9 Jul 2022 11:16:02 +0200 Subject: [PATCH 409/984] avoid out-of-memory serving large logfiles large logfiles previously resulted in out-of-memory errors, see https://github.com/hestiacp/hestiacp/issues/2736 hestacp PR: https://github.com/hestiacp/hestiacp/pull/2741 and no, removing the php end tag was not an accident, it was intentional. end tags, ideally, should only be used when they're absolutely required, because they can easily introduce bugs like printing a newline after the end tag. --- web/download/web-log/index.php | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/web/download/web-log/index.php b/web/download/web-log/index.php index 35ebc335..9078d20c 100644 --- a/web/download/web-log/index.php +++ b/web/download/web-log/index.php @@ -25,11 +25,18 @@ $v_domain = escapeshellarg($_GET['domain']); if ($_GET['type'] == 'access') $type = 'access'; if ($_GET['type'] == 'error') $type = 'error'; -exec (VESTA_CMD."v-list-web-domain-".$type."log $user ".$v_domain." 5000", $output, $return_var); -if ($return_var == 0 ) { - foreach($output as $file) { - echo $file . "\n"; - } + + +$cmd = implode(" ", array( + escapeshellarg(HESTIA_CMD . "v-list-web-domain-" . $type . "log"), + escapeshellarg($user), + escapeshellarg($v_domain), + "5000", +)); +passthru($cmd, $return_var); +if ($return_var != 0) { + $errstr = "Internal server error: command returned non-zero: {$return_var}: {$cmd}"; + echo $errstr; + throw new Exception($errstr); // make sure it ends up in an errorlog somewhere } -?> From b09d244af7ab6dd93f07e63331b483c5f8d10dd7 Mon Sep 17 00:00:00 2001 From: divinity76 Date: Sat, 9 Jul 2022 11:18:30 +0200 Subject: [PATCH 410/984] code-breaking-typo from copypasta --- web/download/web-log/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/download/web-log/index.php b/web/download/web-log/index.php index 9078d20c..e9c63a8d 100644 --- a/web/download/web-log/index.php +++ b/web/download/web-log/index.php @@ -28,7 +28,7 @@ if ($_GET['type'] == 'error') $type = 'error'; $cmd = implode(" ", array( - escapeshellarg(HESTIA_CMD . "v-list-web-domain-" . $type . "log"), + escapeshellarg(VESTA_CMD . "v-list-web-domain-" . $type . "log"), escapeshellarg($user), escapeshellarg($v_domain), "5000", From e65af22a54337f96e2abe2b612efc2b1533c3775 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 12 Jul 2022 18:10:31 +0200 Subject: [PATCH 411/984] hash_equals() in /reset/mail/ Thanks to @divinity76 --- web/reset/mail/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/reset/mail/index.php b/web/reset/mail/index.php index 5419d8ea..c0524ebb 100644 --- a/web/reset/mail/index.php +++ b/web/reset/mail/index.php @@ -149,7 +149,7 @@ if ((!empty($_POST['email'])) && (!empty($_POST['password'])) && (!empty($_POST[ $n_hash = '{MD5}'.$n_hash; // Change password - if ( $v_hash == $n_hash ) { + if ( hash_equals($v_hash, $n_hash ) ) { $v_new_password = tempnam("/tmp","vst"); $fp = fopen($v_new_password, "w"); fwrite($fp, $_POST['new']."\n"); From 1a081dfdbe72eac0aeaf3a27a52f1ff3df8e4555 Mon Sep 17 00:00:00 2001 From: divinity76 Date: Tue, 12 Jul 2022 19:14:55 +0200 Subject: [PATCH 412/984] workaround for passthru() being disabled --- web/download/web-log/index.php | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/web/download/web-log/index.php b/web/download/web-log/index.php index e9c63a8d..4bef3528 100644 --- a/web/download/web-log/index.php +++ b/web/download/web-log/index.php @@ -26,14 +26,24 @@ if ($_GET['type'] == 'access') $type = 'access'; if ($_GET['type'] == 'error') $type = 'error'; - $cmd = implode(" ", array( escapeshellarg(VESTA_CMD . "v-list-web-domain-" . $type . "log"), escapeshellarg($user), escapeshellarg($v_domain), "5000", )); -passthru($cmd, $return_var); + +if(is_callable("passthru")){ + passthru($cmd, $return_var); +} else{ + // passthru is disabled, workaround it by writing the output to a file then reading the file. + // this is slower than passthru, but avoids running out of RAM... + $passthru_is_disabled_workaround_handle = tmpfile(); + $passthru_is_disabled_workaround_file = stream_get_meta_data($passthru_is_disabled_workaround_handle)['uri']; + exec ($cmd . " > " . escapeshellarg($passthru_is_disabled_workaround_file), $output, $return_var); + readfile($passthru_is_disabled_workaround_file); + fclose($passthru_is_disabled_workaround_handle); // fclose(tmpfile()) automatically deletes the file, unlink is not required :) +} if ($return_var != 0) { $errstr = "Internal server error: command returned non-zero: {$return_var}: {$cmd}"; echo $errstr; From 5aebfde6cf471fc69d46f2287c6a285d16f96013 Mon Sep 17 00:00:00 2001 From: divinity76 Date: Tue, 12 Jul 2022 19:17:01 +0200 Subject: [PATCH 413/984] avoid double-quoting v_domain --- web/download/web-log/index.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/web/download/web-log/index.php b/web/download/web-log/index.php index 4bef3528..5e882c89 100644 --- a/web/download/web-log/index.php +++ b/web/download/web-log/index.php @@ -10,8 +10,6 @@ if ((!isset($_GET['token'])) || ($_SESSION['token'] != $_GET['token'])) { exit(); } -$v_domain = $_GET['domain']; -$v_domain = escapeshellarg($_GET['domain']); if ($_GET['type'] == 'access') $type = 'access'; if ($_GET['type'] == 'error') $type = 'error'; @@ -21,7 +19,7 @@ header("Content-Disposition: attachment; filename=".$_GET['domain'].".".$type."- header("Content-Type: application/octet-stream; "); header("Content-Transfer-Encoding: binary"); -$v_domain = escapeshellarg($_GET['domain']); +$v_domain = $_GET['domain']; if ($_GET['type'] == 'access') $type = 'access'; if ($_GET['type'] == 'error') $type = 'error'; From 15c5bdac5134f398288f6c81f30aa9b3f51744a5 Mon Sep 17 00:00:00 2001 From: divinity76 Date: Tue, 12 Jul 2022 20:07:55 +0200 Subject: [PATCH 414/984] turns out VESTA_CMD is 2 commands --- web/download/web-log/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/download/web-log/index.php b/web/download/web-log/index.php index 5e882c89..b9859c6f 100644 --- a/web/download/web-log/index.php +++ b/web/download/web-log/index.php @@ -25,7 +25,7 @@ if ($_GET['type'] == 'error') $type = 'error'; $cmd = implode(" ", array( - escapeshellarg(VESTA_CMD . "v-list-web-domain-" . $type . "log"), + VESTA_CMD . "v-list-web-domain-" . $type . "log", escapeshellarg($user), escapeshellarg($v_domain), "5000", From b2d7c5a1fd6525a91c4e1227ee16797a1f0e1f37 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 12 Jul 2022 20:40:20 +0200 Subject: [PATCH 415/984] Fix for PHP Notice in vesta-php --- web/inc/secure_login.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/web/inc/secure_login.php b/web/inc/secure_login.php index b9e2115c..3ae149d5 100644 --- a/web/inc/secure_login.php +++ b/web/inc/secure_login.php @@ -91,7 +91,8 @@ function prevent_get_csrf () { if (isset($_SERVER['SERVER_PORT']) == false) return; if (isset($_SERVER['HTTP_REFERER']) == false) return; $_SERVER['HTTP_HOST'] = strtolower($_SERVER['HTTP_HOST']); - $_SERVER['HTTP_ORIGIN'] = strtolower($_SERVER['HTTP_ORIGIN']); + if (isset($_SERVER['HTTP_ORIGIN'])) $_SERVER['HTTP_ORIGIN'] = strtolower($_SERVER['HTTP_ORIGIN']); + else $_SERVER['HTTP_ORIGIN']=''; if (substr($_SERVER['HTTP_REFERER'], 0, 8) != "file:///" && substr($_SERVER['HTTP_REFERER'], 0, 7) != "http://" && substr($_SERVER['HTTP_REFERER'], 0, 8) != "https://") return; $host_arr = explode(":", $_SERVER['HTTP_HOST']); $hostname = $host_arr[0]; From 94d7c20a3bba372159b4f576a0cc525c318fce93 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 12 Jul 2022 20:42:10 +0200 Subject: [PATCH 416/984] Version 0.9.8-26-58 --- src/deb/latest.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/latest.txt b/src/deb/latest.txt index 162eec34..5a056019 100644 --- a/src/deb/latest.txt +++ b/src/deb/latest.txt @@ -1 +1 @@ -vesta-0.9.8-26-57 +vesta-0.9.8-26-58 From 8b1c8b658da9302b39fdb9d0b88f3d089522fc9d Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 12 Jul 2022 20:47:56 +0200 Subject: [PATCH 417/984] Update Changelog.md --- Changelog.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Changelog.md b/Changelog.md index 17494c79..c0dcbd49 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,8 @@ +Version 0.9.8-26-58 [12-Jul-2022] +================================================== +* [Security] hash_equals() in /reset/mail/ (credits to @divinity76 ) +* Fix for an boring PHP Notice in vesta-php + Version 0.9.8-26-57 [06-Jul-2022] ================================================== * Fix for GMail SMTP timeouts on Debian11 From 6d365026236d98a425dfd4183eb4b60c6c2d54e2 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 12 Jul 2022 20:52:41 +0200 Subject: [PATCH 418/984] Update Changelog.md --- Changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Changelog.md b/Changelog.md index c0dcbd49..b7e52d49 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,6 +1,7 @@ Version 0.9.8-26-58 [12-Jul-2022] ================================================== * [Security] hash_equals() in /reset/mail/ (credits to @divinity76 ) +* Avoid out-of-memory while downloading large log files from panel (credits to @divinity76 ) * Fix for an boring PHP Notice in vesta-php Version 0.9.8-26-57 [06-Jul-2022] From d625c9722ac512f873b3dcb8182e5ffaddc36c3c Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 12 Jul 2022 21:00:33 +0200 Subject: [PATCH 419/984] Fix for an boring PHP Notice in vesta-php --- web/inc/secure_login.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/web/inc/secure_login.php b/web/inc/secure_login.php index 3ae149d5..7f8c8d15 100644 --- a/web/inc/secure_login.php +++ b/web/inc/secure_login.php @@ -63,7 +63,8 @@ function prevent_post_csrf ($hard_check=false) { if (isset($_SERVER['HTTP_ORIGIN']) == false) $_SERVER['HTTP_ORIGIN'] = ''; } $_SERVER['HTTP_HOST'] = strtolower($_SERVER['HTTP_HOST']); - $_SERVER['HTTP_ORIGIN'] = strtolower($_SERVER['HTTP_ORIGIN']); + if (isset($_SERVER['HTTP_ORIGIN'])) $_SERVER['HTTP_ORIGIN'] = strtolower($_SERVER['HTTP_ORIGIN']); + else $_SERVER['HTTP_ORIGIN']=''; if ($hard_check == false) { if (substr($_SERVER['HTTP_ORIGIN'], 0, 8) != "file:///" && substr($_SERVER['HTTP_ORIGIN'], 0, 7) != "http://" && substr($_SERVER['HTTP_ORIGIN'], 0, 8) != "https://") return; } From bc67f1028a1d6247d5cec6edb35733348d73e46f Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 12 Jul 2022 21:08:30 +0200 Subject: [PATCH 420/984] Fix for an boring PHP Notice in vesta-php --- web/inc/secure_login.php | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/web/inc/secure_login.php b/web/inc/secure_login.php index 7f8c8d15..3dcdb0ae 100644 --- a/web/inc/secure_login.php +++ b/web/inc/secure_login.php @@ -63,8 +63,7 @@ function prevent_post_csrf ($hard_check=false) { if (isset($_SERVER['HTTP_ORIGIN']) == false) $_SERVER['HTTP_ORIGIN'] = ''; } $_SERVER['HTTP_HOST'] = strtolower($_SERVER['HTTP_HOST']); - if (isset($_SERVER['HTTP_ORIGIN'])) $_SERVER['HTTP_ORIGIN'] = strtolower($_SERVER['HTTP_ORIGIN']); - else $_SERVER['HTTP_ORIGIN']=''; + $_SERVER['HTTP_ORIGIN'] = strtolower($_SERVER['HTTP_ORIGIN']); if ($hard_check == false) { if (substr($_SERVER['HTTP_ORIGIN'], 0, 8) != "file:///" && substr($_SERVER['HTTP_ORIGIN'], 0, 7) != "http://" && substr($_SERVER['HTTP_ORIGIN'], 0, 8) != "https://") return; } @@ -92,8 +91,6 @@ function prevent_get_csrf () { if (isset($_SERVER['SERVER_PORT']) == false) return; if (isset($_SERVER['HTTP_REFERER']) == false) return; $_SERVER['HTTP_HOST'] = strtolower($_SERVER['HTTP_HOST']); - if (isset($_SERVER['HTTP_ORIGIN'])) $_SERVER['HTTP_ORIGIN'] = strtolower($_SERVER['HTTP_ORIGIN']); - else $_SERVER['HTTP_ORIGIN']=''; if (substr($_SERVER['HTTP_REFERER'], 0, 8) != "file:///" && substr($_SERVER['HTTP_REFERER'], 0, 7) != "http://" && substr($_SERVER['HTTP_REFERER'], 0, 8) != "https://") return; $host_arr = explode(":", $_SERVER['HTTP_HOST']); $hostname = $host_arr[0]; From d48f6cc4281bd3620f8ed8f7d9ab1dbdb105be7d Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 29 Jul 2022 00:34:52 +0200 Subject: [PATCH 421/984] typo fix --- bin/v-install-wordpress | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-install-wordpress b/bin/v-install-wordpress index 95f6f353..bdf56f72 100644 --- a/bin/v-install-wordpress +++ b/bin/v-install-wordpress @@ -51,7 +51,7 @@ if [ -z "$database" ]; then database="wp" fi -if [ -z "$emil" ]; then +if [ -z "$email" ]; then email="info@$domain"; fi From 44cf0b53063145c88a2b8b809c109582364ec6c1 Mon Sep 17 00:00:00 2001 From: Umut Korkmaz Date: Tue, 2 Aug 2022 17:24:55 +0300 Subject: [PATCH 422/984] Fixed #142 --- web/templates/admin/list_firewall.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/templates/admin/list_firewall.html b/web/templates/admin/list_firewall.html index 889de6a2..a12c9daf 100644 --- a/web/templates/admin/list_firewall.html +++ b/web/templates/admin/list_firewall.html @@ -120,7 +120,7 @@ sort-ip="" sort-comment="
-
+
From 5518e0e0598661a286fbb17bc0b05cec0a3df29e Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 24 Sep 2022 11:55:07 +0200 Subject: [PATCH 423/984] Update v-clean-garbage --- bin/v-clean-garbage | 1 + 1 file changed, 1 insertion(+) diff --git a/bin/v-clean-garbage b/bin/v-clean-garbage index 067ecd58..62bb39c8 100644 --- a/bin/v-clean-garbage +++ b/bin/v-clean-garbage @@ -29,6 +29,7 @@ find /home/*/web/*/public_html/wp-content/envato-backups/ -type f -not -name ".h find /home/*/web/*/public_html/wp-content/ai1wm-backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete find /home/*/web/*/public_html/wp-content/wpvividbackups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete find /home/*/web/*/public_html/wp-content/updraft/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete +find /home/*/web/*/public_html/ -type f -name "*.wpress" -delete find /home/*/web/*/public_html/ -type f -name "error_log" -exec truncate -s 0 {} \; find /home/*/web/*/public_html/ -type f -name "error_log.txt" -exec truncate -s 0 {} \; find /home/ -type f -name "*.log" -exec truncate -s 0 {} \; From e5a03804aa8f8f5f1906778b94b9dc6f89c46578 Mon Sep 17 00:00:00 2001 From: N1ebieski Date: Sun, 25 Sep 2022 14:47:31 +0200 Subject: [PATCH 424/984] Include "hidden" files to backup Files like .htaccess, .env, .git etc --- bin/v-backup-user | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-backup-user b/bin/v-backup-user index e2d7cac9..8bd0bb25 100755 --- a/bin/v-backup-user +++ b/bin/v-backup-user @@ -265,7 +265,7 @@ if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB" != '*' ]; then set +f # Backup files - tar --anchored -cpf- ${fargs[@]} * |gzip -$BACKUP_GZIP - > $tmpdir/web/$domain/domain_data.tar.gz + tar --anchored -cpf- ${fargs[@]} --exclude={'./','../'} . |gzip -$BACKUP_GZIP - > $tmpdir/web/$domain/domain_data.tar.gz done # Print total From 25d3fef4aa6f53b09249fae8001e4357f8215b70 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 26 Sep 2022 14:27:39 +0200 Subject: [PATCH 425/984] Create v-fix-user-permissions --- bin/v-fix-user-permissions | 55 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 bin/v-fix-user-permissions diff --git a/bin/v-fix-user-permissions b/bin/v-fix-user-permissions new file mode 100644 index 00000000..fa902ec3 --- /dev/null +++ b/bin/v-fix-user-permissions @@ -0,0 +1,55 @@ +#!/bin/bash + +# info: +# This script will fix files permissions for desired user (if ownership is lost or files have wrong chmod) + +# options: user + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +whoami=$(whoami) +if [ "$whoami" != "root" ] && [ "$whoami" != "admin" ] ; then + echo "You must be root or admin to execute this script"; + exit 1; +fi + +# Argument definition +user=$1 + +# Includes +source $VESTA/func/main.sh + +#----------------------------------------------------------# +# Verifications # +#----------------------------------------------------------# + +check_args '1' "$#" 'USER' +is_format_valid 'user' +is_object_valid 'user' 'USER' "$user" + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +find /home/$user/conf/mail/ -type d -exec chown Debian-exim:mail {} \; +find /home/$user/conf/mail/*/ -type f -exec chown Debian-exim:mail {} \; +find /home/$user/conf/mail/*/ -name "passwd" -type f -exec chown dovecot:mail {} \; +find /home/$user/mail/ -type d -exec chown $user:mail {} \; +find /home/$user/mail/*/ -type d -exec chown $user:mail {} \; +find /home/$user/mail/*/ -type f -exec chown $user:mail {} \; + +find /home/$user/conf/dns/ -type f -exec chown root:bind {} \; +find /home/$user/conf/ -type d -exec chown root:root {} \; + +find /home/$user/web/*/public_html/ -type d -exec chmod 755 {} + +find /home/$user/web/*/public_html/ -type f -exec chmod 644 {} + +find /home/$user/web/*/public_html/ -exec chown $user:$user {} \; + +echo "Done, permissions fixed for user: $user" + +# Logging +log_event "$OK" "$ARGUMENTS" + +exit From 7f38c8ceafd9abc8c11224902ee3cfbbb837177b Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 14 Oct 2022 16:00:02 +0200 Subject: [PATCH 426/984] Restart DNS after adding acme_challenge TXT record --- bin/v-add-letsencrypt-domain | 1 + 1 file changed, 1 insertion(+) diff --git a/bin/v-add-letsencrypt-domain b/bin/v-add-letsencrypt-domain index 0cea207c..2940bbb6 100755 --- a/bin/v-add-letsencrypt-domain +++ b/bin/v-add-letsencrypt-domain @@ -200,6 +200,7 @@ for auth in $authz; do echo "[$(date)] : EXIT=DNS _acme-challenge record wasn't created" >> /usr/local/vesta/log/letsencrypt.log fi check_result $exitstatus "DNS _acme-challenge record wasn't created" + $BIN/v-restart-dns else if [ "$WEB_SYSTEM" = 'nginx' ] || [ ! -z "$PROXY_SYSTEM" ]; then if [ -f "/usr/local/vesta/web/inc/nginx_proxy" ]; then From 93c1414217ea13ca8b3edcb54ad2f0a73039b325 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 14 Oct 2022 18:38:39 +0200 Subject: [PATCH 427/984] systemctl instead of service in v-restart-dns --- bin/v-restart-dns | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bin/v-restart-dns b/bin/v-restart-dns index 4e7712a7..f96937a1 100755 --- a/bin/v-restart-dns +++ b/bin/v-restart-dns @@ -55,9 +55,10 @@ if [ -z "$DNS_SYSTEM" ] || [ "$DNS_SYSTEM" = 'remote' ] ; then fi # Restart system -service $DNS_SYSTEM reload >/dev/null 2>&1 +systemctl reset-failed $DNS_SYSTEM +systemctl reload $DNS_SYSTEM >/dev/null 2>&1 if [ $? -ne 0 ]; then - service $DNS_SYSTEM restart >/dev/null 2>&1 + systemctl restart $DNS_SYSTEM >/dev/null 2>&1 if [ $? -ne 0 ]; then send_email_report check_result $E_RESTART "$DNS_SYSTEM restart failed" From 374b4da5bc6f440c09eaa2937e631fbbd09df6e5 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Wed, 2 Nov 2022 19:57:48 +0100 Subject: [PATCH 428/984] Update W3TC.json --- src/deb/for-download/tools/W3TC.json | 36 ++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/src/deb/for-download/tools/W3TC.json b/src/deb/for-download/tools/W3TC.json index d42973d0..0ca4cf8d 100644 --- a/src/deb/for-download/tools/W3TC.json +++ b/src/deb/for-download/tools/W3TC.json @@ -1,5 +1,5 @@ { - "version": "2.1.8", + "version": "2.2.7", "cluster.messagebus.debug": false, "cluster.messagebus.enabled": false, "cluster.messagebus.sns.region": "", @@ -26,8 +26,12 @@ "dbcache.redis.servers": [ "127.0.0.1:6379" ], + "dbcache.redis.verify_tls_certificates": true, "dbcache.redis.password": "", "dbcache.redis.dbid": 0, + "dbcache.redis.timeout": 0, + "dbcache.redis.retry_interval": 0, + "dbcache.redis.read_timeout": 0, "dbcache.use_filters": false, "dbcache.reject.constants": [ "APP_REQUEST", @@ -114,8 +118,12 @@ "objectcache.redis.servers": [ "127.0.0.1:6379" ], + "objectcache.redis.verify_tls_certificates": true, "objectcache.redis.password": "", "objectcache.redis.dbid": 0, + "objectcache.redis.timeout": 0, + "objectcache.redis.retry_interval": 0, + "objectcache.redis.read_timeout": 0, "objectcache.groups.global": [ "users", "userlogins", @@ -140,7 +148,7 @@ "pgcache.comment_cookie_ttl": 86400, "pgcache.debug": false, "pgcache.debug_purge": false, - "pgcache.engine": "memcached", + "pgcache.engine": "file_generic", "pgcache.file.gc": 3600, "pgcache.file.nfs": false, "pgcache.file.locking": false, @@ -157,8 +165,12 @@ "pgcache.redis.servers": [ "127.0.0.1:6379" ], + "pgcache.redis.verify_tls_certificates": true, "pgcache.redis.password": "", "pgcache.redis.dbid": 0, + "pgcache.redis.timeout": 0, + "pgcache.redis.retry_interval": 0, + "pgcache.redis.read_timeout": 0, "pgcache.cache.query": false, "pgcache.cache.home": true, "pgcache.cache.feed": false, @@ -304,8 +316,12 @@ "minify.redis.servers": [ "127.0.0.1:6379" ], + "minify.redis.verify_tls_certificates": true, "minify.redis.password": "", "minify.redis.dbid": 0, + "minify.redis.timeout": 0, + "minify.redis.retry_interval": 0, + "minify.redis.read_timeout": 0, "minify.rewrite": true, "minify.options": [], "minify.symlinks": [], @@ -446,6 +462,7 @@ "cdn.s3.bucket.location": "us-east-1", "cdn.s3.cname": [], "cdn.s3.ssl": "auto", + "cdn.s3.public_objects": "enabled", "cdn.s3_compatible.api_host": "auto", "cdn.cf.key": "", "cdn.cf.secret": "", @@ -454,6 +471,7 @@ "cdn.cf.id": "", "cdn.cf.cname": [], "cdn.cf.ssl": "auto", + "cdn.cf.public_objects": "enabled", "cdn.cf2.key": "", "cdn.cf2.secret": "", "cdn.cf2.id": "", @@ -887,8 +905,7 @@ ] } }, - "robots_block.enable": false, - "common.track_usage": false, + "common.track_usage": true, "common.tweeted": false, "config.check": true, "config.path": "", @@ -919,7 +936,18 @@ "plugin.license_key": "", "plugin.type": "", "jquerymigrate.disabled": false, + "imageservice": { + "compression": "lossy", + "auto": "enabled", + "visibility": "never" + }, + "imageservice.configuration_overloaded": true, + "robots_block.enable": false, "fragmentcache": { "engine": "memcached" + }, + "pgcache.bad_behavior_path": "", + "newrelic": { + "monitoring_type": "apm" } } From c6d226023e4427223a691ea0b4b00f20b2a9f244 Mon Sep 17 00:00:00 2001 From: Jaap Marcus <9754650+jaapmarcus@users.noreply.github.com> Date: Thu, 3 Nov 2022 07:14:43 +0100 Subject: [PATCH 429/984] Unsuspend database does not restore permissions remote users See https://github.com/hestiacp/hestiacp/issues/3011 and https://github.com/hestiacp/hestiacp/issues/3014 --- func/db.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/func/db.sh b/func/db.sh index deb9e5b8..20230fec 100644 --- a/func/db.sh +++ b/func/db.sh @@ -468,7 +468,7 @@ suspend_pgsql_database() { # Unsuspend MySQL database unsuspend_mysql_database() { mysql_connect $HOST - query="GRANT ALL ON \`$database\`.* FROM \`$DBUSER\`@\`%\`" + query="GRANT ALL ON \`$database\`.* TO \`$DBUSER\`@\`%\`" mysql_query "$query" > /dev/null query="GRANT ALL ON \`$database\`.* TO \`$DBUSER\`@localhost" mysql_query "$query" > /dev/null From c182d7f0a701c7deb455bf49879340cf6b0bb164 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 3 Nov 2022 15:19:08 +0100 Subject: [PATCH 430/984] Create fix-fpm-poold.sh --- .../tools/patches/fix-fpm-poold.sh | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/deb/for-download/tools/patches/fix-fpm-poold.sh diff --git a/src/deb/for-download/tools/patches/fix-fpm-poold.sh b/src/deb/for-download/tools/patches/fix-fpm-poold.sh new file mode 100644 index 00000000..6c7443b1 --- /dev/null +++ b/src/deb/for-download/tools/patches/fix-fpm-poold.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +if [ -d "/etc/php" ]; then + OLDVAL='php_admin_value\[upload_max_filesize\] = 80M' + NEWVAL='php_admin_value\[upload_max_filesize\] = 800M' + find /etc/php/*/fpm/pool.d/ -name "*.conf" -type f -exec grep -l "$OLDVAL" {} \; | xargs sed -i "s|$OLDVAL|$NEWVAL|g" + find /usr/local/vesta/data/templates/web/apache2/ -type f -name "*.sh" -exec grep -l "$OLDVAL" {} \; | xargs sed -i "s|$OLDVAL|$NEWVAL|g" + + OLDVAL='php_admin_value\[post_max_size\] = 80M' + NEWVAL='php_admin_value\[post_max_size\] = 800M' + find /etc/php/*/fpm/pool.d/ -name "*.conf" -type f -exec grep -l "$OLDVAL" {} \; | xargs sed -i "s|$OLDVAL|$NEWVAL|g" + find /usr/local/vesta/data/templates/web/apache2/ -type f -name "*.sh" -exec grep -l "$OLDVAL" {} \; | xargs sed -i "s|$OLDVAL|$NEWVAL|g" + + OLDVAL='php_admin_value\[memory_limit\] = 256M' + NEWVAL='php_admin_value\[memory_limit\] = 512M' + find /etc/php/*/fpm/pool.d/ -name "*.conf" -type f -exec grep -l "$OLDVAL" {} \; | xargs sed -i "s|$OLDVAL|$NEWVAL|g" + find /usr/local/vesta/data/templates/web/apache2/ -type f -name "*.sh" -exec grep -l "$OLDVAL" {} \; | xargs sed -i "s|$OLDVAL|$NEWVAL|g" + + OLDVAL='pm.max_children = 8' + NEWVAL='pm.max_children = 3' + find /etc/php/*/fpm/pool.d/ -name "*.conf" -type f -exec grep -l "$OLDVAL" {} \; | xargs sed -i "s|$OLDVAL|$NEWVAL|g" + find /usr/local/vesta/data/templates/web/apache2/ -type f -name "*.sh" -exec grep -l "$OLDVAL" {} \; | xargs sed -i "s|$OLDVAL|$NEWVAL|g" + + OLDVAL='request_terminate_timeout = 90s' + NEWVAL='request_terminate_timeout = 360s' + find /etc/php/*/fpm/pool.d/ -name "*.conf" -type f -exec grep -l "$OLDVAL" {} \; | xargs sed -i "s|$OLDVAL|$NEWVAL|g" + find /usr/local/vesta/data/templates/web/apache2/ -type f -name "*.sh" -exec grep -l "$OLDVAL" {} \; | xargs sed -i "s|$OLDVAL|$NEWVAL|g" + + OLDVAL='php_admin_value\[max_execution_time\] = 30' + NEWVAL='php_admin_value\[max_execution_time\] = 300' + find /etc/php/*/fpm/pool.d/ -name "*.conf" -type f -exec grep -l "$OLDVAL" {} \; | xargs sed -i "s|$OLDVAL|$NEWVAL|g" + find /usr/local/vesta/data/templates/web/apache2/ -type f -name "*.sh" -exec grep -l "$OLDVAL" {} \; | xargs sed -i "s|$OLDVAL|$NEWVAL|g" + + systemctl --full --type service --all | grep "php...-fpm" | awk '{print $1}' | xargs systemctl restart +fi + +if [ -f "/etc/apache2/mods-enabled/mpm_event.conf"]; then + sed -i "s#MaxRequestWorkers.*#MaxRequestWorkers 600#g" /etc/apache2/mods-enabled/mpm_event.conf + systemctl restart apache2 +fi From 039dca41c395ae2de9332da083299f82e01e3e87 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 3 Nov 2022 15:23:15 +0100 Subject: [PATCH 431/984] Update fix-fpm-poold.sh --- src/deb/for-download/tools/patches/fix-fpm-poold.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/for-download/tools/patches/fix-fpm-poold.sh b/src/deb/for-download/tools/patches/fix-fpm-poold.sh index 6c7443b1..20879cb7 100644 --- a/src/deb/for-download/tools/patches/fix-fpm-poold.sh +++ b/src/deb/for-download/tools/patches/fix-fpm-poold.sh @@ -34,7 +34,7 @@ if [ -d "/etc/php" ]; then systemctl --full --type service --all | grep "php...-fpm" | awk '{print $1}' | xargs systemctl restart fi -if [ -f "/etc/apache2/mods-enabled/mpm_event.conf"]; then +if [ -f "/etc/apache2/mods-enabled/mpm_event.conf" ]; then sed -i "s#MaxRequestWorkers.*#MaxRequestWorkers 600#g" /etc/apache2/mods-enabled/mpm_event.conf systemctl restart apache2 fi From 402a4286d3ff95994de80eaa29481c666f9a6153 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 3 Nov 2022 15:37:43 +0100 Subject: [PATCH 432/984] Update fix-fpm-poold.sh --- src/deb/for-download/tools/patches/fix-fpm-poold.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/for-download/tools/patches/fix-fpm-poold.sh b/src/deb/for-download/tools/patches/fix-fpm-poold.sh index 20879cb7..e83c11a5 100644 --- a/src/deb/for-download/tools/patches/fix-fpm-poold.sh +++ b/src/deb/for-download/tools/patches/fix-fpm-poold.sh @@ -28,7 +28,7 @@ if [ -d "/etc/php" ]; then OLDVAL='php_admin_value\[max_execution_time\] = 30' NEWVAL='php_admin_value\[max_execution_time\] = 300' - find /etc/php/*/fpm/pool.d/ -name "*.conf" -type f -exec grep -l "$OLDVAL" {} \; | xargs sed -i "s|$OLDVAL|$NEWVAL|g" + find /etc/php/*/fpm/pool.d/ -name "*.conf" -type f -exec grep -l "$OLDVAL" {} \; | xargs sed -i "s|$OLDVAL$|$NEWVAL|g" find /usr/local/vesta/data/templates/web/apache2/ -type f -name "*.sh" -exec grep -l "$OLDVAL" {} \; | xargs sed -i "s|$OLDVAL|$NEWVAL|g" systemctl --full --type service --all | grep "php...-fpm" | awk '{print $1}' | xargs systemctl restart From af11a4cbf2afb438f31bd77bd1fcb408d62da581 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 4 Nov 2022 20:09:50 +0100 Subject: [PATCH 433/984] Update fix-fpm-poold.sh --- src/deb/for-download/tools/patches/fix-fpm-poold.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/deb/for-download/tools/patches/fix-fpm-poold.sh b/src/deb/for-download/tools/patches/fix-fpm-poold.sh index e83c11a5..f9b562a9 100644 --- a/src/deb/for-download/tools/patches/fix-fpm-poold.sh +++ b/src/deb/for-download/tools/patches/fix-fpm-poold.sh @@ -21,15 +21,15 @@ if [ -d "/etc/php" ]; then find /etc/php/*/fpm/pool.d/ -name "*.conf" -type f -exec grep -l "$OLDVAL" {} \; | xargs sed -i "s|$OLDVAL|$NEWVAL|g" find /usr/local/vesta/data/templates/web/apache2/ -type f -name "*.sh" -exec grep -l "$OLDVAL" {} \; | xargs sed -i "s|$OLDVAL|$NEWVAL|g" - OLDVAL='request_terminate_timeout = 90s' + OLDVAL='request_terminate_timeout = ' NEWVAL='request_terminate_timeout = 360s' - find /etc/php/*/fpm/pool.d/ -name "*.conf" -type f -exec grep -l "$OLDVAL" {} \; | xargs sed -i "s|$OLDVAL|$NEWVAL|g" - find /usr/local/vesta/data/templates/web/apache2/ -type f -name "*.sh" -exec grep -l "$OLDVAL" {} \; | xargs sed -i "s|$OLDVAL|$NEWVAL|g" + find /etc/php/*/fpm/pool.d/ -name "*.conf" -type f -exec grep -l "$OLDVAL" {} \; | xargs sed -i "s|$OLDVAL.*|$NEWVAL|g" + find /usr/local/vesta/data/templates/web/apache2/ -type f -name "*.sh" -exec grep -l "$OLDVAL" {} \; | xargs sed -i "s|$OLDVAL.*|$NEWVAL|g" - OLDVAL='php_admin_value\[max_execution_time\] = 30' + OLDVAL='php_admin_value\[max_execution_time\] = ' NEWVAL='php_admin_value\[max_execution_time\] = 300' - find /etc/php/*/fpm/pool.d/ -name "*.conf" -type f -exec grep -l "$OLDVAL" {} \; | xargs sed -i "s|$OLDVAL$|$NEWVAL|g" - find /usr/local/vesta/data/templates/web/apache2/ -type f -name "*.sh" -exec grep -l "$OLDVAL" {} \; | xargs sed -i "s|$OLDVAL|$NEWVAL|g" + find /etc/php/*/fpm/pool.d/ -name "*.conf" -type f -exec grep -l "$OLDVAL" {} \; | xargs sed -i "s|$OLDVAL.*|$NEWVAL|g" + find /usr/local/vesta/data/templates/web/apache2/ -type f -name "*.sh" -exec grep -l "$OLDVAL" {} \; | xargs sed -i "s|$OLDVAL.*|$NEWVAL|g" systemctl --full --type service --all | grep "php...-fpm" | awk '{print $1}' | xargs systemctl restart fi From f89065a80a8095baed2d4f3b0178db59c942e088 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Wed, 9 Nov 2022 10:35:38 +0100 Subject: [PATCH 434/984] Create create-mail-sync.sh --- .../for-download/tools/create-mail-sync.sh | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 src/deb/for-download/tools/create-mail-sync.sh diff --git a/src/deb/for-download/tools/create-mail-sync.sh b/src/deb/for-download/tools/create-mail-sync.sh new file mode 100644 index 00000000..e325754e --- /dev/null +++ b/src/deb/for-download/tools/create-mail-sync.sh @@ -0,0 +1,87 @@ +#!/bin/bash + +################################## +# usage: ./create-mail-sync.sh SRCHOST EMAIL PASSWORD-ON-REMOTE-SERVER [PASSWORD-ON-THIS-SERVER] [TEST] +################################## + +if [ $# -lt 3 ]; then + echo "usage: ./create-mail-sync.sh SRCHOST EMAIL PASSWORD-ON-REMOTE-SERVER [PASSWORD-ON-THIS-SERVER] [TEST]" + exit 1 +fi + +if [ $# -eq 3 ]; then +SRCHOST=$1 +EMAIL=$2 +PASS=$3 +PASS2=$3 +TEST=1 +fi + +if [ $# -eq 4 ]; then +SRCHOST=$1 +EMAIL=$2 +PASS=$3 +PASS2=$4 +TEST=1 +fi + +if [ $# -eq 5 ]; then +SRCHOST=$1 +EMAIL=$2 +PASS=$3 +PASS2=$4 +TEST=$5 +fi + +TESTOPT="" +if [[ $TEST -eq 1 ]]; then + TESTOPT="--justlogin" +fi + +if [ ! -d "accounts" ]; then + mkdir accounts +fi +if [ -f "accounts/$EMAIL" ]; then + echo "********* $EMAIL ALREADY EXISTS !!! ************" + exit 1; + exit +fi + +echo "Writing to: accounts/$EMAIL" +echo "#!/bin/bash + +# --- +# SRCHOST = $SRCHOST +# email = $EMAIL +# pass = $PASS +# pass2 = $PASS2 +# test = $TEST +# --- + +/root/imapsync/imapsync --host1 $SRCHOST --user1 $EMAIL --password1 '$PASS' --ssl1 --host2 localhost --user2 $EMAIL --password2 '$PASS2' $TESTOPT --addheader --automap \"\$@\" + +exit; +# --- +" > accounts/$EMAIL + +chmod a=rwx accounts/$EMAIL + +if [[ $TEST -eq 0 ]]; then + exit 0; +fi + +accounts/$EMAIL +RET=$? + +if [ $RET -eq 0 ]; then + # echo "./create-mail-sync.sh $EMAIL $PASS $PASS2 $TEST" + sed -i "s/--justlogin//g" accounts/$EMAIL + echo "--- OK! ---" + echo "./create-mail-sync.sh '$SRCHOST' '$EMAIL' '$PASS' '$PASS2' $TEST" >> accounts.log +else + echo "********* $EMAIL ERROR !!! [ret: $RET ] ************" + echo "********* $EMAIL ERROR !!! [ret: $RET ] ************" + echo "********* $EMAIL ERROR !!! [ret: $RET ] ************" + rm accounts/$EMAIL +fi +exit $RET; From 8d4eee37d03c4884ef1aabc5bd58581f6617dcbc Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Wed, 9 Nov 2022 15:36:57 +0100 Subject: [PATCH 435/984] Create scanps.sh --- src/deb/for-download/tools/scanps/scanps.sh | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 src/deb/for-download/tools/scanps/scanps.sh diff --git a/src/deb/for-download/tools/scanps/scanps.sh b/src/deb/for-download/tools/scanps/scanps.sh new file mode 100644 index 00000000..fa9129f3 --- /dev/null +++ b/src/deb/for-download/tools/scanps/scanps.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +# run 'crontab -e' and add the following: +# 0,5,10,15,20,25,30,35,40,45,50,55 * * * * /home/scanps.sh > /dev/null 2>&1 + +cd /home +php scanps.php From aa493287f3b77aba380e3cd9cf0d8cc39a9fb0da Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Wed, 9 Nov 2022 16:15:48 +0100 Subject: [PATCH 436/984] Create scanps.php --- src/deb/for-download/tools/scanps/scanps.php | 58 ++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 src/deb/for-download/tools/scanps/scanps.php diff --git a/src/deb/for-download/tools/scanps/scanps.php b/src/deb/for-download/tools/scanps/scanps.php new file mode 100644 index 00000000..7b52064d --- /dev/null +++ b/src/deb/for-download/tools/scanps/scanps.php @@ -0,0 +1,58 @@ + ")!==FALSE) $command.=" 2> /dev/null"; + else { + if (strpos($command, " 2>&1")===FALSE) $command.=" 2>&1"; + } + $ret = exec($command, $out, $ret_no); + return implode("\n", $out); +} + +function is_there($list, $what) { + $arr=explode("\n", $list); + $c=count($arr); + for ($i=1; $i<$c; $i++) if (strpos($arr[$i], $what)!==false) return true; + return false; +} + +$list=my_exec("ps -Af"); +if (is_there($list, "apt")) exit; // the server is in upgrading proccess + +$search_for1="mysqld"; +$search_for2="mariadbd"; +$v1=is_there($list, $search_for1); +$v2=is_there($list, $search_for2); +$sufix=""; + +if ($v1==false && $v2==false) { + echo "- reboot\n"; + $buffer="- reboot\n".$list; + $sufix="_".time(); + $fp = fopen('/home/cron'.$sufix.'.log', 'w'); + fwrite($fp, $buffer); + fclose($fp); + $out=array(); + $ret_no=0; + $uname_arr=posix_uname(); + $hostname=$uname_arr['nodename']; + $email=my_exec("/usr/local/vesta/bin/v-list-user 'admin' | grep 'EMAIL' | awk '{print $2}'"); + mail($email, 'VPS reboot - '.$hostname, $buffer, "From: ".$hostname." "); + sleep(10); + $ret = exec("sudo reboot", $out, $ret_no); + exit; +} else { + echo "- mysql ok\n"; + $fp = fopen('/home/cron.log', 'w'); + fwrite($fp, "- mysql ok"); + fclose($fp); + exit; +} From 7e37ed471112acd4ac8a5bb654921b19303622f7 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Wed, 9 Nov 2022 17:04:10 +0100 Subject: [PATCH 437/984] scanps fixes --- src/deb/for-download/tools/scanps/scanps.php | 18 ++++++++++-------- src/deb/for-download/tools/scanps/scanps.sh | 4 ++-- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/deb/for-download/tools/scanps/scanps.php b/src/deb/for-download/tools/scanps/scanps.php index 7b52064d..d2dbd2b3 100644 --- a/src/deb/for-download/tools/scanps/scanps.php +++ b/src/deb/for-download/tools/scanps/scanps.php @@ -1,10 +1,12 @@ /dev/null 2>&1 function my_exec($command) { $out=array(); @@ -37,21 +39,21 @@ if ($v1==false && $v2==false) { echo "- reboot\n"; $buffer="- reboot\n".$list; $sufix="_".time(); - $fp = fopen('/home/cron'.$sufix.'.log', 'w'); + $fp = fopen('/var/log/scanps_cron'.$sufix.'.log', 'w'); fwrite($fp, $buffer); fclose($fp); $out=array(); $ret_no=0; $uname_arr=posix_uname(); $hostname=$uname_arr['nodename']; - $email=my_exec("/usr/local/vesta/bin/v-list-user 'admin' | grep 'EMAIL' | awk '{print $2}'"); + $email=my_exec("export VESTA=/usr/local/vesta && /usr/local/vesta/bin/v-list-user 'admin' | grep 'EMAIL' | awk '{print $2}'"); mail($email, 'VPS reboot - '.$hostname, $buffer, "From: ".$hostname." "); sleep(10); $ret = exec("sudo reboot", $out, $ret_no); exit; } else { echo "- mysql ok\n"; - $fp = fopen('/home/cron.log', 'w'); + $fp = fopen('/var/log/scanps_cron.log', 'w'); fwrite($fp, "- mysql ok"); fclose($fp); exit; diff --git a/src/deb/for-download/tools/scanps/scanps.sh b/src/deb/for-download/tools/scanps/scanps.sh index fa9129f3..b693d21a 100644 --- a/src/deb/for-download/tools/scanps/scanps.sh +++ b/src/deb/for-download/tools/scanps/scanps.sh @@ -1,7 +1,7 @@ #!/bin/bash # run 'crontab -e' and add the following: -# 0,5,10,15,20,25,30,35,40,45,50,55 * * * * /home/scanps.sh > /dev/null 2>&1 +# */5 * * * * /home/scanps.sh > /dev/null 2>&1 cd /home -php scanps.php +php scanps.php \ No newline at end of file From 595dd5dffd5b90adde74e55f477170d903d2ac3d Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Wed, 9 Nov 2022 19:00:15 +0100 Subject: [PATCH 438/984] Delete create-mail-sync.sh --- .../for-download/tools/create-mail-sync.sh | 87 ------------------- 1 file changed, 87 deletions(-) delete mode 100644 src/deb/for-download/tools/create-mail-sync.sh diff --git a/src/deb/for-download/tools/create-mail-sync.sh b/src/deb/for-download/tools/create-mail-sync.sh deleted file mode 100644 index e325754e..00000000 --- a/src/deb/for-download/tools/create-mail-sync.sh +++ /dev/null @@ -1,87 +0,0 @@ -#!/bin/bash - -################################## -# usage: ./create-mail-sync.sh SRCHOST EMAIL PASSWORD-ON-REMOTE-SERVER [PASSWORD-ON-THIS-SERVER] [TEST] -################################## - -if [ $# -lt 3 ]; then - echo "usage: ./create-mail-sync.sh SRCHOST EMAIL PASSWORD-ON-REMOTE-SERVER [PASSWORD-ON-THIS-SERVER] [TEST]" - exit 1 -fi - -if [ $# -eq 3 ]; then -SRCHOST=$1 -EMAIL=$2 -PASS=$3 -PASS2=$3 -TEST=1 -fi - -if [ $# -eq 4 ]; then -SRCHOST=$1 -EMAIL=$2 -PASS=$3 -PASS2=$4 -TEST=1 -fi - -if [ $# -eq 5 ]; then -SRCHOST=$1 -EMAIL=$2 -PASS=$3 -PASS2=$4 -TEST=$5 -fi - -TESTOPT="" -if [[ $TEST -eq 1 ]]; then - TESTOPT="--justlogin" -fi - -if [ ! -d "accounts" ]; then - mkdir accounts -fi -if [ -f "accounts/$EMAIL" ]; then - echo "********* $EMAIL ALREADY EXISTS !!! ************" - exit 1; - exit -fi - -echo "Writing to: accounts/$EMAIL" -echo "#!/bin/bash - -# --- -# SRCHOST = $SRCHOST -# email = $EMAIL -# pass = $PASS -# pass2 = $PASS2 -# test = $TEST -# --- - -/root/imapsync/imapsync --host1 $SRCHOST --user1 $EMAIL --password1 '$PASS' --ssl1 --host2 localhost --user2 $EMAIL --password2 '$PASS2' $TESTOPT --addheader --automap \"\$@\" - -exit; -# --- -" > accounts/$EMAIL - -chmod a=rwx accounts/$EMAIL - -if [[ $TEST -eq 0 ]]; then - exit 0; -fi - -accounts/$EMAIL -RET=$? - -if [ $RET -eq 0 ]; then - # echo "./create-mail-sync.sh $EMAIL $PASS $PASS2 $TEST" - sed -i "s/--justlogin//g" accounts/$EMAIL - echo "--- OK! ---" - echo "./create-mail-sync.sh '$SRCHOST' '$EMAIL' '$PASS' '$PASS2' $TEST" >> accounts.log -else - echo "********* $EMAIL ERROR !!! [ret: $RET ] ************" - echo "********* $EMAIL ERROR !!! [ret: $RET ] ************" - echo "********* $EMAIL ERROR !!! [ret: $RET ] ************" - rm accounts/$EMAIL -fi -exit $RET; From 56484d4b01561ff79c30556f881bad65c006547c Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Wed, 9 Nov 2022 19:01:02 +0100 Subject: [PATCH 439/984] Create run-all.sh --- src/deb/for-download/tools/imapsync/run-all.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 src/deb/for-download/tools/imapsync/run-all.sh diff --git a/src/deb/for-download/tools/imapsync/run-all.sh b/src/deb/for-download/tools/imapsync/run-all.sh new file mode 100644 index 00000000..fa535927 --- /dev/null +++ b/src/deb/for-download/tools/imapsync/run-all.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +cd accounts + +for name in * +do + if [ -f "$name" ]; then + ./$name + fi +done From f5d3d97dfbf0a52647ebd4470df905950f65d9e1 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Wed, 9 Nov 2022 19:01:33 +0100 Subject: [PATCH 440/984] Add files via upload --- .../tools/imapsync/create-mail-sync.sh | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 src/deb/for-download/tools/imapsync/create-mail-sync.sh diff --git a/src/deb/for-download/tools/imapsync/create-mail-sync.sh b/src/deb/for-download/tools/imapsync/create-mail-sync.sh new file mode 100644 index 00000000..e325754e --- /dev/null +++ b/src/deb/for-download/tools/imapsync/create-mail-sync.sh @@ -0,0 +1,87 @@ +#!/bin/bash + +################################## +# usage: ./create-mail-sync.sh SRCHOST EMAIL PASSWORD-ON-REMOTE-SERVER [PASSWORD-ON-THIS-SERVER] [TEST] +################################## + +if [ $# -lt 3 ]; then + echo "usage: ./create-mail-sync.sh SRCHOST EMAIL PASSWORD-ON-REMOTE-SERVER [PASSWORD-ON-THIS-SERVER] [TEST]" + exit 1 +fi + +if [ $# -eq 3 ]; then +SRCHOST=$1 +EMAIL=$2 +PASS=$3 +PASS2=$3 +TEST=1 +fi + +if [ $# -eq 4 ]; then +SRCHOST=$1 +EMAIL=$2 +PASS=$3 +PASS2=$4 +TEST=1 +fi + +if [ $# -eq 5 ]; then +SRCHOST=$1 +EMAIL=$2 +PASS=$3 +PASS2=$4 +TEST=$5 +fi + +TESTOPT="" +if [[ $TEST -eq 1 ]]; then + TESTOPT="--justlogin" +fi + +if [ ! -d "accounts" ]; then + mkdir accounts +fi +if [ -f "accounts/$EMAIL" ]; then + echo "********* $EMAIL ALREADY EXISTS !!! ************" + exit 1; + exit +fi + +echo "Writing to: accounts/$EMAIL" +echo "#!/bin/bash + +# --- +# SRCHOST = $SRCHOST +# email = $EMAIL +# pass = $PASS +# pass2 = $PASS2 +# test = $TEST +# --- + +/root/imapsync/imapsync --host1 $SRCHOST --user1 $EMAIL --password1 '$PASS' --ssl1 --host2 localhost --user2 $EMAIL --password2 '$PASS2' $TESTOPT --addheader --automap \"\$@\" + +exit; +# --- +" > accounts/$EMAIL + +chmod a=rwx accounts/$EMAIL + +if [[ $TEST -eq 0 ]]; then + exit 0; +fi + +accounts/$EMAIL +RET=$? + +if [ $RET -eq 0 ]; then + # echo "./create-mail-sync.sh $EMAIL $PASS $PASS2 $TEST" + sed -i "s/--justlogin//g" accounts/$EMAIL + echo "--- OK! ---" + echo "./create-mail-sync.sh '$SRCHOST' '$EMAIL' '$PASS' '$PASS2' $TEST" >> accounts.log +else + echo "********* $EMAIL ERROR !!! [ret: $RET ] ************" + echo "********* $EMAIL ERROR !!! [ret: $RET ] ************" + echo "********* $EMAIL ERROR !!! [ret: $RET ] ************" + rm accounts/$EMAIL +fi +exit $RET; From 06ebea1a8b7c79f68a3fe228a4d77782d2da9a33 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 14 Nov 2022 14:45:59 +0100 Subject: [PATCH 441/984] Update fix-fpm-poold.sh --- src/deb/for-download/tools/patches/fix-fpm-poold.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/for-download/tools/patches/fix-fpm-poold.sh b/src/deb/for-download/tools/patches/fix-fpm-poold.sh index f9b562a9..d853114a 100644 --- a/src/deb/for-download/tools/patches/fix-fpm-poold.sh +++ b/src/deb/for-download/tools/patches/fix-fpm-poold.sh @@ -35,6 +35,6 @@ if [ -d "/etc/php" ]; then fi if [ -f "/etc/apache2/mods-enabled/mpm_event.conf" ]; then - sed -i "s#MaxRequestWorkers.*#MaxRequestWorkers 600#g" /etc/apache2/mods-enabled/mpm_event.conf + sed -i "s#MaxRequestWorkers.*#MaxRequestWorkers 400#g" /etc/apache2/mods-enabled/mpm_event.conf systemctl restart apache2 fi From e134202224757c32f97fb817ba03ee5105104432 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 22 Nov 2022 09:07:25 +0100 Subject: [PATCH 442/984] Skipping forward proxy while renewing LetsEncrypt --- bin/v-update-letsencrypt-ssl | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/bin/v-update-letsencrypt-ssl b/bin/v-update-letsencrypt-ssl index ac3e2eda..eacbfa05 100755 --- a/bin/v-update-letsencrypt-ssl +++ b/bin/v-update-letsencrypt-ssl @@ -36,6 +36,12 @@ for user in $($BIN/v-list-users plain |cut -f 1); do limit_check=1 fail_counter=$(get_web_counter "$user" "$domain" 'LETSENCRYPT_FAIL_COUNT') + proxy_tpl=$(/usr/local/vesta/bin/v-list-web-domain "$user" "$domain" "shell" | grep 'PROXY:' | cut -d ' ' -f11-) + if [ "$proxy_tpl" = "forward" ]; then + echo "[$(date)] : $domain is using forward proxy, skipping" >> /usr/local/vesta/log/letsencrypt_cron.log + continue; + fi + if [[ "$hostname" = "$domain" ]]; then if [[ "$fail_counter" -eq 7 ]]; then limit_check=0 From 8563303fbef5975ea2ad6242ed005902de44dbbf Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Wed, 23 Nov 2022 14:25:56 +0100 Subject: [PATCH 443/984] Rollback of previous commit --- bin/v-update-letsencrypt-ssl | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/bin/v-update-letsencrypt-ssl b/bin/v-update-letsencrypt-ssl index eacbfa05..819e9846 100755 --- a/bin/v-update-letsencrypt-ssl +++ b/bin/v-update-letsencrypt-ssl @@ -36,11 +36,11 @@ for user in $($BIN/v-list-users plain |cut -f 1); do limit_check=1 fail_counter=$(get_web_counter "$user" "$domain" 'LETSENCRYPT_FAIL_COUNT') - proxy_tpl=$(/usr/local/vesta/bin/v-list-web-domain "$user" "$domain" "shell" | grep 'PROXY:' | cut -d ' ' -f11-) - if [ "$proxy_tpl" = "forward" ]; then - echo "[$(date)] : $domain is using forward proxy, skipping" >> /usr/local/vesta/log/letsencrypt_cron.log - continue; - fi + # proxy_tpl=$(/usr/local/vesta/bin/v-list-web-domain "$user" "$domain" "shell" | grep 'PROXY:' | cut -d ' ' -f11-) + # if [ "$proxy_tpl" = "forward" ]; then + # echo "[$(date)] : $domain is using forward proxy, skipping" >> /usr/local/vesta/log/letsencrypt_cron.log + # continue; + # fi if [[ "$hostname" = "$domain" ]]; then if [[ "$fail_counter" -eq 7 ]]; then From 8e34db9a712be57fc81d05c9abc2bd137a88faf7 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Wed, 23 Nov 2022 14:28:32 +0100 Subject: [PATCH 444/984] Replacing utf8mb4_0900_ai_ci --- bin/v-import-cpanel-backup | 1 + 1 file changed, 1 insertion(+) diff --git a/bin/v-import-cpanel-backup b/bin/v-import-cpanel-backup index a4d40226..d8fdac11 100644 --- a/bin/v-import-cpanel-backup +++ b/bin/v-import-cpanel-backup @@ -157,6 +157,7 @@ for sk_dbr in $sk_db_list echo " Create and restore ${sk_dbr} " mysql < mysql/${sk_dbr}.create sed -i "s/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g" mysql/${sk_dbr}.sql + sed -i "s/utf8mb4_0900_ai_ci/utf8mb4_unicode_ci/g" mysql/${sk_dbr}.sql mysql ${sk_dbr} < mysql/${sk_dbr}.sql else echo "Error: Cant restore database $sk_dbr alredy exists in mysql server" From 93b4b1e466aac7ad0ebea41b3132279757045049 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 26 Nov 2022 15:37:51 +0100 Subject: [PATCH 445/984] Update v-fix-user-permissions --- bin/v-fix-user-permissions | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/bin/v-fix-user-permissions b/bin/v-fix-user-permissions index fa902ec3..ae798992 100644 --- a/bin/v-fix-user-permissions +++ b/bin/v-fix-user-permissions @@ -36,9 +36,15 @@ is_object_valid 'user' 'USER' "$user" find /home/$user/conf/mail/ -type d -exec chown Debian-exim:mail {} \; find /home/$user/conf/mail/*/ -type f -exec chown Debian-exim:mail {} \; find /home/$user/conf/mail/*/ -name "passwd" -type f -exec chown dovecot:mail {} \; + find /home/$user/mail/ -type d -exec chown $user:mail {} \; find /home/$user/mail/*/ -type d -exec chown $user:mail {} \; find /home/$user/mail/*/ -type f -exec chown $user:mail {} \; +find /home/$user/mail/*/ -type d -exec chmod u+rwx {} \; +find /home/$user/mail/*/ -type d -exec chmod g+rwx {} \; +find /home/$user/mail/*/ -type f -exec chmod u+rw {} \; +find /home/$user/mail/*/ -type f -exec chmod g+rw {} \; + find /home/$user/conf/dns/ -type f -exec chown root:bind {} \; find /home/$user/conf/ -type d -exec chown root:root {} \; From 343a4deb73bf1d0d7584e9428495880b695b6cda Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 26 Nov 2022 21:42:09 +0100 Subject: [PATCH 446/984] Additional fix for utf8mb4_0900_ai_ci --- bin/v-import-cpanel-backup | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bin/v-import-cpanel-backup b/bin/v-import-cpanel-backup index d8fdac11..02383018 100644 --- a/bin/v-import-cpanel-backup +++ b/bin/v-import-cpanel-backup @@ -155,6 +155,8 @@ for sk_dbr in $sk_db_list grep -w $sk_dbr server_dbs if [ $? == "1" ]; then echo " Create and restore ${sk_dbr} " + sed -i "s/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g" mysql/${sk_dbr}.create + sed -i "s/utf8mb4_0900_ai_ci/utf8mb4_unicode_ci/g" mysql/${sk_dbr}.create mysql < mysql/${sk_dbr}.create sed -i "s/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g" mysql/${sk_dbr}.sql sed -i "s/utf8mb4_0900_ai_ci/utf8mb4_unicode_ci/g" mysql/${sk_dbr}.sql From d0f5d1a355f67e3c7c0e772536b3a27ffd3f2f06 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 8 Dec 2022 14:13:42 +0100 Subject: [PATCH 447/984] Update fix-fpm-poold.sh --- src/deb/for-download/tools/patches/fix-fpm-poold.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/for-download/tools/patches/fix-fpm-poold.sh b/src/deb/for-download/tools/patches/fix-fpm-poold.sh index d853114a..88534bfd 100644 --- a/src/deb/for-download/tools/patches/fix-fpm-poold.sh +++ b/src/deb/for-download/tools/patches/fix-fpm-poold.sh @@ -35,6 +35,6 @@ if [ -d "/etc/php" ]; then fi if [ -f "/etc/apache2/mods-enabled/mpm_event.conf" ]; then - sed -i "s#MaxRequestWorkers.*#MaxRequestWorkers 400#g" /etc/apache2/mods-enabled/mpm_event.conf + sed -i "s#MaxRequestWorkers.*#MaxRequestWorkers 200#g" /etc/apache2/mods-enabled/mpm_event.conf systemctl restart apache2 fi From cab6df399a781727f31102fc56729c341248e6a7 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 29 Dec 2022 12:57:17 +0100 Subject: [PATCH 448/984] Create v-move-folder-and-make-symlink --- bin/v-move-folder-and-make-symlink | 85 ++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 bin/v-move-folder-and-make-symlink diff --git a/bin/v-move-folder-and-make-symlink b/bin/v-move-folder-and-make-symlink new file mode 100644 index 00000000..f543ff65 --- /dev/null +++ b/bin/v-move-folder-and-make-symlink @@ -0,0 +1,85 @@ +#!/bin/bash + +# info: +# This script will move a folder to the new destination and make a symlink from the old path to the new destination + +# options: FROMFOLDER TOFOLDER + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +whoami=$(whoami) +if [ "$whoami" != "root" ] && [ "$whoami" != "admin" ] ; then + echo "You must be root or admin to execute this script"; + exit 1; +fi + +# Argument definition +FROMFOLDER=$1 +TOFOLDER=$2 + +# Includes +source $VESTA/func/main.sh + +#----------------------------------------------------------# +# Verifications # +#----------------------------------------------------------# + +# Trimming the ending slash, just in case +FROMFOLDER=$(echo "$FROMFOLDER" | sed 's:/*$::') +TOFOLDER=$(echo "$TOFOLDER" | sed 's:/*$::') + +if [ ! -d "$FROMFOLDER" ]; then + echo "Folder $FROMFOLDER does not exists, aborting" + exit 1 +fi + +USER=$(stat -c '%U' "$FROMFOLDER") +GROUP=$(stat -c '%G' "$FROMFOLDER") +PARENTFOLDER=$(dirname "$TOFOLDER") + +if [ ! -d "$PARENTFOLDER" ]; then + PUSER=$(stat -c '%U' "$PARENTFOLDER") + PGROUP=$(stat -c '%G' "$PARENTFOLDER") + echo "= Creating parent folder..." + mkdir -p $PARENTFOLDER + chown $PUSER:$PGROUP $PARENTFOLDER +fi + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +rsync -a "$FROMFOLDER/" "$TOFOLDER/" +# with slashes on the end of the path of both folders +if [ "$?" -ne 0 ]; then + echo "Error happened, aborting" + exit 1 +fi + +if [ "$FROMFOLDER" = "/home/$USER" ] && [ -d "$FROMFOLDER/conf" ]; then + # if we are moving myVesta home folder, we must remove immutable attribute from conf/ files + chattr -R -i "$FROMFOLDER/conf/" > /dev/null 2>&1 + # with slashes on the end of the path of the folder +fi + +rm -rf "$FROMFOLDER" +# without slash on the end of the path of the folder + +ln -s "$TOFOLDER" "$FROMFOLDER" +# without slashes on the end of the path of both folders + +chown -h $USER:$GROUP $FROMFOLDER +# without slash on the end of the path of the folder + +#----------------------------------------------------------# +# Log and print result # +#----------------------------------------------------------# + +echo "Done, folder $FROMFOLDER moved to $TOFOLDER and symlinked" + +# Logging +log_event "$OK" "$ARGUMENTS" + +exit From 5b0056b193a32f312cb3d4c93b8e751a7e4f901c Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 29 Dec 2022 13:18:44 +0100 Subject: [PATCH 449/984] Update v-move-folder-and-make-symlink --- bin/v-move-folder-and-make-symlink | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/v-move-folder-and-make-symlink b/bin/v-move-folder-and-make-symlink index f543ff65..b17f6465 100644 --- a/bin/v-move-folder-and-make-symlink +++ b/bin/v-move-folder-and-make-symlink @@ -43,8 +43,8 @@ if [ ! -d "$PARENTFOLDER" ]; then PUSER=$(stat -c '%U' "$PARENTFOLDER") PGROUP=$(stat -c '%G' "$PARENTFOLDER") echo "= Creating parent folder..." - mkdir -p $PARENTFOLDER - chown $PUSER:$PGROUP $PARENTFOLDER + mkdir -p "$PARENTFOLDER" + chown $PUSER:$PGROUP "$PARENTFOLDER" fi #----------------------------------------------------------# From 75e7d7c5e04feeb40d5ecea15eb26f852215f221 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 29 Dec 2022 13:44:40 +0100 Subject: [PATCH 450/984] Update v-move-folder-and-make-symlink --- bin/v-move-folder-and-make-symlink | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/bin/v-move-folder-and-make-symlink b/bin/v-move-folder-and-make-symlink index b17f6465..6cedcbe0 100644 --- a/bin/v-move-folder-and-make-symlink +++ b/bin/v-move-folder-and-make-symlink @@ -35,6 +35,16 @@ if [ ! -d "$FROMFOLDER" ]; then exit 1 fi +if [ -L "$FROMFOLDER" ]; then + echo "Folder $FROMFOLDER is already symlink, aborting" + exit 1 +fi + +if [ -d "$TOFOLDER" ]; then + echo "Folder $TOFOLDER already exists, aborting" + exit 1 +fi + USER=$(stat -c '%U' "$FROMFOLDER") GROUP=$(stat -c '%G' "$FROMFOLDER") PARENTFOLDER=$(dirname "$TOFOLDER") From 0db48dcdaadd2e03469a9b67dea43e65de3bdb31 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 29 Dec 2022 15:12:58 +0100 Subject: [PATCH 451/984] Update v-move-folder-and-make-symlink --- bin/v-move-folder-and-make-symlink | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/bin/v-move-folder-and-make-symlink b/bin/v-move-folder-and-make-symlink index 6cedcbe0..81561a97 100644 --- a/bin/v-move-folder-and-make-symlink +++ b/bin/v-move-folder-and-make-symlink @@ -45,6 +45,11 @@ if [ -d "$TOFOLDER" ]; then exit 1 fi +if [ -L "$TOFOLDER" ]; then + echo "Folder $TOFOLDER already exists (as symlink), aborting" + exit 1 +fi + USER=$(stat -c '%U' "$FROMFOLDER") GROUP=$(stat -c '%G' "$FROMFOLDER") PARENTFOLDER=$(dirname "$TOFOLDER") From fab56e1b708a00bdfa9a1b3d88d8ef1aba3631b3 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 12 Jan 2023 17:59:49 +0100 Subject: [PATCH 452/984] Another attempt to fix wildcard letsencrypt --- bin/v-add-letsencrypt-domain | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-add-letsencrypt-domain b/bin/v-add-letsencrypt-domain index 2940bbb6..faa51f8c 100755 --- a/bin/v-add-letsencrypt-domain +++ b/bin/v-add-letsencrypt-domain @@ -200,7 +200,7 @@ for auth in $authz; do echo "[$(date)] : EXIT=DNS _acme-challenge record wasn't created" >> /usr/local/vesta/log/letsencrypt.log fi check_result $exitstatus "DNS _acme-challenge record wasn't created" - $BIN/v-restart-dns + systemctl restart bind9 else if [ "$WEB_SYSTEM" = 'nginx' ] || [ ! -z "$PROXY_SYSTEM" ]; then if [ -f "/usr/local/vesta/web/inc/nginx_proxy" ]; then From 171a42a65ebfcd4d8055a2686ccd04d8cc9600a3 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 14 Jan 2023 15:49:46 +0100 Subject: [PATCH 453/984] Update vst-install-debian.sh --- install/vst-install-debian.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index aa1d043c..5ca3690e 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -1627,6 +1627,10 @@ echo "== Get main ip" ip=$(ip addr|grep 'inet '|grep global|head -n1|awk '{print $2}'|cut -f1 -d/) local_ip=$ip +echo "== Writing '$ip $servername' to /etc/hosts" +sed -i "/$servername/d" /etc/hosts +echo "$ip $servername" >> /etc/hosts + # Firewall configuration if [ "$iptables" = 'yes' ]; then echo "== Firewall configuration" From d0a77cf3f652a3dc9cb9b11b26b499f9b386f099 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 14 Jan 2023 16:44:27 +0100 Subject: [PATCH 454/984] Writing '$ip $servername' to /etc/hosts --- install/vst-install-debian.sh | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index 5ca3690e..ffb036dd 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -524,6 +524,8 @@ if ! [[ "$servername" =~ ^${mask1}${mask2}$ ]]; then fi echo "127.0.0.1 $servername" >> /etc/hosts fi +echo "$servername" > /etc/hostname +hostname $servername # Set email if it wasn't set if [ -z "$email" ]; then @@ -1627,9 +1629,15 @@ echo "== Get main ip" ip=$(ip addr|grep 'inet '|grep global|head -n1|awk '{print $2}'|cut -f1 -d/) local_ip=$ip +# Writing '$ip $servername' to /etc/hosts echo "== Writing '$ip $servername' to /etc/hosts" sed -i "/$servername/d" /etc/hosts -echo "$ip $servername" >> /etc/hosts +subdomain=$(echo "$servername" | cut -d . -f-1) +if [ "servername" != "$subdomain" ]; then + echo "$ip $servername $subdomain" >> /etc/hosts +else + echo "$ip $servername" >> /etc/hosts +fi # Firewall configuration if [ "$iptables" = 'yes' ]; then From ae81474f8e902821ede90216124a8c54a9994d90 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 14 Jan 2023 17:15:36 +0100 Subject: [PATCH 455/984] Update vst-install-debian.sh --- install/vst-install-debian.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index ffb036dd..b5fda479 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -1633,7 +1633,7 @@ local_ip=$ip echo "== Writing '$ip $servername' to /etc/hosts" sed -i "/$servername/d" /etc/hosts subdomain=$(echo "$servername" | cut -d . -f-1) -if [ "servername" != "$subdomain" ]; then +if [ "$servername" != "$subdomain" ]; then echo "$ip $servername $subdomain" >> /etc/hosts else echo "$ip $servername" >> /etc/hosts From 2df6bfbb0bea7fa5ad7871c51da112260d94b55d Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 15 Jan 2023 17:37:32 +0100 Subject: [PATCH 456/984] New roundcube version --- src/deb/for-download/tools/install-new-roundcube.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/for-download/tools/install-new-roundcube.sh b/src/deb/for-download/tools/install-new-roundcube.sh index a746ff59..6311563e 100644 --- a/src/deb/for-download/tools/install-new-roundcube.sh +++ b/src/deb/for-download/tools/install-new-roundcube.sh @@ -3,7 +3,7 @@ USER='webmail' DOMAIN='' # enter domain or subdomain -VERSION='1.5.2' +VERSION='1.6.0' DOWNLOAD="https://github.com/roundcube/roundcubemail/releases/download/$VERSION/roundcubemail-$VERSION-complete.tar.gz" LOGINMESSAGE1='Click here for NEW Webmail' From 479805c52cedc5e310704bc7e93c98ed5c0e9c60 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 15 Jan 2023 22:01:43 +0100 Subject: [PATCH 457/984] Cleaning fail2ban database --- bin/v-clean-garbage | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/bin/v-clean-garbage b/bin/v-clean-garbage index 62bb39c8..15b1a5ae 100644 --- a/bin/v-clean-garbage +++ b/bin/v-clean-garbage @@ -34,4 +34,15 @@ find /home/*/web/*/public_html/ -type f -name "error_log" -exec truncate -s 0 {} find /home/*/web/*/public_html/ -type f -name "error_log.txt" -exec truncate -s 0 {} \; find /home/ -type f -name "*.log" -exec truncate -s 0 {} \; +fail2ban_running=$(/usr/local/vesta/bin/v-list-sys-services | grep 'fail2ban' | grep -c 'running') +if [ $fail2ban_running -eq 1 ]; then + systemctl stop fail2ban +fi +if [ -f "/var/lib/fail2ban/fail2ban.sqlite3" ]; then + rm /var/lib/fail2ban/fail2ban.sqlite3 +fi +if [ $fail2ban_running -eq 1 ]; then + systemctl start fail2ban +fi + echo "=== Garbage cleaned ===" From caee59c0152431ca15b03d6a806ac99877200d5c Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 19 Jan 2023 17:43:42 +0100 Subject: [PATCH 458/984] Update v-install-wordpress --- bin/v-install-wordpress | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-install-wordpress b/bin/v-install-wordpress index bdf56f72..ba69c22d 100644 --- a/bin/v-install-wordpress +++ b/bin/v-install-wordpress @@ -1,6 +1,6 @@ #!/bin/bash # info: WordPress installer in one command line -# options: DOMAIN USER +# options: DOMAIN # # Credits to Luka Paunović for wp-cli implememtation From efc2be9f717a049da63527ed5a8994cd8a3b5266 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 19 Jan 2023 17:55:44 +0100 Subject: [PATCH 459/984] Lock WordPress files if they are potentially infected --- bin/v-lock-wordpress | 70 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 bin/v-lock-wordpress diff --git a/bin/v-lock-wordpress b/bin/v-lock-wordpress new file mode 100644 index 00000000..e722abaa --- /dev/null +++ b/bin/v-lock-wordpress @@ -0,0 +1,70 @@ +#!/bin/bash +# info: Lock WordPress files if they are potentially infected (somewhere) by PHP malware, in order to stop further infection +# options: DOMAIN + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +whoami=$(whoami) +if [ "$whoami" != "root" ]; then + echo "You must be root to execute this script" + exit 1 +fi + +# Argument definition +domain=$1 + +user=$(/usr/local/vesta/bin/v-search-domain-owner $domain) +if [ -z "$user" ]; then + check_result $E_NOTEXIST "domain $domain doesn't exist" +fi + +#----------------------------------------------------------# +# Verifications # +#----------------------------------------------------------# + +check_args '1' "$#" 'DOMAIN' +is_format_valid 'domain' +is_object_valid 'user' 'USER' "$user" +is_object_unsuspended 'user' 'USER' "$user" + +if [ ! -d "/home/$user" ]; then + echo "User doesn't exist"; + exit 1; +fi + +if [ ! -d "/home/$user/web/$domain/public_html" ]; then + echo "Domain doesn't exist"; + exit 1; +fi + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +cd /home/$user/web/$domain/public_html + +# lock files +chown -R www-data:www-data public_html/ + +# unlock /wp-content/uploads/ for uploading +chown -R $user:$user public_html/wp-content/uploads/ + +# block .php execution inside /wp-content/uploads/ +cat <public_html/wp-content/uploads/.htaccess +RewriteEngine on +RewriteRule ^.*\.(?:php[1-6]?|pht|phtml?)$ - [NC,F] +EOF + +chown root:root public_html/wp-content/uploads/.htaccess + +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# + +echo "v-lock-wordpress: Done." + +log_event "$OK" "$ARGUMENTS" + +exit From c9c29ce7a95cdf3cd73325a446f495db8ed913cb Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 19 Jan 2023 18:02:56 +0100 Subject: [PATCH 460/984] Create v-unlock-wordpress --- bin/v-unlock-wordpress | 67 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 bin/v-unlock-wordpress diff --git a/bin/v-unlock-wordpress b/bin/v-unlock-wordpress new file mode 100644 index 00000000..faadbdde --- /dev/null +++ b/bin/v-unlock-wordpress @@ -0,0 +1,67 @@ +#!/bin/bash +# info: Unlock previously locked WordPress files if they were potentially infected (somewhere) by PHP malware, in order to stop further infection +# options: DOMAIN + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +whoami=$(whoami) +if [ "$whoami" != "root" ]; then + echo "You must be root to execute this script" + exit 1 +fi + +# Importing system environment +source /etc/profile + +# Includes +source /usr/local/vesta/func/main.sh + +# Argument definition +domain=$1 + +user=$(/usr/local/vesta/bin/v-search-domain-owner $domain) +if [ -z "$user" ]; then + check_result $E_NOTEXIST "domain $domain doesn't exist" +fi + +#----------------------------------------------------------# +# Verifications # +#----------------------------------------------------------# + +check_args '1' "$#" 'DOMAIN' +is_format_valid 'domain' +is_object_valid 'user' 'USER' "$user" +is_object_unsuspended 'user' 'USER' "$user" + +if [ ! -d "/home/$user" ]; then + echo "User doesn't exist"; + exit 1; +fi + +if [ ! -d "/home/$user/web/$domain/public_html" ]; then + echo "Domain doesn't exist"; + exit 1; +fi + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +cd /home/$user/web/$domain/public_html + +# lock files +chown -R $user:$user public_html/ + +rm public_html/wp-content/uploads/.htaccess + +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# + +echo "v-unlock-wordpress: Done." + +log_event "$OK" "$ARGUMENTS" + +exit From 8b756993777b792fd83bdaf8b65bebe5051c98a6 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 19 Jan 2023 18:03:40 +0100 Subject: [PATCH 461/984] Update v-lock-wordpress --- bin/v-lock-wordpress | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/bin/v-lock-wordpress b/bin/v-lock-wordpress index e722abaa..e56f42eb 100644 --- a/bin/v-lock-wordpress +++ b/bin/v-lock-wordpress @@ -12,6 +12,12 @@ if [ "$whoami" != "root" ]; then exit 1 fi +# Importing system environment +source /etc/profile + +# Includes +source /usr/local/vesta/func/main.sh + # Argument definition domain=$1 @@ -43,7 +49,7 @@ fi # Action # #----------------------------------------------------------# -cd /home/$user/web/$domain/public_html +cd /home/$user/web/$domain # lock files chown -R www-data:www-data public_html/ From f397454364a17e7bead2bc1dfd281ac4096e65ce Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 19 Jan 2023 18:04:45 +0100 Subject: [PATCH 462/984] Update v-install-wordpress --- bin/v-install-wordpress | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/bin/v-install-wordpress b/bin/v-install-wordpress index ba69c22d..08abb8a3 100644 --- a/bin/v-install-wordpress +++ b/bin/v-install-wordpress @@ -14,14 +14,6 @@ if [ "$whoami" != "root" ]; then exit 1 fi -# Argument definition -domain=$1 - -user=$(/usr/local/vesta/bin/v-search-domain-owner $domain) -if [ -z "$user" ]; then - check_result $E_NOTEXIST "domain $domain doesn't exist" -fi - # Importing system environment source /etc/profile @@ -29,6 +21,13 @@ source /etc/profile source /usr/local/vesta/func/main.sh source /usr/local/vesta/func/db.sh +# Argument definition +domain=$1 + +user=$(/usr/local/vesta/bin/v-search-domain-owner $domain) +if [ -z "$user" ]; then + check_result $E_NOTEXIST "domain $domain doesn't exist" +fi if [[ $(is_package_full 'DATABASES') = *reached* ]]; then echo "Database limit is reached. Delete database or upgrade user package." From 0fc6fd5fa54f22a504a1dfb06d7646a8bde3de6d Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 19 Jan 2023 18:05:56 +0100 Subject: [PATCH 463/984] Update v-install-wordpress --- bin/v-install-wordpress | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-install-wordpress b/bin/v-install-wordpress index 08abb8a3..e0509fed 100644 --- a/bin/v-install-wordpress +++ b/bin/v-install-wordpress @@ -1,6 +1,6 @@ #!/bin/bash # info: WordPress installer in one command line -# options: DOMAIN +# options: DOMAIN [DB_NAME] [EMAIL] # # Credits to Luka Paunović for wp-cli implememtation From a65f008f9a9a5f3c5f66d3f392ad0fec9f570ed6 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 19 Jan 2023 18:06:44 +0100 Subject: [PATCH 464/984] Update v-unlock-wordpress --- bin/v-unlock-wordpress | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-unlock-wordpress b/bin/v-unlock-wordpress index faadbdde..f54348a1 100644 --- a/bin/v-unlock-wordpress +++ b/bin/v-unlock-wordpress @@ -1,5 +1,5 @@ #!/bin/bash -# info: Unlock previously locked WordPress files if they were potentially infected (somewhere) by PHP malware, in order to stop further infection +# info: Unlock previously locked WordPress files if they were potentially infected (somewhere) by PHP malware # options: DOMAIN #----------------------------------------------------------# From 0a78d937ddbf8ac03551ee2d5ce2a13bf17b1141 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 19 Jan 2023 18:07:43 +0100 Subject: [PATCH 465/984] Update v-unlock-wordpress --- bin/v-unlock-wordpress | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-unlock-wordpress b/bin/v-unlock-wordpress index f54348a1..22b891b1 100644 --- a/bin/v-unlock-wordpress +++ b/bin/v-unlock-wordpress @@ -49,7 +49,7 @@ fi # Action # #----------------------------------------------------------# -cd /home/$user/web/$domain/public_html +cd /home/$user/web/$domain # lock files chown -R $user:$user public_html/ From ee5df22828c7acc7614834d1fe588cf887fc2cf5 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 20 Jan 2023 13:06:34 +0100 Subject: [PATCH 466/984] Update v-lock-wordpress --- bin/v-lock-wordpress | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/bin/v-lock-wordpress b/bin/v-lock-wordpress index e56f42eb..156d1a5e 100644 --- a/bin/v-lock-wordpress +++ b/bin/v-lock-wordpress @@ -15,13 +15,15 @@ fi # Importing system environment source /etc/profile -# Includes -source /usr/local/vesta/func/main.sh - # Argument definition domain=$1 user=$(/usr/local/vesta/bin/v-search-domain-owner $domain) +USER=$user + +# Includes +source /usr/local/vesta/func/main.sh + if [ -z "$user" ]; then check_result $E_NOTEXIST "domain $domain doesn't exist" fi From bdfe17490feab7b1b78fd98a239fe2ec603a3ae9 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 20 Jan 2023 13:07:16 +0100 Subject: [PATCH 467/984] Update v-unlock-wordpress --- bin/v-unlock-wordpress | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/bin/v-unlock-wordpress b/bin/v-unlock-wordpress index 22b891b1..1e2cccc6 100644 --- a/bin/v-unlock-wordpress +++ b/bin/v-unlock-wordpress @@ -15,13 +15,15 @@ fi # Importing system environment source /etc/profile -# Includes -source /usr/local/vesta/func/main.sh - # Argument definition domain=$1 user=$(/usr/local/vesta/bin/v-search-domain-owner $domain) +USER=$user + +# Includes +source /usr/local/vesta/func/main.sh + if [ -z "$user" ]; then check_result $E_NOTEXIST "domain $domain doesn't exist" fi From 7cdd65baf2b7ebab874082a5fd2507133d56e6fa Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 20 Jan 2023 13:09:23 +0100 Subject: [PATCH 468/984] Update v-install-wordpress --- bin/v-install-wordpress | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/bin/v-install-wordpress b/bin/v-install-wordpress index e0509fed..91bbdf0a 100644 --- a/bin/v-install-wordpress +++ b/bin/v-install-wordpress @@ -17,14 +17,16 @@ fi # Importing system environment source /etc/profile -# Includes -source /usr/local/vesta/func/main.sh -source /usr/local/vesta/func/db.sh - # Argument definition domain=$1 user=$(/usr/local/vesta/bin/v-search-domain-owner $domain) +USER=$user + +# Includes +source /usr/local/vesta/func/main.sh +source /usr/local/vesta/func/db.sh + if [ -z "$user" ]; then check_result $E_NOTEXIST "domain $domain doesn't exist" fi From cdbcf84b2cafbb526213fb5b288d1573b6bde9cd Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 22 Jan 2023 16:35:59 +0100 Subject: [PATCH 469/984] unlock /wp-content/cache/ for caching --- bin/v-lock-wordpress | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/bin/v-lock-wordpress b/bin/v-lock-wordpress index 156d1a5e..ea7b2978 100644 --- a/bin/v-lock-wordpress +++ b/bin/v-lock-wordpress @@ -28,6 +28,18 @@ if [ -z "$user" ]; then check_result $E_NOTEXIST "domain $domain doesn't exist" fi +unlock_folder() { + chown -R $user:$user $1/ + + # block .php execution inside folder + cat <$1/.htaccess +RewriteEngine on +RewriteRule ^.*\.(?:php[1-6]?|pht|phtml?)$ - [NC,F] +EOF + + chown root:root $1/.htaccess +} + #----------------------------------------------------------# # Verifications # #----------------------------------------------------------# @@ -57,15 +69,14 @@ cd /home/$user/web/$domain chown -R www-data:www-data public_html/ # unlock /wp-content/uploads/ for uploading -chown -R $user:$user public_html/wp-content/uploads/ +if [ -d "/home/$user/web/$domain/public_html/wp-content/uploads" ]; then + unlock_folder "public_html/wp-content/uploads" +fi -# block .php execution inside /wp-content/uploads/ -cat <public_html/wp-content/uploads/.htaccess -RewriteEngine on -RewriteRule ^.*\.(?:php[1-6]?|pht|phtml?)$ - [NC,F] -EOF - -chown root:root public_html/wp-content/uploads/.htaccess +# unlock /wp-content/cache/ for caching +if [ -d "/home/$user/web/$domain/public_html/wp-content/cache" ]; then + unlock_folder "public_html/wp-content/cache" +fi #----------------------------------------------------------# # Vesta # From a39b192d308a8ea916a1d2ab72409883790ffe27 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 23 Jan 2023 12:47:49 +0100 Subject: [PATCH 470/984] v-lock-wordpress - set correct chmod just in case --- bin/v-lock-wordpress | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bin/v-lock-wordpress b/bin/v-lock-wordpress index ea7b2978..36852781 100644 --- a/bin/v-lock-wordpress +++ b/bin/v-lock-wordpress @@ -68,6 +68,10 @@ cd /home/$user/web/$domain # lock files chown -R www-data:www-data public_html/ +# set correct chmod just in case +find public_html/ -type d -exec chmod 755 {} + +find public_html/ -type f -exec chmod 644 {} + + # unlock /wp-content/uploads/ for uploading if [ -d "/home/$user/web/$domain/public_html/wp-content/uploads" ]; then unlock_folder "public_html/wp-content/uploads" From 8409e19fac8df17eb719da45aa695181cc808946 Mon Sep 17 00:00:00 2001 From: isscbta <53144593+isscbta@users.noreply.github.com> Date: Mon, 30 Jan 2023 13:42:03 +0100 Subject: [PATCH 471/984] Added install-rocket-nginx.sh and the following nginx templates --- .../tools/install-rocket-nginx.sh | 23 +++++++++++ .../wprocket-force-htpps.stpl | 41 +++++++++++++++++++ .../wprocket-force-htpps.tpl | 9 ++++ .../wprocket-hosting.stpl | 39 ++++++++++++++++++ .../wprocket-hosting.tpl | 36 ++++++++++++++++ 5 files changed, 148 insertions(+) create mode 100644 src/deb/for-download/tools/install-rocket-nginx.sh create mode 100644 src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-htpps.stpl create mode 100644 src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-htpps.tpl create mode 100644 src/deb/for-download/tools/rocket-nginx-templates/wprocket-hosting.stpl create mode 100644 src/deb/for-download/tools/rocket-nginx-templates/wprocket-hosting.tpl diff --git a/src/deb/for-download/tools/install-rocket-nginx.sh b/src/deb/for-download/tools/install-rocket-nginx.sh new file mode 100644 index 00000000..0fb5d86d --- /dev/null +++ b/src/deb/for-download/tools/install-rocket-nginx.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +echo "Updating apt, please wait..." +apt-get update > /dev/null 2>&1 + +apt-get -y install git > /dev/null 2>&1 + +if [ ! -d "/etc/nginx/rocket-nginx" ]; then + cd /etc/nginx + git clone https://github.com/satellitewp/rocket-nginx.git +else + cd /etc/nginx/rocket-nginx + git pull + cd .. +fi + +cd rocket-nginx +cp rocket-nginx.ini.disabled rocket-nginx.ini +php rocket-parser.php +wget -nv -O /usr/local/vesta/data/templates/web/nginx/wprocket-force-htpps.tpl https://c.myvestacp.com/tools/rocket-nginx-templates/wprocket-force-htpps.tpl +wget -nv -O /usr/local/vesta/data/templates/web/nginx/wprocket-force-htpps.stpl https://c.myvestacp.com/tools/rocket-nginx-templates/wprocket-force-htpps.stpl +wget -nv -O /usr/local/vesta/data/templates/web/nginx/wprocket-hosting.tpl https://c.myvestacp.com/tools/rocket-nginx-templates/wprocket-hosting.tpl +wget -nv -O /usr/local/vesta/data/templates/web/nginx/wprocket-hosting.stpl https://c.myvestacp.com/tools/rocket-nginx-templates/wprocket-hosting.stpl diff --git a/src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-htpps.stpl b/src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-htpps.stpl new file mode 100644 index 00000000..05ba994a --- /dev/null +++ b/src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-htpps.stpl @@ -0,0 +1,41 @@ +server { + listen %ip%:%proxy_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + + location / { + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %sdocroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass https://%ip%:%web_ssl_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + disable_symlinks if_not_owner from=%docroot%; + + include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; + include %home%/%user%/conf/web/s%proxy_system%.%domain%.conf*; + include rocket-nginx/conf.d/default.conf; +} diff --git a/src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-htpps.tpl b/src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-htpps.tpl new file mode 100644 index 00000000..0c877632 --- /dev/null +++ b/src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-htpps.tpl @@ -0,0 +1,9 @@ +server { + listen %ip%:%proxy_port%; + server_name %domain_idn% %alias_idn%; + location / { + rewrite ^(.*) https://%domain_idn%$1 permanent; + } +include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; +include rocket-nginx/conf.d/default.conf; +} diff --git a/src/deb/for-download/tools/rocket-nginx-templates/wprocket-hosting.stpl b/src/deb/for-download/tools/rocket-nginx-templates/wprocket-hosting.stpl new file mode 100644 index 00000000..2610efc4 --- /dev/null +++ b/src/deb/for-download/tools/rocket-nginx-templates/wprocket-hosting.stpl @@ -0,0 +1,39 @@ +server { + listen %ip%:%proxy_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %sdocroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass https://%ip%:%web_ssl_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + disable_symlinks if_not_owner from=%docroot%; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; + include rocket-nginx/conf.d/default.conf; +} diff --git a/src/deb/for-download/tools/rocket-nginx-templates/wprocket-hosting.tpl b/src/deb/for-download/tools/rocket-nginx-templates/wprocket-hosting.tpl new file mode 100644 index 00000000..521348ae --- /dev/null +++ b/src/deb/for-download/tools/rocket-nginx-templates/wprocket-hosting.tpl @@ -0,0 +1,36 @@ +server { + listen %ip%:%proxy_port%; + server_name %domain_idn% %alias_idn%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + proxy_pass http://%ip%:%web_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %docroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass http://%ip%:%web_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + disable_symlinks if_not_owner from=%docroot%; + + include %home%/%user%/conf/web/nginx.%domain%.conf*; + include rocket-nginx/conf.d/default.conf; +} From ed85dfdac71400c848cbf927ec3bd191b0cde3c3 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 31 Jan 2023 15:03:05 +0100 Subject: [PATCH 472/984] Support for PHP 8.2 --- .../for-download/tools/multi-php-install.sh | 51 +++++++++++++++---- 1 file changed, 42 insertions(+), 9 deletions(-) diff --git a/src/deb/for-download/tools/multi-php-install.sh b/src/deb/for-download/tools/multi-php-install.sh index e847df17..58ec502d 100644 --- a/src/deb/for-download/tools/multi-php-install.sh +++ b/src/deb/for-download/tools/multi-php-install.sh @@ -12,6 +12,7 @@ inst_73=0 inst_74=0 inst_80=0 inst_81=0 +inst_82=0 ####################################################################### @@ -52,8 +53,11 @@ fi if [ $# -gt 8 ]; then inst_81=$9 fi +if [ $# -gt 9 ]; then + inst_82=$10 +fi -if [ $inst_56 -eq 1 ] || [ $inst_70 -eq 1 ] || [ $inst_71 -eq 1 ] || [ $inst_72 -eq 1 ] || [ $inst_73 -eq 1 ] || [ $inst_74 -eq 1 ] || [ $inst_80 -eq 1 ] || [ $inst_81 -eq 1 ]; then +if [ $inst_56 -eq 1 ] || [ $inst_70 -eq 1 ] || [ $inst_71 -eq 1 ] || [ $inst_72 -eq 1 ] || [ $inst_73 -eq 1 ] || [ $inst_74 -eq 1 ] || [ $inst_80 -eq 1 ] || [ $inst_81 -eq 1 ] || [ $inst_82 -eq 1 ]; then inst_repo=1 fi @@ -82,6 +86,7 @@ echo "inst_73=$inst_73" echo "inst_74=$inst_74" echo "inst_80=$inst_80" echo "inst_81=$inst_81" +echo "inst_82=$inst_82" echo "wait_to_press_enter=$wait_to_press_enter" press_enter "=== Press enter to continue ===============================================================================" @@ -115,7 +120,7 @@ service apache2 restart if [ "$inst_56" -eq 1 ]; then press_enter "=== Press enter to install PHP 5.6 ===============================================================================" - apt -y install php5.6-mbstring php5.6-bcmath php5.6-cli php5.6-curl php5.6-fpm php5.6-gd php5.6-intl php5.6-mcrypt php5.6-mysql php5.6-soap php5.6-xml php5.6-zip php5.6-memcache php5.6-memcached + apt -y install php5.6-mbstring php5.6-bcmath php5.6-cli php5.6-curl php5.6-fpm php5.6-gd php5.6-intl php5.6-mcrypt php5.6-mysql php5.6-soap php5.6-xml php5.6-zip php5.6-memcache php5.6-memcached php5.6-imagick update-rc.d php5.6-fpm defaults a2enconf php5.6-fpm systemctl restart apache2 @@ -134,7 +139,7 @@ fi if [ "$inst_70" -eq 1 ]; then press_enter "=== Press enter to install PHP 7.0 ===============================================================================" - apt -y install php7.0-mbstring php7.0-bcmath php7.0-cli php7.0-curl php7.0-fpm php7.0-gd php7.0-intl php7.0-mcrypt php7.0-mysql php7.0-soap php7.0-xml php7.0-zip php7.0-memcache php7.0-memcached + apt -y install php7.0-mbstring php7.0-bcmath php7.0-cli php7.0-curl php7.0-fpm php7.0-gd php7.0-intl php7.0-mcrypt php7.0-mysql php7.0-soap php7.0-xml php7.0-zip php7.0-memcache php7.0-memcached php7.0-imagick update-rc.d php7.0-fpm defaults a2enconf php7.0-fpm systemctl restart apache2 @@ -158,7 +163,7 @@ fi if [ "$inst_71" -eq 1 ]; then press_enter "=== Press enter to install PHP 7.1 ===============================================================================" - apt -y install php7.1-mbstring php7.1-bcmath php7.1-cli php7.1-curl php7.1-fpm php7.1-gd php7.1-intl php7.1-mcrypt php7.1-mysql php7.1-soap php7.1-xml php7.1-zip php7.1-memcache php7.1-memcached + apt -y install php7.1-mbstring php7.1-bcmath php7.1-cli php7.1-curl php7.1-fpm php7.1-gd php7.1-intl php7.1-mcrypt php7.1-mysql php7.1-soap php7.1-xml php7.1-zip php7.1-memcache php7.1-memcached php7.1-imagick update-rc.d php7.1-fpm defaults a2enconf php7.1-fpm systemctl restart apache2 @@ -182,7 +187,7 @@ fi if [ "$inst_72" -eq 1 ]; then press_enter "=== Press enter to install PHP 7.2 ===============================================================================" - apt -y install php7.2-mbstring php7.2-bcmath php7.2-cli php7.2-curl php7.2-fpm php7.2-gd php7.2-intl php7.2-mysql php7.2-soap php7.2-xml php7.2-zip php7.2-memcache php7.2-memcached + apt -y install php7.2-mbstring php7.2-bcmath php7.2-cli php7.2-curl php7.2-fpm php7.2-gd php7.2-intl php7.2-mysql php7.2-soap php7.2-xml php7.2-zip php7.2-memcache php7.2-memcached php7.2-imagick update-rc.d php7.2-fpm defaults a2enconf php7.2-fpm systemctl restart apache2 @@ -206,7 +211,7 @@ fi if [ "$inst_73" -eq 1 ]; then press_enter "=== Press enter to install PHP 7.3 ===============================================================================" - apt -y install php7.3-mbstring php7.3-bcmath php7.3-cli php7.3-curl php7.3-fpm php7.3-gd php7.3-intl php7.3-mysql php7.3-soap php7.3-xml php7.3-zip php7.3-memcache php7.3-memcached + apt -y install php7.3-mbstring php7.3-bcmath php7.3-cli php7.3-curl php7.3-fpm php7.3-gd php7.3-intl php7.3-mysql php7.3-soap php7.3-xml php7.3-zip php7.3-memcache php7.3-memcached php7.3-imagick update-rc.d php7.3-fpm defaults a2enconf php7.3-fpm systemctl restart apache2 @@ -231,7 +236,7 @@ fi if [ "$inst_74" -eq 1 ]; then press_enter "=== Press enter to install PHP 7.4 ===============================================================================" - apt -y install php7.4-mbstring php7.4-bcmath php7.4-cli php7.4-curl php7.4-fpm php7.4-gd php7.4-intl php7.4-mysql php7.4-soap php7.4-xml php7.4-zip php7.4-memcache php7.4-memcached + apt -y install php7.4-mbstring php7.4-bcmath php7.4-cli php7.4-curl php7.4-fpm php7.4-gd php7.4-intl php7.4-mysql php7.4-soap php7.4-xml php7.4-zip php7.4-memcache php7.4-memcached php7.4-imagick update-rc.d php7.4-fpm defaults a2enconf php7.4-fpm apt-get -y remove libapache2-mod-php7.4 @@ -257,7 +262,7 @@ fi if [ "$inst_80" -eq 1 ]; then press_enter "=== Press enter to install PHP 8.0 ===============================================================================" - apt -y install php8.0-mbstring php8.0-bcmath php8.0-cli php8.0-curl php8.0-fpm php8.0-gd php8.0-intl php8.0-mysql php8.0-soap php8.0-xml php8.0-zip php8.0-memcache php8.0-memcached + apt -y install php8.0-mbstring php8.0-bcmath php8.0-cli php8.0-curl php8.0-fpm php8.0-gd php8.0-intl php8.0-mysql php8.0-soap php8.0-xml php8.0-zip php8.0-memcache php8.0-memcached php8.0-imagick update-rc.d php8.0-fpm defaults a2enconf php8.0-fpm a2dismod php8.0 @@ -284,7 +289,7 @@ fi if [ "$inst_81" -eq 1 ]; then press_enter "=== Press enter to install PHP 8.1 ===============================================================================" - apt -y install php8.1-mbstring php8.1-bcmath php8.1-cli php8.1-curl php8.1-fpm php8.1-gd php8.1-intl php8.1-mysql php8.1-soap php8.1-xml php8.1-zip php8.1-memcache php8.1-memcached + apt -y install php8.1-mbstring php8.1-bcmath php8.1-cli php8.1-curl php8.1-fpm php8.1-gd php8.1-intl php8.1-mysql php8.1-soap php8.1-xml php8.1-zip php8.1-memcache php8.1-memcached php8.1-imagick update-rc.d php8.1-fpm defaults a2enconf php8.1-fpm a2dismod php8.1 @@ -309,6 +314,33 @@ if [ "$inst_81" -eq 1 ]; then press_enter "=== PHP 8.1 installed, press enter to continue ===============================================================================" fi +if [ "$inst_82" -eq 1 ]; then + press_enter "=== Press enter to install PHP 8.2 ===============================================================================" + apt -y install php8.2-mbstring php8.2-bcmath php8.2-cli php8.2-curl php8.2-fpm php8.2-gd php8.2-intl php8.2-mysql php8.2-soap php8.2-xml php8.2-zip php8.2-memcache php8.2-memcached php8.2-imagick + update-rc.d php8.2-fpm defaults + a2enconf php8.2-fpm + a2dismod php8.2 + apt-get -y remove libapache2-mod-php8.2 + systemctl restart apache2 + cp -r /etc/php/8.2/ /root/vst_install_backups/php8.2/ + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-82.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-82.stpl + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-82.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-82.tpl + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-82.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-82.sh + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-82-public.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-82-public.stpl + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-82-public.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-82-public.tpl + wget -nv https://c.myvestacp.com/tools/apache-fpm-tpl/PHP-FPM-82-public.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-82-public.sh + chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-82.sh + chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-82-public.sh + echo "=== Patching php.ini for php8.2" + wget -nv https://c.myvestacp.com/tools/patches/php8.1.patch -O /root/php8.1.patch + patch /etc/php/8.2/fpm/php.ini < /root/php8.1.patch + if [ $memory -gt 9999999 ]; then + sed -i "s|opcache.memory_consumption=512|opcache.memory_consumption=2048|g" /etc/php/8.2/fpm/php.ini + fi + service php8.2-fpm restart + press_enter "=== PHP 8.2 installed, press enter to continue ===============================================================================" +fi + apt update > /dev/null 2>&1 apt upgrade -y > /dev/null 2>&1 @@ -324,6 +356,7 @@ if [ $debian_version -ge 10 ]; then a2dismod php7.4 > /dev/null 2>&1 a2dismod php8.0 > /dev/null 2>&1 a2dismod php8.1 > /dev/null 2>&1 + a2dismod php8.2 > /dev/null 2>&1 a2dismod mpm_prefork > /dev/null 2>&1 a2enmod mpm_event > /dev/null 2>&1 apt-get -y remove libapache2-mod-php* > /dev/null 2>&1 From 2db5a6404a023b2a117831f457ddb9dcaaf40aa3 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 31 Jan 2023 15:20:33 +0100 Subject: [PATCH 473/984] PHP 8.2 apache templates --- .../tools/apache-fpm-tpl/PHP-FPM-82-public.sh | 119 ++++++++++++++++++ .../apache-fpm-tpl/PHP-FPM-82-public.stpl | 36 ++++++ .../apache-fpm-tpl/PHP-FPM-82-public.tpl | 30 +++++ .../tools/apache-fpm-tpl/PHP-FPM-82.sh | 119 ++++++++++++++++++ .../tools/apache-fpm-tpl/PHP-FPM-82.stpl | 36 ++++++ .../tools/apache-fpm-tpl/PHP-FPM-82.tpl | 30 +++++ 6 files changed, 370 insertions(+) create mode 100644 src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82-public.sh create mode 100644 src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82-public.stpl create mode 100644 src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82-public.tpl create mode 100644 src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82.sh create mode 100644 src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82.stpl create mode 100644 src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82.tpl diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82-public.sh b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82-public.sh new file mode 100644 index 00000000..a4deb752 --- /dev/null +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82-public.sh @@ -0,0 +1,119 @@ +#!/bin/bash +# Adding php pool conf +user="$1" +domain="$2" +ip="$3" +home_dir="$4" +docroot="$5" + +pool_conf="[$2] + +listen = /run/php/php8.2-fpm-$2.sock +listen.owner = $1 +listen.group = $1 +listen.mode = 0666 + +user = $1 +group = $1 + +pm = ondemand +pm.max_children = 8 +request_terminate_timeout = 360s +pm.max_requests = 4000 +pm.process_idle_timeout = 10s +pm.status_path = /status + +php_admin_value[upload_tmp_dir] = /home/$1/tmp +php_admin_value[session.save_path] = /home/$1/tmp +php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube +php_admin_value[upload_max_filesize] = 800M +php_admin_value[max_execution_time] = 300 +php_admin_value[post_max_size] = 800M +php_admin_value[memory_limit] = 512M +php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" +php_admin_flag[mysql.allow_persistent] = off +php_admin_flag[safe_mode] = off + +env[PATH] = /usr/local/bin:/usr/bin:/bin +env[TMP] = /home/$1/tmp +env[TMPDIR] = /home/$1/tmp +env[TEMP] = /home/$1/tmp +" + +pool_file_56="/etc/php/5.6/fpm/pool.d/$2.conf" +pool_file_70="/etc/php/7.0/fpm/pool.d/$2.conf" +pool_file_71="/etc/php/7.1/fpm/pool.d/$2.conf" +pool_file_72="/etc/php/7.2/fpm/pool.d/$2.conf" +pool_file_73="/etc/php/7.3/fpm/pool.d/$2.conf" +pool_file_74="/etc/php/7.4/fpm/pool.d/$2.conf" +pool_file_80="/etc/php/8.0/fpm/pool.d/$2.conf" +pool_file_81="/etc/php/8.1/fpm/pool.d/$2.conf" +pool_file_82="/etc/php/8.2/fpm/pool.d/$2.conf" + +if [ -f "$pool_file_56" ]; then + rm $pool_file_56 + systemctl reset-failed php5.6-fpm + systemctl restart php5.6-fpm +fi + +if [ -f "$pool_file_70" ]; then + rm $pool_file_70 + systemctl reset-failed php7.0-fpm + systemctl restart php7.0-fpm +fi + +if [ -f "$pool_file_71" ]; then + rm $pool_file_71 + systemctl reset-failed php7.1-fpm + systemctl restart php7.1-fpm +fi + +if [ -f "$pool_file_72" ]; then + rm $pool_file_72 + systemctl reset-failed php7.2-fpm + systemctl restart php7.2-fpm +fi + +if [ -f "$pool_file_73" ]; then + rm $pool_file_73 + systemctl reset-failed php7.3-fpm + systemctl restart php7.3-fpm +fi + +if [ -f "$pool_file_74" ]; then + rm $pool_file_74 + systemctl reset-failed php7.4-fpm + systemctl restart php7.4-fpm +fi + +if [ -f "$pool_file_80" ]; then + rm $pool_file_80 + systemctl reset-failed php8.0-fpm + systemctl restart php8.0-fpm +fi + +if [ -f "$pool_file_81" ]; then + rm $pool_file_81 + systemctl reset-failed php8.1-fpm + systemctl restart php8.1-fpm +fi + +write_file=0 +if [ ! -f "$pool_file_82" ]; then + write_file=1 +else + user_count=$(grep -c "/home/$1/" $pool_file_82) + if [ $user_count -eq 0 ]; then + write_file=1 + fi +fi +if [ $write_file -eq 1 ]; then + echo "$pool_conf" > $pool_file_82 + systemctl reset-failed php8.2-fpm + systemctl restart php8.2-fpm +fi +if [ -f "/etc/php/8.2/fpm/pool.d/www.conf" ]; then + rm /etc/php/8.2/fpm/pool.d/www.conf +fi + +exit 0 diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82-public.stpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82-public.stpl new file mode 100644 index 00000000..6afebb6e --- /dev/null +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82-public.stpl @@ -0,0 +1,36 @@ + + + ServerName %domain_idn% + %alias_string% + ServerAdmin %email% + DocumentRoot %sdocroot%/public + ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ + Alias /vstats/ %home%/%user%/web/%domain%/stats/ + Alias /error/ %home%/%user%/web/%domain%/document_errors/ + #SuexecUserGroup %user% %group% + CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes + CustomLog /var/log/%web_system%/domains/%domain%.log combined + ErrorLog /var/log/%web_system%/domains/%domain%.error.log + + AllowOverride All + + + AllowOverride All + SSLRequireSSL + Options +Includes -Indexes +ExecCGI + + SSLEngine on + SSLVerifyClient none + SSLCertificateFile %ssl_crt% + SSLCertificateKeyFile %ssl_key% + %ssl_ca_str%SSLCertificateChainFile %ssl_ca% + + + SetHandler "proxy:unix:/run/php/php8.2-fpm-%domain%.sock|fcgi://localhost/" + + SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0 + + IncludeOptional %home%/%user%/conf/web/s%web_system%.%domain%.conf* + + + diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82-public.tpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82-public.tpl new file mode 100644 index 00000000..03e67a3d --- /dev/null +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82-public.tpl @@ -0,0 +1,30 @@ + + + ServerName %domain_idn% + %alias_string% + ServerAdmin %email% + DocumentRoot %docroot%/public + ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ + Alias /vstats/ %home%/%user%/web/%domain%/stats/ + Alias /error/ %home%/%user%/web/%domain%/document_errors/ + #SuexecUserGroup %user% %group% + CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes + CustomLog /var/log/%web_system%/domains/%domain%.log combined + ErrorLog /var/log/%web_system%/domains/%domain%.error.log + + AllowOverride All + + + AllowOverride All + Options +Includes -Indexes +ExecCGI + + + + SetHandler "proxy:unix:/run/php/php8.2-fpm-%domain%.sock|fcgi://localhost/" + + SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0 + + IncludeOptional %home%/%user%/conf/web/%web_system%.%domain%.conf* + + + diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82.sh b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82.sh new file mode 100644 index 00000000..a4deb752 --- /dev/null +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82.sh @@ -0,0 +1,119 @@ +#!/bin/bash +# Adding php pool conf +user="$1" +domain="$2" +ip="$3" +home_dir="$4" +docroot="$5" + +pool_conf="[$2] + +listen = /run/php/php8.2-fpm-$2.sock +listen.owner = $1 +listen.group = $1 +listen.mode = 0666 + +user = $1 +group = $1 + +pm = ondemand +pm.max_children = 8 +request_terminate_timeout = 360s +pm.max_requests = 4000 +pm.process_idle_timeout = 10s +pm.status_path = /status + +php_admin_value[upload_tmp_dir] = /home/$1/tmp +php_admin_value[session.save_path] = /home/$1/tmp +php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube +php_admin_value[upload_max_filesize] = 800M +php_admin_value[max_execution_time] = 300 +php_admin_value[post_max_size] = 800M +php_admin_value[memory_limit] = 512M +php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" +php_admin_flag[mysql.allow_persistent] = off +php_admin_flag[safe_mode] = off + +env[PATH] = /usr/local/bin:/usr/bin:/bin +env[TMP] = /home/$1/tmp +env[TMPDIR] = /home/$1/tmp +env[TEMP] = /home/$1/tmp +" + +pool_file_56="/etc/php/5.6/fpm/pool.d/$2.conf" +pool_file_70="/etc/php/7.0/fpm/pool.d/$2.conf" +pool_file_71="/etc/php/7.1/fpm/pool.d/$2.conf" +pool_file_72="/etc/php/7.2/fpm/pool.d/$2.conf" +pool_file_73="/etc/php/7.3/fpm/pool.d/$2.conf" +pool_file_74="/etc/php/7.4/fpm/pool.d/$2.conf" +pool_file_80="/etc/php/8.0/fpm/pool.d/$2.conf" +pool_file_81="/etc/php/8.1/fpm/pool.d/$2.conf" +pool_file_82="/etc/php/8.2/fpm/pool.d/$2.conf" + +if [ -f "$pool_file_56" ]; then + rm $pool_file_56 + systemctl reset-failed php5.6-fpm + systemctl restart php5.6-fpm +fi + +if [ -f "$pool_file_70" ]; then + rm $pool_file_70 + systemctl reset-failed php7.0-fpm + systemctl restart php7.0-fpm +fi + +if [ -f "$pool_file_71" ]; then + rm $pool_file_71 + systemctl reset-failed php7.1-fpm + systemctl restart php7.1-fpm +fi + +if [ -f "$pool_file_72" ]; then + rm $pool_file_72 + systemctl reset-failed php7.2-fpm + systemctl restart php7.2-fpm +fi + +if [ -f "$pool_file_73" ]; then + rm $pool_file_73 + systemctl reset-failed php7.3-fpm + systemctl restart php7.3-fpm +fi + +if [ -f "$pool_file_74" ]; then + rm $pool_file_74 + systemctl reset-failed php7.4-fpm + systemctl restart php7.4-fpm +fi + +if [ -f "$pool_file_80" ]; then + rm $pool_file_80 + systemctl reset-failed php8.0-fpm + systemctl restart php8.0-fpm +fi + +if [ -f "$pool_file_81" ]; then + rm $pool_file_81 + systemctl reset-failed php8.1-fpm + systemctl restart php8.1-fpm +fi + +write_file=0 +if [ ! -f "$pool_file_82" ]; then + write_file=1 +else + user_count=$(grep -c "/home/$1/" $pool_file_82) + if [ $user_count -eq 0 ]; then + write_file=1 + fi +fi +if [ $write_file -eq 1 ]; then + echo "$pool_conf" > $pool_file_82 + systemctl reset-failed php8.2-fpm + systemctl restart php8.2-fpm +fi +if [ -f "/etc/php/8.2/fpm/pool.d/www.conf" ]; then + rm /etc/php/8.2/fpm/pool.d/www.conf +fi + +exit 0 diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82.stpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82.stpl new file mode 100644 index 00000000..ed39fad4 --- /dev/null +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82.stpl @@ -0,0 +1,36 @@ + + + ServerName %domain_idn% + %alias_string% + ServerAdmin %email% + DocumentRoot %sdocroot% + ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ + Alias /vstats/ %home%/%user%/web/%domain%/stats/ + Alias /error/ %home%/%user%/web/%domain%/document_errors/ + #SuexecUserGroup %user% %group% + CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes + CustomLog /var/log/%web_system%/domains/%domain%.log combined + ErrorLog /var/log/%web_system%/domains/%domain%.error.log + + AllowOverride All + + + AllowOverride All + SSLRequireSSL + Options +Includes -Indexes +ExecCGI + + SSLEngine on + SSLVerifyClient none + SSLCertificateFile %ssl_crt% + SSLCertificateKeyFile %ssl_key% + %ssl_ca_str%SSLCertificateChainFile %ssl_ca% + + + SetHandler "proxy:unix:/run/php/php8.2-fpm-%domain%.sock|fcgi://localhost/" + + SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0 + + IncludeOptional %home%/%user%/conf/web/s%web_system%.%domain%.conf* + + + diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82.tpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82.tpl new file mode 100644 index 00000000..789ee9d3 --- /dev/null +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82.tpl @@ -0,0 +1,30 @@ + + + ServerName %domain_idn% + %alias_string% + ServerAdmin %email% + DocumentRoot %docroot% + ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/ + Alias /vstats/ %home%/%user%/web/%domain%/stats/ + Alias /error/ %home%/%user%/web/%domain%/document_errors/ + #SuexecUserGroup %user% %group% + CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes + CustomLog /var/log/%web_system%/domains/%domain%.log combined + ErrorLog /var/log/%web_system%/domains/%domain%.error.log + + AllowOverride All + + + AllowOverride All + Options +Includes -Indexes +ExecCGI + + + + SetHandler "proxy:unix:/run/php/php8.2-fpm-%domain%.sock|fcgi://localhost/" + + SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0 + + IncludeOptional %home%/%user%/conf/web/%web_system%.%domain%.conf* + + + From 91ac345b3e191739ea9f2f96b24a6356856b0006 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 31 Jan 2023 15:26:38 +0100 Subject: [PATCH 474/984] default php 8.2 www.conf --- .../tools/default-pool.d/8.2/www.conf | 484 ++++++++++++++++++ 1 file changed, 484 insertions(+) create mode 100644 src/deb/for-download/tools/default-pool.d/8.2/www.conf diff --git a/src/deb/for-download/tools/default-pool.d/8.2/www.conf b/src/deb/for-download/tools/default-pool.d/8.2/www.conf new file mode 100644 index 00000000..ffdd57b7 --- /dev/null +++ b/src/deb/for-download/tools/default-pool.d/8.2/www.conf @@ -0,0 +1,484 @@ +; Start a new pool named 'www'. +; the variable $pool can be used in any directive and will be replaced by the +; pool name ('www' here) +[www] + +; Per pool prefix +; It only applies on the following directives: +; - 'access.log' +; - 'slowlog' +; - 'listen' (unixsocket) +; - 'chroot' +; - 'chdir' +; - 'php_values' +; - 'php_admin_values' +; When not set, the global prefix (or /usr) applies instead. +; Note: This directive can also be relative to the global prefix. +; Default Value: none +;prefix = /path/to/pools/$pool + +; Unix user/group of processes +; Note: The user is mandatory. If the group is not set, the default user's group +; will be used. +user = www-data +group = www-data + +; The address on which to accept FastCGI requests. +; Valid syntaxes are: +; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on +; a specific port; +; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on +; a specific port; +; 'port' - to listen on a TCP socket to all addresses +; (IPv6 and IPv4-mapped) on a specific port; +; '/path/to/unix/socket' - to listen on a unix socket. +; Note: This value is mandatory. +listen = /run/php/php8.2-fpm.sock + +; Set listen(2) backlog. +; Default Value: 511 (-1 on Linux, FreeBSD and OpenBSD) +;listen.backlog = 511 + +; Set permissions for unix socket, if one is used. In Linux, read/write +; permissions must be set in order to allow connections from a web server. Many +; BSD-derived systems allow connections regardless of permissions. The owner +; and group can be specified either by name or by their numeric IDs. +; Default Values: user and group are set as the running user +; mode is set to 0660 +listen.owner = www-data +listen.group = www-data +;listen.mode = 0660 +; When POSIX Access Control Lists are supported you can set them using +; these options, value is a comma separated list of user/group names. +; When set, listen.owner and listen.group are ignored +;listen.acl_users = +;listen.acl_groups = + +; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. +; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original +; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address +; must be separated by a comma. If this value is left blank, connections will be +; accepted from any ip address. +; Default Value: any +;listen.allowed_clients = 127.0.0.1 + +; Set the associated the route table (FIB). FreeBSD only +; Default Value: -1 +;listen.setfib = 1 + +; Specify the nice(2) priority to apply to the pool processes (only if set) +; The value can vary from -19 (highest priority) to 20 (lower priority) +; Note: - It will only work if the FPM master process is launched as root +; - The pool processes will inherit the master process priority +; unless it specified otherwise +; Default Value: no set +; process.priority = -19 + +; Set the process dumpable flag (PR_SET_DUMPABLE prctl for Linux or +; PROC_TRACE_CTL procctl for FreeBSD) even if the process user +; or group is different than the master process user. It allows to create process +; core dump and ptrace the process for the pool user. +; Default Value: no +; process.dumpable = yes + +; Choose how the process manager will control the number of child processes. +; Possible Values: +; static - a fixed number (pm.max_children) of child processes; +; dynamic - the number of child processes are set dynamically based on the +; following directives. With this process management, there will be +; always at least 1 children. +; pm.max_children - the maximum number of children that can +; be alive at the same time. +; pm.start_servers - the number of children created on startup. +; pm.min_spare_servers - the minimum number of children in 'idle' +; state (waiting to process). If the number +; of 'idle' processes is less than this +; number then some children will be created. +; pm.max_spare_servers - the maximum number of children in 'idle' +; state (waiting to process). If the number +; of 'idle' processes is greater than this +; number then some children will be killed. +; pm.max_spawn_rate - the maximum number of rate to spawn child +; processes at once. +; ondemand - no children are created at startup. Children will be forked when +; new requests will connect. The following parameter are used: +; pm.max_children - the maximum number of children that +; can be alive at the same time. +; pm.process_idle_timeout - The number of seconds after which +; an idle process will be killed. +; Note: This value is mandatory. +pm = dynamic + +; The number of child processes to be created when pm is set to 'static' and the +; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. +; This value sets the limit on the number of simultaneous requests that will be +; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. +; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP +; CGI. The below defaults are based on a server without much resources. Don't +; forget to tweak pm.* to fit your needs. +; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' +; Note: This value is mandatory. +pm.max_children = 5 + +; The number of child processes created on startup. +; Note: Used only when pm is set to 'dynamic' +; Default Value: (min_spare_servers + max_spare_servers) / 2 +pm.start_servers = 2 + +; The desired minimum number of idle server processes. +; Note: Used only when pm is set to 'dynamic' +; Note: Mandatory when pm is set to 'dynamic' +pm.min_spare_servers = 1 + +; The desired maximum number of idle server processes. +; Note: Used only when pm is set to 'dynamic' +; Note: Mandatory when pm is set to 'dynamic' +pm.max_spare_servers = 3 + +; The number of rate to spawn child processes at once. +; Note: Used only when pm is set to 'dynamic' +; Note: Mandatory when pm is set to 'dynamic' +; Default Value: 32 +;pm.max_spawn_rate = 32 + +; The number of seconds after which an idle process will be killed. +; Note: Used only when pm is set to 'ondemand' +; Default Value: 10s +;pm.process_idle_timeout = 10s; + +; The number of requests each child process should execute before respawning. +; This can be useful to work around memory leaks in 3rd party libraries. For +; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. +; Default Value: 0 +;pm.max_requests = 500 + +; The URI to view the FPM status page. If this value is not set, no URI will be +; recognized as a status page. It shows the following information: +; pool - the name of the pool; +; process manager - static, dynamic or ondemand; +; start time - the date and time FPM has started; +; start since - number of seconds since FPM has started; +; accepted conn - the number of request accepted by the pool; +; listen queue - the number of request in the queue of pending +; connections (see backlog in listen(2)); +; max listen queue - the maximum number of requests in the queue +; of pending connections since FPM has started; +; listen queue len - the size of the socket queue of pending connections; +; idle processes - the number of idle processes; +; active processes - the number of active processes; +; total processes - the number of idle + active processes; +; max active processes - the maximum number of active processes since FPM +; has started; +; max children reached - number of times, the process limit has been reached, +; when pm tries to start more children (works only for +; pm 'dynamic' and 'ondemand'); +; Value are updated in real time. +; Example output: +; pool: www +; process manager: static +; start time: 01/Jul/2011:17:53:49 +0200 +; start since: 62636 +; accepted conn: 190460 +; listen queue: 0 +; max listen queue: 1 +; listen queue len: 42 +; idle processes: 4 +; active processes: 11 +; total processes: 15 +; max active processes: 12 +; max children reached: 0 +; +; By default the status page output is formatted as text/plain. Passing either +; 'html', 'xml' or 'json' in the query string will return the corresponding +; output syntax. Example: +; http://www.foo.bar/status +; http://www.foo.bar/status?json +; http://www.foo.bar/status?html +; http://www.foo.bar/status?xml +; +; By default the status page only outputs short status. Passing 'full' in the +; query string will also return status for each pool process. +; Example: +; http://www.foo.bar/status?full +; http://www.foo.bar/status?json&full +; http://www.foo.bar/status?html&full +; http://www.foo.bar/status?xml&full +; The Full status returns for each process: +; pid - the PID of the process; +; state - the state of the process (Idle, Running, ...); +; start time - the date and time the process has started; +; start since - the number of seconds since the process has started; +; requests - the number of requests the process has served; +; request duration - the duration in µs of the requests; +; request method - the request method (GET, POST, ...); +; request URI - the request URI with the query string; +; content length - the content length of the request (only with POST); +; user - the user (PHP_AUTH_USER) (or '-' if not set); +; script - the main script called (or '-' if not set); +; last request cpu - the %cpu the last request consumed +; it's always 0 if the process is not in Idle state +; because CPU calculation is done when the request +; processing has terminated; +; last request memory - the max amount of memory the last request consumed +; it's always 0 if the process is not in Idle state +; because memory calculation is done when the request +; processing has terminated; +; If the process is in Idle state, then informations are related to the +; last request the process has served. Otherwise informations are related to +; the current request being served. +; Example output: +; ************************ +; pid: 31330 +; state: Running +; start time: 01/Jul/2011:17:53:49 +0200 +; start since: 63087 +; requests: 12808 +; request duration: 1250261 +; request method: GET +; request URI: /test_mem.php?N=10000 +; content length: 0 +; user: - +; script: /home/fat/web/docs/php/test_mem.php +; last request cpu: 0.00 +; last request memory: 0 +; +; Note: There is a real-time FPM status monitoring sample web page available +; It's available in: /usr/share/php/8.2/fpm/status.html +; +; Note: The value must start with a leading slash (/). The value can be +; anything, but it may not be a good idea to use the .php extension or it +; may conflict with a real PHP file. +; Default Value: not set +;pm.status_path = /status + +; The address on which to accept FastCGI status request. This creates a new +; invisible pool that can handle requests independently. This is useful +; if the main pool is busy with long running requests because it is still possible +; to get the status before finishing the long running requests. +; +; Valid syntaxes are: +; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on +; a specific port; +; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on +; a specific port; +; 'port' - to listen on a TCP socket to all addresses +; (IPv6 and IPv4-mapped) on a specific port; +; '/path/to/unix/socket' - to listen on a unix socket. +; Default Value: value of the listen option +;pm.status_listen = 127.0.0.1:9001 + +; The ping URI to call the monitoring page of FPM. If this value is not set, no +; URI will be recognized as a ping page. This could be used to test from outside +; that FPM is alive and responding, or to +; - create a graph of FPM availability (rrd or such); +; - remove a server from a group if it is not responding (load balancing); +; - trigger alerts for the operating team (24/7). +; Note: The value must start with a leading slash (/). The value can be +; anything, but it may not be a good idea to use the .php extension or it +; may conflict with a real PHP file. +; Default Value: not set +;ping.path = /ping + +; This directive may be used to customize the response of a ping request. The +; response is formatted as text/plain with a 200 response code. +; Default Value: pong +;ping.response = pong + +; The access log file +; Default: not set +;access.log = log/$pool.access.log + +; The access log format. +; The following syntax is allowed +; %%: the '%' character +; %C: %CPU used by the request +; it can accept the following format: +; - %{user}C for user CPU only +; - %{system}C for system CPU only +; - %{total}C for user + system CPU (default) +; %d: time taken to serve the request +; it can accept the following format: +; - %{seconds}d (default) +; - %{milliseconds}d +; - %{milli}d +; - %{microseconds}d +; - %{micro}d +; %e: an environment variable (same as $_ENV or $_SERVER) +; it must be associated with embraces to specify the name of the env +; variable. Some examples: +; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e +; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e +; %f: script filename +; %l: content-length of the request (for POST request only) +; %m: request method +; %M: peak of memory allocated by PHP +; it can accept the following format: +; - %{bytes}M (default) +; - %{kilobytes}M +; - %{kilo}M +; - %{megabytes}M +; - %{mega}M +; %n: pool name +; %o: output header +; it must be associated with embraces to specify the name of the header: +; - %{Content-Type}o +; - %{X-Powered-By}o +; - %{Transfert-Encoding}o +; - .... +; %p: PID of the child that serviced the request +; %P: PID of the parent of the child that serviced the request +; %q: the query string +; %Q: the '?' character if query string exists +; %r: the request URI (without the query string, see %q and %Q) +; %R: remote IP address +; %s: status (response code) +; %t: server time the request was received +; it can accept a strftime(3) format: +; %d/%b/%Y:%H:%M:%S %z (default) +; The strftime(3) format must be encapsulated in a %{}t tag +; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t +; %T: time the log has been written (the request has finished) +; it can accept a strftime(3) format: +; %d/%b/%Y:%H:%M:%S %z (default) +; The strftime(3) format must be encapsulated in a %{}t tag +; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t +; %u: remote user +; +; Default: "%R - %u %t \"%m %r\" %s" +;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{milli}d %{kilo}M %C%%" + +; A list of request_uri values which should be filtered from the access log. +; +; As a security precuation, this setting will be ignored if: +; - the request method is not GET or HEAD; or +; - there is a request body; or +; - there are query parameters; or +; - the response code is outwith the successful range of 200 to 299 +; +; Note: The paths are matched against the output of the access.format tag "%r". +; On common configurations, this may look more like SCRIPT_NAME than the +; expected pre-rewrite URI. +; +; Default Value: not set +;access.suppress_path[] = /ping +;access.suppress_path[] = /health_check.php + +; The log file for slow requests +; Default Value: not set +; Note: slowlog is mandatory if request_slowlog_timeout is set +;slowlog = log/$pool.log.slow + +; The timeout for serving a single request after which a PHP backtrace will be +; dumped to the 'slowlog' file. A value of '0s' means 'off'. +; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) +; Default Value: 0 +;request_slowlog_timeout = 0 + +; Depth of slow log stack trace. +; Default Value: 20 +;request_slowlog_trace_depth = 20 + +; The timeout for serving a single request after which the worker process will +; be killed. This option should be used when the 'max_execution_time' ini option +; does not stop script execution for some reason. A value of '0' means 'off'. +; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) +; Default Value: 0 +;request_terminate_timeout = 0 + +; The timeout set by 'request_terminate_timeout' ini option is not engaged after +; application calls 'fastcgi_finish_request' or when application has finished and +; shutdown functions are being called (registered via register_shutdown_function). +; This option will enable timeout limit to be applied unconditionally +; even in such cases. +; Default Value: no +;request_terminate_timeout_track_finished = no + +; Set open file descriptor rlimit. +; Default Value: system defined value +;rlimit_files = 1024 + +; Set max core size rlimit. +; Possible Values: 'unlimited' or an integer greater or equal to 0 +; Default Value: system defined value +;rlimit_core = 0 + +; Chroot to this directory at the start. This value must be defined as an +; absolute path. When this value is not set, chroot is not used. +; Note: you can prefix with '$prefix' to chroot to the pool prefix or one +; of its subdirectories. If the pool prefix is not set, the global prefix +; will be used instead. +; Note: chrooting is a great security feature and should be used whenever +; possible. However, all PHP paths will be relative to the chroot +; (error_log, sessions.save_path, ...). +; Default Value: not set +;chroot = + +; Chdir to this directory at the start. +; Note: relative path can be used. +; Default Value: current directory or / when chroot +;chdir = /var/www + +; Redirect worker stdout and stderr into main error log. If not set, stdout and +; stderr will be redirected to /dev/null according to FastCGI specs. +; Note: on highloaded environment, this can cause some delay in the page +; process time (several ms). +; Default Value: no +;catch_workers_output = yes + +; Decorate worker output with prefix and suffix containing information about +; the child that writes to the log and if stdout or stderr is used as well as +; log level and time. This options is used only if catch_workers_output is yes. +; Settings to "no" will output data as written to the stdout or stderr. +; Default value: yes +;decorate_workers_output = no + +; Clear environment in FPM workers +; Prevents arbitrary environment variables from reaching FPM worker processes +; by clearing the environment in workers before env vars specified in this +; pool configuration are added. +; Setting to "no" will make all environment variables available to PHP code +; via getenv(), $_ENV and $_SERVER. +; Default Value: yes +;clear_env = no + +; Limits the extensions of the main script FPM will allow to parse. This can +; prevent configuration mistakes on the web server side. You should only limit +; FPM to .php extensions to prevent malicious users to use other extensions to +; execute php code. +; Note: set an empty value to allow all extensions. +; Default Value: .php +;security.limit_extensions = .php .php3 .php4 .php5 .php7 + +; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from +; the current environment. +; Default Value: clean env +;env[HOSTNAME] = $HOSTNAME +;env[PATH] = /usr/local/bin:/usr/bin:/bin +;env[TMP] = /tmp +;env[TMPDIR] = /tmp +;env[TEMP] = /tmp + +; Additional php.ini defines, specific to this pool of workers. These settings +; overwrite the values previously defined in the php.ini. The directives are the +; same as the PHP SAPI: +; php_value/php_flag - you can set classic ini defines which can +; be overwritten from PHP call 'ini_set'. +; php_admin_value/php_admin_flag - these directives won't be overwritten by +; PHP call 'ini_set' +; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. + +; Defining 'extension' will load the corresponding shared extension from +; extension_dir. Defining 'disable_functions' or 'disable_classes' will not +; overwrite previously defined php.ini values, but will append the new value +; instead. + +; Note: path INI options can be relative and will be expanded with the prefix +; (pool, global or /usr) + +; Default Value: nothing is defined by default except the values in php.ini and +; specified at startup with the -d argument +;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com +;php_flag[display_errors] = off +;php_admin_value[error_log] = /var/log/fpm-php.www.log +;php_admin_flag[log_errors] = on +;php_admin_value[memory_limit] = 32M From 66162375fd1b6b84864a4b6744babd8c4d05ad43 Mon Sep 17 00:00:00 2001 From: isscbta <53144593+isscbta@users.noreply.github.com> Date: Tue, 31 Jan 2023 16:23:15 +0100 Subject: [PATCH 475/984] Minor fix for install-rocket-nginx.sh --- .../tools/rocket-nginx-templates/wprocket-force-htpps.stpl | 5 +++-- .../tools/rocket-nginx-templates/wprocket-force-htpps.tpl | 1 - .../tools/rocket-nginx-templates/wprocket-hosting.stpl | 5 ++++- .../tools/rocket-nginx-templates/wprocket-hosting.tpl | 6 ++++-- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-htpps.stpl b/src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-htpps.stpl index 05ba994a..f82368cb 100644 --- a/src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-htpps.stpl +++ b/src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-htpps.stpl @@ -6,11 +6,13 @@ server { ssl_certificate_key %ssl_key%; error_log /var/log/%web_system%/domains/%domain%.error.log error; + root %sdocroot%; + # Rocket-Nginx configuration + include rocket-nginx/conf.d/default.conf; location / { proxy_pass https://%ip%:%web_ssl_port%; location ~* ^.+\.(%proxy_extentions%)$ { - root %sdocroot%; access_log /var/log/%web_system%/domains/%domain%.log combined; access_log /var/log/%web_system%/domains/%domain%.bytes bytes; expires max; @@ -37,5 +39,4 @@ server { include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; include %home%/%user%/conf/web/s%proxy_system%.%domain%.conf*; - include rocket-nginx/conf.d/default.conf; } diff --git a/src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-htpps.tpl b/src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-htpps.tpl index 0c877632..851ac0dc 100644 --- a/src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-htpps.tpl +++ b/src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-htpps.tpl @@ -5,5 +5,4 @@ server { rewrite ^(.*) https://%domain_idn%$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; -include rocket-nginx/conf.d/default.conf; } diff --git a/src/deb/for-download/tools/rocket-nginx-templates/wprocket-hosting.stpl b/src/deb/for-download/tools/rocket-nginx-templates/wprocket-hosting.stpl index 2610efc4..51c4fffc 100644 --- a/src/deb/for-download/tools/rocket-nginx-templates/wprocket-hosting.stpl +++ b/src/deb/for-download/tools/rocket-nginx-templates/wprocket-hosting.stpl @@ -6,10 +6,13 @@ server { ssl_certificate_key %ssl_key%; error_log /var/log/%web_system%/domains/%domain%.error.log error; + root %sdocroot%; + # Rocket-Nginx configuration + include rocket-nginx/conf.d/default.conf; + location / { proxy_pass https://%ip%:%web_ssl_port%; location ~* ^.+\.(%proxy_extentions%)$ { - root %sdocroot%; access_log /var/log/%web_system%/domains/%domain%.log combined; access_log /var/log/%web_system%/domains/%domain%.bytes bytes; expires max; diff --git a/src/deb/for-download/tools/rocket-nginx-templates/wprocket-hosting.tpl b/src/deb/for-download/tools/rocket-nginx-templates/wprocket-hosting.tpl index 521348ae..8840c051 100644 --- a/src/deb/for-download/tools/rocket-nginx-templates/wprocket-hosting.tpl +++ b/src/deb/for-download/tools/rocket-nginx-templates/wprocket-hosting.tpl @@ -3,10 +3,13 @@ server { server_name %domain_idn% %alias_idn%; error_log /var/log/%web_system%/domains/%domain%.error.log error; + root %docroot%; + # Rocket-Nginx configuration + include rocket-nginx/conf.d/default.conf; + location / { proxy_pass http://%ip%:%web_port%; location ~* ^.+\.(%proxy_extentions%)$ { - root %docroot%; access_log /var/log/%web_system%/domains/%domain%.log combined; access_log /var/log/%web_system%/domains/%domain%.bytes bytes; expires max; @@ -32,5 +35,4 @@ server { disable_symlinks if_not_owner from=%docroot%; include %home%/%user%/conf/web/nginx.%domain%.conf*; - include rocket-nginx/conf.d/default.conf; } From 290600dfcd3bef1aa9edfb5ec8e9f4d9337073ec Mon Sep 17 00:00:00 2001 From: isscbta <53144593+isscbta@users.noreply.github.com> Date: Tue, 31 Jan 2023 16:27:52 +0100 Subject: [PATCH 476/984] Minor fix for install-rocket-nginx.sh --- .../tools/rocket-nginx-templates/wprocket-force-htpps.stpl | 1 + .../tools/rocket-nginx-templates/wprocket-hosting.stpl | 1 + 2 files changed, 2 insertions(+) diff --git a/src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-htpps.stpl b/src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-htpps.stpl index f82368cb..6e1be1fd 100644 --- a/src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-htpps.stpl +++ b/src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-htpps.stpl @@ -13,6 +13,7 @@ server { location / { proxy_pass https://%ip%:%web_ssl_port%; location ~* ^.+\.(%proxy_extentions%)$ { + root %sdocroot%; access_log /var/log/%web_system%/domains/%domain%.log combined; access_log /var/log/%web_system%/domains/%domain%.bytes bytes; expires max; diff --git a/src/deb/for-download/tools/rocket-nginx-templates/wprocket-hosting.stpl b/src/deb/for-download/tools/rocket-nginx-templates/wprocket-hosting.stpl index 51c4fffc..c216d6d8 100644 --- a/src/deb/for-download/tools/rocket-nginx-templates/wprocket-hosting.stpl +++ b/src/deb/for-download/tools/rocket-nginx-templates/wprocket-hosting.stpl @@ -13,6 +13,7 @@ server { location / { proxy_pass https://%ip%:%web_ssl_port%; location ~* ^.+\.(%proxy_extentions%)$ { + root %sdocroot%; access_log /var/log/%web_system%/domains/%domain%.log combined; access_log /var/log/%web_system%/domains/%domain%.bytes bytes; expires max; From 1d67c6ae542de4680f545c1a1abbbc7c1019e80d Mon Sep 17 00:00:00 2001 From: isscbta <53144593+isscbta@users.noreply.github.com> Date: Tue, 31 Jan 2023 16:31:02 +0100 Subject: [PATCH 477/984] Update wprocket-hosting.tpl --- .../tools/rocket-nginx-templates/wprocket-hosting.tpl | 1 + 1 file changed, 1 insertion(+) diff --git a/src/deb/for-download/tools/rocket-nginx-templates/wprocket-hosting.tpl b/src/deb/for-download/tools/rocket-nginx-templates/wprocket-hosting.tpl index 8840c051..3b162038 100644 --- a/src/deb/for-download/tools/rocket-nginx-templates/wprocket-hosting.tpl +++ b/src/deb/for-download/tools/rocket-nginx-templates/wprocket-hosting.tpl @@ -10,6 +10,7 @@ server { location / { proxy_pass http://%ip%:%web_port%; location ~* ^.+\.(%proxy_extentions%)$ { + root %docroot%; access_log /var/log/%web_system%/domains/%domain%.log combined; access_log /var/log/%web_system%/domains/%domain%.bytes bytes; expires max; From 4bc0ecc46eeeff619cf4075182a511a915e881e1 Mon Sep 17 00:00:00 2001 From: isscbta <53144593+isscbta@users.noreply.github.com> Date: Tue, 31 Jan 2023 16:34:10 +0100 Subject: [PATCH 478/984] Update wprocket-hosting.stpl --- .../tools/rocket-nginx-templates/wprocket-hosting.stpl | 1 - 1 file changed, 1 deletion(-) diff --git a/src/deb/for-download/tools/rocket-nginx-templates/wprocket-hosting.stpl b/src/deb/for-download/tools/rocket-nginx-templates/wprocket-hosting.stpl index c216d6d8..d7d6905f 100644 --- a/src/deb/for-download/tools/rocket-nginx-templates/wprocket-hosting.stpl +++ b/src/deb/for-download/tools/rocket-nginx-templates/wprocket-hosting.stpl @@ -39,5 +39,4 @@ server { disable_symlinks if_not_owner from=%docroot%; include %home%/%user%/conf/web/snginx.%domain%.conf*; - include rocket-nginx/conf.d/default.conf; } From ac96d9f9b376fe3309e7c17b60c4e8601d5cecee Mon Sep 17 00:00:00 2001 From: isscbta <53144593+isscbta@users.noreply.github.com> Date: Tue, 31 Jan 2023 17:48:45 +0100 Subject: [PATCH 479/984] Fix filename --- .../{wprocket-force-htpps.stpl => wprocket-force-https.stpl} | 0 .../{wprocket-force-htpps.tpl => wprocket-force-https.tpl} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename src/deb/for-download/tools/rocket-nginx-templates/{wprocket-force-htpps.stpl => wprocket-force-https.stpl} (100%) rename src/deb/for-download/tools/rocket-nginx-templates/{wprocket-force-htpps.tpl => wprocket-force-https.tpl} (100%) diff --git a/src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-htpps.stpl b/src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-https.stpl similarity index 100% rename from src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-htpps.stpl rename to src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-https.stpl diff --git a/src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-htpps.tpl b/src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-https.tpl similarity index 100% rename from src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-htpps.tpl rename to src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-https.tpl From e7543afbd329bd16c3c787037b7fab569d846043 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 31 Jan 2023 17:54:25 +0100 Subject: [PATCH 480/984] Update install-rocket-nginx.sh --- src/deb/for-download/tools/install-rocket-nginx.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/deb/for-download/tools/install-rocket-nginx.sh b/src/deb/for-download/tools/install-rocket-nginx.sh index 0fb5d86d..3e298c7d 100644 --- a/src/deb/for-download/tools/install-rocket-nginx.sh +++ b/src/deb/for-download/tools/install-rocket-nginx.sh @@ -17,7 +17,7 @@ fi cd rocket-nginx cp rocket-nginx.ini.disabled rocket-nginx.ini php rocket-parser.php -wget -nv -O /usr/local/vesta/data/templates/web/nginx/wprocket-force-htpps.tpl https://c.myvestacp.com/tools/rocket-nginx-templates/wprocket-force-htpps.tpl -wget -nv -O /usr/local/vesta/data/templates/web/nginx/wprocket-force-htpps.stpl https://c.myvestacp.com/tools/rocket-nginx-templates/wprocket-force-htpps.stpl +wget -nv -O /usr/local/vesta/data/templates/web/nginx/wprocket-force-https.tpl https://c.myvestacp.com/tools/rocket-nginx-templates/wprocket-force-https.tpl +wget -nv -O /usr/local/vesta/data/templates/web/nginx/wprocket-force-https.stpl https://c.myvestacp.com/tools/rocket-nginx-templates/wprocket-force-https.stpl wget -nv -O /usr/local/vesta/data/templates/web/nginx/wprocket-hosting.tpl https://c.myvestacp.com/tools/rocket-nginx-templates/wprocket-hosting.tpl wget -nv -O /usr/local/vesta/data/templates/web/nginx/wprocket-hosting.stpl https://c.myvestacp.com/tools/rocket-nginx-templates/wprocket-hosting.stpl From 08146520a0d43c44b863dacdb27a4295bac3d487 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 31 Jan 2023 18:01:56 +0100 Subject: [PATCH 481/984] default user/pass for private-hosting.tpl --- install/vst-install-debian.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index b5fda479..650fa241 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -1071,6 +1071,10 @@ if [ "$nginx" = 'yes' ]; then cp -f $vestacp/nginx/phppgadmin.inc /etc/nginx/conf.d/ cp -f $vestacp/nginx/webmail.inc /etc/nginx/conf.d/ cp -f $vestacp/logrotate/nginx /etc/logrotate.d/ + + # default user/pass for private-hosting.tpl: private / folder + echo 'private:$apr1$0MYnchM5$yVi/OTfp7o3lGNst/a8.90' > /etc/nginx/.htpasswd + echo > /etc/nginx/conf.d/vesta.conf mkdir -p /var/log/nginx/domains #update-rc.d nginx defaults From f5cc5d75c288b6455e9b1e69769f449484d4b844 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 31 Jan 2023 20:10:19 +0100 Subject: [PATCH 482/984] Update PHP-FPM-74.sh --- install/debian/11/templates/web/apache2/PHP-FPM-74.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/install/debian/11/templates/web/apache2/PHP-FPM-74.sh b/install/debian/11/templates/web/apache2/PHP-FPM-74.sh index 0ff7b21b..e72bb003 100755 --- a/install/debian/11/templates/web/apache2/PHP-FPM-74.sh +++ b/install/debian/11/templates/web/apache2/PHP-FPM-74.sh @@ -18,7 +18,7 @@ group = $1 pm = ondemand pm.max_children = 8 -request_terminate_timeout = 90s +request_terminate_timeout = 360s pm.max_requests = 4000 pm.process_idle_timeout = 10s pm.status_path = /status @@ -26,10 +26,10 @@ pm.status_path = /status php_admin_value[upload_tmp_dir] = /home/$1/tmp php_admin_value[session.save_path] = /home/$1/tmp php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube -php_admin_value[upload_max_filesize] = 80M -php_admin_value[max_execution_time] = 30 -php_admin_value[post_max_size] = 80M -php_admin_value[memory_limit] = 256M +php_admin_value[upload_max_filesize] = 800M +php_admin_value[max_execution_time] = 300 +php_admin_value[post_max_size] = 800M +php_admin_value[memory_limit] = 512M php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" php_admin_flag[mysql.allow_persistent] = off php_admin_flag[safe_mode] = off From 13b310d115fa570ed039203b9dc5ca89a7ca68aa Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 31 Jan 2023 20:11:12 +0100 Subject: [PATCH 483/984] Update PHP-FPM-74-public.sh --- .../11/templates/web/apache2/PHP-FPM-74-public.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/install/debian/11/templates/web/apache2/PHP-FPM-74-public.sh b/install/debian/11/templates/web/apache2/PHP-FPM-74-public.sh index 0ff7b21b..e72bb003 100755 --- a/install/debian/11/templates/web/apache2/PHP-FPM-74-public.sh +++ b/install/debian/11/templates/web/apache2/PHP-FPM-74-public.sh @@ -18,7 +18,7 @@ group = $1 pm = ondemand pm.max_children = 8 -request_terminate_timeout = 90s +request_terminate_timeout = 360s pm.max_requests = 4000 pm.process_idle_timeout = 10s pm.status_path = /status @@ -26,10 +26,10 @@ pm.status_path = /status php_admin_value[upload_tmp_dir] = /home/$1/tmp php_admin_value[session.save_path] = /home/$1/tmp php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube -php_admin_value[upload_max_filesize] = 80M -php_admin_value[max_execution_time] = 30 -php_admin_value[post_max_size] = 80M -php_admin_value[memory_limit] = 256M +php_admin_value[upload_max_filesize] = 800M +php_admin_value[max_execution_time] = 300 +php_admin_value[post_max_size] = 800M +php_admin_value[memory_limit] = 512M php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" php_admin_flag[mysql.allow_persistent] = off php_admin_flag[safe_mode] = off From 60dbae21b15a216e7feecaf634fca83c0fa7e512 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 31 Jan 2023 20:12:40 +0100 Subject: [PATCH 484/984] Update PHP-FPM-73.sh --- install/debian/10/templates/web/apache2/PHP-FPM-73.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/install/debian/10/templates/web/apache2/PHP-FPM-73.sh b/install/debian/10/templates/web/apache2/PHP-FPM-73.sh index 57b10863..a2fea927 100755 --- a/install/debian/10/templates/web/apache2/PHP-FPM-73.sh +++ b/install/debian/10/templates/web/apache2/PHP-FPM-73.sh @@ -18,7 +18,7 @@ group = $1 pm = ondemand pm.max_children = 8 -request_terminate_timeout = 90s +request_terminate_timeout = 360s pm.max_requests = 4000 pm.process_idle_timeout = 10s pm.status_path = /status @@ -26,10 +26,10 @@ pm.status_path = /status php_admin_value[upload_tmp_dir] = /home/$1/tmp php_admin_value[session.save_path] = /home/$1/tmp php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube -php_admin_value[upload_max_filesize] = 80M -php_admin_value[max_execution_time] = 30 -php_admin_value[post_max_size] = 80M -php_admin_value[memory_limit] = 256M +php_admin_value[upload_max_filesize] = 800M +php_admin_value[max_execution_time] = 300 +php_admin_value[post_max_size] = 800M +php_admin_value[memory_limit] = 512M php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" php_admin_flag[mysql.allow_persistent] = off php_admin_flag[safe_mode] = off From 780f63732517846b4575b9bfdfe79c399b224e89 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 31 Jan 2023 20:13:31 +0100 Subject: [PATCH 485/984] Update PHP-FPM-73-public.sh --- .../10/templates/web/apache2/PHP-FPM-73-public.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/install/debian/10/templates/web/apache2/PHP-FPM-73-public.sh b/install/debian/10/templates/web/apache2/PHP-FPM-73-public.sh index 57b10863..a2fea927 100755 --- a/install/debian/10/templates/web/apache2/PHP-FPM-73-public.sh +++ b/install/debian/10/templates/web/apache2/PHP-FPM-73-public.sh @@ -18,7 +18,7 @@ group = $1 pm = ondemand pm.max_children = 8 -request_terminate_timeout = 90s +request_terminate_timeout = 360s pm.max_requests = 4000 pm.process_idle_timeout = 10s pm.status_path = /status @@ -26,10 +26,10 @@ pm.status_path = /status php_admin_value[upload_tmp_dir] = /home/$1/tmp php_admin_value[session.save_path] = /home/$1/tmp php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube -php_admin_value[upload_max_filesize] = 80M -php_admin_value[max_execution_time] = 30 -php_admin_value[post_max_size] = 80M -php_admin_value[memory_limit] = 256M +php_admin_value[upload_max_filesize] = 800M +php_admin_value[max_execution_time] = 300 +php_admin_value[post_max_size] = 800M +php_admin_value[memory_limit] = 512M php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" php_admin_flag[mysql.allow_persistent] = off php_admin_flag[safe_mode] = off From bfd822092c00efe3bed25028cad32bdcf51b0e21 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 31 Jan 2023 20:22:44 +0100 Subject: [PATCH 486/984] Creating /etc/nginx/.htpasswd if it does not exist --- src/deb/vesta/postinst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/deb/vesta/postinst b/src/deb/vesta/postinst index cc798224..975d12cd 100755 --- a/src/deb/vesta/postinst +++ b/src/deb/vesta/postinst @@ -31,6 +31,11 @@ if [ "$release" -eq 11 ]; then sed -i "s/yescrypt/sha512/g" /etc/pam.d/common-password fi +# Creating /etc/nginx/.htpasswd if it does not exist +if [ ! -f "/etc/nginx/.htpasswd" ]; then + echo 'private:$apr1$0MYnchM5$yVi/OTfp7o3lGNst/a8.90' > /etc/nginx/.htpasswd +fi + # Fixing Gmail hosts_try_fastopen in Exim4 if [ "$release" -eq 11 ]; then if [ -f "/etc/exim4/exim4.conf.template" ]; then From 151159f9d307d16e66183704e67339e76a2665c1 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 31 Jan 2023 21:51:19 +0100 Subject: [PATCH 487/984] fpm pool.d conf tweak --- .../for-download/tools/apache-fpm-tpl/PHP-FPM-56.sh | 10 +++++----- .../for-download/tools/apache-fpm-tpl/PHP-FPM-70.sh | 10 +++++----- .../for-download/tools/apache-fpm-tpl/PHP-FPM-71.sh | 10 +++++----- .../for-download/tools/apache-fpm-tpl/PHP-FPM-72.sh | 10 +++++----- .../tools/apache-fpm-tpl/PHP-FPM-73-public.sh | 10 +++++----- .../for-download/tools/apache-fpm-tpl/PHP-FPM-73.sh | 10 +++++----- .../tools/apache-fpm-tpl/PHP-FPM-74-public.sh | 10 +++++----- .../for-download/tools/apache-fpm-tpl/PHP-FPM-74.sh | 10 +++++----- .../tools/apache-fpm-tpl/PHP-FPM-80-public.sh | 10 +++++----- .../for-download/tools/apache-fpm-tpl/PHP-FPM-80.sh | 10 +++++----- .../tools/apache-fpm-tpl/PHP-FPM-81-public.sh | 10 +++++----- .../for-download/tools/apache-fpm-tpl/PHP-FPM-81.sh | 10 +++++----- 12 files changed, 60 insertions(+), 60 deletions(-) diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-56.sh b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-56.sh index b9137821..081aaf19 100755 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-56.sh +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-56.sh @@ -18,7 +18,7 @@ group = $1 pm = ondemand pm.max_children = 8 -request_terminate_timeout = 90s +request_terminate_timeout = 360s pm.max_requests = 4000 pm.process_idle_timeout = 10s pm.status_path = /status @@ -26,10 +26,10 @@ pm.status_path = /status php_admin_value[upload_tmp_dir] = /home/$1/tmp php_admin_value[session.save_path] = /home/$1/tmp php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube -php_admin_value[upload_max_filesize] = 80M -php_admin_value[max_execution_time] = 30 -php_admin_value[post_max_size] = 80M -php_admin_value[memory_limit] = 256M +php_admin_value[upload_max_filesize] = 800M +php_admin_value[max_execution_time] = 300 +php_admin_value[post_max_size] = 800M +php_admin_value[memory_limit] = 512M php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" php_admin_flag[mysql.allow_persistent] = off php_admin_flag[safe_mode] = off diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-70.sh b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-70.sh index 0e742ad8..10c58c57 100755 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-70.sh +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-70.sh @@ -18,7 +18,7 @@ group = $1 pm = ondemand pm.max_children = 8 -request_terminate_timeout = 90s +request_terminate_timeout = 360s pm.max_requests = 4000 pm.process_idle_timeout = 10s pm.status_path = /status @@ -26,10 +26,10 @@ pm.status_path = /status php_admin_value[upload_tmp_dir] = /home/$1/tmp php_admin_value[session.save_path] = /home/$1/tmp php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube -php_admin_value[upload_max_filesize] = 80M -php_admin_value[max_execution_time] = 30 -php_admin_value[post_max_size] = 80M -php_admin_value[memory_limit] = 256M +php_admin_value[upload_max_filesize] = 800M +php_admin_value[max_execution_time] = 300 +php_admin_value[post_max_size] = 800M +php_admin_value[memory_limit] = 512M php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" php_admin_flag[mysql.allow_persistent] = off php_admin_flag[safe_mode] = off diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-71.sh b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-71.sh index 6110e898..90230674 100755 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-71.sh +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-71.sh @@ -18,7 +18,7 @@ group = $1 pm = ondemand pm.max_children = 8 -request_terminate_timeout = 90s +request_terminate_timeout = 360s pm.max_requests = 4000 pm.process_idle_timeout = 10s pm.status_path = /status @@ -26,10 +26,10 @@ pm.status_path = /status php_admin_value[upload_tmp_dir] = /home/$1/tmp php_admin_value[session.save_path] = /home/$1/tmp php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube -php_admin_value[upload_max_filesize] = 80M -php_admin_value[max_execution_time] = 30 -php_admin_value[post_max_size] = 80M -php_admin_value[memory_limit] = 256M +php_admin_value[upload_max_filesize] = 800M +php_admin_value[max_execution_time] = 300 +php_admin_value[post_max_size] = 800M +php_admin_value[memory_limit] = 512M php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" php_admin_flag[mysql.allow_persistent] = off php_admin_flag[safe_mode] = off diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-72.sh b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-72.sh index 6541a0dc..cc76256e 100755 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-72.sh +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-72.sh @@ -18,7 +18,7 @@ group = $1 pm = ondemand pm.max_children = 8 -request_terminate_timeout = 90s +request_terminate_timeout = 360s pm.max_requests = 4000 pm.process_idle_timeout = 10s pm.status_path = /status @@ -26,10 +26,10 @@ pm.status_path = /status php_admin_value[upload_tmp_dir] = /home/$1/tmp php_admin_value[session.save_path] = /home/$1/tmp php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube -php_admin_value[upload_max_filesize] = 80M -php_admin_value[max_execution_time] = 30 -php_admin_value[post_max_size] = 80M -php_admin_value[memory_limit] = 256M +php_admin_value[upload_max_filesize] = 800M +php_admin_value[max_execution_time] = 300 +php_admin_value[post_max_size] = 800M +php_admin_value[memory_limit] = 512M php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" php_admin_flag[mysql.allow_persistent] = off php_admin_flag[safe_mode] = off diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73-public.sh b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73-public.sh index 57b10863..a2fea927 100755 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73-public.sh +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73-public.sh @@ -18,7 +18,7 @@ group = $1 pm = ondemand pm.max_children = 8 -request_terminate_timeout = 90s +request_terminate_timeout = 360s pm.max_requests = 4000 pm.process_idle_timeout = 10s pm.status_path = /status @@ -26,10 +26,10 @@ pm.status_path = /status php_admin_value[upload_tmp_dir] = /home/$1/tmp php_admin_value[session.save_path] = /home/$1/tmp php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube -php_admin_value[upload_max_filesize] = 80M -php_admin_value[max_execution_time] = 30 -php_admin_value[post_max_size] = 80M -php_admin_value[memory_limit] = 256M +php_admin_value[upload_max_filesize] = 800M +php_admin_value[max_execution_time] = 300 +php_admin_value[post_max_size] = 800M +php_admin_value[memory_limit] = 512M php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" php_admin_flag[mysql.allow_persistent] = off php_admin_flag[safe_mode] = off diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73.sh b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73.sh index 57b10863..a2fea927 100755 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73.sh +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73.sh @@ -18,7 +18,7 @@ group = $1 pm = ondemand pm.max_children = 8 -request_terminate_timeout = 90s +request_terminate_timeout = 360s pm.max_requests = 4000 pm.process_idle_timeout = 10s pm.status_path = /status @@ -26,10 +26,10 @@ pm.status_path = /status php_admin_value[upload_tmp_dir] = /home/$1/tmp php_admin_value[session.save_path] = /home/$1/tmp php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube -php_admin_value[upload_max_filesize] = 80M -php_admin_value[max_execution_time] = 30 -php_admin_value[post_max_size] = 80M -php_admin_value[memory_limit] = 256M +php_admin_value[upload_max_filesize] = 800M +php_admin_value[max_execution_time] = 300 +php_admin_value[post_max_size] = 800M +php_admin_value[memory_limit] = 512M php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" php_admin_flag[mysql.allow_persistent] = off php_admin_flag[safe_mode] = off diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74-public.sh b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74-public.sh index 0ff7b21b..e72bb003 100755 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74-public.sh +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74-public.sh @@ -18,7 +18,7 @@ group = $1 pm = ondemand pm.max_children = 8 -request_terminate_timeout = 90s +request_terminate_timeout = 360s pm.max_requests = 4000 pm.process_idle_timeout = 10s pm.status_path = /status @@ -26,10 +26,10 @@ pm.status_path = /status php_admin_value[upload_tmp_dir] = /home/$1/tmp php_admin_value[session.save_path] = /home/$1/tmp php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube -php_admin_value[upload_max_filesize] = 80M -php_admin_value[max_execution_time] = 30 -php_admin_value[post_max_size] = 80M -php_admin_value[memory_limit] = 256M +php_admin_value[upload_max_filesize] = 800M +php_admin_value[max_execution_time] = 300 +php_admin_value[post_max_size] = 800M +php_admin_value[memory_limit] = 512M php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" php_admin_flag[mysql.allow_persistent] = off php_admin_flag[safe_mode] = off diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74.sh b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74.sh index 0ff7b21b..e72bb003 100755 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74.sh +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74.sh @@ -18,7 +18,7 @@ group = $1 pm = ondemand pm.max_children = 8 -request_terminate_timeout = 90s +request_terminate_timeout = 360s pm.max_requests = 4000 pm.process_idle_timeout = 10s pm.status_path = /status @@ -26,10 +26,10 @@ pm.status_path = /status php_admin_value[upload_tmp_dir] = /home/$1/tmp php_admin_value[session.save_path] = /home/$1/tmp php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube -php_admin_value[upload_max_filesize] = 80M -php_admin_value[max_execution_time] = 30 -php_admin_value[post_max_size] = 80M -php_admin_value[memory_limit] = 256M +php_admin_value[upload_max_filesize] = 800M +php_admin_value[max_execution_time] = 300 +php_admin_value[post_max_size] = 800M +php_admin_value[memory_limit] = 512M php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" php_admin_flag[mysql.allow_persistent] = off php_admin_flag[safe_mode] = off diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80-public.sh b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80-public.sh index 343392c2..a4842ac9 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80-public.sh +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80-public.sh @@ -18,7 +18,7 @@ group = $1 pm = ondemand pm.max_children = 8 -request_terminate_timeout = 90s +request_terminate_timeout = 360s pm.max_requests = 4000 pm.process_idle_timeout = 10s pm.status_path = /status @@ -26,10 +26,10 @@ pm.status_path = /status php_admin_value[upload_tmp_dir] = /home/$1/tmp php_admin_value[session.save_path] = /home/$1/tmp php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube -php_admin_value[upload_max_filesize] = 80M -php_admin_value[max_execution_time] = 30 -php_admin_value[post_max_size] = 80M -php_admin_value[memory_limit] = 256M +php_admin_value[upload_max_filesize] = 800M +php_admin_value[max_execution_time] = 300 +php_admin_value[post_max_size] = 800M +php_admin_value[memory_limit] = 512M php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" php_admin_flag[mysql.allow_persistent] = off php_admin_flag[safe_mode] = off diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.sh b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.sh index 343392c2..a4842ac9 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.sh +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.sh @@ -18,7 +18,7 @@ group = $1 pm = ondemand pm.max_children = 8 -request_terminate_timeout = 90s +request_terminate_timeout = 360s pm.max_requests = 4000 pm.process_idle_timeout = 10s pm.status_path = /status @@ -26,10 +26,10 @@ pm.status_path = /status php_admin_value[upload_tmp_dir] = /home/$1/tmp php_admin_value[session.save_path] = /home/$1/tmp php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube -php_admin_value[upload_max_filesize] = 80M -php_admin_value[max_execution_time] = 30 -php_admin_value[post_max_size] = 80M -php_admin_value[memory_limit] = 256M +php_admin_value[upload_max_filesize] = 800M +php_admin_value[max_execution_time] = 300 +php_admin_value[post_max_size] = 800M +php_admin_value[memory_limit] = 512M php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" php_admin_flag[mysql.allow_persistent] = off php_admin_flag[safe_mode] = off diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81-public.sh b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81-public.sh index 67c8ccfb..4b4f9d78 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81-public.sh +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81-public.sh @@ -18,7 +18,7 @@ group = $1 pm = ondemand pm.max_children = 8 -request_terminate_timeout = 90s +request_terminate_timeout = 360s pm.max_requests = 4000 pm.process_idle_timeout = 10s pm.status_path = /status @@ -26,10 +26,10 @@ pm.status_path = /status php_admin_value[upload_tmp_dir] = /home/$1/tmp php_admin_value[session.save_path] = /home/$1/tmp php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube -php_admin_value[upload_max_filesize] = 80M -php_admin_value[max_execution_time] = 30 -php_admin_value[post_max_size] = 80M -php_admin_value[memory_limit] = 256M +php_admin_value[upload_max_filesize] = 800M +php_admin_value[max_execution_time] = 300 +php_admin_value[post_max_size] = 800M +php_admin_value[memory_limit] = 512M php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" php_admin_flag[mysql.allow_persistent] = off php_admin_flag[safe_mode] = off diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81.sh b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81.sh index 67c8ccfb..4b4f9d78 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81.sh +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81.sh @@ -18,7 +18,7 @@ group = $1 pm = ondemand pm.max_children = 8 -request_terminate_timeout = 90s +request_terminate_timeout = 360s pm.max_requests = 4000 pm.process_idle_timeout = 10s pm.status_path = /status @@ -26,10 +26,10 @@ pm.status_path = /status php_admin_value[upload_tmp_dir] = /home/$1/tmp php_admin_value[session.save_path] = /home/$1/tmp php_admin_value[open_basedir] = $5:/home/$1/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcube:/var/log/roundcube:/var/lib/roundcube -php_admin_value[upload_max_filesize] = 80M -php_admin_value[max_execution_time] = 30 -php_admin_value[post_max_size] = 80M -php_admin_value[memory_limit] = 256M +php_admin_value[upload_max_filesize] = 800M +php_admin_value[max_execution_time] = 300 +php_admin_value[post_max_size] = 800M +php_admin_value[memory_limit] = 512M php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@$2\" php_admin_flag[mysql.allow_persistent] = off php_admin_flag[safe_mode] = off From e8b9545a9d439682a7730eb50f2ce42e025a49fc Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 31 Jan 2023 21:56:18 +0100 Subject: [PATCH 488/984] CRLF to LF EOL --- .../wprocket-force-https.stpl | 86 +++++++++---------- .../wprocket-hosting.stpl | 84 +++++++++--------- 2 files changed, 85 insertions(+), 85 deletions(-) diff --git a/src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-https.stpl b/src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-https.stpl index 6e1be1fd..58f1e9fa 100644 --- a/src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-https.stpl +++ b/src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-https.stpl @@ -1,43 +1,43 @@ -server { - listen %ip%:%proxy_ssl_port% ssl http2; - server_name %domain_idn% %alias_idn%; - - ssl_certificate %ssl_pem%; - ssl_certificate_key %ssl_key%; - error_log /var/log/%web_system%/domains/%domain%.error.log error; - - root %sdocroot%; - # Rocket-Nginx configuration - include rocket-nginx/conf.d/default.conf; - - location / { - proxy_pass https://%ip%:%web_ssl_port%; - location ~* ^.+\.(%proxy_extentions%)$ { - root %sdocroot%; - access_log /var/log/%web_system%/domains/%domain%.log combined; - access_log /var/log/%web_system%/domains/%domain%.bytes bytes; - expires max; - # try_files $uri @fallback; - } - } - - location /error/ { - alias %home%/%user%/web/%domain%/document_errors/; - } - - location @fallback { - proxy_pass https://%ip%:%web_ssl_port%; - } - - location ~ /\.ht {return 404;} - location ~ /\.env {return 404;} - location ~ /\.svn/ {return 404;} - location ~ /\.git/ {return 404;} - location ~ /\.hg/ {return 404;} - location ~ /\.bzr/ {return 404;} - - disable_symlinks if_not_owner from=%docroot%; - - include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; - include %home%/%user%/conf/web/s%proxy_system%.%domain%.conf*; -} +server { + listen %ip%:%proxy_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + root %sdocroot%; + # Rocket-Nginx configuration + include rocket-nginx/conf.d/default.conf; + + location / { + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %sdocroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass https://%ip%:%web_ssl_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + disable_symlinks if_not_owner from=%docroot%; + + include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; + include %home%/%user%/conf/web/s%proxy_system%.%domain%.conf*; +} diff --git a/src/deb/for-download/tools/rocket-nginx-templates/wprocket-hosting.stpl b/src/deb/for-download/tools/rocket-nginx-templates/wprocket-hosting.stpl index d7d6905f..d4eaeed8 100644 --- a/src/deb/for-download/tools/rocket-nginx-templates/wprocket-hosting.stpl +++ b/src/deb/for-download/tools/rocket-nginx-templates/wprocket-hosting.stpl @@ -1,42 +1,42 @@ -server { - listen %ip%:%proxy_ssl_port% ssl http2; - server_name %domain_idn% %alias_idn%; - - ssl_certificate %ssl_pem%; - ssl_certificate_key %ssl_key%; - error_log /var/log/%web_system%/domains/%domain%.error.log error; - - root %sdocroot%; - # Rocket-Nginx configuration - include rocket-nginx/conf.d/default.conf; - - location / { - proxy_pass https://%ip%:%web_ssl_port%; - location ~* ^.+\.(%proxy_extentions%)$ { - root %sdocroot%; - access_log /var/log/%web_system%/domains/%domain%.log combined; - access_log /var/log/%web_system%/domains/%domain%.bytes bytes; - expires max; - # try_files $uri @fallback; - } - } - - location /error/ { - alias %home%/%user%/web/%domain%/document_errors/; - } - - location @fallback { - proxy_pass https://%ip%:%web_ssl_port%; - } - - location ~ /\.ht {return 404;} - location ~ /\.env {return 404;} - location ~ /\.svn/ {return 404;} - location ~ /\.git/ {return 404;} - location ~ /\.hg/ {return 404;} - location ~ /\.bzr/ {return 404;} - - disable_symlinks if_not_owner from=%docroot%; - - include %home%/%user%/conf/web/snginx.%domain%.conf*; -} +server { + listen %ip%:%proxy_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + root %sdocroot%; + # Rocket-Nginx configuration + include rocket-nginx/conf.d/default.conf; + + location / { + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %sdocroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass https://%ip%:%web_ssl_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + disable_symlinks if_not_owner from=%docroot%; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} From fa94c7a2104e0fde015c4764c75ccc818419b491 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 31 Jan 2023 23:24:37 +0100 Subject: [PATCH 489/984] Update Changelog.md --- Changelog.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Changelog.md b/Changelog.md index b7e52d49..887ec04f 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,10 @@ +Version 0.9.8-26-59 [01-Feb-2023] +================================================== +* Support for PHP 8.2 +* New script: v-move-folder-and-make-symlink +* New script: v-lock-wordpress (to prevent PHP malware) and v-unlock-wordpress +* Many minor bugfixes + Version 0.9.8-26-58 [12-Jul-2022] ================================================== * [Security] hash_equals() in /reset/mail/ (credits to @divinity76 ) From 0e9a5304a5a1be6ce7f3befc43980830e5598ffd Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 31 Jan 2023 23:34:10 +0100 Subject: [PATCH 490/984] Installing WordPress to user_domain_com database --- bin/v-install-wordpress | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-install-wordpress b/bin/v-install-wordpress index 91bbdf0a..0e24f847 100644 --- a/bin/v-install-wordpress +++ b/bin/v-install-wordpress @@ -49,7 +49,7 @@ is_object_unsuspended 'user' 'USER' "$user" source /usr/local/vesta/func/handle_parameters.sh if [ -z "$database" ]; then - database="wp" + database=$(echo "$domain" | sed 's#\.#_#g') fi if [ -z "$email" ]; then From 1325a73661b12a2fd2cb1572de6b10efdfd8e1a9 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 31 Jan 2023 23:43:47 +0100 Subject: [PATCH 491/984] Update Changelog.md --- Changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Changelog.md b/Changelog.md index 887ec04f..f49b75e4 100644 --- a/Changelog.md +++ b/Changelog.md @@ -3,6 +3,7 @@ Version 0.9.8-26-59 [01-Feb-2023] * Support for PHP 8.2 * New script: v-move-folder-and-make-symlink * New script: v-lock-wordpress (to prevent PHP malware) and v-unlock-wordpress +* v-install-wordpress: Installing WordPress to user_domain_com database instead of installing to user_wp database * Many minor bugfixes Version 0.9.8-26-58 [12-Jul-2022] From 0a17e3759b5d4cc77d2b71e92374eb65300308d2 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 31 Jan 2023 23:49:12 +0100 Subject: [PATCH 492/984] Version 0.9.8-26-59 --- src/deb/latest.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/latest.txt b/src/deb/latest.txt index 5a056019..44148247 100644 --- a/src/deb/latest.txt +++ b/src/deb/latest.txt @@ -1 +1 @@ -vesta-0.9.8-26-58 +vesta-0.9.8-26-59 From 8eb0b19a0bf78c5e2b0d0c4eb2fe1843c573267a Mon Sep 17 00:00:00 2001 From: isscbta <53144593+isscbta@users.noreply.github.com> Date: Wed, 1 Feb 2023 19:37:14 +0100 Subject: [PATCH 493/984] Automatic installation of rocket-nginx for a given domain --- bin/v-activate-rocket-nginx.sh | 116 +++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 bin/v-activate-rocket-nginx.sh diff --git a/bin/v-activate-rocket-nginx.sh b/bin/v-activate-rocket-nginx.sh new file mode 100644 index 00000000..36c6d768 --- /dev/null +++ b/bin/v-activate-rocket-nginx.sh @@ -0,0 +1,116 @@ +#!/bin/bash +# info: Install rocket-nginx extension for certain domain +# options: DOMAIN + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +whoami=$(whoami) +if [ "$whoami" != "root" ]; then + echo "You must be root to execute this script" + exit 1 +fi + +# Importing system environment +source /etc/profile + +# Argument definition +domain=$1 + +user=$(/usr/local/vesta/bin/v-search-domain-owner $domain) +USER=$user + +# Includes +source /usr/local/vesta/func/main.sh +source /usr/local/vesta/func/domain.sh + +if [ -z "$user" ]; then + check_result $E_NOTEXIST "domain $domain doesn't exist" +fi + + +#----------------------------------------------------------# +# Verifications # +#----------------------------------------------------------# + +check_args '1' "$#" 'DOMAIN' +is_format_valid 'domain' +is_object_valid 'user' 'USER' "$user" +is_object_unsuspended 'user' 'USER' "$user" + +if [ ! -d "/home/$user" ]; then + echo "User doesn't exist"; + exit 1; +fi + +if [ ! -d "/home/$user/web/$domain/public_html" ]; then + echo "Domain doesn't exist"; + exit 1; +fi + +if [ ! -d "/etc/nginx/rocket-nginx" ]; then + echo "rocket-nginx is not installed"; + echo "Do you want to install it now (y/n)?" + read answer + if [ "$answer" == "y" ]; then + echo "Installing rocket-nginx..." + curl -sL https://c.myvestacp.com/tools/install-rocket-nginx.sh | bash - + else + echo "Exiting script" + exit 1; + fi +fi + + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +# Chaning Proxy Template +echo "Do you want to force-https in your Proxy Template or not (y/n):" +read answer +if [ "$answer" == "y" ]; then + /usr/local/vesta/bin/v-change-web-domain-proxy-tpl "$user" "$domain" "wprocket-force-https" +else + /usr/local/vesta/bin/v-change-web-domain-proxy-tpl "$user" "$domain" "wprocket-hosting" +fi +echo "Proxy Template is ready" + +# Checking if the website is WordPress +if [ ! -f "/home/$user/web/$domain/public_html/wp-config.php" ]; then + echo 'Please install WordPress first.' + exit 1; +fi + +# Disabling wp-cron in wp-config.php +echo "Disabling WP-Cron in your wp-config.php..." +string="define( 'DISABLE_WP_CRON', true );" +line="define( 'DB_COLLATE', '' );" +file="/home/$user/web/$domain/public_html/wp-config.php" +sed -i "/$line/a $string" $file + +# Adding cron job +echo "Adding cron job..." + +TPL=$(/usr/local/vesta/bin/v-list-web-domain $user $domain shell | grep 'TEMPLATE:' | awk '{print $2}') +if [[ $TPL == "PHP-FPM-"* ]]; then + fpm_tpl_ver=${TPL:8:2} + fpm_ver="${TPL:8:1}.${TPL:9:1}" +fi + +touch /home/$user/web/$domain/cron.log +chown $user:$user /home/$user/web/$domain/cron.log + +case $fpm_ver in + 5.6 | 7.0 | 7.1 | 7.2 | 7.3 | 7.4 | 8.0 | 8.1 | 8.2) + /usr/local/vesta/bin/v-add-cron-job "$user" "*/15" "*" "*" "*" "*" "cd /home/$user/web/$domain/public_html; /usr/bin/php$fpm_ver wp-cron.php >/home/$user/web/$domain/cron.log 2>&1" + ;; +esac + +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# +echo "Installation is completed." + +exit From c263c3322c5cf0c493bbfedd6361243b06975948 Mon Sep 17 00:00:00 2001 From: isscbta <53144593+isscbta@users.noreply.github.com> Date: Wed, 1 Feb 2023 19:40:01 +0100 Subject: [PATCH 494/984] Update v-activate-rocket-nginx.sh --- bin/v-activate-rocket-nginx.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-activate-rocket-nginx.sh b/bin/v-activate-rocket-nginx.sh index 36c6d768..93deab0a 100644 --- a/bin/v-activate-rocket-nginx.sh +++ b/bin/v-activate-rocket-nginx.sh @@ -67,7 +67,7 @@ fi # Action # #----------------------------------------------------------# -# Chaning Proxy Template +# Changing Proxy Template echo "Do you want to force-https in your Proxy Template or not (y/n):" read answer if [ "$answer" == "y" ]; then From 2d8fc21ba7565b8e6fe4834cbace520be6e82c9c Mon Sep 17 00:00:00 2001 From: isscbta <53144593+isscbta@users.noreply.github.com> Date: Wed, 1 Feb 2023 20:07:07 +0100 Subject: [PATCH 495/984] Update v-activate-rocket-nginx.sh --- bin/v-activate-rocket-nginx.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bin/v-activate-rocket-nginx.sh b/bin/v-activate-rocket-nginx.sh index 93deab0a..b2f7b682 100644 --- a/bin/v-activate-rocket-nginx.sh +++ b/bin/v-activate-rocket-nginx.sh @@ -112,5 +112,7 @@ esac # Vesta # #----------------------------------------------------------# echo "Installation is completed." +echo "Checking RESPONSE HEADERS (You should see x-rocket-nginx-serving-static if the WP Rocket plugin is activated):" +curl -I https://$domain exit From 1c33f9cfd25e2cbf448d0913866200a7ee8f387b Mon Sep 17 00:00:00 2001 From: isscbta <53144593+isscbta@users.noreply.github.com> Date: Thu, 2 Feb 2023 11:37:42 +0100 Subject: [PATCH 496/984] Update v-activate-rocket-nginx.sh --- bin/v-activate-rocket-nginx.sh | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/bin/v-activate-rocket-nginx.sh b/bin/v-activate-rocket-nginx.sh index b2f7b682..1b8561c3 100644 --- a/bin/v-activate-rocket-nginx.sh +++ b/bin/v-activate-rocket-nginx.sh @@ -49,6 +49,11 @@ if [ ! -d "/home/$user/web/$domain/public_html" ]; then exit 1; fi +if [ ! -f "/home/$user/web/$domain/public_html/wp-config.php" ]; then + echo 'Please install WordPress first.' + exit 1; +fi + if [ ! -d "/etc/nginx/rocket-nginx" ]; then echo "rocket-nginx is not installed"; echo "Do you want to install it now (y/n)?" @@ -77,12 +82,6 @@ else fi echo "Proxy Template is ready" -# Checking if the website is WordPress -if [ ! -f "/home/$user/web/$domain/public_html/wp-config.php" ]; then - echo 'Please install WordPress first.' - exit 1; -fi - # Disabling wp-cron in wp-config.php echo "Disabling WP-Cron in your wp-config.php..." string="define( 'DISABLE_WP_CRON', true );" From d940389c153cb476df3c54ad7bec91a9f215708a Mon Sep 17 00:00:00 2001 From: isscbta <53144593+isscbta@users.noreply.github.com> Date: Thu, 2 Feb 2023 13:44:29 +0100 Subject: [PATCH 497/984] Script to determine which PHP version a given domain is using --- bin/v-get-php-version-of-domain.sh | 69 ++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 bin/v-get-php-version-of-domain.sh diff --git a/bin/v-get-php-version-of-domain.sh b/bin/v-get-php-version-of-domain.sh new file mode 100644 index 00000000..bd0e7a51 --- /dev/null +++ b/bin/v-get-php-version-of-domain.sh @@ -0,0 +1,69 @@ +#!/bin/bash +# info: Check PHP version used for certain domain +# options: DOMAIN + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +whoami=$(whoami) +if [ "$whoami" != "root" ]; then + echo "You must be root to execute this script" + exit 1 +fi + +# Importing system environment +source /etc/profile + +# Argument definition +domain=$1 + +user=$(/usr/local/vesta/bin/v-search-domain-owner $domain) +USER=$user + +# Includes +source /usr/local/vesta/func/main.sh +source /usr/local/vesta/func/domain.sh + +if [ -z "$user" ]; then + check_result $E_NOTEXIST "domain $domain doesn't exist" +fi + + +#----------------------------------------------------------# +# Verifications # +#----------------------------------------------------------# + +check_args '1' "$#" 'DOMAIN' +is_format_valid 'domain' +is_object_valid 'user' 'USER' "$user" +is_object_unsuspended 'user' 'USER' "$user" + +if [ ! -d "/home/$user" ]; then + echo "User doesn't exist"; + exit 1; +fi + +if [ ! -d "/home/$user/web/$domain/public_html" ]; then + echo "Domain doesn't exist"; + exit 1; +fi + + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + + +TPL=$(/usr/local/vesta/bin/v-list-web-domain $user $domain shell | grep 'TEMPLATE:' | awk '{print $2}') +if [[ $TPL == "PHP-FPM-"* ]]; then + fpm_tpl_ver=${TPL:8:2} + fpm_ver="${TPL:8:1}.${TPL:9:1}" +fi + +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# +echo "PHP-FPM version running on given domain is: $fpm_ver" + +exit From 15e5f3bc81d9e36d8e63c920eb9636d241a7c250 Mon Sep 17 00:00:00 2001 From: isscbta <53144593+isscbta@users.noreply.github.com> Date: Thu, 2 Feb 2023 13:49:00 +0100 Subject: [PATCH 498/984] Rename v-get-php-version-of-domain.sh to v-get-php-version-of-domain --- ...v-get-php-version-of-domain.sh => v-get-php-version-of-domain} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename bin/{v-get-php-version-of-domain.sh => v-get-php-version-of-domain} (100%) diff --git a/bin/v-get-php-version-of-domain.sh b/bin/v-get-php-version-of-domain similarity index 100% rename from bin/v-get-php-version-of-domain.sh rename to bin/v-get-php-version-of-domain From ab0b8c53c4c028a5e76f79d96b47ef761106b6aa Mon Sep 17 00:00:00 2001 From: isscbta <53144593+isscbta@users.noreply.github.com> Date: Thu, 2 Feb 2023 14:28:37 +0100 Subject: [PATCH 499/984] Rename v-activate-rocket-nginx.sh to v-activate-rocket-nginx --- bin/{v-activate-rocket-nginx.sh => v-activate-rocket-nginx} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename bin/{v-activate-rocket-nginx.sh => v-activate-rocket-nginx} (100%) diff --git a/bin/v-activate-rocket-nginx.sh b/bin/v-activate-rocket-nginx similarity index 100% rename from bin/v-activate-rocket-nginx.sh rename to bin/v-activate-rocket-nginx From 1ecd2277851cdf6813658640b08b2ff2466edcce Mon Sep 17 00:00:00 2001 From: Umut Korkmaz Date: Sat, 4 Feb 2023 01:58:49 +0300 Subject: [PATCH 500/984] Untranslated fields translated, typos fixed --- web/inc/i18n/tr.php | 151 ++++++++++++++++++++++---------------------- 1 file changed, 76 insertions(+), 75 deletions(-) diff --git a/web/inc/i18n/tr.php b/web/inc/i18n/tr.php index a7fadc43..7aac0098 100644 --- a/web/inc/i18n/tr.php +++ b/web/inc/i18n/tr.php @@ -3,6 +3,7 @@ * Vesta turkish language file * 2014.11.01 Özgür Bozkurt (info@ozgurbozkurt.com/ozgur@forum.vestacp.com) * 2016.06.27 Selim Can CABA (info@selimcancaba.com) + * 2023.02.04 Umut Korkmaz (umutkorkmaaz@gmail.com) */ $LANG['tr'] = array( @@ -26,22 +27,22 @@ $LANG['tr'] = array( 'CRON' => 'CRON', 'BACKUP' => 'YEDEK', - 'LOGIN' => 'LOGIN', - 'RESET PASSWORD' => 'RESET PASSWORD', - 'SEARCH' => 'SEARCH', - 'PACKAGE' => 'PACKAGE', + 'LOGIN' => 'GİRİŞ', + 'RESET PASSWORD' => 'PAROLAYI SIFIRLA', + 'SEARCH' => 'ARA', + 'PACKAGE' => 'PAKET', 'RRD' => 'RRD', - 'STATS' => 'STATS', + 'STATS' => 'ISTATISTIKLER', 'LOG' => 'LOG', - 'UPDATES' => 'UPDATES', - 'FIREWALL' => 'FIREWALL', - 'SERVER' => 'SERVER', - 'MEMORY' => 'MEMORY', + 'UPDATES' => 'GÜNCELLEMELER', + 'FIREWALL' => 'GÜVENLİK DUVARI', + 'SERVER' => 'SUNUCU', + 'MEMORY' => 'BELLEK', 'DISK' => 'DISK', - 'NETWORK' => 'NETWORK', + 'NETWORK' => 'AĞ', 'Web Log Manager' => 'Web Log Manager', - 'no notifications' => 'no notifications', + 'no notifications' => 'bildirim yok', 'Add User' => 'Kullanıcı Ekle', 'Add Domain' => 'Alan Adı Ekle', @@ -84,7 +85,7 @@ $LANG['tr'] = array( 'unsuspend' => 'devam ettir', 'delete' => 'sil', 'show per user' => 'kullanıcı başına göster', - 'login as' => 'giriş yapıldı:', + 'login as' => 'giriş yap:', 'logout' => 'oturumu kapat', 'edit' => 'düzenle', 'open webstats' => 'webstats aç', @@ -110,7 +111,7 @@ $LANG['tr'] = array( 'disable autoupdate' => 'otomatik güncellemeyi pasif hale getir', 'turn on notifications' => 'duyuruları aç', 'turn off notifications' => 'duyuruları kapat', - 'configure' => 'configure', + 'configure' => 'yapılandır', 'Adding User' => 'Kullanıcı Ekleme', 'Editing User' => 'Kullanıcı Düzenleme', @@ -186,22 +187,22 @@ $LANG['tr'] = array( 'Mail Accounts' => 'Posta Hesapları', 'Cron Jobs' => 'Zamanlanmış Görevler', 'SSH Access' => 'SSH Erişimi', - 'IP Address' => 'IP Address', + 'IP Address' => 'IP Adresi', 'IP Addresses' => 'IP Adresleri', 'Backups' => 'Yedekler', 'Backup System' => 'Yedekleme Sistemi', 'backup exclusions' => 'yedekleme istisnaları', 'template' => 'template', - 'SSL Support' => 'SSL Support', - 'SSL Home Directory' => 'SSL Home', - 'Lets Encrypt Support' => 'Lets Encrypt Support', + 'SSL Support' => 'SSL Desteği', + 'SSL Home Directory' => 'SSL Dizini', + 'Lets Encrypt Support' => 'Lets Encrypt Desteği', 'Lets Encrypt' => 'Lets Encrypt', - 'Your certificate will be automatically issued in 5 minutes' => 'Your certificate will be automatically issued in 5 minutes', + 'Your certificate will be automatically issued in 5 minutes' => 'Sertifikanız 5 dakika içinde otomatik olarak verilecektir.', 'Proxy Support' => 'Proxy Desteği', 'Proxy Extensions' => 'Proxy Uzantıları', 'Web Statistics' => 'Web İstatistikleri', 'Additional FTP Account' => 'İlave FTP Hesabı', - 'Path' => 'Path', + 'Path' => 'Ana dizin', 'SOA' => 'SOA', 'TTL' => 'TTL', 'Expire' => 'Sonlanış', @@ -216,19 +217,19 @@ $LANG['tr'] = array( 'Autoreply' => 'Otomatik Cevap', 'Forward to' => 'Şuraya yönlendir', 'Do not store forwarded mail' => 'Yönlendirilmiş postaları depolama', - 'IMAP hostname' => 'IMAP hostname', + 'IMAP hostname' => 'IMAP sunucusu', 'IMAP port' => 'IMAP port', - 'IMAP security' => 'IMAP security', - 'IMAP auth method' => 'IMAP auth method', - 'SMTP hostname' => 'SMTP hostname', + 'IMAP security' => 'IMAP güvenliği', + 'IMAP auth method' => 'IMAP giriş metodu', + 'SMTP hostname' => 'SMTP sunucusu', 'SMTP port' => 'SMTP port', - 'SMTP security' => 'SMTP security', - 'SMTP auth method' => 'SMTP auth method', + 'SMTP security' => 'SMTP güvenliği', + 'SMTP auth method' => 'SMTP giriş metodu', 'STARTTLS' => 'STARTTLS', - 'Normal password' => 'Normal password', + 'Normal password' => 'Normal parola', 'database' => 'veritabanı', 'User' => 'Kullanıcı', - 'Host' => 'Host', + 'Host' => 'Sunucu', 'Charset' => 'Karakter Seti', 'Min' => 'Dak', 'Hour' => 'Saat', @@ -247,14 +248,14 @@ $LANG['tr'] = array( 'Users' => 'Kullanıcılar', 'Load Average' => 'Sistem Yükü', 'Memory Usage' => 'Hafıza Kullanımı', - 'APACHE2 Usage' => 'APACHE2 Usage', + 'APACHE2 Usage' => 'APACHE2 Kullanımı', 'HTTPD Usage' => 'HTTPD Kullanımı', 'NGINX Usage' => 'NGINX Kullanımı', 'MySQL Usage on localhost' => 'Localhost Üzerindeki MySQL Kullanımı', 'PostgreSQL Usage on localhost' => 'Localhost Üzerindeki PostgreSQL Kullanımı', 'Bandwidth Usage eth0' => 'eth0 Trafik Kullanımı', 'Bandwidth Usage eth1' => 'eth1 Trafik Kullanımı', - 'Exim Usage' => 'Exim Usage', + 'Exim Usage' => 'Exim Kullanımı', 'FTP Usage' => 'FTP Kullanımı', 'SSH Usage' => 'SSH Kullanımı', 'reverse proxy' => 'reverse proxy', @@ -293,7 +294,7 @@ $LANG['tr'] = array( 'DNS Support' => 'DNS Desteği', 'Mail Support' => 'Mail Desteği', 'Advanced options' => 'Gelişmiş seçenekler', - 'Basic options' => 'Basic options', + 'Basic options' => 'Basit seçenekler', 'Aliases' => 'Takma adlar (Alias)', 'SSL Certificate' => 'SSL Sertifikası', 'SSL Key' => 'SSL Anahtarı (Key)', @@ -397,7 +398,7 @@ $LANG['tr'] = array( 'SSH' => 'SSH', 'FTP' => 'FTP', 'VESTA' => 'VESTA', - 'Add one more Name Server' => 'Add one more Name Server', + 'Add one more Name Server' => 'Bir Name Server daha ekle', 'web domain' => 'web domain', 'dns domain' => 'dns domain', @@ -449,17 +450,17 @@ $LANG['tr'] = array( 'MAIL_ACCOUNT_CREATED_OK' => '%s@%s mail hesabı başarıyla oluşturuldu', 'DATABASE_CREATED_OK' => '%s veritabanı başarıyla oluşturuldu.', 'CRON_CREATED_OK' => 'Zamanlanmış görev başarıyla oluşturuldu.', - 'IP_CREATED_OK' => '%s ip adresi başarıyla oluşturuldu.', + 'IP_CREATED_OK' => '%s IP adresi başarıyla oluşturuldu.', 'PACKAGE_CREATED_OK' => '%s paketi başarıyla oluşturuldu.', 'SSL_GENERATED_OK' => 'Sertifika başarıyla oluşturuldu.', 'RULE_CREATED_OK' => 'Kural başarıyla oluşturuldu.', - 'BANLIST_CREATED_OK' => 'IP address has been banned successfully', + 'BANLIST_CREATED_OK' => 'IP adresi başarıyla engellendi', 'Autoupdate has been successfully enabled' => 'Otomatik güncelleme başarıyla aktifleştirildi', 'Autoupdate has been successfully disabled' => 'Otomatik güncelleme başarıyla pasifleştirildi', 'Cronjob email reporting has been successfully enabled' => 'Zamanlanmış görev e-posta raporlama başarıyla aktif hale getirildi', 'Cronjob email reporting has been successfully disabled' => 'Zamanlanmış görev e-posta raporlama başarıyla pasif hale getirildi', 'Changes has been saved.' => 'Değişiklikler kaydedildi.', - 'Confirmation' => 'Onaylama', + 'Confirmation' => 'Onayla', 'DELETE_USER_CONFIRMATION' => '%s kullanıcısını silmek istediğinize emin misiniz?', 'SUSPEND_USER_CONFIRMATION' => '%s kullanıcısını askıya almak istediğinize emin misiniz?', 'UNSUSPEND_USER_CONFIRMATION' => '%s kullanıcısını devam ettirmek istediğinize emin misiniz?', @@ -488,7 +489,7 @@ $LANG['tr'] = array( 'LEAVE_PAGE_CONFIRMATION' => 'Leave Page?', 'RESTART_CONFIRMATION' => '%s yeniden başlatılacak. Onaylıyor musunuz?', 'Welcome' => 'Hoşgeldiniz', - 'LOGGED_IN_AS' => '%s kullanıcısı olarak oturum aç', + 'LOGGED_IN_AS' => '%s kullanıcısı olarak oturum açıldı', 'Error' => 'Hata', 'Invalid username or password' => 'Geçersiz kullanıcı adı veya şifre', 'Invalid username or code' => 'Geçersiz kullanıcı adı veya kod', @@ -548,30 +549,30 @@ $LANG['tr'] = array( 'Dec' => 'Ara', 'Configuring Server' => 'Sunucu Yapılandırma', - 'Hostname' => 'Hostadı', + 'Hostname' => 'Sunucu Adı', 'Time Zone' => 'Zaman Dilimi', 'Default Language' => 'Varsayılan Dil', - 'Proxy Server' => 'Proxy Server', - 'Web Server' => 'Web Server', - 'Backend Server' => 'Backend Server', + 'Proxy Server' => 'Proxy Sunucusu', + 'Web Server' => 'Web Sunucusu', + 'Backend Server' => 'Backend Sunucusu', 'Backend Pool Mode' => 'Backend Pool Mode', - 'DNS Server' => 'DNS Server', + 'DNS Server' => 'DNS Sunucusu', 'DNS Cluster' => 'DNS Cluster', - 'MAIL Server' => 'MAIL Server', + 'MAIL Server' => 'MAIL Sunucusu', 'Antivirus' => 'Antivirus', 'AntiSpam' => 'AntiSpam', - 'Use Web Domain SSL Certificate' => 'Use Web Domain SSL Certificate', + 'Use Web Domain SSL Certificate' => 'Web Alan Adının SSL Sertifikasını Kullan', 'Webmail URL' => 'Webmail URL', - 'MySQL Support' => 'MySQL Support', + 'MySQL Support' => 'MySQL Desteği', 'phpMyAdmin URL' => 'phpMyAdmin URL', - 'PostgreSQL Support' => 'PostgreSQL Support', + 'PostgreSQL Support' => 'PostgreSQL Desteği', 'phpPgAdmin URL' => 'phpPgAdmin URL', - 'Maximum Number Of Databases' => 'Maximum Number Of Databases', - 'Current Number Of Databases' => 'Current Number Of Databases', - 'Local backup' => 'Local backup', - 'Compression level' => 'Compression level', - 'Directory' => 'Directory', - 'Remote backup' => 'Remote backup', + 'Maximum Number Of Databases' => 'Maksimum Veritabanı Sayısı', + 'Current Number Of Databases' => 'Mevcut Veritabanı Sayısı', + 'Local backup' => 'Yerel Yedek', + 'Compression level' => 'Sıkıştırma seviyesi', + 'Directory' => 'Dizin', + 'Remote backup' => 'Uzak Yedek', 'ftp' => 'FTP', 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', @@ -590,7 +591,7 @@ $LANG['tr'] = array( 'Starred' => 'Yıldızlı', 'Name' => 'İsim', - 'save to favorites' => 'save to favorites', + 'save to favorites' => 'favorilere kaydet', 'File Manager' => 'Dosya Yöneticisi', 'size' => 'boyut', @@ -602,13 +603,13 @@ $LANG['tr'] = array( 'NEW DIR' => 'YENİ KLASÖR', 'DELETE' => 'SİL', 'RENAME' => 'YENİDEN ADLANDIR', - 'MOVE' => 'MOVE', - 'RIGHTS' => 'RIGHTS', + 'MOVE' => 'TAŞI', + 'RIGHTS' => 'IZINLER', 'COPY' => 'KOPYALA', 'ARCHIVE' => 'ARŞİVLE', 'EXTRACT' => 'ÇIKART', 'DOWNLOAD' => 'İNDİR', - 'Are you sure?' => 'Are you sure?', + 'Are you sure?' => 'Emin misin?', 'Hit' => 'Hit', 'to reload the page' => 'sayfayı yenilemek için', 'Directory name cannot be empty' => 'Dizin adı boş olamaz', @@ -623,20 +624,20 @@ $LANG['tr'] = array( 'Copy' => 'Kopyala', 'Cancel' => 'Vazgeç', 'Rename' => 'Yeniden Adlandır', - 'Move' => 'Move', - 'Change Rights' => 'Change Rights', + 'Move' => 'Taşı', + 'Change Rights' => 'İzinleri Değiştir', 'Delete' => 'Sil', 'Extract' => 'Çıkart', 'Create' => 'Oluştur', 'Compress' => 'Sıkıştır', 'OK' => 'TAMAM', - 'YOU ARE COPYING' => 'YOU ARE COPYING', - 'YOU ARE REMOVING' => 'YOU ARE REMOVING', - 'Delete items' => 'Delete items', - 'Copy files' => 'Copy files', - 'Move files' => 'Move files', + 'YOU ARE COPYING' => 'KOPYALAMA YAPIYORSUNUZ', + 'YOU ARE REMOVING' => 'SİLME İŞLEMİ YAPIYORSUNUZ', + 'Delete items' => 'Öğeleri sil', + 'Copy files' => 'Dosyaları kopyala', + 'Move files' => 'Dosyaları taşı', 'Are you sure you want to copy' => 'Kopyalamak istediğinizden emin misiniz', - 'Are you sure you want to move' => 'Are you sure you want to move', + 'Are you sure you want to move' => 'Taşımak istediğinizden emin misiniz', 'Are you sure you want to delete' => 'Silmek istediğinizden emin misiniz', 'into' => 'into', 'existing files will be replaced' => 'varolan dosyalar değiştirilir', @@ -655,7 +656,7 @@ $LANG['tr'] = array( 'write by others' => 'write by others', 'execute/search by others' => 'execute/search by others', - 'Shortcuts' => 'Shortcuts', + 'Shortcuts' => 'Kısayollar', 'Add New object' => 'Yeni Nesne Ekle', 'Save Form' => 'Formu Kaydet', 'Cancel saving form' => 'Formu kaydetmekten vazgeç', @@ -671,8 +672,8 @@ $LANG['tr'] = array( 'Move backward through top menu' => 'Üst menüden arasında geriye doğru git', 'Move forward through top menu' => 'Üst menüden arasında ileriye doğru git', 'Enter focused element' => 'Odaklanmış elemanı gir', - 'Move up through elements list' => 'Move up through elements list', - 'Move down through elements list' => 'Move down through elements list', + 'Move up through elements list' => 'Öğeler listesinde yukarı git', + 'Move down through elements list' => 'Öğeler listesinde aşağı git', 'Upload' => 'Yükle', 'New File' => 'Yeni Dosya', @@ -689,7 +690,7 @@ $LANG['tr'] = array( 'Go to the Top of the File List' => 'Dosya Listesinin Tepesine git', 'Go to the Last File' => 'Son Dosyaya git', 'Open File / Enter Directory' => 'Dosya Aç/Dizin Gir', - 'Edit File' => 'Edit File', + 'Edit File' => 'Dosya düzenle', 'Go to Parent Directory' => 'Üst Dizine Git', 'Select Current File' => 'Şuanki Dosyayı Seç', 'Select Bunch of Files' => 'Dosya Demetini Seç', @@ -732,7 +733,7 @@ $LANG['tr'] = array( 'every minute' => 'her dakika', 'every two minutes' => 'her iki dakikada bir', 'every' => 'her', - 'Generate' => 'Generate', + 'Generate' => 'Oluştur', 'webalizer' => 'webalizer', 'awstats' => 'awstats', @@ -746,14 +747,14 @@ $LANG['tr'] = array( 'PUB_KEY' => 'PUB_KEY', 'ISSUER' => 'ISSUER', - 'Use server hostname' => 'Use server hostname', - 'Use domain hostname' => 'Use domain hostname', - 'Use STARTTLS' => 'Use STARTTLS', - 'Use SSL / TLS' => 'Use SSL / TLS', - 'No encryption' => 'No encryption', - 'Do not use encryption' => 'Do not use encryption', + 'Use server hostname' => 'Sunucu adını kullan', + 'Use domain hostname' => 'Alan adını kullan', + 'Use STARTTLS' => 'STARTTLS Kullan', + 'Use SSL / TLS' => 'SSL / TLS Kullan', + 'No encryption' => 'Şifreleme yok', + 'Do not use encryption' => 'Şifreleme kullanma', - 'maximum characters length, including prefix' => 'maximum %s characters length, including prefix', + 'maximum characters length, including prefix' => 'önek dahil maksimum %s karakter uzunluğu', - 'Email Credentials' => 'Email Credentials', + 'Email Credentials' => 'E-posta Kimlik Bilgileri', ); From 164ea90d53a92253ffd1b569292fefd6726f3a6c Mon Sep 17 00:00:00 2001 From: Umut Korkmaz Date: Sat, 4 Feb 2023 02:45:31 +0300 Subject: [PATCH 501/984] Added missing fields --- web/inc/i18n/ar.php | 1 + web/inc/i18n/az.php | 1 + web/inc/i18n/bg.php | 7 ++++++- web/inc/i18n/bs.php | 1 + web/inc/i18n/cn.php | 1 + web/inc/i18n/cz.php | 1 + web/inc/i18n/da.php | 1 + web/inc/i18n/de.php | 1 + web/inc/i18n/el.php | 1 + web/inc/i18n/en.php | 1 + web/inc/i18n/es.php | 1 + web/inc/i18n/fa.php | 1 + web/inc/i18n/fi.php | 1 + web/inc/i18n/fr.php | 1 + web/inc/i18n/hu.php | 1 + web/inc/i18n/id.php | 1 + web/inc/i18n/it.php | 1 + web/inc/i18n/ja.php | 1 + web/inc/i18n/ka.php | 1 + web/inc/i18n/ko.php | 1 + web/inc/i18n/nl.php | 1 + web/inc/i18n/no.php | 1 + web/inc/i18n/pl.php | 1 + web/inc/i18n/pt-BR.php | 1 + web/inc/i18n/pt.php | 1 + web/inc/i18n/ro.php | 1 + web/inc/i18n/ru.php | 1 + web/inc/i18n/se.php | 1 + web/inc/i18n/sr.php | 1 + web/inc/i18n/th.php | 3 ++- web/inc/i18n/tr.php | 1 + web/inc/i18n/tw.php | 1 + web/inc/i18n/ua.php | 1 + web/inc/i18n/ur.php | 5 ++++- web/inc/i18n/vi.php | 1 + 35 files changed, 44 insertions(+), 3 deletions(-) diff --git a/web/inc/i18n/ar.php b/web/inc/i18n/ar.php index e50cfec7..927f9576 100644 --- a/web/inc/i18n/ar.php +++ b/web/inc/i18n/ar.php @@ -196,6 +196,7 @@ $LANG['ar'] = array( 'SSL Home Directory' => 'المجلد الرئيسي لـ SSL', 'Lets Encrypt Support' => 'دعم Lets Encrypt', 'Lets Encrypt' => 'Lets Encrypt', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => 'سوف يتم اصدار الترخيص الخاص بك خلال 5 دقائق', 'Proxy Support' => 'دغم بروكسي', 'Proxy Extensions' => 'توسعات بروكسي', diff --git a/web/inc/i18n/az.php b/web/inc/i18n/az.php index 715043a0..929d5d29 100644 --- a/web/inc/i18n/az.php +++ b/web/inc/i18n/az.php @@ -187,6 +187,7 @@ $LANG['az'] = array( 'SSL Home Directory' => 'SSL Ana qovluğu', 'Lets Encrypt Support' => 'Lets Encrypt dəstəyi', 'Lets Encrypt' => 'Şifrələ', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => 'Sənədiniz avtomatik olaraq 5 dəqiqə ərzində veriləcək', 'Proxy Support' => 'Proxy dəstəyi', 'Proxy Extensions' => 'Proxy əlavələri', diff --git a/web/inc/i18n/bg.php b/web/inc/i18n/bg.php index 642e6cfa..4baf8f2f 100644 --- a/web/inc/i18n/bg.php +++ b/web/inc/i18n/bg.php @@ -40,6 +40,8 @@ $LANG['bg'] = array( 'NETWORK' => 'МРЕЖА', 'Web Log Manager' => 'МЕНИДЖЪР НА УЕБ ЛОГОВЕ', + 'no notifications' => 'no notifications', + 'Add User' => 'Добави потребител', 'Add Domain' => 'Добави домейн', 'Add Web Domain' => 'Добави уеб домейн', @@ -107,6 +109,7 @@ $LANG['bg'] = array( 'disable autoupdate' => 'забрани автоматичното обновяване', 'turn on notifications' => 'включи известията', 'turn off notifications' => 'изключи известията', + 'configure' => 'configure', 'Adding User' => 'Добавяне на потребител', 'Editing User' => 'Редактиране на потребител', @@ -191,6 +194,8 @@ $LANG['bg'] = array( 'SSL Home Directory' => 'SSL начало', 'Lets Encrypt Support' => 'Lets Encrypt поддръжка', 'Lets Encrypt' => 'Lets Encrypt', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', + 'Your certificate will be automatically issued in 5 minutes' => 'Your certificate will be automatically issued in 5 minutes', 'Proxy Support' => 'Прокси поддръжка', 'Proxy Extensions' => 'Прокси разширения', 'Web Statistics' => 'Уеб статистики', @@ -688,7 +693,7 @@ $LANG['bg'] = array( 'Select Bunch of Files' => 'Избери няколко файла', 'Add File to the Current Selection' => 'Добави файла към текущата селекция', 'Select All Files' => 'Избери всички файлове', - 'shortcuts are inspired by magnificent GNU Midnight Commander файлов мениджър' => + 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => 'преките пътища са вдъхновени от великолепният GNU Midnight Commander файлов мениджър', 'Licence Key' => 'Лицензен ключ', 'Enter License Key' => 'Въведете лицензен ключ', diff --git a/web/inc/i18n/bs.php b/web/inc/i18n/bs.php index 4e2f32e1..8f515153 100644 --- a/web/inc/i18n/bs.php +++ b/web/inc/i18n/bs.php @@ -195,6 +195,7 @@ $LANG['bs'] = array( 'SSL Home Directory' => 'SSL direktorij', 'Lets Encrypt Support' => 'Lets Encrypt Support', 'Lets Encrypt' => 'Lets Encrypt', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => 'Your certificate will be automatically issued in 5 minutes', 'Proxy Support' => 'Proxy podrška', 'Proxy Extensions' => 'Proxy ekstenzije', diff --git a/web/inc/i18n/cn.php b/web/inc/i18n/cn.php index 389e8c1e..9276cd83 100644 --- a/web/inc/i18n/cn.php +++ b/web/inc/i18n/cn.php @@ -201,6 +201,7 @@ $LANG['cn'] = array( 'SSL Home Directory' => 'SSL主目录', 'Lets Encrypt Support' => '采用 Let's Encrypt', 'Lets Encrypt' => 'Let's Encrypt', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => '证书将在5分钟内自动完成签发', 'Proxy Support' => '反向代理', 'Proxy Extensions' => '需代理的文件扩展名', diff --git a/web/inc/i18n/cz.php b/web/inc/i18n/cz.php index 9a0cac79..9237444e 100644 --- a/web/inc/i18n/cz.php +++ b/web/inc/i18n/cz.php @@ -196,6 +196,7 @@ $LANG['cz'] = array( 'SSL Home Directory' => 'SSL home adresář', 'Lets Encrypt Support' => 'Lets Encrypt Support', 'Lets Encrypt' => 'Lets Encrypt', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => 'Your certificate will be automatically issued in 5 minutes', 'Proxy Support' => 'Proxy podpora', 'Proxy Extensions' => 'Proxy rozšíření', diff --git a/web/inc/i18n/da.php b/web/inc/i18n/da.php index 6e0fab72..92f1ee78 100644 --- a/web/inc/i18n/da.php +++ b/web/inc/i18n/da.php @@ -197,6 +197,7 @@ $LANG['da'] = array( 'SSL Home Directory' => 'SSL Home', 'Lets Encrypt Support' => 'Lets Encrypt Support', 'Lets Encrypt' => 'Lets Encrypt', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => 'Your certificate will be automatically issued in 5 minutes', 'Proxy Support' => 'Proxy Support', 'Proxy Extensions' => 'Proxy Tilføjelser', diff --git a/web/inc/i18n/de.php b/web/inc/i18n/de.php index 17d1101f..2e6cf9f3 100644 --- a/web/inc/i18n/de.php +++ b/web/inc/i18n/de.php @@ -195,6 +195,7 @@ $LANG['de'] = array( 'SSL Home Directory' => 'SSL Homeverzeichnis', 'Lets Encrypt Support' => 'Lets Encrypt Support', 'Lets Encrypt' => 'Lets Encrypt', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => 'Your certificate will be automatically issued in 5 minutes', 'Proxy Support' => 'Proxy Unterstützung', 'Proxy Extensions' => 'Proxy Erweiterungen', diff --git a/web/inc/i18n/el.php b/web/inc/i18n/el.php index bef89086..66b6532a 100644 --- a/web/inc/i18n/el.php +++ b/web/inc/i18n/el.php @@ -197,6 +197,7 @@ $LANG['el'] = array( 'SSL Home Directory' => 'Αρχικός Κατάλογος SSL', 'Lets Encrypt Support' => 'Lets Encrypt Support', 'Lets Encrypt' => 'Lets Encrypt', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => 'Your certificate will be automatically issued in 5 minutes', 'Proxy Support' => 'Υποστήριξη Proxy', 'Proxy Extensions' => 'Πρόσθετα Proxy', diff --git a/web/inc/i18n/en.php b/web/inc/i18n/en.php index d7ae290d..39c3bfff 100644 --- a/web/inc/i18n/en.php +++ b/web/inc/i18n/en.php @@ -195,6 +195,7 @@ $LANG['en'] = array( 'SSL Home Directory' => 'SSL Home', 'Lets Encrypt Support' => 'Lets Encrypt Support', 'Lets Encrypt' => 'Lets Encrypt', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => 'Your certificate will be automatically issued in 5 minutes', 'Proxy Support' => 'Proxy Support', 'Proxy Extensions' => 'Proxy Extensions', diff --git a/web/inc/i18n/es.php b/web/inc/i18n/es.php index 6e5ce352..3a8ae573 100644 --- a/web/inc/i18n/es.php +++ b/web/inc/i18n/es.php @@ -203,6 +203,7 @@ $LANG['es'] = array( 'SSL Home Directory' => 'Directorio local del SSL', 'Lets Encrypt Support' => 'Soportar Lets Encrypt', 'Lets Encrypt' => 'Lets Encrypt', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => 'Tu certificado será emitido automáticamente en 5 minutos', 'Proxy Support' => 'Soportar Proxy', 'Proxy Extensions' => 'Extensiones Proxy', diff --git a/web/inc/i18n/fa.php b/web/inc/i18n/fa.php index 8355691a..1778b5b8 100644 --- a/web/inc/i18n/fa.php +++ b/web/inc/i18n/fa.php @@ -190,6 +190,7 @@ $LANG['fa'] = array( 'SSL Home Directory' => 'پوشه خانه SSL', 'Lets Encrypt Support' => 'پشتیبانی از Lets Encrypt', 'Lets Encrypt' => 'Lets Encrypt', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => 'گواهینامه شما به صورت خودکار در طی 5 دقیقه صادر خواهد شد', 'Proxy Support' => 'پشتیبانی پراکسی', 'Proxy Extensions' => 'فرمت های پراکسی', diff --git a/web/inc/i18n/fi.php b/web/inc/i18n/fi.php index 951f8da3..8b7d33e2 100644 --- a/web/inc/i18n/fi.php +++ b/web/inc/i18n/fi.php @@ -197,6 +197,7 @@ $LANG['fi'] = array( 'SSL Home Directory' => 'SSL-kotihakemisto', 'Lets Encrypt Support' => 'Lets Encrypt Tuki', 'Lets Encrypt' => 'Lets Encrypt', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => 'Sertifikaattisi käsitellään viiden minuutin sisään', 'Proxy Support' => 'Proxy-tuki', 'Proxy Extensions' => 'Proxy-laajennukset', diff --git a/web/inc/i18n/fr.php b/web/inc/i18n/fr.php index 4e2e3144..5a68a58a 100644 --- a/web/inc/i18n/fr.php +++ b/web/inc/i18n/fr.php @@ -195,6 +195,7 @@ $LANG['fr'] = array( 'SSL Home Directory' => 'Racine SSL', 'Lets Encrypt Support' => 'Lets Encrypt Support', 'Lets Encrypt' => 'Lets Encrypt', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => 'Your certificate will be automatically issued in 5 minutes', 'Proxy Support' => 'Support Proxy', 'Proxy Extensions' => 'Extensions Proxy', diff --git a/web/inc/i18n/hu.php b/web/inc/i18n/hu.php index 1c37f93f..c0ac0a41 100644 --- a/web/inc/i18n/hu.php +++ b/web/inc/i18n/hu.php @@ -199,6 +199,7 @@ $LANG['hu'] = array( 'SSL Home Directory' => 'SSL kezdőlap', 'Lets Encrypt Support' => 'Lets Encrypt Support', 'Lets Encrypt' => 'Lets Encrypt', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => 'Your certificate will be automatically issued in 5 minutes', 'Proxy Support' => 'Proxy támogatás', 'Proxy Extensions' => 'Proxy kiterjesztések', diff --git a/web/inc/i18n/id.php b/web/inc/i18n/id.php index dd870f0d..7b43c044 100644 --- a/web/inc/i18n/id.php +++ b/web/inc/i18n/id.php @@ -196,6 +196,7 @@ $LANG['id'] = array( 'SSL Home Directory' => 'Direktori Home SSL', 'Lets Encrypt Support' => 'Dukungan Lets Encrypt', 'Lets Encrypt' => 'Lets Encrypt', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => 'Sertifikat anda akan otomatis diterbitkan dalam 5 menit', 'Proxy Support' => 'Dukungan Proxy', 'Proxy Extensions' => 'Ekstensi Proxy', diff --git a/web/inc/i18n/it.php b/web/inc/i18n/it.php index 1e104c51..91296d8b 100644 --- a/web/inc/i18n/it.php +++ b/web/inc/i18n/it.php @@ -196,6 +196,7 @@ $LANG['it'] = array( 'SSL Home Directory' => 'SSL Home', 'Lets Encrypt Support' => 'Lets Encrypt Support', 'Lets Encrypt' => 'Lets Encrypt', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => 'Your certificate will be automatically issued in 5 minutes', 'Proxy Support' => 'Supporto Proxy', 'Proxy Extensions' => 'Estensioni Proxy', diff --git a/web/inc/i18n/ja.php b/web/inc/i18n/ja.php index a592fd7b..c0e9e541 100644 --- a/web/inc/i18n/ja.php +++ b/web/inc/i18n/ja.php @@ -195,6 +195,7 @@ $LANG['ja'] = array( 'SSL Home Directory' => 'SSLホームディレクトリ', 'Lets Encrypt Support' => "Let's Encryptのサポート", 'Lets Encrypt' => "Let's Encrypt", + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => '証明書は5分以内に自動的に発行されます', 'Proxy Support' => 'プロキシのサポート', 'Proxy Extensions' => 'プロキシ対象拡張子', diff --git a/web/inc/i18n/ka.php b/web/inc/i18n/ka.php index 1512e06c..f82e2305 100644 --- a/web/inc/i18n/ka.php +++ b/web/inc/i18n/ka.php @@ -195,6 +195,7 @@ $LANG['ka'] = array( 'SSL Home Directory' => 'SSL მთავარი დირექტორია', 'Lets Encrypt Support' => 'Lets Encrypt Support', 'Lets Encrypt' => 'Lets Encrypt', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => 'Your certificate will be automatically issued in 5 minutes', 'Proxy Support' => 'პროქსის მხარდაჭერა', 'Proxy Extensions' => 'პროქსის გაფართოებები', diff --git a/web/inc/i18n/ko.php b/web/inc/i18n/ko.php index 1b09de25..e81ab4b0 100644 --- a/web/inc/i18n/ko.php +++ b/web/inc/i18n/ko.php @@ -195,6 +195,7 @@ $LANG['ko'] = array( 'SSL Home Directory' => 'SSL 홈 디렉토리', 'Lets Encrypt Support' => 'Lets Encrypt 지원', 'Lets Encrypt' => 'Lets Encrypt', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => '인증서는 5분 안에 자동으로 발급될 것입니다', 'Proxy Support' => '프록시 지원', 'Proxy Extensions' => '프록시 확장', diff --git a/web/inc/i18n/nl.php b/web/inc/i18n/nl.php index b5d68ec4..3b4fde10 100644 --- a/web/inc/i18n/nl.php +++ b/web/inc/i18n/nl.php @@ -198,6 +198,7 @@ $LANG['nl'] = array( 'SSL Home Directory' => 'SSL Map', 'Lets Encrypt Support' => 'Lets Encrypt Ondersteuning', 'Lets Encrypt' => 'Lets Encrypt', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => 'Het certificaat wordt automatisch aangemaakt in 5 minuten', 'Proxy Support' => 'Proxy Ondersteuning', 'Proxy Extensions' => 'Proxy Extensies', diff --git a/web/inc/i18n/no.php b/web/inc/i18n/no.php index fe026f39..30cc9306 100644 --- a/web/inc/i18n/no.php +++ b/web/inc/i18n/no.php @@ -196,6 +196,7 @@ $LANG['no'] = array( 'SSL Home Directory' => 'SSL Hjem', 'Lets Encrypt Support' => 'Lets Encrypt Support', 'Lets Encrypt' => 'Lets Encrypt', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => 'Your certificate will be automatically issued in 5 minutes', 'Proxy Support' => 'Proxy Støtte', 'Proxy Extensions' => 'Proxy Utvidelser', diff --git a/web/inc/i18n/pl.php b/web/inc/i18n/pl.php index e649a22c..a6376c1f 100644 --- a/web/inc/i18n/pl.php +++ b/web/inc/i18n/pl.php @@ -196,6 +196,7 @@ $LANG['pl'] = array( 'SSL Home Directory' => 'Folder główny SSL', 'Lets Encrypt Support' => 'Lets Encrypt Support', 'Lets Encrypt' => 'Lets Encrypt', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => 'Your certificate will be automatically issued in 5 minutes', 'Proxy Support' => 'Wsparcie dla Proxy', 'Proxy Extensions' => 'Rozszerzenia Proxy', diff --git a/web/inc/i18n/pt-BR.php b/web/inc/i18n/pt-BR.php index 303ae53f..b6716ef0 100644 --- a/web/inc/i18n/pt-BR.php +++ b/web/inc/i18n/pt-BR.php @@ -195,6 +195,7 @@ $LANG['pt-BR'] = array( 'SSL Home Directory' => 'Diretório Home SSL', 'Lets Encrypt Support' => 'Suporte Lets Encrypt', 'Lets Encrypt' => 'Lets Encrypt', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => 'Seu certificado será gerado automaticamente em 5 minutos', 'Proxy Support' => 'Suporte ao Proxy', 'Proxy Extensions' => 'Extensões do Proxy', diff --git a/web/inc/i18n/pt.php b/web/inc/i18n/pt.php index 02d3bf51..57366dbc 100644 --- a/web/inc/i18n/pt.php +++ b/web/inc/i18n/pt.php @@ -195,6 +195,7 @@ $LANG['pt'] = array( 'SSL Home Directory' => 'Diretório Home SSL', 'Lets Encrypt Support' => 'Lets Encrypt Support', 'Lets Encrypt' => 'Lets Encrypt', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => 'Your certificate will be automatically issued in 5 minutes', 'Proxy Support' => 'Suporte ao Proxy', 'Proxy Extensions' => 'Extenções do Proxy', diff --git a/web/inc/i18n/ro.php b/web/inc/i18n/ro.php index 5b70f5d5..4b4104bd 100644 --- a/web/inc/i18n/ro.php +++ b/web/inc/i18n/ro.php @@ -197,6 +197,7 @@ $LANG['ro'] = array( 'SSL Home Directory' => 'Director SSL', 'Lets Encrypt Support' => 'Lets Encrypt Support', 'Lets Encrypt' => 'Lets Encrypt', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => 'Your certificate will be automatically issued in 5 minutes', 'Proxy Support' => 'Suport Proxy', 'Proxy Extensions' => 'Extensii Proxy', diff --git a/web/inc/i18n/ru.php b/web/inc/i18n/ru.php index 58829fad..5b634db3 100644 --- a/web/inc/i18n/ru.php +++ b/web/inc/i18n/ru.php @@ -197,6 +197,7 @@ $LANG['ru'] = array( 'SSL Home Directory' => 'Директория SSL', 'Lets Encrypt Support' => 'Поддержка Lets Encrypt', 'Lets Encrypt' => 'Lets Encrypt', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => 'Сертификат будет автоматически создан в течение 5-ти минут', 'Proxy Support' => 'Поддержка Proxy', 'Proxy Extensions' => 'Обработка Proxy', diff --git a/web/inc/i18n/se.php b/web/inc/i18n/se.php index 96c5af9c..fc70440e 100644 --- a/web/inc/i18n/se.php +++ b/web/inc/i18n/se.php @@ -195,6 +195,7 @@ $LANG['se'] = array( 'SSL Home Directory' => 'Hemmakatalog för SSL', 'Lets Encrypt Support' => 'Lets Encrypt Support', 'Lets Encrypt' => 'Lets Encrypt', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => 'Your certificate will be automatically issued in 5 minutes', 'Proxy Support' => 'Nginx-stöd', 'Proxy Extensions' => 'Nginx-tillägg', diff --git a/web/inc/i18n/sr.php b/web/inc/i18n/sr.php index dc215f26..3dfcc0f5 100644 --- a/web/inc/i18n/sr.php +++ b/web/inc/i18n/sr.php @@ -195,6 +195,7 @@ $LANG['sr'] = array( 'SSL Home Directory' => 'SSL direktorijum', 'Lets Encrypt Support' => 'Lets Encrypt podrška', 'Lets Encrypt' => 'Lets Encrypt', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => 'Vaš sertifikat će biti automatski generisan za 5 minuta', 'Proxy Support' => 'Proxy podrška', 'Proxy Extensions' => 'Proxy ekstenzije', diff --git a/web/inc/i18n/th.php b/web/inc/i18n/th.php index 2878192f..63350f02 100644 --- a/web/inc/i18n/th.php +++ b/web/inc/i18n/th.php @@ -198,6 +198,7 @@ $LANG['th'] = array( 'SSL Home Directory' => 'ไดเร็กทอรี่หลักของ SSL', 'Lets Encrypt Support' => 'สนับสนุน Lets Encrypt', 'Lets Encrypt' => 'Lets Encrypt', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => 'ใบรับรองของคุณจะได้รับการออกโดยอัตโนมัติภายใน 5 นาที', 'Proxy Support' => 'สนับสนุน Proxy', 'Proxy Extensions' => 'ส่วนขยาย Proxy', @@ -704,7 +705,7 @@ $LANG['th'] = array( 'Enter License Key' => 'กรอก License Key', 'Buy Licence' => 'ซื้อ License', 'Buy Lifetime License' => 'ซื้อ License แบบถาวร', - 'Disable and Cancel License' => 'ปิดการใช้งาน และยกเลิก License', + 'Disable and Cancel Licence' => 'ปิดการใช้งาน และยกเลิก License', 'Licence Activated' => 'เปิดใช้งาน License แล้ว', 'Licence Deactivated' => 'ปิดการใช้งาน License แล้ว', 'Restrict users so that they cannot use SSH and access only their home directory.' => 'จำกัดผู้ใช้เพื่อไม่ให้ใช้ SSH และเข้าถึงไดเร็กทอรี่ของตนเองเท่านั้น', diff --git a/web/inc/i18n/tr.php b/web/inc/i18n/tr.php index 7aac0098..4b1ff8a4 100644 --- a/web/inc/i18n/tr.php +++ b/web/inc/i18n/tr.php @@ -197,6 +197,7 @@ $LANG['tr'] = array( 'SSL Home Directory' => 'SSL Dizini', 'Lets Encrypt Support' => 'Lets Encrypt Desteği', 'Lets Encrypt' => 'Lets Encrypt', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => 'Sertifikanız 5 dakika içinde otomatik olarak verilecektir.', 'Proxy Support' => 'Proxy Desteği', 'Proxy Extensions' => 'Proxy Uzantıları', diff --git a/web/inc/i18n/tw.php b/web/inc/i18n/tw.php index 163bee62..145f465d 100644 --- a/web/inc/i18n/tw.php +++ b/web/inc/i18n/tw.php @@ -197,6 +197,7 @@ $LANG['tw'] = array( 'SSL Home Directory' => 'SSL 主目錄', 'Lets Encrypt Support' => 'Lets Encrypt 支援', 'Lets Encrypt' => 'Lets Encrypt', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => '您的憑證會在五分鐘內完成簽發', 'Proxy Support' => 'Proxy 支援', 'Proxy Extensions' => 'Proxy 副檔名', diff --git a/web/inc/i18n/ua.php b/web/inc/i18n/ua.php index 136cc73f..d552b3f8 100644 --- a/web/inc/i18n/ua.php +++ b/web/inc/i18n/ua.php @@ -196,6 +196,7 @@ $LANG['ua'] = array( 'SSL Home Directory' => 'Домашня тека SSL', 'Lets Encrypt Support' => 'Підтримка Lets Encrypt', 'Lets Encrypt' => 'Lets Encrypt', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => 'Ваш сертифікат буде автоматично виданий протягом 5-ти хвилин', 'Proxy Support' => 'Підтримка Proxy', 'Proxy Extensions' => 'Розширення Proxy', diff --git a/web/inc/i18n/ur.php b/web/inc/i18n/ur.php index 2c95e821..87c11ed3 100644 --- a/web/inc/i18n/ur.php +++ b/web/inc/i18n/ur.php @@ -108,6 +108,8 @@ $LANG['ur'] = array( 'reread IP' => 'IP پھر سے پڑھنا', 'enable autoupdate' => 'آٹو اپ ڈیٹ کو چالو', 'disable autoupdate' => 'غیر فعال آٹو اپ ڈیٹ', + 'turn on notifications' => 'turn on notifications', + 'turn off notifications' => 'turn off notifications', 'configure' => 'ترتیب دے', 'Adding User' => 'شامل کرنے صارف', @@ -194,6 +196,7 @@ $LANG['ur'] = array( 'SSL Home Directory' => 'SSL ہوم', 'Lets Encrypt Support' => 'ینکریپٹ سپورٹ کی اجازت دیتا ہے', 'Lets Encrypt' => 'ینکریپٹ کی اجازت دیتا ہے', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => 'آپ کے سرٹیفکیٹ خود بخود 5 منٹ میں جاری کیا جائے گا', 'Proxy Support' => 'پراکسی سپورٹ', 'Proxy Extensions' => 'پراکسی ایکسٹنشن', @@ -747,7 +750,7 @@ $LANG['ur'] = array( 'Use server hostname' => 'سرور استعمال میزبان نام', 'Use domain hostname' => 'ڈومین کا استعمال میزبان نام', 'Use STARTTLS' => 'STARTTLS استعمال', - 'Use SSL' => 'SSL استعمال کریں', + 'Use SSL / TLS' => 'SSL استعمال کریں', 'No encryption' => 'کوئی خفیہ کاری', 'Do not use encryption' => 'خفیہ کاری کا استعمال نہ کریں', diff --git a/web/inc/i18n/vi.php b/web/inc/i18n/vi.php index 2de145b4..303bf8ac 100644 --- a/web/inc/i18n/vi.php +++ b/web/inc/i18n/vi.php @@ -198,6 +198,7 @@ $LANG['vi'] = array( 'SSL Home Directory' => 'Trang chủ SSL', 'Lets Encrypt Support' => 'Hỗ trợ Lets Encrypt', 'Lets Encrypt' => 'Lets Encrypt', + 'You can add LetsEncrypt after adding domain, just EDIT this domain later' => 'You can add LetsEncrypt after adding domain, just EDIT this domain later', 'Your certificate will be automatically issued in 5 minutes' => 'Chứng chỉ của bạn sẽ được tự động cấp phát trong 5 phút', 'Proxy Support' => 'Hỗ trợ Nginx', 'Proxy Extensions' => 'Phần mở rộng Nginx', From 87b821681284e7d9912aa50f195b880241184054 Mon Sep 17 00:00:00 2001 From: Umut Korkmaz Date: Sat, 4 Feb 2023 02:47:43 +0300 Subject: [PATCH 502/984] Duplicated fields removed --- web/inc/i18n/bg.php | 3 --- web/inc/i18n/ru.php | 1 - 2 files changed, 4 deletions(-) diff --git a/web/inc/i18n/bg.php b/web/inc/i18n/bg.php index 4baf8f2f..746963d3 100644 --- a/web/inc/i18n/bg.php +++ b/web/inc/i18n/bg.php @@ -707,9 +707,6 @@ $LANG['bg'] = array( 'This is a commercial module, you would need to purchace license key to enable it.' => 'Това е комерсиален модул, за чиито ползване е нужно да поръчате лицензионен ключ.', 'Minutes' => 'Минути', 'Hourly' => 'Всеки час', - 'Daily' => 'Всеки ден ', - 'Weekly' => 'Всяка седмица', - 'Monthly' => 'Всеки месец', 'Run Command' => 'Изпълни команда', 'every month' => 'всеки месец', 'every odd month' => 'всеки нечетен месец', diff --git a/web/inc/i18n/ru.php b/web/inc/i18n/ru.php index 5b634db3..ed8f116d 100644 --- a/web/inc/i18n/ru.php +++ b/web/inc/i18n/ru.php @@ -581,7 +581,6 @@ $LANG['ru'] = array( 'Vesta Control Panel Plugins' => 'Плагины Vesta Control Panel', 'preview' => 'предпросмотр', 'Reseller Role' => 'Реселлер', - 'Reseller Role' => 'Реселлер', 'Web Config Editor' => 'Веб Редактор Конфигов', 'Template Manager' => 'Менеджер Шаблонов', 'Backup Migration Manager' => 'Менеджер Миграции Бэкапов', From 71daf552e5c8ad0f59ac7246ee287d1d022a8edf Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 5 Feb 2023 15:52:13 +0100 Subject: [PATCH 503/984] Cleaning /hdd/home --- bin/v-clean-garbage | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/bin/v-clean-garbage b/bin/v-clean-garbage index 15b1a5ae..873c8450 100644 --- a/bin/v-clean-garbage +++ b/bin/v-clean-garbage @@ -24,15 +24,23 @@ find /usr/local/vesta/log/ -type f -name "*.log" -exec truncate -s 0 {} \; find /usr/local/vesta/log/ -type f -not -name "*.log" -delete find /var/log/exim4/ -type f -exec truncate -s 0 {} \; -find /home/*/web/*/public_html/wp-content/aiowps_backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete -find /home/*/web/*/public_html/wp-content/envato-backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete -find /home/*/web/*/public_html/wp-content/ai1wm-backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete -find /home/*/web/*/public_html/wp-content/wpvividbackups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete -find /home/*/web/*/public_html/wp-content/updraft/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete -find /home/*/web/*/public_html/ -type f -name "*.wpress" -delete -find /home/*/web/*/public_html/ -type f -name "error_log" -exec truncate -s 0 {} \; -find /home/*/web/*/public_html/ -type f -name "error_log.txt" -exec truncate -s 0 {} \; -find /home/ -type f -name "*.log" -exec truncate -s 0 {} \; +clean_home() { + find $1/*/web/*/public_html/wp-content/aiowps_backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete + find $1/*/web/*/public_html/wp-content/envato-backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete + find $1/*/web/*/public_html/wp-content/ai1wm-backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete + find $1/*/web/*/public_html/wp-content/wpvividbackups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete + find $1/*/web/*/public_html/wp-content/updraft/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete + find $1/*/web/*/public_html/wp-content/ezpz-one-click-backup/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete + find $1/*/web/*/public_html/ -type f -name "*.wpress" -delete + find $1/*/web/*/public_html/ -type f -name "error_log" -exec truncate -s 0 {} \; + find $1/*/web/*/public_html/ -type f -name "error_log.txt" -exec truncate -s 0 {} \; + find $1/ -type f -name "*.log" -exec truncate -s 0 {} \; +} + +clean_home "/home" +if [ -d "/hdd/home" ]; then + clean_home "/hdd/home" +fi fail2ban_running=$(/usr/local/vesta/bin/v-list-sys-services | grep 'fail2ban' | grep -c 'running') if [ $fail2ban_running -eq 1 ]; then From 6d9c6d473490f422de56e71ba0bddf78f8c90e9f Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 5 Feb 2023 16:05:00 +0100 Subject: [PATCH 504/984] Update v-clean-garbage --- bin/v-clean-garbage | 37 ++++++++++++++++++++++++++++++++----- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/bin/v-clean-garbage b/bin/v-clean-garbage index 873c8450..92c5e840 100644 --- a/bin/v-clean-garbage +++ b/bin/v-clean-garbage @@ -1,7 +1,23 @@ #!/bin/bash +# info: Clean all unnecessary files like logs +# options: NONE +# +# The function is cleaning all unnecessary files like logs -nice -n 19 ionice -c 3 find /home/*/tmp/ -type f -delete -find /home/ -name '.wp-cli' -type d -exec rm -rf {} \; + +#----------------------------------------------------------# +# Verifications # +#----------------------------------------------------------# + +whoami=$(whoami) +if [ "$whoami" != "root" ]; then + echo "You must be root to execute this script" + exit 1 +fi + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# rm /var/backups/* rm /var/cache/apt/archives/* @@ -25,6 +41,8 @@ find /usr/local/vesta/log/ -type f -not -name "*.log" -delete find /var/log/exim4/ -type f -exec truncate -s 0 {} \; clean_home() { + nice -n 19 ionice -c 3 find $1/*/tmp/ -type f -delete + find $1/ -name '.wp-cli' -type d -exec rm -rf {} \; find $1/*/web/*/public_html/wp-content/aiowps_backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete find $1/*/web/*/public_html/wp-content/envato-backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete find $1/*/web/*/public_html/wp-content/ai1wm-backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete @@ -32,9 +50,9 @@ clean_home() { find $1/*/web/*/public_html/wp-content/updraft/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete find $1/*/web/*/public_html/wp-content/ezpz-one-click-backup/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete find $1/*/web/*/public_html/ -type f -name "*.wpress" -delete - find $1/*/web/*/public_html/ -type f -name "error_log" -exec truncate -s 0 {} \; - find $1/*/web/*/public_html/ -type f -name "error_log.txt" -exec truncate -s 0 {} \; - find $1/ -type f -name "*.log" -exec truncate -s 0 {} \; + nice -n 19 ionice -c 3 find $1/*/web/*/public_html/ -type f -name "error_log" -exec truncate -s 0 {} \; + nice -n 19 ionice -c 3 find $1/*/web/*/public_html/ -type f -name "error_log.txt" -exec truncate -s 0 {} \; + nice -n 19 ionice -c 3 find $1/ -type f -name "*.log" -exec truncate -s 0 {} \; } clean_home "/home" @@ -42,6 +60,7 @@ if [ -d "/hdd/home" ]; then clean_home "/hdd/home" fi +# Cleaning fail2ban database fail2ban_running=$(/usr/local/vesta/bin/v-list-sys-services | grep 'fail2ban' | grep -c 'running') if [ $fail2ban_running -eq 1 ]; then systemctl stop fail2ban @@ -53,4 +72,12 @@ if [ $fail2ban_running -eq 1 ]; then systemctl start fail2ban fi +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# + echo "=== Garbage cleaned ===" + +log_event "$OK" "$ARGUMENTS" + +exit From a10f82af3064dc8639989314d36f4d45cbb198ab Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 5 Feb 2023 16:11:15 +0100 Subject: [PATCH 505/984] Create v-update-myvesta --- bin/v-update-myvesta | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 bin/v-update-myvesta diff --git a/bin/v-update-myvesta b/bin/v-update-myvesta new file mode 100644 index 00000000..9df80894 --- /dev/null +++ b/bin/v-update-myvesta @@ -0,0 +1,33 @@ +#!/bin/bash +# info: Get the very latest build of myVesta +# options: NONE +# +# The function is downloading the very latest build of myVesta + +#----------------------------------------------------------# +# Verifications # +#----------------------------------------------------------# + +whoami=$(whoami) +if [ "$whoami" != "root" ]; then + echo "You must be root to execute this script" + exit 1 +fi + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +rm /var/cache/apt/archives/vesta_* > /dev/null 2>&1 +apt-get update +apt-get install --reinstall vesta + +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# + +echo "=== myVesta updated ===" + +log_event "$OK" "$ARGUMENTS" + +exit From 5007cc2edfe84d450b4104ff95baaca3b80d48a9 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 5 Feb 2023 16:17:46 +0100 Subject: [PATCH 506/984] Update v-update-myvesta --- bin/v-update-myvesta | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bin/v-update-myvesta b/bin/v-update-myvesta index 9df80894..50ea49a0 100644 --- a/bin/v-update-myvesta +++ b/bin/v-update-myvesta @@ -5,7 +5,7 @@ # The function is downloading the very latest build of myVesta #----------------------------------------------------------# -# Verifications # +# Verifications & Variable & Function # #----------------------------------------------------------# whoami=$(whoami) @@ -14,6 +14,9 @@ if [ "$whoami" != "root" ]; then exit 1 fi +# Includes +source /usr/local/vesta/func/main.sh + #----------------------------------------------------------# # Action # #----------------------------------------------------------# From 43ebf79c34d32efaafe850aaa1ab8d5f915147ce Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 5 Feb 2023 16:19:10 +0100 Subject: [PATCH 507/984] Update v-clean-garbage --- bin/v-clean-garbage | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/bin/v-clean-garbage b/bin/v-clean-garbage index 92c5e840..b53b2509 100644 --- a/bin/v-clean-garbage +++ b/bin/v-clean-garbage @@ -4,9 +4,8 @@ # # The function is cleaning all unnecessary files like logs - #----------------------------------------------------------# -# Verifications # +# Verifications & Variable & Function # #----------------------------------------------------------# whoami=$(whoami) @@ -15,6 +14,9 @@ if [ "$whoami" != "root" ]; then exit 1 fi +# Includes +source /usr/local/vesta/func/main.sh + #----------------------------------------------------------# # Action # #----------------------------------------------------------# From cf5b5325d6b014a2320793ab8f9facaec6f41bee Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 5 Feb 2023 16:32:14 +0100 Subject: [PATCH 508/984] Update v-clean-garbage --- bin/v-clean-garbage | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bin/v-clean-garbage b/bin/v-clean-garbage index b53b2509..d4c47267 100644 --- a/bin/v-clean-garbage +++ b/bin/v-clean-garbage @@ -22,7 +22,7 @@ source /usr/local/vesta/func/main.sh #----------------------------------------------------------# rm /var/backups/* -rm /var/cache/apt/archives/* +rm /var/cache/apt/archives/* > /dev/null 2>&1 cd /var/log truncate -s 0 xferlog lastlog faillog btmp syslog; find /var/log/ -name "*.log" -not -path "/var/log/apt/*" -type f -exec truncate -s 0 {} \; @@ -44,13 +44,13 @@ find /var/log/exim4/ -type f -exec truncate -s 0 {} \; clean_home() { nice -n 19 ionice -c 3 find $1/*/tmp/ -type f -delete - find $1/ -name '.wp-cli' -type d -exec rm -rf {} \; + find $1/ -name '.wp-cli' -type d -exec rm -rf {} \; > /dev/null 2>&1 find $1/*/web/*/public_html/wp-content/aiowps_backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete find $1/*/web/*/public_html/wp-content/envato-backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete find $1/*/web/*/public_html/wp-content/ai1wm-backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete find $1/*/web/*/public_html/wp-content/wpvividbackups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete find $1/*/web/*/public_html/wp-content/updraft/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete - find $1/*/web/*/public_html/wp-content/ezpz-one-click-backup/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete + find $1/*/web/*/public_html/wp-content/ezpz-one-click-backup/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete > /dev/null 2>&1 find $1/*/web/*/public_html/ -type f -name "*.wpress" -delete nice -n 19 ionice -c 3 find $1/*/web/*/public_html/ -type f -name "error_log" -exec truncate -s 0 {} \; nice -n 19 ionice -c 3 find $1/*/web/*/public_html/ -type f -name "error_log.txt" -exec truncate -s 0 {} \; From 65f626eda7b7a4a2707f42ce330ea5c8f02c603f Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 5 Feb 2023 16:36:12 +0100 Subject: [PATCH 509/984] Update v-clean-garbage --- bin/v-clean-garbage | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-clean-garbage b/bin/v-clean-garbage index d4c47267..c6d41ab9 100644 --- a/bin/v-clean-garbage +++ b/bin/v-clean-garbage @@ -50,7 +50,7 @@ clean_home() { find $1/*/web/*/public_html/wp-content/ai1wm-backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete find $1/*/web/*/public_html/wp-content/wpvividbackups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete find $1/*/web/*/public_html/wp-content/updraft/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete - find $1/*/web/*/public_html/wp-content/ezpz-one-click-backup/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete > /dev/null 2>&1 + find $1/*/web/*/public_html/wp-content/plugins/ezpz-one-click-backup/backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete > /dev/null 2>&1 find $1/*/web/*/public_html/ -type f -name "*.wpress" -delete nice -n 19 ionice -c 3 find $1/*/web/*/public_html/ -type f -name "error_log" -exec truncate -s 0 {} \; nice -n 19 ionice -c 3 find $1/*/web/*/public_html/ -type f -name "error_log.txt" -exec truncate -s 0 {} \; From d6a84f37d2db6bd44383f5e9bab75f18aea68696 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 5 Feb 2023 16:40:24 +0100 Subject: [PATCH 510/984] Update v-update-myvesta --- bin/v-update-myvesta | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-update-myvesta b/bin/v-update-myvesta index 50ea49a0..c3eaf337 100644 --- a/bin/v-update-myvesta +++ b/bin/v-update-myvesta @@ -22,7 +22,7 @@ source /usr/local/vesta/func/main.sh #----------------------------------------------------------# rm /var/cache/apt/archives/vesta_* > /dev/null 2>&1 -apt-get update +apt-get update -o Dir::Etc::sourcelist="sources.list.d/vesta.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0" > /usr/local/vesta/log/update-$package.log 2>&1 apt-get install --reinstall vesta #----------------------------------------------------------# From 94770a5f1220cbc75b4cd626222160fbcaf27e16 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 5 Feb 2023 16:43:14 +0100 Subject: [PATCH 511/984] Update v-clean-garbage --- bin/v-clean-garbage | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-clean-garbage b/bin/v-clean-garbage index c6d41ab9..5b402653 100644 --- a/bin/v-clean-garbage +++ b/bin/v-clean-garbage @@ -21,7 +21,7 @@ source /usr/local/vesta/func/main.sh # Action # #----------------------------------------------------------# -rm /var/backups/* +rm /var/backups/* > /dev/null 2>&1 rm /var/cache/apt/archives/* > /dev/null 2>&1 cd /var/log truncate -s 0 xferlog lastlog faillog btmp syslog; From 33d0e6df9c100ae9edef9cfa607beaba9eadefeb Mon Sep 17 00:00:00 2001 From: isscbta <53144593+isscbta@users.noreply.github.com> Date: Mon, 6 Feb 2023 15:57:07 +0100 Subject: [PATCH 512/984] Update v-activate-rocket-nginx --- bin/v-activate-rocket-nginx | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/bin/v-activate-rocket-nginx b/bin/v-activate-rocket-nginx index 1b8561c3..08ff2ad8 100644 --- a/bin/v-activate-rocket-nginx +++ b/bin/v-activate-rocket-nginx @@ -83,11 +83,22 @@ fi echo "Proxy Template is ready" # Disabling wp-cron in wp-config.php -echo "Disabling WP-Cron in your wp-config.php..." -string="define( 'DISABLE_WP_CRON', true );" -line="define( 'DB_COLLATE', '' );" +string_disable="define( 'DISABLE_WP_CRON', true );" +string_enable="define( 'DISABLE_WP_CRON', false );" +line=" Date: Mon, 6 Feb 2023 18:34:10 +0100 Subject: [PATCH 513/984] Update v-activate-rocket-nginx --- bin/v-activate-rocket-nginx | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/bin/v-activate-rocket-nginx b/bin/v-activate-rocket-nginx index 08ff2ad8..f6957975 100644 --- a/bin/v-activate-rocket-nginx +++ b/bin/v-activate-rocket-nginx @@ -83,23 +83,25 @@ fi echo "Proxy Template is ready" # Disabling wp-cron in wp-config.php +checkstring_disable="define('DISABLE_WP_CRON', true)" +checkstring_enable="define('DISABLE_WP_CRON', false)" string_disable="define( 'DISABLE_WP_CRON', true );" -string_enable="define( 'DISABLE_WP_CRON', false );" line=" Date: Fri, 10 Feb 2023 17:40:20 +0100 Subject: [PATCH 514/984] Update v-move-domain-and-database-to-account --- bin/v-move-domain-and-database-to-account | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/bin/v-move-domain-and-database-to-account b/bin/v-move-domain-and-database-to-account index d055e361..6a97383d 100644 --- a/bin/v-move-domain-and-database-to-account +++ b/bin/v-move-domain-and-database-to-account @@ -42,6 +42,11 @@ fi USER_TO=$user +if [ ! -d "/backup" ]; then + echo "There is no /backup folder, creating it now..." + mkdir /backup +fi + #----------------------------------------------------------# # Action # #----------------------------------------------------------# From 6770d3bc4c619155e25698ff8373566a3b813bf4 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 10 Feb 2023 19:37:45 +0100 Subject: [PATCH 515/984] Fix for /backup --- bin/v-change-database-owner | 4 ++++ bin/v-move-domain-and-database-to-account | 5 ----- install/vst-install-debian.sh | 2 ++ 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/bin/v-change-database-owner b/bin/v-change-database-owner index d84d8eb2..983f7cb1 100755 --- a/bin/v-change-database-owner +++ b/bin/v-change-database-owner @@ -60,6 +60,10 @@ if [ ! -z "$check_db" ]; then exit $E_EXISTS fi +if [ ! -d "/backup" ]; then + echo "There is no /backup folder, creating it now..." + mkdir /backup +fi #----------------------------------------------------------# # Action # diff --git a/bin/v-move-domain-and-database-to-account b/bin/v-move-domain-and-database-to-account index 6a97383d..d055e361 100644 --- a/bin/v-move-domain-and-database-to-account +++ b/bin/v-move-domain-and-database-to-account @@ -42,11 +42,6 @@ fi USER_TO=$user -if [ ! -d "/backup" ]; then - echo "There is no /backup folder, creating it now..." - mkdir /backup -fi - #----------------------------------------------------------# # Action # #----------------------------------------------------------# diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index 650fa241..4349a56d 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -595,6 +595,8 @@ fi # Backup # #----------------------------------------------------------# +mkdir /backup + echo "=== Creating backup directory tree" mkdir -p $vst_backups cd $vst_backups From a28436e6e8bdec0b0cd58de574365eb1b6a96086 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 11 Feb 2023 19:20:03 +0100 Subject: [PATCH 516/984] Update multi-php-install.sh --- src/deb/for-download/tools/multi-php-install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/for-download/tools/multi-php-install.sh b/src/deb/for-download/tools/multi-php-install.sh index 58ec502d..14253444 100644 --- a/src/deb/for-download/tools/multi-php-install.sh +++ b/src/deb/for-download/tools/multi-php-install.sh @@ -54,7 +54,7 @@ if [ $# -gt 8 ]; then inst_81=$9 fi if [ $# -gt 9 ]; then - inst_82=$10 + inst_82=${10} fi if [ $inst_56 -eq 1 ] || [ $inst_70 -eq 1 ] || [ $inst_71 -eq 1 ] || [ $inst_72 -eq 1 ] || [ $inst_73 -eq 1 ] || [ $inst_74 -eq 1 ] || [ $inst_80 -eq 1 ] || [ $inst_81 -eq 1 ] || [ $inst_82 -eq 1 ]; then From e0b90ef9d65c7e7a3756920f0f8f9bfa50204c7b Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 11 Feb 2023 19:43:58 +0100 Subject: [PATCH 517/984] v-install-wordpress: Check if MariaDB allows long database name --- bin/v-install-wordpress | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/bin/v-install-wordpress b/bin/v-install-wordpress index 0e24f847..4bf82c5f 100644 --- a/bin/v-install-wordpress +++ b/bin/v-install-wordpress @@ -26,6 +26,7 @@ USER=$user # Includes source /usr/local/vesta/func/main.sh source /usr/local/vesta/func/db.sh +source /usr/local/vesta/conf/vesta.conf if [ -z "$user" ]; then check_result $E_NOTEXIST "domain $domain doesn't exist" @@ -49,7 +50,11 @@ is_object_unsuspended 'user' 'USER' "$user" source /usr/local/vesta/func/handle_parameters.sh if [ -z "$database" ]; then - database=$(echo "$domain" | sed 's#\.#_#g') + if [ ! -z "$MAX_DBUSER_LEN" ] && [ "$MAX_DBUSER_LEN" -ge 80 ]; then + database=$(echo "$domain" | sed 's#\.#_#g') + else + database="wp" + fi fi if [ -z "$email" ]; then From 7fe91ca4c98e1731f084977674c20f455706244d Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 11 Feb 2023 20:29:14 +0100 Subject: [PATCH 518/984] v-clone-website: By default cloning to DB: user_domain_com instead of cloning to database: user_old_db_migrated --- bin/v-clone-website | 66 ++++++++++++++++++++++++++------------------- 1 file changed, 39 insertions(+), 27 deletions(-) diff --git a/bin/v-clone-website b/bin/v-clone-website index 2c38eef9..262d1a15 100644 --- a/bin/v-clone-website +++ b/bin/v-clone-website @@ -9,7 +9,7 @@ if [ $# -lt 2 ]; then echo "USAGE: v-clone-website FROM_DOMAIN TO_DOMAIN" echo "Available parameters:" - echo "--DATABASE_SUFIX=... (default is '_migrated')" + echo "--DATABASE_SUFIX=... (will be added to database name)" echo "--TO_DATABASE=... (this will override --TO_DATABASE_NAME, --TO_DATABASE_USERNAME and --DATABASE_SUFIX)" echo "--FROM_DATABASE_NAME=..." echo "--FROM_DATABASE_USERNAME=..." @@ -42,6 +42,7 @@ source /etc/profile # Includes source /usr/local/vesta/func/main.sh source /usr/local/vesta/func/db.sh +source /usr/local/vesta/conf/vesta.conf FROM_DATABASE_NAME='' FROM_DATABASE_USERNAME='' @@ -55,6 +56,10 @@ SITE_SUBFOLDER='' SEARCH_FOR_CONFIGS_DATABASE_NAME='' SEARCH_FOR_CONFIGS_DATABASE_USERNAME='' +if [ ! -z "$MAX_DBUSER_LEN" ] && [ "$MAX_DBUSER_LEN" -ge 80 ]; then + DATABASE_SUFIX='' +fi + #----------------------------------------------------------# # Verifications # #----------------------------------------------------------# @@ -174,33 +179,40 @@ fi TO_CONFIG_FILE_FULL_PATH="$TO_FOLDER/$FROM_CONFIG_FILE" -LENGTH_OF_DATABASE_SUFIX=${#DATABASE_SUFIX} -if [ -z "$TO_DATABASE_NAME" ]; then - LENGTH_OF_TO_DATABASE_NAME=${#FROM_DATABASE_NAME} - START_FROM=$((LENGTH_OF_TO_DATABASE_NAME-LENGTH_OF_DATABASE_SUFIX)) - CHECK_PREFIX=${FROM_DATABASE_NAME:START_FROM} - if [ "$CHECK_PREFIX" = "${DATABASE_SUFIX}" ]; then - TO_DATABASE_NAME="${TO_USER}_${FROM_DATABASE_NAME_WITHOUT_PREFIX}" - LENGTH_OF_TO_DATABASE_NAME=${#TO_DATABASE_NAME} - CUT_TO=$((LENGTH_OF_TO_DATABASE_NAME-LENGTH_OF_DATABASE_SUFIX)) - TO_DATABASE_NAME=${TO_DATABASE_NAME:0:CUT_TO} - else - TO_DATABASE_NAME="${TO_USER}_${FROM_DATABASE_NAME_WITHOUT_PREFIX}${DATABASE_SUFIX}" - fi -fi -if [ -z "$TO_DATABASE_USERNAME" ]; then - LENGTH_OF_TO_DATABASE_USERNAME=${#FROM_DATABASE_USERNAME} - START_FROM=$((LENGTH_OF_TO_DATABASE_USERNAME-LENGTH_OF_DATABASE_SUFIX)) - CHECK_PREFIX=${FROM_DATABASE_USERNAME:START_FROM} - if [ "$CHECK_PREFIX" = "${DATABASE_SUFIX}" ]; then - TO_DATABASE_USERNAME="${TO_USER}_${FROM_DATABASE_USERNAME_WITHOUT_PREFIX}" - LENGTH_OF_TO_DATABASE_USERNAME=${#TO_DATABASE_USERNAME} - CUT_TO=$((LENGTH_OF_TO_DATABASE_USERNAME-LENGTH_OF_DATABASE_SUFIX)) - TO_DATABASE_USERNAME=${TO_DATABASE_USERNAME:0:CUT_TO} - else - TO_DATABASE_USERNAME="${TO_USER}_${FROM_DATABASE_USERNAME_WITHOUT_PREFIX}${DATABASE_SUFIX}" +if [ ! -z "$MAX_DBUSER_LEN" ] && [ "$MAX_DBUSER_LEN" -ge 80 ] && [ -z "$DATABASE_SUFIX" ]; then + TO_DATABASE_NAME=$(echo "$TO_DOMAIN" | sed 's#\.#_#g') + TO_DATABASE_NAME="${TO_USER}_$TO_DATABASE_NAME" + TO_DATABASE_USERNAME=$TO_DATABASE_NAME +else + LENGTH_OF_DATABASE_SUFIX=${#DATABASE_SUFIX} + if [ -z "$TO_DATABASE_NAME" ]; then + LENGTH_OF_TO_DATABASE_NAME=${#FROM_DATABASE_NAME} + START_FROM=$((LENGTH_OF_TO_DATABASE_NAME-LENGTH_OF_DATABASE_SUFIX)) + CHECK_PREFIX=${FROM_DATABASE_NAME:START_FROM} + if [ "$CHECK_PREFIX" = "${DATABASE_SUFIX}" ]; then + TO_DATABASE_NAME="${TO_USER}_${FROM_DATABASE_NAME_WITHOUT_PREFIX}" + LENGTH_OF_TO_DATABASE_NAME=${#TO_DATABASE_NAME} + CUT_TO=$((LENGTH_OF_TO_DATABASE_NAME-LENGTH_OF_DATABASE_SUFIX)) + TO_DATABASE_NAME=${TO_DATABASE_NAME:0:CUT_TO} + else + TO_DATABASE_NAME="${TO_USER}_${FROM_DATABASE_NAME_WITHOUT_PREFIX}${DATABASE_SUFIX}" + fi + fi + if [ -z "$TO_DATABASE_USERNAME" ]; then + LENGTH_OF_TO_DATABASE_USERNAME=${#FROM_DATABASE_USERNAME} + START_FROM=$((LENGTH_OF_TO_DATABASE_USERNAME-LENGTH_OF_DATABASE_SUFIX)) + CHECK_PREFIX=${FROM_DATABASE_USERNAME:START_FROM} + if [ "$CHECK_PREFIX" = "${DATABASE_SUFIX}" ]; then + TO_DATABASE_USERNAME="${TO_USER}_${FROM_DATABASE_USERNAME_WITHOUT_PREFIX}" + LENGTH_OF_TO_DATABASE_USERNAME=${#TO_DATABASE_USERNAME} + CUT_TO=$((LENGTH_OF_TO_DATABASE_USERNAME-LENGTH_OF_DATABASE_SUFIX)) + TO_DATABASE_USERNAME=${TO_DATABASE_USERNAME:0:CUT_TO} + else + TO_DATABASE_USERNAME="${TO_USER}_${FROM_DATABASE_USERNAME_WITHOUT_PREFIX}${DATABASE_SUFIX}" + fi fi fi + if [ ! -z "$TO_DATABASE" ]; then TO_DATABASE_USERNAME=$TO_DATABASE TO_DATABASE_NAME=$TO_DATABASE @@ -304,7 +316,7 @@ read -p "=== Press Enter to continue ===" if [ $CREATE_TO_USER -eq 1 ]; then pass=$(vesta_generate_pass 10) echo "=== Create user $TO_USER, pass=$pass" - /usr/local/vesta/bin/v-add-user "$TO_USER" "$pass" "info@$TO_DOMAIN" "default" "Migrated" "site" + /usr/local/vesta/bin/v-add-user "$TO_USER" "$pass" "info@$TO_DOMAIN" "default" "cloned" "site" fi if [ $CREATE_TO_DOMAIN -eq 1 ]; then From 5dedc1e8131e2491c578138d38f4c91fa6186e5f Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 11 Feb 2023 20:35:00 +0100 Subject: [PATCH 519/984] Checking for $CREATE_TO_DATABASE in v-clone-website --- bin/v-clone-website | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/bin/v-clone-website b/bin/v-clone-website index 262d1a15..df98c6db 100644 --- a/bin/v-clone-website +++ b/bin/v-clone-website @@ -271,6 +271,12 @@ else fi fi +CREATE_TO_DATABASE=0 +object=$(grep "DB='$TO_DATABASE_NAME'" $VESTA/data/users/$TO_USER/db.conf) +if [ -z "$object" ]; then + CREATE_TO_DATABASE=1 +fi + # ----------- PRINT ------------- echo "===============================================================================" @@ -299,6 +305,7 @@ echo "TO_DATABASE_USERNAME_WITHOUT_PREFIX = $TO_DATABASE_USERNAME_WITHOUT_PREF echo "DATABASE_SUFIX = $DATABASE_SUFIX" echo "CREATE_TO_USER = $CREATE_TO_USER" echo "CREATE_TO_DOMAIN = $CREATE_TO_DOMAIN" +echo "CREATE_TO_DATABASE = $CREATE_TO_DATABASE" echo "SHOULD_INSTALL_SSL = $SHOULD_INSTALL_SSL" echo "FROM_DOMAIN_TPL = $FROM_DOMAIN_TPL" echo "FROM_FPM_VER = $FROM_FPM_VER" @@ -316,7 +323,7 @@ read -p "=== Press Enter to continue ===" if [ $CREATE_TO_USER -eq 1 ]; then pass=$(vesta_generate_pass 10) echo "=== Create user $TO_USER, pass=$pass" - /usr/local/vesta/bin/v-add-user "$TO_USER" "$pass" "info@$TO_DOMAIN" "default" "cloned" "site" + /usr/local/vesta/bin/v-add-user "$TO_USER" "$pass" "info@$TO_DOMAIN" "default" "Cloned" "site" fi if [ $CREATE_TO_DOMAIN -eq 1 ]; then @@ -352,8 +359,7 @@ if [ ! -z "$FROM_DOMAIN_PROXY_TPL" ]; then /usr/local/vesta/bin/v-change-web-domain-proxy-tpl "$TO_USER" "$TO_DOMAIN" "$FROM_DOMAIN_PROXY_TPL" "$FROM_DOMAIN_PROXY_EXT" "yes" fi -object=$(grep "DB='$TO_DATABASE_NAME'" $VESTA/data/users/$TO_USER/db.conf) -if [ -z "$object" ]; then +if [ $CREATE_TO_DATABASE -eq 1 ]; then echo "=== Create database $TO_DATABASE_NAME" /usr/local/vesta/bin/v-add-database "$TO_USER" "$TO_DATABASE_NAME_WITHOUT_PREFIX" "$TO_DATABASE_USERNAME_WITHOUT_PREFIX" "$TO_DATABASE_PASSWORD" 'mysql' 'localhost' 'utf8' fi From 0ab6925adb4c63abc3618b3a8cc069d675873468 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 12 Feb 2023 15:59:45 +0100 Subject: [PATCH 520/984] Create v-commander --- bin/v-commander | 515 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 515 insertions(+) create mode 100644 bin/v-commander diff --git a/bin/v-commander b/bin/v-commander new file mode 100644 index 00000000..6fe05286 --- /dev/null +++ b/bin/v-commander @@ -0,0 +1,515 @@ +#!/bin/bash + +numargs=$# + +SHOWHEADER=0 +if [ $numargs -eq 0 ]; then + SHOWHEADER=1 +fi +if [ $numargs -eq 1 ] && [ "$1" = "q" ]; then + SHOWHEADER=1 +fi + + +source /etc/profile +PATH=$PATH:/usr/local/vesta/bin && export PATH +echo "======================= mvVesta-commander ================================" + +if [ -f /root/kernelupdate ]; then + rm /root/kernelupdate +fi +apt_upgraded=0 +quit_on_empty=0 + +if [ $SHOWHEADER -eq 1 ]; then + hostname + if [ -f "/root/current-status.txt" ]; then + echo "------------------ WAS LONG TIME AGO ------------------" + cat /root/current-status.txt + truncate -s 0 /root/current-status.txt + fi + echo -n 'Debian ' >> /root/current-status.txt && cat /etc/debian_version >> /root/current-status.txt + php -v | grep '^PHP' >> /root/current-status.txt + /usr/local/vesta/bin/v-list-sys-services >> /root/current-status.txt + /usr/local/vesta/bin/v-list-sys-web-status | grep "Server MPM:" >> /root/current-status.txt + w | grep 'load average' >> /root/current-status.txt + df -h | grep "/$" >> /root/current-status.txt + + echo "------------------------ NOW ------------------------" + cat /root/current-status.txt + echo "-----------------------------------------------------" + echo "(press 'h' for help)" + echo "" +fi + +check_status() { + echo "==============================================================" + hostname + echo "------------------------ WAS ------------------------" + cat /root/current-status.txt + echo "------------------------ NOW ------------------------" + hostname + echo -n 'Debian ' && cat /etc/debian_version + php -v | grep '^PHP' + /usr/local/vesta/bin/v-list-sys-services + /usr/local/vesta/bin/v-list-sys-web-status | grep "Server MPM:" + w | grep 'load average' + df -h | grep "/$" + echo "-----------------------------------------------------" +} + +myhelp() { + echo "---------- Press: -----------" + echo "u = apt-get update" + echo "g = apt-get upgrade" + echo "c = check status" + echo "e = make sure Apache is in mpm_event" + echo "s = download sury.org apt-get key" + echo "m = install php-memcached" + echo "p = set version of php as default" + echo "v = update myVesta" + echo "vo = update myVesta without 'apt-get update'" + echo "t = clean the trash" + echo "w = w" + echo "d = df -h" + echo "f = free -h" + echo "b = bash" + echo "r = reboot" + echo "q = quit" + echo "h = help" + echo "-----------------------------" + echo "inst v = install myVesta" + echo "inst p = install multi-php" + echo "inst pgw = install php-gate" + echo "inst r = install new Roundcube" + echo "dis fb = stop and disable fail2ban" + echo "dis dove = stop and disable dovecot" + echo "dis spam = stop and disable spam" + echo "dis clam = stop and disable clamav" + echo "p 7.0 = set default php 7.0" + echo "p 7.3 = set default php 7.3" + echo "p 7.4 = set default php 7.4" + echo "p def = set proper default php" + echo "e def = set mpm_event if needed" + echo "m def = install php-memcached if needed" + echo "check fc = check if FreshClam is up" + echo "-----------------------------" + echo "enable-ssh-root-password-login = Allow root password authentication via SSH and set the root password to match the password for the admin account" + echo "-----------------------------" +} + +COUNTER=0 + +while true +do + + COUNTER=$((COUNTER + 1)) + if [ $COUNTER -le $numargs ]; then + answer=$1 + shift + else + read -p 'What to do: ' answer + fi + + if [ "$answer" = 'prompt' ] || [ "$answer" = 'PROMPT' ]; then + echo "=============================" + echo "hostname: $HOSTNAME" + read -p 'What to do [or press Enter to continue]: ' answer + fi + + if [ "$answer" = '' ] && [ $quit_on_empty -eq 1 ]; then + answer='q' + fi + + if [ "$answer" = 'quit-on-empty' ]; then + echo "== the script will quit on next enter" + quit_on_empty=1 + fi + + if [ "$answer" = 'u' ] || [ "$answer" = 'U' ]; then + echo "=============================" + echo "== running: apt-get update" + release=$(cat /etc/debian_version | tr "." "\n" | head -n1) + if [ "$release" -lt 10 ]; then + apt-get update + else + apt-get update --allow-releaseinfo-change + fi + fi + + if [ "$answer" = 'g' ] || [ "$answer" = 'G' ]; then + echo "=============================" + echo "== running: apt-get upgrade" + + if [ $apt_upgraded -eq 0 ]; then + cp /var/log/apt/history.log /var/log/apt/history-`date +"%Y%m%d%H%M%S"`.log + truncate -s 0 /var/log/apt/history.log + fi + + apt-get -y --with-new-pkgs upgrade + apt-get -y dist-upgrade + apt_upgraded=1 + + kernelupdate=$(grep -c 'linux-image-' /var/log/apt/history.log) + if [ $kernelupdate -gt 0 ]; then + touch /root/kernelupdate + echo "== kernel is updated" + else + echo "== kernel is not updated" + fi + fi + + if [ "$answer" = 'c' ] || [ "$answer" = 'C' ]; then + check_status + fi + + if [ "$answer" = 's' ] || [ "$answer" = 'S' ]; then + if [ -f "/etc/apt/trusted.gpg.d/php.gpg" ]; then + echo "=============================" + echo "== renewing sury.org gpg key" + wget -nv -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg + fi + fi + + if [ "$answer" = 'e def' ] || [ "$answer" = 'E DEF' ]; then + release=$(cat /etc/debian_version | tr "." "\n" | head -n1) + echo "=============================" + echo "== checking if we need mpm_event mode" + echo "== detected Debian $release" + if [ "$release" -eq 10 ] || [ "$release" -eq 11 ] || [ -f "/root/switch-apache-to-event-mode.sh" ]; then + isevent=$(/usr/local/vesta/bin/v-list-sys-web-status | grep -c "Server MPM: event") + if [ $isevent -eq 0 ]; then + echo "== Apache should be switched to mpm_event mode" + answer='e' + else + echo "== Apache is already in mpm_event mode" + fi + fi + + fi + if [ "$answer" = 'e' ] || [ "$answer" = 'E' ]; then + echo "=============================" + echo "== switching to mpm_event mode" + apt-get -y remove libapache2-mod-php* + a2dismod ruid2 + a2dismod suexec + a2dismod php5.6 + a2dismod php7.0 + a2dismod php7.1 + a2dismod php7.2 + a2dismod php7.3 + a2dismod php7.4 + a2dismod php8.0 + a2dismod php8.1 + a2dismod php8.2 + a2dismod mpm_prefork + a2enmod mpm_event + systemctl restart apache2 + fi + + if [ "$answer" = 'dis fb' ] || [ "$answer" = 'DIS FB' ]; then + echo "=============================" + echo "== disabling fail2ban" + systemctl stop fail2ban + systemctl disable fail2ban + systemctl status fail2ban + fi + + if [ "$answer" = 'dis dove' ] || [ "$answer" = 'DIS DOVE' ]; then + echo "=============================" + echo "== disabling dovecot" + systemctl stop dovecot.service + systemctl stop dovecot.socket + systemctl disable dovecot.service + fi + + if [ "$answer" = 'dis clam' ] || [ "$answer" = 'DIS CLAM' ]; then + echo "=============================" + echo "== disabling ClamAV" + systemctl stop clamav-daemon.service + systemctl disable clamav-daemon.service + + systemctl stop clamav-freshclam.service + systemctl disable clamav-freshclam.service + + sed -i "s/^CLAMD =/#CLAMD =/g" /etc/exim4/exim4.conf.template + systemctl restart exim4 + fi + + if [ "$answer" = 'dis spam' ] || [ "$answer" = 'DIS SPAM' ]; then + echo "=============================" + echo "== disabling SpamAssassin" + systemctl stop spamassassin.service + systemctl disable spamassassin.service + + sed -i "s/^SPAMASSASSIN =/#SPAMASSASSIN =/g" /etc/exim4/exim4.conf.template + sed -i "s/^SPAM_SCORE =/#SPAM_SCORE =/g" /etc/exim4/exim4.conf.template + systemctl restart exim4 + fi + + if [ "$answer" = 'p' ] || [ "$answer" = 'P' ]; then + echo "=============================" + echo "== changing default php version" + update-alternatives --config php + echo "--- NEW ---" + php -v | grep '^PHP' + fi + + if [ "$answer" = 'p 7.0' ] || [ "$answer" = 'P 7.0' ]; then + echo "=============================" + echo "== changing default php version to 7.0" + update-alternatives --set php /usr/bin/php7.0 + echo "--- NEW ---" + php -v | grep '^PHP' + fi + + if [ "$answer" = 'p 7.3' ] || [ "$answer" = 'P 7.3' ]; then + echo "=============================" + echo "== changing default php version to 7.3" + update-alternatives --set php /usr/bin/php7.3 + echo "--- NEW ---" + php -v | grep '^PHP' + fi + + if [ "$answer" = 'p 7.4' ] || [ "$answer" = 'P 7.4' ]; then + echo "=============================" + echo "== changing default php version to 7.4" + update-alternatives --set php /usr/bin/php7.4 + echo "--- NEW ---" + php -v | grep '^PHP' + fi + + if [ "$answer" = 'p def' ] || [ "$answer" = 'P DEF' ]; then + echo "=============================" + echo "== checking if we need to change default php version" + automode=$(update-alternatives --display php | grep -c 'auto mode') + echo "=============================" + if [ $automode -ge 1 ]; then + echo "=== php auto mode detected" + release=$(cat /etc/debian_version | tr "." "\n" | head -n1) + echo "== detected Debian $release" + if [ "$release" -eq 8 ]; then + echo "== set default php 5" + update-alternatives --set php /usr/bin/php5 + fi + if [ "$release" -eq 9 ]; then + echo "== set default php 7.0" + update-alternatives --set php /usr/bin/php7.0 + fi + if [ "$release" -eq 10 ]; then + echo "== set default php 7.3" + update-alternatives --set php /usr/bin/php7.3 + fi + if [ "$release" -eq 11 ]; then + echo "== set default php 7.4" + update-alternatives --set php /usr/bin/php7.4 + fi + echo "--- NEW ---" + php -v | grep '^PHP' + else + echo "== php is already in manual mode" + php -v | grep '^PHP' + fi + fi + + + if [ "$answer" = 'v' ] || [ "$answer" = 'V' ]; then + echo "=============================" + echo "== updating myVesta" + if [ -f "/usr/local/vesta/bin/v-update-myvesta" ]; then + /usr/local/vesta/bin/v-update-myvesta + else + number_of_files=$(ls /var/cache/apt/archives/vesta_.* 2>/dev/null | wc -l) + if [ $number_of_files -gt 0 ]; then + rm /var/cache/apt/archives/vesta_* > /dev/null 2>&1 + fi + apt-get update -o Dir::Etc::sourcelist="sources.list.d/vesta.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0" > /usr/local/vesta/log/update-$package.log 2>&1 + apt-get install --reinstall vesta + fi + fi + + if [ "$answer" = 'vo' ] || [ "$answer" = 'VO' ]; then + echo "=============================" + echo "== updating myVesta (without 'apt-get update')" + number_of_files=$(ls /var/cache/apt/archives/vesta_.* 2>/dev/null | wc -l) + if [ $number_of_files -gt 0 ]; then + rm /var/cache/apt/archives/vesta_* > /dev/null 2>&1 + fi + apt-get install --reinstall vesta + fi + + if [ "$answer" = 'vor' ] || [ "$answer" = 'VOR' ]; then + echo "=============================" + echo "== updating myVesta (without apt-get update and without reinstall)" + number_of_files=$(ls /var/cache/apt/archives/vesta_.* 2>/dev/null | wc -l) + if [ $number_of_files -gt 0 ]; then + rm /var/cache/apt/archives/vesta_* > /dev/null 2>&1 + fi + apt-get install vesta + fi + + if [ "$answer" = 't' ] || [ "$answer" = 'T' ]; then + echo "=============================" + echo "== cleaning trash" + df -m + ps -Af | grep tailf | grep -v "grep tailf" + if [ -f "/usr/local/bin/tailf_apache_error.php" ]; then + kill $(ps aux | grep 'tailf_apache_error' | grep -v "grep tailf_apache_error" | awk '{print $2}') + fi + if [ -f "/usr/local/bin/tailf_exim.php" ]; then + kill $(ps aux | grep 'tailf_exim' | grep -v "grep tailf_exim" | awk '{print $2}') + fi + echo "------" + ps -Af | grep tailf | grep -v "grep tailf" + echo "------" + sleep 2 + truncate -s 0 /*.log + rm /panic-*.log + rm /var/log/panic-*.log + /usr/local/vesta/bin/v-clean-garbage + sleep 2 + if [ -f "/usr/local/bin/tailf_apache_error.php" ]; then + nohup php /usr/local/bin/tailf_apache_error.php > /var/log/tailf_apache_error.log & + fi + if [ -f "/usr/local/bin/tailf_exim.php" ]; then + nohup php /usr/local/bin/tailf_exim.php > /var/log/tailf_exim.log & + fi + echo "--------------" + df -m + echo "--------------" + sleep 2 + ps -Af | grep tailf | grep -v "grep tailf" + fi + + if [ "$answer" = 'm def' ] || [ "$answer" = 'M DEF' ]; then + phpupdate=$(grep -c 'php' /var/log/apt/history.log) + if [ $phpupdate -gt 0 ]; then + answer='m' + fi + fi + + if [ "$answer" = 'm' ] || [ "$answer" = 'M' ]; then + echo "=============================" + echo "== installing php-memcache modules" + apt-get install -y $(systemctl --full --type service --all | grep "php...-fpm" | awk '{print $1}' | cut -c1-6 | xargs -n 1 printf "%s-memcache ") + apt-get install -y $(systemctl --full --type service --all | grep "php...-fpm" | awk '{print $1}' | cut -c1-6 | xargs -n 1 printf "%s-memcached ") + fi + + if [ "$answer" = 'd' ] || [ "$answer" = 'D' ]; then + echo "=============================" + echo "== running: df -h" + df -h + fi + + if [ "$answer" = 'f' ] || [ "$answer" = 'F' ]; then + echo "=============================" + echo "== running: free -h" + free -h + fi + + if [ "$answer" = 'w' ] || [ "$answer" = 'W' ]; then + echo "== running: free -h" + w + fi + + if [ "$answer" = 'inst p' ] || [ "$answer" = 'INST P' ]; then + echo "=============================" + echo "== installing new PHP versions" + cd /root + wget -nv -O /root/vesta-inst-php.sh https://c.myvestacp.com/tools/multi-php-install.sh + chmod u+x ./vesta-inst-php.sh + mcedit ./vesta-inst-php.sh + sudo ./vesta-inst-php.sh + fi + + if [ "$answer" = 'inst pgw' ] || [ "$answer" = 'INST PGW' ]; then + echo "=============================" + echo "== Installing phpgate" + wget -nv http://dl.myvestacp.com/vesta/install-phpgate.sh -O /root/install-phpgate.sh + chmod u+x /root/install-phpgate.sh + /root/install-phpgate.sh + fi + + if [ "$answer" = 'check fc' ] || [ "$answer" = 'CHECK FC' ]; then + echo "== Checking if FreshClam is up" + clamavup=$(/usr/local/vesta/bin/v-list-sys-services | grep 'clamav-daemon' | grep -c 'running') + freshclamdown=$(/usr/local/vesta/bin/v-list-sys-services | grep 'clamav-freshclam' | grep -c 'off') + if [ $clamavup -eq 1 ] && [ $freshclamdown -eq 1 ]; then + echo "== Starting FreshClam" + systemctl enable clamav-freshclam.service + systemctl start clamav-freshclam.service + fi + fi + + if [ "$answer" = 'enable-ssh-root-password-login' ] || [ "$answer" = 'ENABLE-SSH-ROOT-PASSWORD-LOGIN' ]; then + sed -i "s|^PermitRootLogin .*|PermitRootLogin yes|g" /etc/ssh/sshd_config + sed -i "s|^#PermitRootLogin .*|PermitRootLogin yes|g" /etc/ssh/sshd_config + systemctl restart sshd + echo "--- New settings ---" + grep '^PermitRoot' /etc/ssh/sshd_config + echo "--------------------" + adminline=$(grep '^admin:' /etc/shadow) + adminline=${adminline:6} + adminline="root:$adminline" + sed -i "s#^root:.*#$adminline#" /etc/shadow + echo "root password is now the same as admin password." + echo "--------------------" + grep '^root:' /etc/shadow + grep '^admin:' /etc/shadow + echo "--------------------" + echo "Port 22 opened in Firewall for all IP addresses." + /usr/local/vesta/bin/v-unsuspend-firewall-rule "11" + echo "--------------------" + fi + + + if [ "$answer" = 'r' ] || [ "$answer" = 'R' ]; then + echo "=============================" + echo "== Rebooting the server" + reboot + fi + + if [ "$answer" = 'b' ] || [ "$answer" = 'B' ]; then + echo "=============================" + echo "== Running bash" + bash + fi + + if [ "$answer" = 'q' ] || [ "$answer" = 'Q' ]; then + echo "=============================" + echo "== Exiting... bye bye :)" + exit 0 + fi + + if [ "$answer" = 'h' ] || [ "$answer" = 'H' ]; then + myhelp + fi + + if [ "$answer" = 'inst v' ] || [ "$answer" = 'INST V' ]; then + echo "=============================" + echo "== installing myVesta" + release=$(cat /etc/debian_version | tr "." "\n" | head -n1) + if [ "$release" -lt 10 ]; then + apt-get update + else + apt-get update --allow-releaseinfo-change + fi + apt-get -y --with-new-pkgs upgrade && apt-get -y dist-upgrade + apt-get -y install curl wget mc git sudo dnsutils screen + cd ~ + curl -O http://c.myvestacp.com/vst-install-debian.sh + sudo bash vst-install-debian.sh + source /etc/profile + PATH=$PATH:/usr/local/vesta/bin && export PATH + fi + + if [ "$answer" = 'inst r' ] || [ "$answer" = 'INST R' ]; then + echo "=============================" + echo "== Installing new Roundcube" + wget -nv https://c.myvestacp.com/tools/install-new-roundcube.sh -O /root/install-new-roundcube.sh + chmod u+x /root/install-new-roundcube.sh + mcedit /root/install-new-roundcube.sh + /root/install-new-roundcube.sh + fi + +done From df9e5508e09ed9b500971ec91eb4f9579a1ecccb Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 12 Feb 2023 16:21:32 +0100 Subject: [PATCH 521/984] Update Changelog.md --- Changelog.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Changelog.md b/Changelog.md index f49b75e4..9af9791b 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,11 @@ +Version 0.9.8-26-60 [12-Feb-2023] +================================================== +* New script: v-commander (useful for maintaining the server) +* New script: v-activate-rocket-nginx (serve WP-Rocket cache directly from nginx) +* New script: v-update-myvesta (get the very latest build of myVesta) +* v-clone-website: By default cloning to database: user_domain_com (instead of cloning to database: user_old_db_migrated) +* Many minor bugfixes + Version 0.9.8-26-59 [01-Feb-2023] ================================================== * Support for PHP 8.2 From 1e201598474a912074d9af3157dd6fc41a9a7b38 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 12 Feb 2023 16:22:53 +0100 Subject: [PATCH 522/984] Version 0.9.8-26-60 --- src/deb/latest.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/latest.txt b/src/deb/latest.txt index 44148247..68750920 100644 --- a/src/deb/latest.txt +++ b/src/deb/latest.txt @@ -1 +1 @@ -vesta-0.9.8-26-59 +vesta-0.9.8-26-60 From 7c9dfd4c05bd2b0afda9bb47836fc05d7970b274 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Wed, 15 Feb 2023 14:00:04 +0100 Subject: [PATCH 523/984] Update v-activate-rocket-nginx --- bin/v-activate-rocket-nginx | 1 + 1 file changed, 1 insertion(+) diff --git a/bin/v-activate-rocket-nginx b/bin/v-activate-rocket-nginx index f6957975..8e5d8ee1 100644 --- a/bin/v-activate-rocket-nginx +++ b/bin/v-activate-rocket-nginx @@ -83,6 +83,7 @@ fi echo "Proxy Template is ready" # Disabling wp-cron in wp-config.php +cd /home/$user/web/$domain/public_html checkstring_disable="define('DISABLE_WP_CRON', true)" checkstring_enable="define('DISABLE_WP_CRON', false)" string_disable="define( 'DISABLE_WP_CRON', true );" From a997f6f59c7bc134a00f5ad4b97e76d0aef54128 Mon Sep 17 00:00:00 2001 From: isscbta <53144593+isscbta@users.noreply.github.com> Date: Thu, 16 Feb 2023 20:50:57 +0100 Subject: [PATCH 524/984] Update v-activate-rocket-nginx --- bin/v-activate-rocket-nginx | 38 ++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/bin/v-activate-rocket-nginx b/bin/v-activate-rocket-nginx index 8e5d8ee1..770cb866 100644 --- a/bin/v-activate-rocket-nginx +++ b/bin/v-activate-rocket-nginx @@ -104,23 +104,31 @@ fi # Adding cron job -echo "Adding cron job..." - -TPL=$(/usr/local/vesta/bin/v-list-web-domain $user $domain shell | grep 'TEMPLATE:' | awk '{print $2}') -if [[ $TPL == "PHP-FPM-"* ]]; then - fpm_tpl_ver=${TPL:8:2} - fpm_ver="${TPL:8:1}.${TPL:9:1}" +# Check if a cron job already exists for any of the specified PHP-FPM versions +existing_cron=$(crontab -l -u $user | grep "*/15.*wp-cron.php.*php[5-8].[6-9]\|8.[0-2]" | grep -v "grep") +​ +if [ ! -z "$existing_cron" ]; then + echo "There is already a cron job added for user $user and domain $domain." +else + echo "Adding cron job..." +​ + # Add the cron job + TPL=$(/usr/local/vesta/bin/v-list-web-domain $user $domain shell | grep 'TEMPLATE:' | awk '{print $2}') + if [[ $TPL == "PHP-FPM-"* ]]; then + fpm_tpl_ver=${TPL:8:2} + fpm_ver="${TPL:8:1}.${TPL:9:1}" + fi +​ + touch /home/$user/web/$domain/cron.log + chown $user:$user /home/$user/web/$domain/cron.log +​ + case $fpm_ver in + 5.6 | 7.0 | 7.1 | 7.2 | 7.3 | 7.4 | 8.0 | 8.1 | 8.2) + /usr/local/vesta/bin/v-add-cron-job "$user" "*/15" "*" "*" "*" "*" "cd /home/$user/web/$domain/public_html; /usr/bin/php$fpm_ver wp-cron.php >/home/$user/web/$domain/cron.log 2>&1" + ;; + esac fi -touch /home/$user/web/$domain/cron.log -chown $user:$user /home/$user/web/$domain/cron.log - -case $fpm_ver in - 5.6 | 7.0 | 7.1 | 7.2 | 7.3 | 7.4 | 8.0 | 8.1 | 8.2) - /usr/local/vesta/bin/v-add-cron-job "$user" "*/15" "*" "*" "*" "*" "cd /home/$user/web/$domain/public_html; /usr/bin/php$fpm_ver wp-cron.php >/home/$user/web/$domain/cron.log 2>&1" - ;; -esac - #----------------------------------------------------------# # Vesta # #----------------------------------------------------------# From 38ec1b872f73fa4f531f14c3c943e58ca3d836c2 Mon Sep 17 00:00:00 2001 From: isscbta <53144593+isscbta@users.noreply.github.com> Date: Thu, 16 Feb 2023 21:04:20 +0100 Subject: [PATCH 525/984] Update v-activate-rocket-nginx --- bin/v-activate-rocket-nginx | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/bin/v-activate-rocket-nginx b/bin/v-activate-rocket-nginx index 770cb866..f42a1fc3 100644 --- a/bin/v-activate-rocket-nginx +++ b/bin/v-activate-rocket-nginx @@ -73,14 +73,24 @@ fi #----------------------------------------------------------# # Changing Proxy Template -echo "Do you want to force-https in your Proxy Template or not (y/n):" -read answer -if [ "$answer" == "y" ]; then - /usr/local/vesta/bin/v-change-web-domain-proxy-tpl "$user" "$domain" "wprocket-force-https" +# Check if the proxy template is already set correctly +current_template=$(/usr/local/vesta/bin/v-list-web-domain $user $domain | grep 'PROXY:' | awk '{print $2}') +if [ "$current_template" == "wprocket-force-https" ] || [ "$current_template" == "wprocket-hosting" ]; then + echo "Proxy Template is already set up correctly" else - /usr/local/vesta/bin/v-change-web-domain-proxy-tpl "$user" "$domain" "wprocket-hosting" + # Prompt the user to choose whether to force HTTPS or not + echo "Do you want to force-https in your Proxy Template or not (y/n):" + read answer + + # Change the proxy template based on the user's choice + if [ "$answer" == "y" ]; then + /usr/local/vesta/bin/v-change-web-domain-proxy-tpl "$user" "$domain" "wprocket-force-https" + else + /usr/local/vesta/bin/v-change-web-domain-proxy-tpl "$user" "$domain" "wprocket-hosting" + fi + + echo "Proxy Template is ready" fi -echo "Proxy Template is ready" # Disabling wp-cron in wp-config.php cd /home/$user/web/$domain/public_html From 72e659ac187e5ff1d8a5048c12ca15648939847b Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 16 Feb 2023 21:20:11 +0100 Subject: [PATCH 526/984] Update v-get-php-version-of-domain --- bin/v-get-php-version-of-domain | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/bin/v-get-php-version-of-domain b/bin/v-get-php-version-of-domain index bd0e7a51..b3b320fc 100644 --- a/bin/v-get-php-version-of-domain +++ b/bin/v-get-php-version-of-domain @@ -40,12 +40,12 @@ is_object_valid 'user' 'USER' "$user" is_object_unsuspended 'user' 'USER' "$user" if [ ! -d "/home/$user" ]; then - echo "User doesn't exist"; + # echo "User doesn't exist"; exit 1; fi if [ ! -d "/home/$user/web/$domain/public_html" ]; then - echo "Domain doesn't exist"; + # echo "Domain doesn't exist"; exit 1; fi @@ -59,11 +59,12 @@ TPL=$(/usr/local/vesta/bin/v-list-web-domain $user $domain shell | grep 'TEMPLAT if [[ $TPL == "PHP-FPM-"* ]]; then fpm_tpl_ver=${TPL:8:2} fpm_ver="${TPL:8:1}.${TPL:9:1}" + echo "$fpm_ver" + exit 0; fi #----------------------------------------------------------# # Vesta # #----------------------------------------------------------# -echo "PHP-FPM version running on given domain is: $fpm_ver" -exit +exit 1; From d267a3deaa08552cf03373a7b2d1de9b0064d4f7 Mon Sep 17 00:00:00 2001 From: isscbta <53144593+isscbta@users.noreply.github.com> Date: Thu, 16 Feb 2023 21:28:28 +0100 Subject: [PATCH 527/984] Update v-activate-rocket-nginx --- bin/v-activate-rocket-nginx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/bin/v-activate-rocket-nginx b/bin/v-activate-rocket-nginx index f42a1fc3..0c491c68 100644 --- a/bin/v-activate-rocket-nginx +++ b/bin/v-activate-rocket-nginx @@ -112,10 +112,9 @@ else fi - # Adding cron job # Check if a cron job already exists for any of the specified PHP-FPM versions -existing_cron=$(crontab -l -u $user | grep "*/15.*wp-cron.php.*php[5-8].[6-9]\|8.[0-2]" | grep -v "grep") +existing_cron=$(crontab -l -u $user | grep -o "wp-cron.php >/home/$user/web/$domain/cron.log" | grep -v "grep") ​ if [ ! -z "$existing_cron" ]; then echo "There is already a cron job added for user $user and domain $domain." From ca4abdb864c2b7965edd030c469104ab17b05c27 Mon Sep 17 00:00:00 2001 From: isscbta <53144593+isscbta@users.noreply.github.com> Date: Thu, 16 Feb 2023 21:38:17 +0100 Subject: [PATCH 528/984] Update v-activate-rocket-nginx --- bin/v-activate-rocket-nginx | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/bin/v-activate-rocket-nginx b/bin/v-activate-rocket-nginx index 0c491c68..c142f122 100644 --- a/bin/v-activate-rocket-nginx +++ b/bin/v-activate-rocket-nginx @@ -122,11 +122,7 @@ else echo "Adding cron job..." ​ # Add the cron job - TPL=$(/usr/local/vesta/bin/v-list-web-domain $user $domain shell | grep 'TEMPLATE:' | awk '{print $2}') - if [[ $TPL == "PHP-FPM-"* ]]; then - fpm_tpl_ver=${TPL:8:2} - fpm_ver="${TPL:8:1}.${TPL:9:1}" - fi + fpm_ver=$(/usr/local/vesta/bin/v-get-php-version-of-domain "$domain") ​ touch /home/$user/web/$domain/cron.log chown $user:$user /home/$user/web/$domain/cron.log From 84cf1269fbe5e8066766afa936ff2c4c2bbe6a7f Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Mon, 20 Feb 2023 11:16:08 +0100 Subject: [PATCH 529/984] Update sr.php --- web/inc/i18n/sr.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/inc/i18n/sr.php b/web/inc/i18n/sr.php index 3dfcc0f5..8c437ab9 100644 --- a/web/inc/i18n/sr.php +++ b/web/inc/i18n/sr.php @@ -119,7 +119,7 @@ $LANG['sr'] = array( 'Editing DNS Domain' => 'Izmena DNS-a za domen', 'Adding DNS Record' => 'Dodavanje DNS zapisa (DNS record)', 'Editing DNS Record' => 'Izmena DNS zapisa (DNS record)', - 'Adding Mail Domain' => 'Dodavanje Mail-a za domee', + 'Adding Mail Domain' => 'Dodavanje Mail-a za domene', 'Editing Mail Domain' => 'Izmena Mail-a za domen', 'Adding Mail Account' => 'Dodavanje Mail naloga', 'Editing Mail Account' => 'Izmena Mail naloga', From d0bba785bee13c7cf3f8746ce0aef02029998be0 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 21 Feb 2023 20:29:16 +0100 Subject: [PATCH 530/984] Update v-activate-rocket-nginx --- bin/v-activate-rocket-nginx | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/bin/v-activate-rocket-nginx b/bin/v-activate-rocket-nginx index c142f122..bd4145cc 100644 --- a/bin/v-activate-rocket-nginx +++ b/bin/v-activate-rocket-nginx @@ -115,18 +115,16 @@ fi # Adding cron job # Check if a cron job already exists for any of the specified PHP-FPM versions existing_cron=$(crontab -l -u $user | grep -o "wp-cron.php >/home/$user/web/$domain/cron.log" | grep -v "grep") -​ + if [ ! -z "$existing_cron" ]; then echo "There is already a cron job added for user $user and domain $domain." else echo "Adding cron job..." -​ # Add the cron job fpm_ver=$(/usr/local/vesta/bin/v-get-php-version-of-domain "$domain") -​ touch /home/$user/web/$domain/cron.log chown $user:$user /home/$user/web/$domain/cron.log -​ + case $fpm_ver in 5.6 | 7.0 | 7.1 | 7.2 | 7.3 | 7.4 | 8.0 | 8.1 | 8.2) /usr/local/vesta/bin/v-add-cron-job "$user" "*/15" "*" "*" "*" "*" "cd /home/$user/web/$domain/public_html; /usr/bin/php$fpm_ver wp-cron.php >/home/$user/web/$domain/cron.log 2>&1" From f8a3f209c4c0c6c7dd593c0011d43588f323eabb Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 23 Feb 2023 14:55:45 +0100 Subject: [PATCH 531/984] Update fix-fpm-poold.sh --- src/deb/for-download/tools/patches/fix-fpm-poold.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/deb/for-download/tools/patches/fix-fpm-poold.sh b/src/deb/for-download/tools/patches/fix-fpm-poold.sh index 88534bfd..25cd7f84 100644 --- a/src/deb/for-download/tools/patches/fix-fpm-poold.sh +++ b/src/deb/for-download/tools/patches/fix-fpm-poold.sh @@ -35,6 +35,8 @@ if [ -d "/etc/php" ]; then fi if [ -f "/etc/apache2/mods-enabled/mpm_event.conf" ]; then + rm /etc/apache2/mods-enabled/mpm_event.conf + ln -s /etc/apache2/mods-available/mpm_event.conf /etc/apache2/mods-enabled/mpm_event.conf sed -i "s#MaxRequestWorkers.*#MaxRequestWorkers 200#g" /etc/apache2/mods-enabled/mpm_event.conf systemctl restart apache2 fi From db554bacb7bf026d58e9d965fbfb4ff562df51b2 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 23 Feb 2023 14:57:37 +0100 Subject: [PATCH 532/984] Update fix-fpm-poold.sh --- src/deb/for-download/tools/patches/fix-fpm-poold.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/for-download/tools/patches/fix-fpm-poold.sh b/src/deb/for-download/tools/patches/fix-fpm-poold.sh index 25cd7f84..94566768 100644 --- a/src/deb/for-download/tools/patches/fix-fpm-poold.sh +++ b/src/deb/for-download/tools/patches/fix-fpm-poold.sh @@ -37,6 +37,6 @@ fi if [ -f "/etc/apache2/mods-enabled/mpm_event.conf" ]; then rm /etc/apache2/mods-enabled/mpm_event.conf ln -s /etc/apache2/mods-available/mpm_event.conf /etc/apache2/mods-enabled/mpm_event.conf - sed -i "s#MaxRequestWorkers.*#MaxRequestWorkers 200#g" /etc/apache2/mods-enabled/mpm_event.conf + sed -i "s#MaxRequestWorkers.*#MaxRequestWorkers 200#g" /etc/apache2/mods-available/mpm_event.conf systemctl restart apache2 fi From 8dcbafcc73dd45a892f14cf02b21e1ab71a5263a Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 23 Feb 2023 15:47:30 +0100 Subject: [PATCH 533/984] Update v-get-php-version-of-domain --- bin/v-get-php-version-of-domain | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bin/v-get-php-version-of-domain b/bin/v-get-php-version-of-domain index b3b320fc..c87b4e4c 100644 --- a/bin/v-get-php-version-of-domain +++ b/bin/v-get-php-version-of-domain @@ -15,6 +15,8 @@ fi # Importing system environment source /etc/profile +SILENT_MODE=1 + # Argument definition domain=$1 From 0fae1613e31e74fa081d84d65bcb000edc3b57d6 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 23 Feb 2023 15:58:00 +0100 Subject: [PATCH 534/984] Update main.sh --- func/main.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/func/main.sh b/func/main.sh index c4169b01..10de469a 100644 --- a/func/main.sh +++ b/func/main.sh @@ -86,7 +86,9 @@ log_history() { # Result checker check_result() { if [ $1 -ne 0 ]; then - echo "Error: $2" + if [ -z "$SILENT_MODE" ]; then + echo "Error: $2" + fi if [ ! -z "$3" ]; then log_event "$3" "$ARGUMENTS" exit $3 @@ -100,7 +102,9 @@ check_result() { # Argument list checker check_args() { if [ "$1" -gt "$2" ]; then - echo "Usage: $(basename $0) $3" + if [ -z "$SILENT_MODE" ]; then + echo "Usage: $(basename $0) $3" + fi check_result $E_ARGS "not enought arguments" >/dev/null fi } From 33911259254493c9e7b2a81da3d1e869eb7a15aa Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 23 Feb 2023 16:18:31 +0100 Subject: [PATCH 535/984] SILENT_MODE in v-search-domain-owner --- bin/v-search-domain-owner | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bin/v-search-domain-owner b/bin/v-search-domain-owner index 5b88f495..f807ebd2 100755 --- a/bin/v-search-domain-owner +++ b/bin/v-search-domain-owner @@ -9,6 +9,8 @@ # Variable&Function # #----------------------------------------------------------# +SILENT_MODE=1 + # Argument definition domain=$(idn -t --quiet -u "$1" ) type=${2-any} From 91c6ff09ab96df883fa739bf5c7c785b5ec5f42a Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 23 Feb 2023 20:45:28 +0100 Subject: [PATCH 536/984] Revert "Include "hidden" files to backup" --- bin/v-backup-user | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-backup-user b/bin/v-backup-user index 8bd0bb25..e2d7cac9 100755 --- a/bin/v-backup-user +++ b/bin/v-backup-user @@ -265,7 +265,7 @@ if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB" != '*' ]; then set +f # Backup files - tar --anchored -cpf- ${fargs[@]} --exclude={'./','../'} . |gzip -$BACKUP_GZIP - > $tmpdir/web/$domain/domain_data.tar.gz + tar --anchored -cpf- ${fargs[@]} * |gzip -$BACKUP_GZIP - > $tmpdir/web/$domain/domain_data.tar.gz done # Print total From 47d55cff76206530588a10321106fb7ea3b6c5ba Mon Sep 17 00:00:00 2001 From: N1ebieski Date: Fri, 24 Feb 2023 11:52:37 +0100 Subject: [PATCH 537/984] Update v-backup-user Include "hidden" files to backup with support for exclusions in old pattern --- bin/v-backup-user | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/bin/v-backup-user b/bin/v-backup-user index e2d7cac9..0db5d376 100755 --- a/bin/v-backup-user +++ b/bin/v-backup-user @@ -251,6 +251,11 @@ if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB" != '*' ]; then if [ ! -z "$exlusion" ]; then xdirs="$(echo -e "$exlusion" |tr ':' '\n' |grep -v $domain)" for xpath in $xdirs; do + # Add ./ at the beginning of the path if the path is in old pattern + if [[ $xpath != ./* ]]; then + xpath=(./$xpath) + fi + if [ -d "$xpath" ]; then fargs+=(--exclude=$xpath/*) echo "$(date "+%F %T") excluding directory $xpath" @@ -265,7 +270,7 @@ if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB" != '*' ]; then set +f # Backup files - tar --anchored -cpf- ${fargs[@]} * |gzip -$BACKUP_GZIP - > $tmpdir/web/$domain/domain_data.tar.gz + tar --anchored -cpf- ${fargs[@]} --exclude={'./','../'} . |gzip -$BACKUP_GZIP - > $tmpdir/web/$domain/domain_data.tar.gz done # Print total From 6db5f28ae53cb6379d8b2d12ca88b081290ecbaa Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 2 Mar 2023 15:29:26 +0100 Subject: [PATCH 538/984] Update v-commander --- bin/v-commander | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/v-commander b/bin/v-commander index 6fe05286..f6b24612 100644 --- a/bin/v-commander +++ b/bin/v-commander @@ -391,8 +391,8 @@ do if [ "$answer" = 'm' ] || [ "$answer" = 'M' ]; then echo "=============================" echo "== installing php-memcache modules" - apt-get install -y $(systemctl --full --type service --all | grep "php...-fpm" | awk '{print $1}' | cut -c1-6 | xargs -n 1 printf "%s-memcache ") - apt-get install -y $(systemctl --full --type service --all | grep "php...-fpm" | awk '{print $1}' | cut -c1-6 | xargs -n 1 printf "%s-memcached ") + apt-get install -y $(systemctl --full --type service --all | grep "php...-fpm" | sed 's#●##g' | awk '{print $1}' | cut -c1-6 | xargs -n 1 printf "%s-memcache ") + apt-get install -y $(systemctl --full --type service --all | grep "php...-fpm" | sed 's#●##g' | awk '{print $1}' | cut -c1-6 | xargs -n 1 printf "%s-memcached ") fi if [ "$answer" = 'd' ] || [ "$answer" = 'D' ]; then From 38137b3ba9c125f2ffb4554a0997f233f8b351b8 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 3 Mar 2023 10:47:25 +0100 Subject: [PATCH 539/984] Do not delete ssl.$domain* --- bin/v-delete-web-domain-ssl | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/bin/v-delete-web-domain-ssl b/bin/v-delete-web-domain-ssl index 05e8c940..30272928 100755 --- a/bin/v-delete-web-domain-ssl +++ b/bin/v-delete-web-domain-ssl @@ -57,8 +57,14 @@ fi # Deleting old certificate tmpdir=$(mktemp -p $HOMEDIR/$user/web/$domain/private -d) -rm -f $HOMEDIR/$user/conf/web/ssl.$domain.* -mv $USER_DATA/ssl/$domain.* $tmpdir +rm -f $HOMEDIR/$user/conf/web/ssl.$domain.ca +rm -f $HOMEDIR/$user/conf/web/ssl.$domain.crt +rm -f $HOMEDIR/$user/conf/web/ssl.$domain.key +rm -f $HOMEDIR/$user/conf/web/ssl.$domain.pem +mv $USER_DATA/ssl/$domain.ca $tmpdir +mv $USER_DATA/ssl/$domain.crt $tmpdir +mv $USER_DATA/ssl/$domain.key $tmpdir +mv $USER_DATA/ssl/$domain.pem $tmpdir chown -R $user:$user $tmpdir From 16e1000f1cac5f4b0fefcb94badbbf6188c5450c Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 11 Mar 2023 10:40:40 +0100 Subject: [PATCH 540/984] str_get_between PHP function --- func/string.php | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/func/string.php b/func/string.php index c94f85a2..111c57eb 100644 --- a/func/string.php +++ b/func/string.php @@ -11,3 +11,33 @@ function myvesta_replace_in_file($find, $replace, $file) { $r=file_put_contents($file, $buf); return $r; } + +function myvesta_str_get_between (&$text, $left_substring, $right_substring, $start=0, $do_not_return_left_substring=1, $do_not_return_right_substring=1, $left_substring_necessary=1, $right_substring_necessary=1) +{ + $from_null=0; + $pos1=strpos($text, $left_substring, $start); + if ($pos1===FALSE) + { + if ($left_substring_necessary==1) return ""; + $pos1=$start; + $from_null=1; + } + + if ($do_not_return_left_substring==1) + { + if ($from_null==0) $pos1=$pos1+strlen($left_substring); + } + $pos2=strpos($text, $right_substring, $pos1+1); + if ($pos2===FALSE) + { + if ($right_substring_necessary==1) return ""; + $pos2=strlen($text); + } + if ($do_not_return_right_substring==1) $len=$pos2-$pos1; + else $len=($pos2-$pos1)+strlen($right_substring); + + $slen=strlen($text); + if ($pos1+$len>$slen) $len=$slen-$pos1; + + return substr($text, $pos1, $len); +} From 8ae36f7df53c174eef34fbf945ca241705b8d715 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 11 Mar 2023 14:50:11 +0100 Subject: [PATCH 541/984] Update string.php --- func/string.php | 102 ++++++++++++++++++++++++++++++++++++------------ 1 file changed, 76 insertions(+), 26 deletions(-) diff --git a/func/string.php b/func/string.php index 111c57eb..8677af04 100644 --- a/func/string.php +++ b/func/string.php @@ -12,32 +12,82 @@ function myvesta_replace_in_file($find, $replace, $file) { return $r; } -function myvesta_str_get_between (&$text, $left_substring, $right_substring, $start=0, $do_not_return_left_substring=1, $do_not_return_right_substring=1, $left_substring_necessary=1, $right_substring_necessary=1) +function myvesta_str_get_between (&$text, $left_substring, $right_substring, $start=0, $return_left_substring=0, $return_right_substring=0, $left_substring_necessary=1, $right_substring_necessary=1) { - $from_null=0; - $pos1=strpos($text, $left_substring, $start); - if ($pos1===FALSE) - { - if ($left_substring_necessary==1) return ""; - $pos1=$start; - $from_null=1; - } + global $myvesta_str_found_at, $myvesta_str_end_at; + $myvesta_str_found_at=0; + $myvesta_str_end_at=0; + $from_null=0; + $pos1=strpos($text, $left_substring, $start); + if ($pos1===FALSE) + { + if ($left_substring_necessary==1) return ""; + $pos1=$start; + $from_null=1; + } - if ($do_not_return_left_substring==1) - { - if ($from_null==0) $pos1=$pos1+strlen($left_substring); - } - $pos2=strpos($text, $right_substring, $pos1+1); - if ($pos2===FALSE) - { - if ($right_substring_necessary==1) return ""; - $pos2=strlen($text); - } - if ($do_not_return_right_substring==1) $len=$pos2-$pos1; - else $len=($pos2-$pos1)+strlen($right_substring); - - $slen=strlen($text); - if ($pos1+$len>$slen) $len=$slen-$pos1; - - return substr($text, $pos1, $len); + if ($return_left_substring==0) + { + if ($from_null==0) $pos1=$pos1+strlen($left_substring); + } + $pos2=strpos($text, $right_substring, $pos1+1); + if ($pos2===FALSE) + { + if ($right_substring_necessary==1) return ""; + $pos2=strlen($text); + } + if ($return_right_substring==0) $len=$pos2-$pos1; + else $len=($pos2-$pos1)+strlen($right_substring); + + $slen=strlen($text); + if ($pos1+$len>$slen) $len=$slen-$pos1; + + $myvesta_str_found_at=$pos1; + $myvesta_str_end_at=$pos1+$len; + + return substr($text, $pos1, $len); +} + +function myvesta_str_replace_once_between_including_borders(&$text, $left, $right, $replace_with) { + $pos1=strpos($text, $left); + if ($pos1===false) return $text; + $pos2=strpos($text, $right, $left+strlen($left)); + if ($pos2===false) return $text; + return substr($text, 0, $pos1).$replace_with.substr($text, $pos2+strlen($right)); +} + +function myvesta_str_strip_once_between_including_borders(&$text, $left, $right) { + $pos1=strpos($text, $left); + if ($pos1===false) return $text; + $pos2=strpos($text, $right, $left+strlen($left)); + if ($pos2===false) return $text; + return substr($text, 0, $pos1).substr($text, $pos2+strlen($right)); +} + + +function myvesta_str_replace_between_including_borders($text, $left, $right, $replace_with) { + $start=0; + $left_len=strlen($left); + $right_len=strlen($right); + while (true) { + $pos1=strpos($text, $left); + if ($pos1===false) break; + $pos2=strpos($text, $right, $left+$left_len); + if ($pos2===false) break; + $text=substr($text, 0, $pos1).$replace_with.substr($text, $pos2+$right_len); + } + return $text; +} + +function myvesta_str_strip_between_including_borders($text, $left, $right) { + $left_len=strlen($left); + $right_len=strlen($right); + while (true) { + $pos1=strpos($text, $left); + if ($pos1===false) break; + $pos2=strpos($text, $right, $left+$left_len); + if ($pos2===false) break; + $text=substr($text, 0, $pos1).substr($text, $pos2+$right_len); + } + return $text; } From bdc75152d20e183b4f5d0a4fc9d5dc91c4f78a07 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 21 Mar 2023 17:49:08 +0100 Subject: [PATCH 542/984] php8.2.patch --- .../for-download/tools/patches/php8.2.patch | 81 +++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 src/deb/for-download/tools/patches/php8.2.patch diff --git a/src/deb/for-download/tools/patches/php8.2.patch b/src/deb/for-download/tools/patches/php8.2.patch new file mode 100644 index 00000000..1083a720 --- /dev/null +++ b/src/deb/for-download/tools/patches/php8.2.patch @@ -0,0 +1,81 @@ +--- /etc/php/8.2/fpm/php.ini.orig 2023-03-21 14:35:10.000000000 +0100 ++++ /etc/php/8.2/fpm/php.ini 2023-03-21 14:43:42.000000000 +0100 +@@ -320,7 +320,7 @@ + ; This directive allows you to disable certain functions. + ; It receives a comma-delimited list of function names. + ; https://php.net/disable-functions +-disable_functions = ++ disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,exec,system,passthru,shell_exec,proc_open,popen + + ; This directive allows you to disable certain classes. + ; It receives a comma-delimited list of class names. +@@ -423,7 +423,7 @@ + ;max_input_nesting_level = 64 + + ; How many GET/POST/COOKIE input variables may be accepted +-;max_input_vars = 1000 ++max_input_vars = 6000 + + ; How many multipart body parts (combined input variable and file uploads) may + ; be accepted. +@@ -432,7 +432,7 @@ + + ; Maximum amount of memory a script may consume + ; https://php.net/memory-limit +-memory_limit = 128M ++memory_limit = 256M + + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ; Error handling and logging ; +@@ -700,7 +700,7 @@ + ; Its value may be 0 to disable the limit. It is ignored if POST data reading + ; is disabled through enable_post_data_reading. + ; https://php.net/post-max-size +-post_max_size = 8M ++post_max_size = 80M + + ; Automatically add files before PHP document. + ; https://php.net/auto-prepend-file +@@ -852,7 +852,7 @@ + + ; Maximum allowed size for uploaded files. + ; https://php.net/upload-max-filesize +-upload_max_filesize = 2M ++upload_max_filesize = 80M + + ; Maximum number of files that can be uploaded via a single request + max_file_uploads = 20 +@@ -1108,7 +1108,7 @@ + + ; The path to a log file that will log all mail() calls. Log entries include + ; the full path of the script, line number, To address and headers. +-;mail.log = ++mail.log = /var/log/php-mail.log + ; Log mail to syslog (Event Log on Windows). + ;mail.log = syslog + +@@ -1786,20 +1786,20 @@ + + [opcache] + ; Determines if Zend OPCache is enabled +-;opcache.enable=1 ++opcache.enable=1 + + ; Determines if Zend OPCache is enabled for the CLI version of PHP +-;opcache.enable_cli=0 ++opcache.enable_cli=0 + + ; The OPcache shared memory storage size. +-;opcache.memory_consumption=128 ++opcache.memory_consumption=512 + + ; The amount of memory for interned strings in Mbytes. + ;opcache.interned_strings_buffer=8 + + ; The maximum number of keys (scripts) in the OPcache hash table. + ; Only numbers between 200 and 1000000 are allowed. +-;opcache.max_accelerated_files=10000 ++opcache.max_accelerated_files=100000 + + ; The maximum percentage of "wasted" memory until a restart is scheduled. + ;opcache.max_wasted_percentage=5 From afa72dc25836775e01e6183dfdfd34dde71e1ab4 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 21 Mar 2023 17:50:14 +0100 Subject: [PATCH 543/984] Update multi-php-install.sh --- src/deb/for-download/tools/multi-php-install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/deb/for-download/tools/multi-php-install.sh b/src/deb/for-download/tools/multi-php-install.sh index 14253444..764f56cf 100644 --- a/src/deb/for-download/tools/multi-php-install.sh +++ b/src/deb/for-download/tools/multi-php-install.sh @@ -332,8 +332,8 @@ if [ "$inst_82" -eq 1 ]; then chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-82.sh chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-82-public.sh echo "=== Patching php.ini for php8.2" - wget -nv https://c.myvestacp.com/tools/patches/php8.1.patch -O /root/php8.1.patch - patch /etc/php/8.2/fpm/php.ini < /root/php8.1.patch + wget -nv https://c.myvestacp.com/tools/patches/php8.2.patch -O /root/php8.2.patch + patch /etc/php/8.2/fpm/php.ini < /root/php8.2.patch if [ $memory -gt 9999999 ]; then sed -i "s|opcache.memory_consumption=512|opcache.memory_consumption=2048|g" /etc/php/8.2/fpm/php.ini fi From 172d66b4d2b9eba11cbcfb3920d09f692c81a826 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Wed, 22 Mar 2023 15:02:22 +0100 Subject: [PATCH 544/984] Add files via upload --- .../for-download/tools/patches/php8.1.patch | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/deb/for-download/tools/patches/php8.1.patch b/src/deb/for-download/tools/patches/php8.1.patch index 479af689..9e1648ab 100644 --- a/src/deb/for-download/tools/patches/php8.1.patch +++ b/src/deb/for-download/tools/patches/php8.1.patch @@ -1,5 +1,5 @@ ---- /etc/php/8.1/fpm/php.ini.orig 2021-11-25 21:48:52.000000000 +0100 -+++ /etc/php/8.1/fpm/php.ini 2021-12-12 20:25:01.000000000 +0100 +--- /etc/php/8.1/fpm/php.ini.orig 2023-03-16 15:37:38.000000000 +0100 ++++ /etc/php/8.1/fpm/php.ini 2023-03-22 14:58:38.000000000 +0100 @@ -320,7 +320,7 @@ ; This directive allows you to disable certain functions. ; It receives a comma-delimited list of function names. @@ -9,13 +9,17 @@ ; This directive allows you to disable certain classes. ; It receives a comma-delimited list of class names. -@@ -423,11 +423,11 @@ +@@ -423,7 +423,7 @@ ;max_input_nesting_level = 64 ; How many GET/POST/COOKIE input variables may be accepted -;max_input_vars = 1000 +max_input_vars = 6000 + ; How many multipart body parts (combined input variable and file uploads) may + ; be accepted. +@@ -432,7 +432,7 @@ + ; Maximum amount of memory a script may consume ; https://php.net/memory-limit -memory_limit = 128M @@ -23,7 +27,7 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Error handling and logging ; -@@ -695,7 +695,7 @@ +@@ -700,7 +700,7 @@ ; Its value may be 0 to disable the limit. It is ignored if POST data reading ; is disabled through enable_post_data_reading. ; https://php.net/post-max-size @@ -32,7 +36,7 @@ ; Automatically add files before PHP document. ; https://php.net/auto-prepend-file -@@ -847,7 +847,7 @@ +@@ -852,7 +852,7 @@ ; Maximum allowed size for uploaded files. ; https://php.net/upload-max-filesize @@ -41,7 +45,7 @@ ; Maximum number of files that can be uploaded via a single request max_file_uploads = 20 -@@ -1093,7 +1093,7 @@ +@@ -1103,7 +1103,7 @@ ; The path to a log file that will log all mail() calls. Log entries include ; the full path of the script, line number, To address and headers. @@ -50,7 +54,7 @@ ; Log mail to syslog (Event Log on Windows). ;mail.log = syslog -@@ -1764,20 +1764,20 @@ +@@ -1774,20 +1774,20 @@ [opcache] ; Determines if Zend OPCache is enabled From e9ca648f12c7a772a12dfd48127b89105e5ed6dd Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 23 Mar 2023 14:14:40 +0100 Subject: [PATCH 545/984] v-commander: inst-memchached and inst-redis --- bin/v-commander | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/bin/v-commander b/bin/v-commander index f6b24612..06a5f737 100644 --- a/bin/v-commander +++ b/bin/v-commander @@ -82,6 +82,8 @@ myhelp() { echo "inst p = install multi-php" echo "inst pgw = install php-gate" echo "inst r = install new Roundcube" + echo "inst memcached = install memcached" + echo "inst redis = install Redis" echo "dis fb = stop and disable fail2ban" echo "dis dove = stop and disable dovecot" echo "dis spam = stop and disable spam" @@ -430,6 +432,46 @@ do /root/install-phpgate.sh fi + if [ "$answer" = 'inst memcache' ] || [ "$answer" = 'inst memcached' ] || [ "$answer" = 'INST MEMCACHE' ] || [ "$answer" = 'INST MEMCACHED' ]; then + echo "=============================" + echo "== Installing memcached" + memory=$(grep 'MemTotal' /proc/meminfo |tr ' ' '\n' |grep [0-9]) + apt-get update + apt-get -y install memcached + apt-get install $(systemctl --full --type service --all | grep "php...-fpm" | sed 's#●##g' | awk '{print $1}' | cut -c1-6 | xargs -n 1 printf "%s-memcache ") + apt-get install $(systemctl --full --type service --all | grep "php...-fpm" | sed 's#●##g' | awk '{print $1}' | cut -c1-6 | xargs -n 1 printf "%s-memcached ") + if [ $memory -lt 15000000 ]; then + sed -i "s/-m 64/-m 256/" /etc/memcached.conf + else + sed -i "s/-m 64/-m 1024/" /etc/memcached.conf + fi + systemctl restart memcached + echo "== memcached installed." + echo "-----------------------" + fi + + if [ "$answer" = 'inst redis' ] || [ "$answer" = 'INST REDIS' ]; then + echo "=============================" + echo "== Installing Redis" + memory=$(grep 'MemTotal' /proc/meminfo |tr ' ' '\n' |grep [0-9]) + apt-get update + apt-get install -y redis-server + apt-get install $(systemctl --full --type service --all | grep "php...-fpm" | sed 's#●##g' | awk '{print $1}' | cut -c1-6 | xargs -n 1 printf "%s-redis ") + + sed -i "s|^supervised no|supervised systemd|g" /etc/redis/redis.conf + sed -i "s|^save |# save |g" /etc/redis/redis.conf + if [ $memory -lt 15000000 ]; then + sed -i "s|^# maxmemory .*|maxmemory 256m|g" /etc/redis/redis.conf + else + sed -i "s|^# maxmemory .*|maxmemory 1g|g" /etc/redis/redis.conf + fi + sed -i "s|^# maxmemory-policy .*|maxmemory-policy allkeys-lru|g" /etc/redis/redis.conf + systemctl restart redis + redis-cli info memory + echo "== Redis installed." + echo "-------------------" + fi + if [ "$answer" = 'check fc' ] || [ "$answer" = 'CHECK FC' ]; then echo "== Checking if FreshClam is up" clamavup=$(/usr/local/vesta/bin/v-list-sys-services | grep 'clamav-daemon' | grep -c 'running') From cd5cc2eda4e685490f2638969fc5b1345f1b9575 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 24 Mar 2023 20:36:20 +0100 Subject: [PATCH 546/984] Forward from primary ip, not from secondary --- install/debian/11/exim/exim4.conf.template-RC | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/install/debian/11/exim/exim4.conf.template-RC b/install/debian/11/exim/exim4.conf.template-RC index 605d848a..36ba2a0d 100644 --- a/install/debian/11/exim/exim4.conf.template-RC +++ b/install/debian/11/exim/exim4.conf.template-RC @@ -140,6 +140,11 @@ acl_check_rcpt: warn set acl_m3 = no + warn !authenticated = * + hosts = !+relay_from_hosts + condition = ${lookup{$local_part@$domain}lsearch{/etc/exim4/domains/$domain/aliases}{true}{false}} + set acl_m3 = yes + deny message = Restricted characters in address domains = +local_domains local_parts = ^[.] : ^.*[@%!/|] From a235ba63847464e7b1e4e63efd69799e45a3a3f0 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 24 Mar 2023 23:15:17 +0100 Subject: [PATCH 547/984] exim_forwarding.patch --- .../tools/patches/exim_forwarding.patch | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 src/deb/for-download/tools/patches/exim_forwarding.patch diff --git a/src/deb/for-download/tools/patches/exim_forwarding.patch b/src/deb/for-download/tools/patches/exim_forwarding.patch new file mode 100644 index 00000000..78b7ef69 --- /dev/null +++ b/src/deb/for-download/tools/patches/exim_forwarding.patch @@ -0,0 +1,14 @@ +--- old 2023-03-23 14:17:42.536656160 +0100 ++++ new 2023-03-24 23:07:08.186018906 +0100 +@@ -140,6 +140,11 @@ + + warn set acl_m3 = no + ++ warn !authenticated = * ++ hosts = !+relay_from_hosts ++ condition = ${lookup{$local_part@$domain}lsearch{/etc/exim4/domains/$domain/aliases}{true}{false}} ++ set acl_m3 = yes ++ + deny message = Restricted characters in address + domains = +local_domains + local_parts = ^[.] : ^.*[@%!/|] From 77857f92f016df78420d1eaa167c2b491c071ad9 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 25 Mar 2023 15:39:57 +0100 Subject: [PATCH 548/984] https redirect to the same host --- install/debian/10/templates/web/nginx/force-https-legacy.tpl | 2 +- install/debian/10/templates/web/nginx/force-https-public.tpl | 2 +- .../10/templates/web/nginx/force-https-webmail-phpmyadmin.tpl | 2 +- install/debian/10/templates/web/nginx/force-https.tpl | 2 +- install/debian/10/templates/web/nginx/private-force-https.tpl | 2 +- install/debian/11/templates/web/nginx/force-https-legacy.tpl | 2 +- install/debian/11/templates/web/nginx/force-https-public.tpl | 2 +- .../11/templates/web/nginx/force-https-webmail-phpmyadmin.tpl | 2 +- install/debian/11/templates/web/nginx/force-https.tpl | 2 +- install/debian/11/templates/web/nginx/private-force-https.tpl | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/install/debian/10/templates/web/nginx/force-https-legacy.tpl b/install/debian/10/templates/web/nginx/force-https-legacy.tpl index 851ac0dc..8bdbea42 100644 --- a/install/debian/10/templates/web/nginx/force-https-legacy.tpl +++ b/install/debian/10/templates/web/nginx/force-https-legacy.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://%domain_idn%$1 permanent; + rewrite ^(.*) https://$host%$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/install/debian/10/templates/web/nginx/force-https-public.tpl b/install/debian/10/templates/web/nginx/force-https-public.tpl index 851ac0dc..8bdbea42 100644 --- a/install/debian/10/templates/web/nginx/force-https-public.tpl +++ b/install/debian/10/templates/web/nginx/force-https-public.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://%domain_idn%$1 permanent; + rewrite ^(.*) https://$host%$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/install/debian/10/templates/web/nginx/force-https-webmail-phpmyadmin.tpl b/install/debian/10/templates/web/nginx/force-https-webmail-phpmyadmin.tpl index 851ac0dc..8bdbea42 100644 --- a/install/debian/10/templates/web/nginx/force-https-webmail-phpmyadmin.tpl +++ b/install/debian/10/templates/web/nginx/force-https-webmail-phpmyadmin.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://%domain_idn%$1 permanent; + rewrite ^(.*) https://$host%$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/install/debian/10/templates/web/nginx/force-https.tpl b/install/debian/10/templates/web/nginx/force-https.tpl index 851ac0dc..8bdbea42 100644 --- a/install/debian/10/templates/web/nginx/force-https.tpl +++ b/install/debian/10/templates/web/nginx/force-https.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://%domain_idn%$1 permanent; + rewrite ^(.*) https://$host%$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/install/debian/10/templates/web/nginx/private-force-https.tpl b/install/debian/10/templates/web/nginx/private-force-https.tpl index 851ac0dc..8bdbea42 100644 --- a/install/debian/10/templates/web/nginx/private-force-https.tpl +++ b/install/debian/10/templates/web/nginx/private-force-https.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://%domain_idn%$1 permanent; + rewrite ^(.*) https://$host%$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/install/debian/11/templates/web/nginx/force-https-legacy.tpl b/install/debian/11/templates/web/nginx/force-https-legacy.tpl index 851ac0dc..8bdbea42 100644 --- a/install/debian/11/templates/web/nginx/force-https-legacy.tpl +++ b/install/debian/11/templates/web/nginx/force-https-legacy.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://%domain_idn%$1 permanent; + rewrite ^(.*) https://$host%$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/install/debian/11/templates/web/nginx/force-https-public.tpl b/install/debian/11/templates/web/nginx/force-https-public.tpl index 851ac0dc..8bdbea42 100644 --- a/install/debian/11/templates/web/nginx/force-https-public.tpl +++ b/install/debian/11/templates/web/nginx/force-https-public.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://%domain_idn%$1 permanent; + rewrite ^(.*) https://$host%$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/install/debian/11/templates/web/nginx/force-https-webmail-phpmyadmin.tpl b/install/debian/11/templates/web/nginx/force-https-webmail-phpmyadmin.tpl index 851ac0dc..8bdbea42 100644 --- a/install/debian/11/templates/web/nginx/force-https-webmail-phpmyadmin.tpl +++ b/install/debian/11/templates/web/nginx/force-https-webmail-phpmyadmin.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://%domain_idn%$1 permanent; + rewrite ^(.*) https://$host%$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/install/debian/11/templates/web/nginx/force-https.tpl b/install/debian/11/templates/web/nginx/force-https.tpl index 851ac0dc..8bdbea42 100644 --- a/install/debian/11/templates/web/nginx/force-https.tpl +++ b/install/debian/11/templates/web/nginx/force-https.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://%domain_idn%$1 permanent; + rewrite ^(.*) https://$host%$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/install/debian/11/templates/web/nginx/private-force-https.tpl b/install/debian/11/templates/web/nginx/private-force-https.tpl index 851ac0dc..8bdbea42 100644 --- a/install/debian/11/templates/web/nginx/private-force-https.tpl +++ b/install/debian/11/templates/web/nginx/private-force-https.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://%domain_idn%$1 permanent; + rewrite ^(.*) https://$host%$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } From ce7f31121dbf800f5e738749303dcef7ed39c6b2 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 25 Mar 2023 16:10:09 +0100 Subject: [PATCH 549/984] https redirect to the same host (deb9) --- .../web/nginx/force-https-legacy.stpl | 39 ++++++++++++ .../web/nginx/force-https-legacy.tpl | 8 +++ .../web/nginx/force-https-public.stpl | 39 ++++++++++++ .../web/nginx/force-https-public.tpl | 8 +++ .../nginx/force-https-webmail-phpmyadmin.stpl | 63 +++++++++++++++++++ .../nginx/force-https-webmail-phpmyadmin.tpl | 8 +++ .../8/templates/web/nginx/force-https.stpl | 39 ++++++++++++ .../8/templates/web/nginx/force-https.tpl | 8 +++ .../web/nginx/private-force-https.stpl | 39 ++++++++++++ 9 files changed, 251 insertions(+) create mode 100644 install/debian/8/templates/web/nginx/force-https-legacy.stpl create mode 100644 install/debian/8/templates/web/nginx/force-https-legacy.tpl create mode 100644 install/debian/8/templates/web/nginx/force-https-public.stpl create mode 100644 install/debian/8/templates/web/nginx/force-https-public.tpl create mode 100644 install/debian/8/templates/web/nginx/force-https-webmail-phpmyadmin.stpl create mode 100644 install/debian/8/templates/web/nginx/force-https-webmail-phpmyadmin.tpl create mode 100644 install/debian/8/templates/web/nginx/force-https.stpl create mode 100644 install/debian/8/templates/web/nginx/force-https.tpl create mode 100644 install/debian/8/templates/web/nginx/private-force-https.stpl diff --git a/install/debian/8/templates/web/nginx/force-https-legacy.stpl b/install/debian/8/templates/web/nginx/force-https-legacy.stpl new file mode 100644 index 00000000..79e55a26 --- /dev/null +++ b/install/debian/8/templates/web/nginx/force-https-legacy.stpl @@ -0,0 +1,39 @@ +server { + listen %ip%:%proxy_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %sdocroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass https://%ip%:%web_ssl_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + disable_symlinks if_not_owner from=%docroot%; + + include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; + include %home%/%user%/conf/web/s%proxy_system%.%domain%.conf*; +} diff --git a/install/debian/8/templates/web/nginx/force-https-legacy.tpl b/install/debian/8/templates/web/nginx/force-https-legacy.tpl new file mode 100644 index 00000000..8bdbea42 --- /dev/null +++ b/install/debian/8/templates/web/nginx/force-https-legacy.tpl @@ -0,0 +1,8 @@ +server { + listen %ip%:%proxy_port%; + server_name %domain_idn% %alias_idn%; + location / { + rewrite ^(.*) https://$host%$1 permanent; + } +include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; +} diff --git a/install/debian/8/templates/web/nginx/force-https-public.stpl b/install/debian/8/templates/web/nginx/force-https-public.stpl new file mode 100644 index 00000000..ac422df6 --- /dev/null +++ b/install/debian/8/templates/web/nginx/force-https-public.stpl @@ -0,0 +1,39 @@ +server { + listen %ip%:%proxy_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %sdocroot%/public; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass https://%ip%:%web_ssl_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + disable_symlinks if_not_owner from=%docroot%/public; + + include %home%/%user%/conf/web/snginx.%domain_idn%.conf*; +} + diff --git a/install/debian/8/templates/web/nginx/force-https-public.tpl b/install/debian/8/templates/web/nginx/force-https-public.tpl new file mode 100644 index 00000000..8bdbea42 --- /dev/null +++ b/install/debian/8/templates/web/nginx/force-https-public.tpl @@ -0,0 +1,8 @@ +server { + listen %ip%:%proxy_port%; + server_name %domain_idn% %alias_idn%; + location / { + rewrite ^(.*) https://$host%$1 permanent; + } +include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; +} diff --git a/install/debian/8/templates/web/nginx/force-https-webmail-phpmyadmin.stpl b/install/debian/8/templates/web/nginx/force-https-webmail-phpmyadmin.stpl new file mode 100644 index 00000000..7e0e71d1 --- /dev/null +++ b/install/debian/8/templates/web/nginx/force-https-webmail-phpmyadmin.stpl @@ -0,0 +1,63 @@ +server { + listen %ip%:%proxy_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %sdocroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /webmail { + disable_symlinks off; + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root /var/lib/roundcube; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /phpmyadmin { + disable_symlinks off; + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root /usr/share; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass https://%ip%:%web_ssl_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + disable_symlinks if_not_owner from=%docroot%; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} + diff --git a/install/debian/8/templates/web/nginx/force-https-webmail-phpmyadmin.tpl b/install/debian/8/templates/web/nginx/force-https-webmail-phpmyadmin.tpl new file mode 100644 index 00000000..8bdbea42 --- /dev/null +++ b/install/debian/8/templates/web/nginx/force-https-webmail-phpmyadmin.tpl @@ -0,0 +1,8 @@ +server { + listen %ip%:%proxy_port%; + server_name %domain_idn% %alias_idn%; + location / { + rewrite ^(.*) https://$host%$1 permanent; + } +include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; +} diff --git a/install/debian/8/templates/web/nginx/force-https.stpl b/install/debian/8/templates/web/nginx/force-https.stpl new file mode 100644 index 00000000..33fab443 --- /dev/null +++ b/install/debian/8/templates/web/nginx/force-https.stpl @@ -0,0 +1,39 @@ +server { + listen %ip%:%proxy_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %sdocroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass https://%ip%:%web_ssl_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + disable_symlinks if_not_owner from=%docroot%; + + include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; + include %home%/%user%/conf/web/s%proxy_system%.%domain%.conf*; +} diff --git a/install/debian/8/templates/web/nginx/force-https.tpl b/install/debian/8/templates/web/nginx/force-https.tpl new file mode 100644 index 00000000..8bdbea42 --- /dev/null +++ b/install/debian/8/templates/web/nginx/force-https.tpl @@ -0,0 +1,8 @@ +server { + listen %ip%:%proxy_port%; + server_name %domain_idn% %alias_idn%; + location / { + rewrite ^(.*) https://$host%$1 permanent; + } +include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; +} diff --git a/install/debian/8/templates/web/nginx/private-force-https.stpl b/install/debian/8/templates/web/nginx/private-force-https.stpl new file mode 100644 index 00000000..64094fb8 --- /dev/null +++ b/install/debian/8/templates/web/nginx/private-force-https.stpl @@ -0,0 +1,39 @@ +server { + listen %ip%:%proxy_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + auth_basic "Restricted area"; + auth_basic_user_file /etc/nginx/.htpasswd; + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %sdocroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass https://%ip%:%web_ssl_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; + include %home%/%user%/conf/web/s%proxy_system%.%domain%.conf*; +} From fdd8350fef054a18d55d5a848d4c51566a6068ff Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 25 Mar 2023 16:12:44 +0100 Subject: [PATCH 550/984] https redirect to the same host (deb9) --- .../web/nginx/force-https-legacy.stpl | 39 ++++++++++++ .../web/nginx/force-https-legacy.tpl | 8 +++ .../web/nginx/force-https-public.stpl | 39 ++++++++++++ .../web/nginx/force-https-public.tpl | 8 +++ .../nginx/force-https-webmail-phpmyadmin.stpl | 63 +++++++++++++++++++ .../nginx/force-https-webmail-phpmyadmin.tpl | 8 +++ .../9/templates/web/nginx/force-https.stpl | 39 ++++++++++++ .../9/templates/web/nginx/force-https.tpl | 8 +++ .../web/nginx/private-force-https.stpl | 39 ++++++++++++ 9 files changed, 251 insertions(+) create mode 100644 install/debian/9/templates/web/nginx/force-https-legacy.stpl create mode 100644 install/debian/9/templates/web/nginx/force-https-legacy.tpl create mode 100644 install/debian/9/templates/web/nginx/force-https-public.stpl create mode 100644 install/debian/9/templates/web/nginx/force-https-public.tpl create mode 100644 install/debian/9/templates/web/nginx/force-https-webmail-phpmyadmin.stpl create mode 100644 install/debian/9/templates/web/nginx/force-https-webmail-phpmyadmin.tpl create mode 100644 install/debian/9/templates/web/nginx/force-https.stpl create mode 100644 install/debian/9/templates/web/nginx/force-https.tpl create mode 100644 install/debian/9/templates/web/nginx/private-force-https.stpl diff --git a/install/debian/9/templates/web/nginx/force-https-legacy.stpl b/install/debian/9/templates/web/nginx/force-https-legacy.stpl new file mode 100644 index 00000000..79e55a26 --- /dev/null +++ b/install/debian/9/templates/web/nginx/force-https-legacy.stpl @@ -0,0 +1,39 @@ +server { + listen %ip%:%proxy_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %sdocroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass https://%ip%:%web_ssl_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + disable_symlinks if_not_owner from=%docroot%; + + include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; + include %home%/%user%/conf/web/s%proxy_system%.%domain%.conf*; +} diff --git a/install/debian/9/templates/web/nginx/force-https-legacy.tpl b/install/debian/9/templates/web/nginx/force-https-legacy.tpl new file mode 100644 index 00000000..8bdbea42 --- /dev/null +++ b/install/debian/9/templates/web/nginx/force-https-legacy.tpl @@ -0,0 +1,8 @@ +server { + listen %ip%:%proxy_port%; + server_name %domain_idn% %alias_idn%; + location / { + rewrite ^(.*) https://$host%$1 permanent; + } +include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; +} diff --git a/install/debian/9/templates/web/nginx/force-https-public.stpl b/install/debian/9/templates/web/nginx/force-https-public.stpl new file mode 100644 index 00000000..ac422df6 --- /dev/null +++ b/install/debian/9/templates/web/nginx/force-https-public.stpl @@ -0,0 +1,39 @@ +server { + listen %ip%:%proxy_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %sdocroot%/public; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass https://%ip%:%web_ssl_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + disable_symlinks if_not_owner from=%docroot%/public; + + include %home%/%user%/conf/web/snginx.%domain_idn%.conf*; +} + diff --git a/install/debian/9/templates/web/nginx/force-https-public.tpl b/install/debian/9/templates/web/nginx/force-https-public.tpl new file mode 100644 index 00000000..8bdbea42 --- /dev/null +++ b/install/debian/9/templates/web/nginx/force-https-public.tpl @@ -0,0 +1,8 @@ +server { + listen %ip%:%proxy_port%; + server_name %domain_idn% %alias_idn%; + location / { + rewrite ^(.*) https://$host%$1 permanent; + } +include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; +} diff --git a/install/debian/9/templates/web/nginx/force-https-webmail-phpmyadmin.stpl b/install/debian/9/templates/web/nginx/force-https-webmail-phpmyadmin.stpl new file mode 100644 index 00000000..7e0e71d1 --- /dev/null +++ b/install/debian/9/templates/web/nginx/force-https-webmail-phpmyadmin.stpl @@ -0,0 +1,63 @@ +server { + listen %ip%:%proxy_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %sdocroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /webmail { + disable_symlinks off; + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root /var/lib/roundcube; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /phpmyadmin { + disable_symlinks off; + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root /usr/share; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass https://%ip%:%web_ssl_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + disable_symlinks if_not_owner from=%docroot%; + + include %home%/%user%/conf/web/snginx.%domain%.conf*; +} + diff --git a/install/debian/9/templates/web/nginx/force-https-webmail-phpmyadmin.tpl b/install/debian/9/templates/web/nginx/force-https-webmail-phpmyadmin.tpl new file mode 100644 index 00000000..8bdbea42 --- /dev/null +++ b/install/debian/9/templates/web/nginx/force-https-webmail-phpmyadmin.tpl @@ -0,0 +1,8 @@ +server { + listen %ip%:%proxy_port%; + server_name %domain_idn% %alias_idn%; + location / { + rewrite ^(.*) https://$host%$1 permanent; + } +include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; +} diff --git a/install/debian/9/templates/web/nginx/force-https.stpl b/install/debian/9/templates/web/nginx/force-https.stpl new file mode 100644 index 00000000..33fab443 --- /dev/null +++ b/install/debian/9/templates/web/nginx/force-https.stpl @@ -0,0 +1,39 @@ +server { + listen %ip%:%proxy_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %sdocroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass https://%ip%:%web_ssl_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + disable_symlinks if_not_owner from=%docroot%; + + include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; + include %home%/%user%/conf/web/s%proxy_system%.%domain%.conf*; +} diff --git a/install/debian/9/templates/web/nginx/force-https.tpl b/install/debian/9/templates/web/nginx/force-https.tpl new file mode 100644 index 00000000..8bdbea42 --- /dev/null +++ b/install/debian/9/templates/web/nginx/force-https.tpl @@ -0,0 +1,8 @@ +server { + listen %ip%:%proxy_port%; + server_name %domain_idn% %alias_idn%; + location / { + rewrite ^(.*) https://$host%$1 permanent; + } +include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; +} diff --git a/install/debian/9/templates/web/nginx/private-force-https.stpl b/install/debian/9/templates/web/nginx/private-force-https.stpl new file mode 100644 index 00000000..64094fb8 --- /dev/null +++ b/install/debian/9/templates/web/nginx/private-force-https.stpl @@ -0,0 +1,39 @@ +server { + listen %ip%:%proxy_ssl_port% ssl http2; + server_name %domain_idn% %alias_idn%; + + ssl_certificate %ssl_pem%; + ssl_certificate_key %ssl_key%; + error_log /var/log/%web_system%/domains/%domain%.error.log error; + + location / { + auth_basic "Restricted area"; + auth_basic_user_file /etc/nginx/.htpasswd; + proxy_pass https://%ip%:%web_ssl_port%; + location ~* ^.+\.(%proxy_extentions%)$ { + root %sdocroot%; + access_log /var/log/%web_system%/domains/%domain%.log combined; + access_log /var/log/%web_system%/domains/%domain%.bytes bytes; + expires max; + # try_files $uri @fallback; + } + } + + location /error/ { + alias %home%/%user%/web/%domain%/document_errors/; + } + + location @fallback { + proxy_pass https://%ip%:%web_ssl_port%; + } + + location ~ /\.ht {return 404;} + location ~ /\.env {return 404;} + location ~ /\.svn/ {return 404;} + location ~ /\.git/ {return 404;} + location ~ /\.hg/ {return 404;} + location ~ /\.bzr/ {return 404;} + + include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; + include %home%/%user%/conf/web/s%proxy_system%.%domain%.conf*; +} From 66097392bf6fe30edabb679615211f3b16a04980 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 25 Mar 2023 16:22:49 +0100 Subject: [PATCH 551/984] deb8 ttp2->ssl fix --- .../debian/8/templates/web/nginx/force-https-legacy.stpl | 2 +- .../debian/8/templates/web/nginx/force-https-public.stpl | 2 +- .../web/nginx/force-https-webmail-phpmyadmin.stpl | 2 +- install/debian/8/templates/web/nginx/force-https.stpl | 2 +- .../debian/8/templates/web/nginx/private-force-https.stpl | 2 +- .../debian/8/templates/web/nginx/private-force-https.tpl | 8 ++++++++ 6 files changed, 13 insertions(+), 5 deletions(-) create mode 100644 install/debian/8/templates/web/nginx/private-force-https.tpl diff --git a/install/debian/8/templates/web/nginx/force-https-legacy.stpl b/install/debian/8/templates/web/nginx/force-https-legacy.stpl index 79e55a26..4e51748d 100644 --- a/install/debian/8/templates/web/nginx/force-https-legacy.stpl +++ b/install/debian/8/templates/web/nginx/force-https-legacy.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%proxy_ssl_port% ssl http2; + listen %ip%:%proxy_ssl_port% ssl; server_name %domain_idn% %alias_idn%; ssl_certificate %ssl_pem%; diff --git a/install/debian/8/templates/web/nginx/force-https-public.stpl b/install/debian/8/templates/web/nginx/force-https-public.stpl index ac422df6..9522313b 100644 --- a/install/debian/8/templates/web/nginx/force-https-public.stpl +++ b/install/debian/8/templates/web/nginx/force-https-public.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%proxy_ssl_port% ssl http2; + listen %ip%:%proxy_ssl_port% ssl; server_name %domain_idn% %alias_idn%; ssl_certificate %ssl_pem%; diff --git a/install/debian/8/templates/web/nginx/force-https-webmail-phpmyadmin.stpl b/install/debian/8/templates/web/nginx/force-https-webmail-phpmyadmin.stpl index 7e0e71d1..2d62e72b 100644 --- a/install/debian/8/templates/web/nginx/force-https-webmail-phpmyadmin.stpl +++ b/install/debian/8/templates/web/nginx/force-https-webmail-phpmyadmin.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%proxy_ssl_port% ssl http2; + listen %ip%:%proxy_ssl_port% ssl; server_name %domain_idn% %alias_idn%; ssl_certificate %ssl_pem%; diff --git a/install/debian/8/templates/web/nginx/force-https.stpl b/install/debian/8/templates/web/nginx/force-https.stpl index 33fab443..d138ea63 100644 --- a/install/debian/8/templates/web/nginx/force-https.stpl +++ b/install/debian/8/templates/web/nginx/force-https.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%proxy_ssl_port% ssl http2; + listen %ip%:%proxy_ssl_port% ssl; server_name %domain_idn% %alias_idn%; ssl_certificate %ssl_pem%; diff --git a/install/debian/8/templates/web/nginx/private-force-https.stpl b/install/debian/8/templates/web/nginx/private-force-https.stpl index 64094fb8..c77baf91 100644 --- a/install/debian/8/templates/web/nginx/private-force-https.stpl +++ b/install/debian/8/templates/web/nginx/private-force-https.stpl @@ -1,5 +1,5 @@ server { - listen %ip%:%proxy_ssl_port% ssl http2; + listen %ip%:%proxy_ssl_port% ssl; server_name %domain_idn% %alias_idn%; ssl_certificate %ssl_pem%; diff --git a/install/debian/8/templates/web/nginx/private-force-https.tpl b/install/debian/8/templates/web/nginx/private-force-https.tpl new file mode 100644 index 00000000..8bdbea42 --- /dev/null +++ b/install/debian/8/templates/web/nginx/private-force-https.tpl @@ -0,0 +1,8 @@ +server { + listen %ip%:%proxy_port%; + server_name %domain_idn% %alias_idn%; + location / { + rewrite ^(.*) https://$host%$1 permanent; + } +include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; +} From 71f91ba16dbbe713d78c632b2dc94ce7827ae826 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 25 Mar 2023 16:24:20 +0100 Subject: [PATCH 552/984] deb9 private-force-https.tpl --- .../debian/9/templates/web/nginx/private-force-https.tpl | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 install/debian/9/templates/web/nginx/private-force-https.tpl diff --git a/install/debian/9/templates/web/nginx/private-force-https.tpl b/install/debian/9/templates/web/nginx/private-force-https.tpl new file mode 100644 index 00000000..8bdbea42 --- /dev/null +++ b/install/debian/9/templates/web/nginx/private-force-https.tpl @@ -0,0 +1,8 @@ +server { + listen %ip%:%proxy_port%; + server_name %domain_idn% %alias_idn%; + location / { + rewrite ^(.*) https://$host%$1 permanent; + } +include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; +} From 797ae8e515f72987234130326225144b671c9191 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 25 Mar 2023 18:19:29 +0100 Subject: [PATCH 553/984] force-https.patch --- src/deb/for-download/tools/patches/force-https.patch | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 src/deb/for-download/tools/patches/force-https.patch diff --git a/src/deb/for-download/tools/patches/force-https.patch b/src/deb/for-download/tools/patches/force-https.patch new file mode 100644 index 00000000..8de3c241 --- /dev/null +++ b/src/deb/for-download/tools/patches/force-https.patch @@ -0,0 +1,11 @@ +--- force-https.tpl.orig 2023-03-25 18:15:15.577555584 +0100 ++++ force-https.tpl 2023-03-25 16:51:48.044997322 +0100 +@@ -2,7 +2,7 @@ + listen %ip%:%proxy_port%; + server_name %domain_idn% %alias_idn%; + location / { +- rewrite ^(.*) https://%domain_idn%$1 permanent; ++ rewrite ^(.*) https://$host%$1 permanent; + } + include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; + } From 505c4085f5f8b0ef7894dd03d7220b9f26b47113 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 25 Mar 2023 18:30:41 +0100 Subject: [PATCH 554/984] Update force-https.patch --- src/deb/for-download/tools/patches/force-https.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/for-download/tools/patches/force-https.patch b/src/deb/for-download/tools/patches/force-https.patch index 8de3c241..05c2004d 100644 --- a/src/deb/for-download/tools/patches/force-https.patch +++ b/src/deb/for-download/tools/patches/force-https.patch @@ -5,7 +5,7 @@ server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://%domain_idn%$1 permanent; -+ rewrite ^(.*) https://$host%$1 permanent; ++ rewrite ^(.*) https://$host$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } From d84a021354d4f8bf317e558b1225c6cdd6acb728 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 25 Mar 2023 23:59:28 +0100 Subject: [PATCH 555/984] force-https fix --- install/debian/10/templates/web/nginx/force-https-legacy.tpl | 2 +- install/debian/10/templates/web/nginx/force-https-public.tpl | 2 +- .../10/templates/web/nginx/force-https-webmail-phpmyadmin.tpl | 2 +- install/debian/10/templates/web/nginx/force-https.tpl | 2 +- install/debian/10/templates/web/nginx/private-force-https.tpl | 2 +- install/debian/11/templates/web/nginx/force-https-legacy.tpl | 2 +- install/debian/11/templates/web/nginx/force-https-public.tpl | 2 +- .../11/templates/web/nginx/force-https-webmail-phpmyadmin.tpl | 2 +- install/debian/11/templates/web/nginx/force-https.tpl | 2 +- install/debian/11/templates/web/nginx/private-force-https.tpl | 2 +- install/debian/8/templates/web/nginx/force-https-legacy.tpl | 2 +- install/debian/8/templates/web/nginx/force-https-public.tpl | 2 +- .../8/templates/web/nginx/force-https-webmail-phpmyadmin.tpl | 2 +- install/debian/8/templates/web/nginx/force-https.tpl | 2 +- install/debian/8/templates/web/nginx/private-force-https.tpl | 2 +- install/debian/9/templates/web/nginx/force-https-legacy.tpl | 2 +- install/debian/9/templates/web/nginx/force-https-public.tpl | 2 +- .../9/templates/web/nginx/force-https-webmail-phpmyadmin.tpl | 2 +- install/debian/9/templates/web/nginx/force-https.tpl | 2 +- install/debian/9/templates/web/nginx/private-force-https.tpl | 2 +- .../nodejs-nginx-templates/node-app-3000-pass-to-https.tpl | 2 +- .../for-download/tools/nodejs-nginx-templates/node-app-3000.tpl | 2 +- .../nodejs-nginx-templates/node-app-4000-and-websocket-6001.tpl | 2 +- .../force-https-firewall-burst-2-speed-2-conn-4.tpl | 2 +- .../rate-limit-tpl/force-https-firewall-burst-2-speed-2.tpl | 2 +- .../tools/rate-limit-tpl/force-https-firewall-burst-2.tpl | 2 +- .../for-download/tools/rate-limit-tpl/force-https-firewall.tpl | 2 +- .../tools/rocket-nginx-templates/wprocket-force-https.tpl | 2 +- 28 files changed, 28 insertions(+), 28 deletions(-) diff --git a/install/debian/10/templates/web/nginx/force-https-legacy.tpl b/install/debian/10/templates/web/nginx/force-https-legacy.tpl index 8bdbea42..5a463370 100644 --- a/install/debian/10/templates/web/nginx/force-https-legacy.tpl +++ b/install/debian/10/templates/web/nginx/force-https-legacy.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://$host%$1 permanent; + rewrite ^(.*) https://$host$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/install/debian/10/templates/web/nginx/force-https-public.tpl b/install/debian/10/templates/web/nginx/force-https-public.tpl index 8bdbea42..5a463370 100644 --- a/install/debian/10/templates/web/nginx/force-https-public.tpl +++ b/install/debian/10/templates/web/nginx/force-https-public.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://$host%$1 permanent; + rewrite ^(.*) https://$host$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/install/debian/10/templates/web/nginx/force-https-webmail-phpmyadmin.tpl b/install/debian/10/templates/web/nginx/force-https-webmail-phpmyadmin.tpl index 8bdbea42..5a463370 100644 --- a/install/debian/10/templates/web/nginx/force-https-webmail-phpmyadmin.tpl +++ b/install/debian/10/templates/web/nginx/force-https-webmail-phpmyadmin.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://$host%$1 permanent; + rewrite ^(.*) https://$host$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/install/debian/10/templates/web/nginx/force-https.tpl b/install/debian/10/templates/web/nginx/force-https.tpl index 8bdbea42..5a463370 100644 --- a/install/debian/10/templates/web/nginx/force-https.tpl +++ b/install/debian/10/templates/web/nginx/force-https.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://$host%$1 permanent; + rewrite ^(.*) https://$host$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/install/debian/10/templates/web/nginx/private-force-https.tpl b/install/debian/10/templates/web/nginx/private-force-https.tpl index 8bdbea42..5a463370 100644 --- a/install/debian/10/templates/web/nginx/private-force-https.tpl +++ b/install/debian/10/templates/web/nginx/private-force-https.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://$host%$1 permanent; + rewrite ^(.*) https://$host$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/install/debian/11/templates/web/nginx/force-https-legacy.tpl b/install/debian/11/templates/web/nginx/force-https-legacy.tpl index 8bdbea42..5a463370 100644 --- a/install/debian/11/templates/web/nginx/force-https-legacy.tpl +++ b/install/debian/11/templates/web/nginx/force-https-legacy.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://$host%$1 permanent; + rewrite ^(.*) https://$host$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/install/debian/11/templates/web/nginx/force-https-public.tpl b/install/debian/11/templates/web/nginx/force-https-public.tpl index 8bdbea42..5a463370 100644 --- a/install/debian/11/templates/web/nginx/force-https-public.tpl +++ b/install/debian/11/templates/web/nginx/force-https-public.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://$host%$1 permanent; + rewrite ^(.*) https://$host$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/install/debian/11/templates/web/nginx/force-https-webmail-phpmyadmin.tpl b/install/debian/11/templates/web/nginx/force-https-webmail-phpmyadmin.tpl index 8bdbea42..5a463370 100644 --- a/install/debian/11/templates/web/nginx/force-https-webmail-phpmyadmin.tpl +++ b/install/debian/11/templates/web/nginx/force-https-webmail-phpmyadmin.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://$host%$1 permanent; + rewrite ^(.*) https://$host$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/install/debian/11/templates/web/nginx/force-https.tpl b/install/debian/11/templates/web/nginx/force-https.tpl index 8bdbea42..5a463370 100644 --- a/install/debian/11/templates/web/nginx/force-https.tpl +++ b/install/debian/11/templates/web/nginx/force-https.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://$host%$1 permanent; + rewrite ^(.*) https://$host$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/install/debian/11/templates/web/nginx/private-force-https.tpl b/install/debian/11/templates/web/nginx/private-force-https.tpl index 8bdbea42..5a463370 100644 --- a/install/debian/11/templates/web/nginx/private-force-https.tpl +++ b/install/debian/11/templates/web/nginx/private-force-https.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://$host%$1 permanent; + rewrite ^(.*) https://$host$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/install/debian/8/templates/web/nginx/force-https-legacy.tpl b/install/debian/8/templates/web/nginx/force-https-legacy.tpl index 8bdbea42..5a463370 100644 --- a/install/debian/8/templates/web/nginx/force-https-legacy.tpl +++ b/install/debian/8/templates/web/nginx/force-https-legacy.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://$host%$1 permanent; + rewrite ^(.*) https://$host$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/install/debian/8/templates/web/nginx/force-https-public.tpl b/install/debian/8/templates/web/nginx/force-https-public.tpl index 8bdbea42..5a463370 100644 --- a/install/debian/8/templates/web/nginx/force-https-public.tpl +++ b/install/debian/8/templates/web/nginx/force-https-public.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://$host%$1 permanent; + rewrite ^(.*) https://$host$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/install/debian/8/templates/web/nginx/force-https-webmail-phpmyadmin.tpl b/install/debian/8/templates/web/nginx/force-https-webmail-phpmyadmin.tpl index 8bdbea42..5a463370 100644 --- a/install/debian/8/templates/web/nginx/force-https-webmail-phpmyadmin.tpl +++ b/install/debian/8/templates/web/nginx/force-https-webmail-phpmyadmin.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://$host%$1 permanent; + rewrite ^(.*) https://$host$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/install/debian/8/templates/web/nginx/force-https.tpl b/install/debian/8/templates/web/nginx/force-https.tpl index 8bdbea42..5a463370 100644 --- a/install/debian/8/templates/web/nginx/force-https.tpl +++ b/install/debian/8/templates/web/nginx/force-https.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://$host%$1 permanent; + rewrite ^(.*) https://$host$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/install/debian/8/templates/web/nginx/private-force-https.tpl b/install/debian/8/templates/web/nginx/private-force-https.tpl index 8bdbea42..5a463370 100644 --- a/install/debian/8/templates/web/nginx/private-force-https.tpl +++ b/install/debian/8/templates/web/nginx/private-force-https.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://$host%$1 permanent; + rewrite ^(.*) https://$host$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/install/debian/9/templates/web/nginx/force-https-legacy.tpl b/install/debian/9/templates/web/nginx/force-https-legacy.tpl index 8bdbea42..5a463370 100644 --- a/install/debian/9/templates/web/nginx/force-https-legacy.tpl +++ b/install/debian/9/templates/web/nginx/force-https-legacy.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://$host%$1 permanent; + rewrite ^(.*) https://$host$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/install/debian/9/templates/web/nginx/force-https-public.tpl b/install/debian/9/templates/web/nginx/force-https-public.tpl index 8bdbea42..5a463370 100644 --- a/install/debian/9/templates/web/nginx/force-https-public.tpl +++ b/install/debian/9/templates/web/nginx/force-https-public.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://$host%$1 permanent; + rewrite ^(.*) https://$host$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/install/debian/9/templates/web/nginx/force-https-webmail-phpmyadmin.tpl b/install/debian/9/templates/web/nginx/force-https-webmail-phpmyadmin.tpl index 8bdbea42..5a463370 100644 --- a/install/debian/9/templates/web/nginx/force-https-webmail-phpmyadmin.tpl +++ b/install/debian/9/templates/web/nginx/force-https-webmail-phpmyadmin.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://$host%$1 permanent; + rewrite ^(.*) https://$host$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/install/debian/9/templates/web/nginx/force-https.tpl b/install/debian/9/templates/web/nginx/force-https.tpl index 8bdbea42..5a463370 100644 --- a/install/debian/9/templates/web/nginx/force-https.tpl +++ b/install/debian/9/templates/web/nginx/force-https.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://$host%$1 permanent; + rewrite ^(.*) https://$host$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/install/debian/9/templates/web/nginx/private-force-https.tpl b/install/debian/9/templates/web/nginx/private-force-https.tpl index 8bdbea42..5a463370 100644 --- a/install/debian/9/templates/web/nginx/private-force-https.tpl +++ b/install/debian/9/templates/web/nginx/private-force-https.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://$host%$1 permanent; + rewrite ^(.*) https://$host$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-pass-to-https.tpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-pass-to-https.tpl index 851ac0dc..5a463370 100644 --- a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-pass-to-https.tpl +++ b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000-pass-to-https.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://%domain_idn%$1 permanent; + rewrite ^(.*) https://$host$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000.tpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000.tpl index 851ac0dc..5a463370 100644 --- a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000.tpl +++ b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-3000.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://%domain_idn%$1 permanent; + rewrite ^(.*) https://$host$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-4000-and-websocket-6001.tpl b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-4000-and-websocket-6001.tpl index 958b2594..ee8db90e 100644 --- a/src/deb/for-download/tools/nodejs-nginx-templates/node-app-4000-and-websocket-6001.tpl +++ b/src/deb/for-download/tools/nodejs-nginx-templates/node-app-4000-and-websocket-6001.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://%domain_idn%$1 permanent; + rewrite ^(.*) https://$host$1 permanent; } location /app { diff --git a/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2-speed-2-conn-4.tpl b/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2-speed-2-conn-4.tpl index 851ac0dc..5a463370 100644 --- a/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2-speed-2-conn-4.tpl +++ b/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2-speed-2-conn-4.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://%domain_idn%$1 permanent; + rewrite ^(.*) https://$host$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2-speed-2.tpl b/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2-speed-2.tpl index 851ac0dc..5a463370 100644 --- a/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2-speed-2.tpl +++ b/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2-speed-2.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://%domain_idn%$1 permanent; + rewrite ^(.*) https://$host$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2.tpl b/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2.tpl index 851ac0dc..5a463370 100644 --- a/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2.tpl +++ b/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall-burst-2.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://%domain_idn%$1 permanent; + rewrite ^(.*) https://$host$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall.tpl b/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall.tpl index 851ac0dc..5a463370 100644 --- a/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall.tpl +++ b/src/deb/for-download/tools/rate-limit-tpl/force-https-firewall.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://%domain_idn%$1 permanent; + rewrite ^(.*) https://$host$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } diff --git a/src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-https.tpl b/src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-https.tpl index 851ac0dc..5a463370 100644 --- a/src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-https.tpl +++ b/src/deb/for-download/tools/rocket-nginx-templates/wprocket-force-https.tpl @@ -2,7 +2,7 @@ server { listen %ip%:%proxy_port%; server_name %domain_idn% %alias_idn%; location / { - rewrite ^(.*) https://%domain_idn%$1 permanent; + rewrite ^(.*) https://$host$1 permanent; } include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt; } From 09dcc123be70b17f53d1b72bed77285d95a1b023 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 26 Mar 2023 03:40:33 +0200 Subject: [PATCH 556/984] Interpreter for calling myVesta PHP functions --- bin/v-php-func | 11 ++++++++ func/bash-to-php-interpreter.php | 21 ++++++++++++++ func/main.php | 21 ++++++++++++-- func/string.php | 48 +++++++++++++++++++++++++++++--- 4 files changed, 95 insertions(+), 6 deletions(-) create mode 100644 bin/v-php-func create mode 100644 func/bash-to-php-interpreter.php diff --git a/bin/v-php-func b/bin/v-php-func new file mode 100644 index 00000000..dd75df43 --- /dev/null +++ b/bin/v-php-func @@ -0,0 +1,11 @@ +#!/bin/bash +# info: calling myVesta PHP functions +# options: FUNCTION +# +# The function is calling myVesta PHP functions. + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +php /usr/local/vesta/func/bash-to-php-interpreter.php "$@" diff --git a/func/bash-to-php-interpreter.php b/func/bash-to-php-interpreter.php new file mode 100644 index 00000000..6f06dae2 --- /dev/null +++ b/func/bash-to-php-interpreter.php @@ -0,0 +1,21 @@ + Date: Sun, 26 Mar 2023 03:49:38 +0200 Subject: [PATCH 557/984] Update bash-to-php-interpreter.php --- func/bash-to-php-interpreter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/func/bash-to-php-interpreter.php b/func/bash-to-php-interpreter.php index 6f06dae2..f47e7f9c 100644 --- a/func/bash-to-php-interpreter.php +++ b/func/bash-to-php-interpreter.php @@ -6,7 +6,7 @@ include ("/usr/local/vesta/func/main.php"); include ("/usr/local/vesta/func/string.php"); $counter=count($argv); -if ($counter<1) myvesta_throw_error(2, 'Function is missing'); +if ($counter<2) myvesta_throw_error(2, 'Function is missing'); $func="myvesta_".$argv[1]; if (!function_exists($func)) myvesta_throw_error(2, 'Function does not exists'); From beccead3889bd42459f8933ad55cdd6a17dc5a6d Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 26 Mar 2023 14:58:10 +0200 Subject: [PATCH 558/984] php-func fix --- bin/v-php-func | 1 + func/bash-to-php-interpreter.php | 21 +++++++++++++++++---- func/main.php | 1 + func/string.php | 25 +++++++++++++++---------- 4 files changed, 34 insertions(+), 14 deletions(-) diff --git a/bin/v-php-func b/bin/v-php-func index dd75df43..f6192c33 100644 --- a/bin/v-php-func +++ b/bin/v-php-func @@ -9,3 +9,4 @@ #----------------------------------------------------------# php /usr/local/vesta/func/bash-to-php-interpreter.php "$@" +exit $? diff --git a/func/bash-to-php-interpreter.php b/func/bash-to-php-interpreter.php index f47e7f9c..6c1c2fa0 100644 --- a/func/bash-to-php-interpreter.php +++ b/func/bash-to-php-interpreter.php @@ -1,6 +1,6 @@ Date: Sun, 26 Mar 2023 15:01:52 +0200 Subject: [PATCH 559/984] tabs fix --- func/bash-to-php-interpreter.php | 22 +++++++++++----------- func/main.php | 22 +++++++++++----------- func/string.php | 20 ++++++++++---------- 3 files changed, 32 insertions(+), 32 deletions(-) diff --git a/func/bash-to-php-interpreter.php b/func/bash-to-php-interpreter.php index 6c1c2fa0..9c67ab55 100644 --- a/func/bash-to-php-interpreter.php +++ b/func/bash-to-php-interpreter.php @@ -10,25 +10,25 @@ if ($counter<2) myvesta_throw_error(2, 'Function is missing'); $func=$argv[1]; if (!function_exists($func)) { - $func="myvesta_".$argv[1]; - if (!function_exists($func)) myvesta_throw_error(2, 'Function does not exists'); + $func="myvesta_".$argv[1]; + if (!function_exists($func)) myvesta_throw_error(2, 'Function does not exists'); } $params=array(); for ($i=2; $i<$counter; $i++) { - $argv[$i]=myvesta_fix_backslashes($argv[$i]); - $params[]=$argv[$i]; + $argv[$i]=myvesta_fix_backslashes($argv[$i]); + $params[]=$argv[$i]; } $r=call_user_func_array($func, $params); if (is_bool($r)) { - if ($r) { - exit(0); - } else { - exit(MYVESTA_ERROR_GENERAL); - } + if ($r) { + exit(0); + } else { + exit(MYVESTA_ERROR_GENERAL); + } } else { - echo $r; - exit(0); + echo $r; + exit(0); } diff --git a/func/main.php b/func/main.php index d09a6bd8..1a932fa7 100644 --- a/func/main.php +++ b/func/main.php @@ -18,10 +18,10 @@ function myvesta_throw_error($code, $message) { } function myvesta_fix_backslashes($s) { - $s=str_replace("\\n", "\n", $s); - $s=str_replace("\\r", "\r", $s); - $s=str_replace("\\t", "\t", $s); - return $s; + $s=str_replace("\\n", "\n", $s); + $s=str_replace("\\r", "\r", $s); + $s=str_replace("\\t", "\t", $s); + return $s; } function myvesta_check_args ($requried_arguments, $arguments) { @@ -45,11 +45,11 @@ function myvesta_check_args ($requried_arguments, $arguments) { function myvesta_fix_args() { global $argv; - $i=0; + $i=0; foreach ($argv as $argument) { - if ($i==0) {$i++; continue;} + if ($i==0) {$i++; continue;} $argv[$i]=myvesta_fix_backslashes($argv[$i]); - $i++; + $i++; } } @@ -60,8 +60,8 @@ function myvesta_exit($code) { } function myvesta_test_func () { - $args=func_get_args(); - echo "You said: "; - print_r ($args); - echo "\n"; + $args=func_get_args(); + echo "You said: "; + print_r ($args); + echo "\n"; } diff --git a/func/string.php b/func/string.php index 0fa284cf..3882c069 100644 --- a/func/string.php +++ b/func/string.php @@ -11,49 +11,49 @@ function myvesta_replace_in_file($file, $find, $replace) { $buf=str_replace($find, $replace, $buf); $r=file_put_contents($file, $buf); - if ($r===false) return false; + if ($r===false) return false; return true; } function myvesta_get_between_in_file($file, $left_substring, $right_substring, $start=0, $return_left_substring=0, $return_right_substring=0, $left_substring_necessary=1, $right_substring_necessary=1) { if (!file_exists($file)) return myvesta_throw_error (MYVESTA_ERROR_FILE_DOES_NOT_EXISTS, "File '$file' not found"); $text=file_get_contents($file); - return myvesta_str_get_between ($text, $left_substring, $right_substring, $start, $return_left_substring, $return_right_substring, $left_substring_necessary, $right_substring_necessary); + return myvesta_str_get_between ($text, $left_substring, $right_substring, $start, $return_left_substring, $return_right_substring, $left_substring_necessary, $right_substring_necessary); } function myvesta_replace_in_file_once_between_including_borders($file, $left, $right, $replace_with) { if (!file_exists($file)) return myvesta_throw_error (MYVESTA_ERROR_FILE_DOES_NOT_EXISTS, "File '$file' not found"); $text=file_get_contents($file); - $buf=myvesta_str_replace_once_between_including_borders($text, $left, $right, $replace_with); + $buf=myvesta_str_replace_once_between_including_borders($text, $left, $right, $replace_with); $r=file_put_contents($file, $buf); - if ($r===false) return false; + if ($r===false) return false; return true; } function myvesta_strip_once_in_file_between_including_borders($file, $left, $right) { if (!file_exists($file)) return myvesta_throw_error (MYVESTA_ERROR_FILE_DOES_NOT_EXISTS, "File '$file' not found"); $text=file_get_contents($file); - $buf=myvesta_str_strip_once_between_including_borders($text, $left, $right); + $buf=myvesta_str_strip_once_between_including_borders($text, $left, $right); $r=file_put_contents($file, $buf); - if ($r===false) return false; + if ($r===false) return false; return true; } function myvesta_replace_in_file_between_including_borders($file, $left, $right, $replace_with) { if (!file_exists($file)) return myvesta_throw_error (MYVESTA_ERROR_FILE_DOES_NOT_EXISTS, "File '$file' not found"); $text=file_get_contents($file); - $buf=myvesta_str_replace_between_including_borders($text, $left, $right, $replace_with); + $buf=myvesta_str_replace_between_including_borders($text, $left, $right, $replace_with); $r=file_put_contents($file, $buf); - if ($r===false) return false; + if ($r===false) return false; return true; } function myvesta_strip_in_file_between_including_borders($file, $left, $right) { if (!file_exists($file)) return myvesta_throw_error (MYVESTA_ERROR_FILE_DOES_NOT_EXISTS, "File '$file' not found"); $text=file_get_contents($file); - $buf=myvesta_str_strip_between_including_borders($text, $left, $right); + $buf=myvesta_str_strip_between_including_borders($text, $left, $right); $r=file_put_contents($file, $buf); - if ($r===false) return false; + if ($r===false) return false; return true; } From 201cdad4b30f0b36e6cfe975fedd9170872960b9 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 26 Mar 2023 15:06:22 +0200 Subject: [PATCH 560/984] exit with brackets fix --- func/bash-to-php-interpreter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/func/bash-to-php-interpreter.php b/func/bash-to-php-interpreter.php index 9c67ab55..6ed31455 100644 --- a/func/bash-to-php-interpreter.php +++ b/func/bash-to-php-interpreter.php @@ -1,6 +1,6 @@ Date: Sun, 26 Mar 2023 15:11:50 +0200 Subject: [PATCH 561/984] Strip 'BROWSER MEDIA CACHE' block in rocket-nginx conf --- src/deb/for-download/tools/install-rocket-nginx.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/deb/for-download/tools/install-rocket-nginx.sh b/src/deb/for-download/tools/install-rocket-nginx.sh index 3e298c7d..20364f80 100644 --- a/src/deb/for-download/tools/install-rocket-nginx.sh +++ b/src/deb/for-download/tools/install-rocket-nginx.sh @@ -17,6 +17,8 @@ fi cd rocket-nginx cp rocket-nginx.ini.disabled rocket-nginx.ini php rocket-parser.php +/usr/local/vesta/bin/v-php-func 'strip_once_in_file_between_including_borders' '/etc/nginx/rocket-nginx/conf.d/default.conf' '# BROWSER MEDIA CACHE' '}' + wget -nv -O /usr/local/vesta/data/templates/web/nginx/wprocket-force-https.tpl https://c.myvestacp.com/tools/rocket-nginx-templates/wprocket-force-https.tpl wget -nv -O /usr/local/vesta/data/templates/web/nginx/wprocket-force-https.stpl https://c.myvestacp.com/tools/rocket-nginx-templates/wprocket-force-https.stpl wget -nv -O /usr/local/vesta/data/templates/web/nginx/wprocket-hosting.tpl https://c.myvestacp.com/tools/rocket-nginx-templates/wprocket-hosting.tpl From da136faf08b8cc83b8532cd04fe3fae53bb3b6ef Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 26 Mar 2023 19:04:45 +0200 Subject: [PATCH 562/984] php function "find_in_file" --- func/main.php | 2 +- func/string.php | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/func/main.php b/func/main.php index 1a932fa7..cf13f3f0 100644 --- a/func/main.php +++ b/func/main.php @@ -12,7 +12,7 @@ define('MYVESTA_ERROR_GENERAL', 5); function myvesta_throw_error($code, $message) { global $myvesta_exit_on_error; - echo "ERROR: ".$message."\n"; + if ($message!=='') echo "ERROR: ".$message."\n"; if ($myvesta_exit_on_error) myvesta_exit($code); return $code; } diff --git a/func/string.php b/func/string.php index 3882c069..2b6a63d9 100644 --- a/func/string.php +++ b/func/string.php @@ -2,6 +2,17 @@ // --- file functions --- +function myvesta_find_in_file($file, $find) { + if (!file_exists($file)) return myvesta_throw_error (MYVESTA_ERROR_FILE_DOES_NOT_EXISTS, "File '$file' not found"); + + $buf=file_get_contents($file); + + $pos=strpos($buf, $find); + if ($pos===false) return myvesta_throw_error (MYVESTA_ERROR_STRING_NOT_FOUND, ""); + + return $pos; +} + function myvesta_replace_in_file($file, $find, $replace) { if (!file_exists($file)) return myvesta_throw_error (MYVESTA_ERROR_FILE_DOES_NOT_EXISTS, "File '$file' not found"); From b1a3b88877efe2dd8f22bc2a2e5454ee825c0635 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 28 Mar 2023 10:39:38 +0200 Subject: [PATCH 563/984] new line on the output end if v-php-func called directly from shell --- func/bash-to-php-interpreter.php | 6 ++++++ func/main.php | 5 ++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/func/bash-to-php-interpreter.php b/func/bash-to-php-interpreter.php index 6ed31455..cd849d6c 100644 --- a/func/bash-to-php-interpreter.php +++ b/func/bash-to-php-interpreter.php @@ -1,5 +1,8 @@ Date: Tue, 28 Mar 2023 17:07:52 +0200 Subject: [PATCH 564/984] Security Improvements --- bin/v-install-wordpress | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/bin/v-install-wordpress b/bin/v-install-wordpress index 4bf82c5f..70f3fc7b 100644 --- a/bin/v-install-wordpress +++ b/bin/v-install-wordpress @@ -128,7 +128,9 @@ sudo -H -u$user wp core config --dbname=$DBUSER --dbuser=$DBUSER --dbpass=$PASSW password=$(LC_CTYPE=C tr -dc A-Za-z0-9_\!\@\#\$\%\^\&\*\(\)-+= < /dev/urandom | head -c 12) -sudo -H -u$user wp core install --url="$domain" --title="$domain" --admin_user="admin" --admin_password="$password" --admin_email="$email" --path=$WORKINGDIR +wpadmin=$(echo "$domain" | sed 's#\.#_#g')_4dm1n + +sudo -H -u$user wp core install --url="$domain" --title="$domain" --admin_user="$wpadmin" --admin_password="$password" --admin_email="$email" --path=$WORKINGDIR mysql -u$DBUSER -p$PASSWDDB -e "USE $DBUSER; update wp_options set option_value = '$PROTOCOL://$domain' where option_name = 'siteurl'; update wp_options set option_value = '$PROTOCOL://$domain' where option_name = 'home';" @@ -138,7 +140,7 @@ echo "" echo "Site: $PROTOCOL://$domain/" echo "" echo "Login: $PROTOCOL://$domain/wp-admin/" -echo "Username: admin" +echo "Username: $wpadmin" echo "Password: $password" echo "" echo "=================================================================" From 551df0b5a6cea7d8bce07053f5add474fd1cc30d Mon Sep 17 00:00:00 2001 From: isscbta <53144593+isscbta@users.noreply.github.com> Date: Wed, 29 Mar 2023 15:45:36 +0200 Subject: [PATCH 565/984] Update v-clean-garbage --- bin/v-clean-garbage | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/bin/v-clean-garbage b/bin/v-clean-garbage index 5b402653..72e8560e 100644 --- a/bin/v-clean-garbage +++ b/bin/v-clean-garbage @@ -45,13 +45,13 @@ find /var/log/exim4/ -type f -exec truncate -s 0 {} \; clean_home() { nice -n 19 ionice -c 3 find $1/*/tmp/ -type f -delete find $1/ -name '.wp-cli' -type d -exec rm -rf {} \; > /dev/null 2>&1 - find $1/*/web/*/public_html/wp-content/aiowps_backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete - find $1/*/web/*/public_html/wp-content/envato-backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete - find $1/*/web/*/public_html/wp-content/ai1wm-backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete - find $1/*/web/*/public_html/wp-content/wpvividbackups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete - find $1/*/web/*/public_html/wp-content/updraft/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete + find $1/*/web/*/public_html/wp-content/aiowps_backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete > /dev/null 2>&1 + find $1/*/web/*/public_html/wp-content/envato-backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete > /dev/null 2>&1 + find $1/*/web/*/public_html/wp-content/ai1wm-backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete > /dev/null 2>&1 + find $1/*/web/*/public_html/wp-content/wpvividbackups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete > /dev/null 2>&1 + find $1/*/web/*/public_html/wp-content/updraft/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete > /dev/null 2>&1 find $1/*/web/*/public_html/wp-content/plugins/ezpz-one-click-backup/backups/ -type f -not -name ".htaccess" -not -name "index.php" -not -name "index.html" -not -name "web.config" -delete > /dev/null 2>&1 - find $1/*/web/*/public_html/ -type f -name "*.wpress" -delete + find $1/*/web/*/public_html/ -type f -name "*.wpress" -delete > /dev/null 2>&1 nice -n 19 ionice -c 3 find $1/*/web/*/public_html/ -type f -name "error_log" -exec truncate -s 0 {} \; nice -n 19 ionice -c 3 find $1/*/web/*/public_html/ -type f -name "error_log.txt" -exec truncate -s 0 {} \; nice -n 19 ionice -c 3 find $1/ -type f -name "*.log" -exec truncate -s 0 {} \; From a47603156d5da0b7c7fa1cdb640aaf63fc7f97c6 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Wed, 29 Mar 2023 15:48:42 +0200 Subject: [PATCH 566/984] Update exim_forwarding.patch --- src/deb/for-download/tools/patches/exim_forwarding.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/deb/for-download/tools/patches/exim_forwarding.patch b/src/deb/for-download/tools/patches/exim_forwarding.patch index 78b7ef69..1fa6d408 100644 --- a/src/deb/for-download/tools/patches/exim_forwarding.patch +++ b/src/deb/for-download/tools/patches/exim_forwarding.patch @@ -1,9 +1,9 @@ --- old 2023-03-23 14:17:42.536656160 +0100 +++ new 2023-03-24 23:07:08.186018906 +0100 @@ -140,6 +140,11 @@ - + warn set acl_m3 = no - + + warn !authenticated = * + hosts = !+relay_from_hosts + condition = ${lookup{$local_part@$domain}lsearch{/etc/exim4/domains/$domain/aliases}{true}{false}} From 3bafc5b064fdbbe1e31da69eef801548b4514985 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 1 Apr 2023 23:29:35 +0200 Subject: [PATCH 567/984] myvesta_echo php function --- func/bash-to-php-interpreter.php | 13 ++++++----- func/main.php | 37 +++++++++++++++++++++----------- 2 files changed, 30 insertions(+), 20 deletions(-) diff --git a/func/bash-to-php-interpreter.php b/func/bash-to-php-interpreter.php index cd849d6c..13995e1c 100644 --- a/func/bash-to-php-interpreter.php +++ b/func/bash-to-php-interpreter.php @@ -1,5 +1,7 @@ Date: Wed, 5 Apr 2023 21:07:11 +0200 Subject: [PATCH 568/984] LetsEncrypt check if 'certificate' is empty on step 6 --- bin/v-add-letsencrypt-domain | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/bin/v-add-letsencrypt-domain b/bin/v-add-letsencrypt-domain index faa51f8c..9d9b7cbe 100755 --- a/bin/v-add-letsencrypt-domain +++ b/bin/v-add-letsencrypt-domain @@ -323,6 +323,14 @@ if [[ "$status" -ne 200 ]]; then echo "[$(date)] : EXIT=Let's Encrypt finalize bad status $status" >> /usr/local/vesta/log/letsencrypt.log check_result $E_CONNECT "Let's Encrypt finalize bad status $status" fi +if [ "$certificate" = "" ]; then + echo "[$(date)] : EXIT=Let's Encrypt 'certificate' is empty on step 6" >> /usr/local/vesta/log/letsencrypt.log + check_result $E_CONNECT "Let's Encrypt 'certificate' is empty on step 6" +fi +if [ "$nonce" = "" ]; then + echo "[$(date)] : EXIT=Let's Encrypt 'nonce' is empty on step 6" >> /usr/local/vesta/log/letsencrypt.log + check_result $E_CONNECT "Let's Encrypt 'nonce' is empty on step 6" +fi # Downloading signed certificate / STEP 7 echo "[$(date)] : --- Downloading signed certificate / STEP 7 ---" >> /usr/local/vesta/log/letsencrypt.log From cdde300f80ce8abe9d5fa21ab5c711923715e4d3 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Wed, 5 Apr 2023 21:08:38 +0200 Subject: [PATCH 569/984] Version 0.9.8-26-61 --- src/deb/latest.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/latest.txt b/src/deb/latest.txt index 68750920..4ee18f6a 100644 --- a/src/deb/latest.txt +++ b/src/deb/latest.txt @@ -1 +1 @@ -vesta-0.9.8-26-60 +vesta-0.9.8-26-61 From a098a9831c8760cfc15c1d58470cfcc184d4a2d8 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Wed, 5 Apr 2023 21:10:28 +0200 Subject: [PATCH 570/984] Update Changelog.md --- Changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Changelog.md b/Changelog.md index 9af9791b..e4938183 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,7 @@ +Version 0.9.8-26-61 [05-Apr-2023] +================================================== +* Many bugfixes + Version 0.9.8-26-60 [12-Feb-2023] ================================================== * New script: v-commander (useful for maintaining the server) From f5132329c8500cccb48fcfc2e3657822071ebed5 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Wed, 5 Apr 2023 23:13:38 +0200 Subject: [PATCH 571/984] Update Changelog.md --- Changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Changelog.md b/Changelog.md index e4938183..28f5cd6c 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,6 +1,7 @@ Version 0.9.8-26-61 [05-Apr-2023] ================================================== * Many bugfixes +* Hotfix for LetsEncrypt to prevent Apache falling Version 0.9.8-26-60 [12-Feb-2023] ================================================== From 4771d2502c9f523a5d29bd25211ee443897af849 Mon Sep 17 00:00:00 2001 From: Jaap Marcus <9754650+jaapmarcus@users.noreply.github.com> Date: Thu, 6 Apr 2023 01:23:10 +0200 Subject: [PATCH 572/984] Fix: Changes in Certificate request Lets Encrypt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See: https://community.letsencrypt.org/t/myvesta-hestiacp-vestacp-fail-issuance-with-async-finalization/195923 And https://github.com/hestiacp/hestiacp/pull/3442 Not tested on Vesta CP ❤️ --- bin/v-add-letsencrypt-domain | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/bin/v-add-letsencrypt-domain b/bin/v-add-letsencrypt-domain index 9d9b7cbe..c37492b7 100755 --- a/bin/v-add-letsencrypt-domain +++ b/bin/v-add-letsencrypt-domain @@ -56,7 +56,7 @@ query_le_v2() { # Save http response to file passed as "$4" arg or print to stdout if not provided # http response headers are always sent to stdout local save_to_file=${4:-"/dev/stdout"} - curl --silent --dump-header /dev/stdout --data "$post_data" "$1" --header "$content" --output "$save_to_file" + curl --location --user-agent "MyVestaCP" --insecure --retry 5 --retry-connrefused --silent --dump-header /dev/stdout --data "$post_data" "$1" --header "$content" --output "$save_to_file" } @@ -154,6 +154,8 @@ authz=$(echo "$answer" |grep "acme/authz" |cut -f2 -d '"') echo "[$(date)] : authz=$authz" >> /usr/local/vesta/log/letsencrypt.log finalize=$(echo "$answer" |grep 'finalize":' |cut -f4 -d '"') echo "[$(date)] : finalize=$finalize" >> /usr/local/vesta/log/letsencrypt.log +order=$(echo -e "$answer" | grep -i location | cut -f2 -d \ | tr -d '\r\n') +echo "[$(date)] : order=$order" >> /usr/local/vesta/log/letsencrypt.log status=$(echo "$answer" |grep HTTP/ |tail -n1 |cut -f2 -d ' ') echo "[$(date)] : status=$status" >> /usr/local/vesta/log/letsencrypt.log if [[ "$status" -ne 201 ]]; then @@ -324,16 +326,34 @@ if [[ "$status" -ne 200 ]]; then check_result $E_CONNECT "Let's Encrypt finalize bad status $status" fi if [ "$certificate" = "" ]; then - echo "[$(date)] : EXIT=Let's Encrypt 'certificate' is empty on step 6" >> /usr/local/vesta/log/letsencrypt.log - check_result $E_CONNECT "Let's Encrypt 'certificate' is empty on step 6" + validation="processing" + i=1 + while [ "$validation" = "processing" ]; do + echo "[$(date)] : --- Polling server waiting for Certificate / STEP 7 ---" >> /usr/local/vesta/log/letsencrypt.log + answer=$(query_le_v2 "$order" "" "$nonce") + i=$((i + 1)) + + nonce=$(echo "$answer" | grep -i nonce | cut -f2 -d \ | tr -d '\r\n') + echo "[$(date)] : answer=$answer" >> /usr/local/vesta/log/letsencrypt.log + status=$(echo "$answer" | grep HTTP/ | tail -n1 | cut -f 2 -d ' ') + echo "[$(date)] : status=$status" >> /usr/local/vesta/log/letsencrypt.log + validation=$(echo "$answer" | grep 'status":' | cut -f4 -d '"') + echo "[$(date)] : validation=$validation" >> /usr/local/vesta/log/letsencrypt.log + certificate=$(echo "$answer" | grep 'certificate":' | cut -f4 -d '"') + echo "[$(date)] : certificate=$certificate" >> /usr/local/vesta/log/letsencrypt.log + sleep $((i * 2)) # Sleep for 2s, 4s, 6s, 8s + if [ $i -gt 10 ]; then + check_result "$E_CONNECT" "Certificate processing timeout ($domain)" + fi + done fi if [ "$nonce" = "" ]; then echo "[$(date)] : EXIT=Let's Encrypt 'nonce' is empty on step 6" >> /usr/local/vesta/log/letsencrypt.log check_result $E_CONNECT "Let's Encrypt 'nonce' is empty on step 6" fi -# Downloading signed certificate / STEP 7 -echo "[$(date)] : --- Downloading signed certificate / STEP 7 ---" >> /usr/local/vesta/log/letsencrypt.log +# Downloading signed certificate / STEP 8 +echo "[$(date)] : --- Downloading signed certificate / STEP 8 ---" >> /usr/local/vesta/log/letsencrypt.log echo "[$(date)] : query_le_v2 \"$certificate\" \"\" \"$nonce\"" >> /usr/local/vesta/log/letsencrypt.log answer=$(query_le_v2 "$certificate" "" "$nonce" "$ssl_dir/$domain.pem") echo "[$(date)] : answer=$answer" >> /usr/local/vesta/log/letsencrypt.log From 2f395f0a5e09c18ac3b75e364964b8ed40777da5 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 6 Apr 2023 09:06:03 +0200 Subject: [PATCH 573/984] Add staging --- bin/v-add-letsencrypt-domain | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bin/v-add-letsencrypt-domain b/bin/v-add-letsencrypt-domain index c37492b7..117d3eff 100755 --- a/bin/v-add-letsencrypt-domain +++ b/bin/v-add-letsencrypt-domain @@ -17,6 +17,10 @@ aliases=$3 # LE API API='https://acme-v02.api.letsencrypt.org' +if [[ "$LE_STAGING" = 'yes' ]]; then + LE_API='https://acme-staging-v02.api.letsencrypt.org' +fi + # Includes source $VESTA/func/main.sh source $VESTA/func/domain.sh From f50a785fffcfd1cdd1e8c94bf0af38207d24a763 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 6 Apr 2023 09:10:50 +0200 Subject: [PATCH 574/984] Changing user-agent in v-add-letsencrypt-domain --- bin/v-add-letsencrypt-domain | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bin/v-add-letsencrypt-domain b/bin/v-add-letsencrypt-domain index 117d3eff..305589e6 100755 --- a/bin/v-add-letsencrypt-domain +++ b/bin/v-add-letsencrypt-domain @@ -60,8 +60,8 @@ query_le_v2() { # Save http response to file passed as "$4" arg or print to stdout if not provided # http response headers are always sent to stdout local save_to_file=${4:-"/dev/stdout"} - curl --location --user-agent "MyVestaCP" --insecure --retry 5 --retry-connrefused --silent --dump-header /dev/stdout --data "$post_data" "$1" --header "$content" --output "$save_to_file" -} + curl --location --user-agent "myVesta" --insecure --retry 5 --retry-connrefused --silent --dump-header /dev/stdout --data "$post_data" "$1" --header "$content" --output "$save_to_file" + } @@ -127,7 +127,7 @@ fi # Requesting nonce / STEP 1 echo "[$(date)] : --- Requesting nonce / STEP 1 ---" >> /usr/local/vesta/log/letsencrypt.log echo "[$(date)] : curl -s -I \"$API/directory\"" >> /usr/local/vesta/log/letsencrypt.log -answer=$(curl -s -I "$API/directory") +answer=$(curl --user-agent "myVesta" -s -I "$API/directory") echo "[$(date)] : answer=$answer" >> /usr/local/vesta/log/letsencrypt.log nonce=$(echo "$answer" |grep -i nonce |cut -f2 -d \ |tr -d '\r\n') echo "[$(date)] : nonce=$nonce" >> /usr/local/vesta/log/letsencrypt.log @@ -294,7 +294,7 @@ for auth in $authz; do check_result $E_CONNECT "Let's Encrypt domain validation timeout" fi echo "[$(date)] : curl: $url2 :" >> /usr/local/vesta/log/letsencrypt.log - get_answer=$(curl --silent -S "$url2") + get_answer=$(curl --user-agent "myVesta" --silent -S "$url2") echo "[$(date)] : get_answer=$get_answer" >> /usr/local/vesta/log/letsencrypt.log sleeping=$((i*2)) echo "[$(date)] : sleep $sleeping (i=$i)" >> /usr/local/vesta/log/letsencrypt.log From a18ee316a220265faf5d0cb329fee2c5b6c13b92 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 6 Apr 2023 09:56:18 +0200 Subject: [PATCH 575/984] $LE_API to $API --- bin/v-add-letsencrypt-domain | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-add-letsencrypt-domain b/bin/v-add-letsencrypt-domain index 305589e6..457557f0 100755 --- a/bin/v-add-letsencrypt-domain +++ b/bin/v-add-letsencrypt-domain @@ -18,7 +18,7 @@ aliases=$3 API='https://acme-v02.api.letsencrypt.org' if [[ "$LE_STAGING" = 'yes' ]]; then - LE_API='https://acme-staging-v02.api.letsencrypt.org' + API='https://acme-staging-v02.api.letsencrypt.org' fi # Includes From 1056cd624bc8319e1bc51de674a7a9da50329bf1 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 6 Apr 2023 10:00:57 +0200 Subject: [PATCH 576/984] Adding LE_STAGING to v-add-letsencrypt-user --- bin/v-add-letsencrypt-user | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bin/v-add-letsencrypt-user b/bin/v-add-letsencrypt-user index 11aec113..9c7181c0 100755 --- a/bin/v-add-letsencrypt-user +++ b/bin/v-add-letsencrypt-user @@ -15,6 +15,10 @@ user=$1 # LE API API='https://acme-v02.api.letsencrypt.org' +if [[ "$LE_STAGING" = 'yes' ]]; then + API='https://acme-staging-v02.api.letsencrypt.org' +fi + # Includes source $VESTA/func/main.sh source $VESTA/conf/vesta.conf From fbf1d3390a97da4dfd2f0619644b3f0ad52e58ea Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 6 Apr 2023 10:24:54 +0200 Subject: [PATCH 577/984] Checking for $nonce before step 7, and check for $certificate after step 7 --- bin/v-add-letsencrypt-domain | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/bin/v-add-letsencrypt-domain b/bin/v-add-letsencrypt-domain index 457557f0..7a306ab3 100755 --- a/bin/v-add-letsencrypt-domain +++ b/bin/v-add-letsencrypt-domain @@ -329,6 +329,12 @@ if [[ "$status" -ne 200 ]]; then echo "[$(date)] : EXIT=Let's Encrypt finalize bad status $status" >> /usr/local/vesta/log/letsencrypt.log check_result $E_CONNECT "Let's Encrypt finalize bad status $status" fi + +if [ "$nonce" = "" ]; then + echo "[$(date)] : EXIT=Let's Encrypt 'nonce' is empty after step 6" >> /usr/local/vesta/log/letsencrypt.log + check_result $E_CONNECT "Let's Encrypt 'nonce' is empty after step 6" +fi + if [ "$certificate" = "" ]; then validation="processing" i=1 @@ -351,9 +357,10 @@ if [ "$certificate" = "" ]; then fi done fi -if [ "$nonce" = "" ]; then - echo "[$(date)] : EXIT=Let's Encrypt 'nonce' is empty on step 6" >> /usr/local/vesta/log/letsencrypt.log - check_result $E_CONNECT "Let's Encrypt 'nonce' is empty on step 6" + +if [ "$certificate" = "" ]; then + echo "[$(date)] : EXIT=Let's Encrypt 'certificate' is empty after step 7" >> /usr/local/vesta/log/letsencrypt.log + check_result $E_CONNECT "Let's Encrypt 'certificate' is empty after step 7" fi # Downloading signed certificate / STEP 8 From b21efb09b6ca5441f157597ae6ef146df95782c2 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 6 Apr 2023 10:28:44 +0200 Subject: [PATCH 578/984] Adding user-agent in v-add-letsencrypt-user --- bin/v-add-letsencrypt-user | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/v-add-letsencrypt-user b/bin/v-add-letsencrypt-user index 9c7181c0..d2338e82 100755 --- a/bin/v-add-letsencrypt-user +++ b/bin/v-add-letsencrypt-user @@ -45,7 +45,7 @@ query_le_v2() { post_data=$post_data'"payload":"'"$payload_"'",' post_data=$post_data'"signature":"'"$signature_"'"}' - curl -s -i -d "$post_data" "$1" -H "$content" + curl --user-agent "myVesta" -s -i -d "$post_data" "$1" -H "$content" } From 7a3fc4fcea84ab4c902936807d2bd36feb166f0b Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 6 Apr 2023 11:13:17 +0200 Subject: [PATCH 579/984] Update Changelog.md --- Changelog.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Changelog.md b/Changelog.md index 28f5cd6c..87f48b62 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,4 +1,8 @@ -Version 0.9.8-26-61 [05-Apr-2023] +Version 0.9.8-26-62 [05-Apr-2023] +================================================== +* Fix for LetsEncrypt Asynchronous Order Finalization (in collaboration with @HestiaCP ) + +Version 0.9.8-26-61 [04-Apr-2023] ================================================== * Many bugfixes * Hotfix for LetsEncrypt to prevent Apache falling From 0b7b8cef857ef9d335f59b98b907cf88d967f877 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 6 Apr 2023 11:14:44 +0200 Subject: [PATCH 580/984] Version 0.9.8-26-62 --- src/deb/latest.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/deb/latest.txt b/src/deb/latest.txt index 4ee18f6a..5e8393bb 100644 --- a/src/deb/latest.txt +++ b/src/deb/latest.txt @@ -1 +1 @@ -vesta-0.9.8-26-61 +vesta-0.9.8-26-62 From 863f3e2aa5f3b06bbf53eb465ca1834653cb8dec Mon Sep 17 00:00:00 2001 From: isscbta <53144593+isscbta@users.noreply.github.com> Date: Fri, 7 Apr 2023 13:40:23 +0200 Subject: [PATCH 581/984] Update README.md --- README.md | 87 ++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 77 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index c34d496b..6dfe1024 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,81 @@ -myVesta -================================================== -Visit our homepage: -- https://www.myvestacp.com/ +

myVesta

-Forum: -- https://forum.myvestacp.com/ +
+ +[![Screenshot of myVesta](https://www.myvestacp.com/screenshot1.png)](https://www.myvestacp.com/) + +
+ +

About

+ +

myVesta is a security and stability-focused fork of VestaCP, exclusively supporting Debian in order to maintain a streamlined ecosystem. Boasting a clean, clutter-free interface and the latest innovative technologies, our project is committed to staying synchronized with official VestaCP commits. We work independently to enhance security and develop new features, driven by our passion for contributing to the open-source community rather than monetary gain. As such, we will offer all features built for myVesta to the official VestaCP project through pull requests, without interfering with their development milestones.

+ +

Latest stable release: Version 1.7.0 | View Changelog +

+ +

Links

+ + +

Features of myVesta

+
    +
  • Support for Debian 10 and 11 (Debian 11 is recommended, but previous Debian releases are also supported)
  • +
  • Support for MySQL 8
  • +
  • nginx templates that can prevent denial-of-service on your server
  • +
  • Support for multi-PHP versions
  • +
  • You can host NodeJS apps
  • +
  • You can limit the maximum number of sent emails (per hour) per mail account and per hosting account, preventing hijacking of email accounts and preventing PHP malware scripts to send spam.
  • +
  • + You can completely "lock" myVesta so it can be accessed only via secret URL, for example https://serverhost:8083/?MY-SECRET-URL +
      +
    • During installation you will be asked to choose a secret URL for your hosting panel
    • +
    • Literally no PHP scripts will be alive on your hosting panel (won't be able to get executed), unless you access the hosting panel with secret URL parameter. Thus, when it happens that, let's say, some zero-day exploit pops up - attackers won't be able to access it without knowing your secret URL - PHP scripts from VestaCP will be simply dead - no one will be able to interact with your panel unless they have the secret URL.
    • +
    • You can see for yourself how this mechanism was built by looking at:
    • + +
    • If you didn't set the secret URL during installation, you can do it anytime. Just execute in shell: echo " /usr/local/vesta/web/inc/login_url.php
    • +
    +
  • +
  • We disabled dangerous PHP functions in php.ini, so even if, for example, your customer's CMS gets compromised, hacker will not be able to execute shell scripts from within PHP.
  • +
  • Apache is fully switched to mpm_event mode, while PHP is running in PHP-FPM mode, which is the most stable PHP-stack solution +
    • OPCache is turned on by default
    +
  • Auto-generating LetsEncrypt SSL for server hostname (signed SSL for Vesta 8083 port, for dovecot (IMAP & POP3) and for Exim (SMTP))
  • +
  • You can change Vesta port during installation or later using one command line: v-change-vesta-port [number]
  • +
  • ClamAV is configured to block zip/rar/7z archives that contains executable files (just like GMail)
  • +
  • Backup will run with lowest priority (to avoid load on server), and can be configured to run only by night (and to stop on the morning and continue next night)
  • +
      +
    • You can compile Vesta binaries by yourself - src/deb/vesta_compile.sh
    • +
    • You can even create your own APT repository in a minute
    • +
    • We are using latest nginx version for vesta-nginx package
    • +
    • With your own APT infrastructure you can take security of Vesta-installer infrastructure in your own hands. You will have full control of your Vesta code (this way you can rest assured that there's 0% chance that you'll install malicious packages from repositories that may get hacked)
    • +
    • Binaries that you compile are 100% compatible with official VestaCP from vestacp.com, so you can run official VestaCP code with your own binaries (in case you don't want the source code from this fork)
    • +
    + + +
+ +

How to install

+Download the installation script: + +```shell +curl -O http://c.myvestacp.com/vst-install-debian.sh +``` + +Then run it: + +```shell +bash vst-install-debian.sh +``` + +Or use our installer generator. + +

Licence

+myVesta is licensed under GPL v3 license. -Knowledge base: -- https://wiki.myvestacp.com/ -Changelog: -- https://github.com/myvesta/vesta/blob/master/Changelog.md From 5eabdd4784ca09356e865361b86ce6ac1ce8ca2f Mon Sep 17 00:00:00 2001 From: isscbta <53144593+isscbta@users.noreply.github.com> Date: Fri, 7 Apr 2023 13:41:06 +0200 Subject: [PATCH 582/984] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6dfe1024..55b6c2c8 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@

myVesta is a security and stability-focused fork of VestaCP, exclusively supporting Debian in order to maintain a streamlined ecosystem. Boasting a clean, clutter-free interface and the latest innovative technologies, our project is committed to staying synchronized with official VestaCP commits. We work independently to enhance security and develop new features, driven by our passion for contributing to the open-source community rather than monetary gain. As such, we will offer all features built for myVesta to the official VestaCP project through pull requests, without interfering with their development milestones.

-

Latest stable release: Version 1.7.0 | View Changelog +

Latest stable release: Version 0.9.8-26-62 | View Changelog

Links

From e86585568d4baefb50b81f25ed9d692ddb3522a4 Mon Sep 17 00:00:00 2001 From: isscbta <53144593+isscbta@users.noreply.github.com> Date: Fri, 7 Apr 2023 13:44:53 +0200 Subject: [PATCH 583/984] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 55b6c2c8..cc5d56d4 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@

myVesta is a security and stability-focused fork of VestaCP, exclusively supporting Debian in order to maintain a streamlined ecosystem. Boasting a clean, clutter-free interface and the latest innovative technologies, our project is committed to staying synchronized with official VestaCP commits. We work independently to enhance security and develop new features, driven by our passion for contributing to the open-source community rather than monetary gain. As such, we will offer all features built for myVesta to the official VestaCP project through pull requests, without interfering with their development milestones.

-

Latest stable release: Version 0.9.8-26-62 | View Changelog +

View Changelog

Links

From f0a82f02d3ca34f8a0e4d03a81e5bf414b0c9775 Mon Sep 17 00:00:00 2001 From: isscbta <53144593+isscbta@users.noreply.github.com> Date: Fri, 7 Apr 2023 13:50:02 +0200 Subject: [PATCH 584/984] Update README.md --- README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/README.md b/README.md index cc5d56d4..62207405 100644 --- a/README.md +++ b/README.md @@ -75,6 +75,20 @@ bash vst-install-debian.sh Or use our installer generator. +

UUseful scripts

+ + +

Licence

myVesta is licensed under GPL v3 license. From 0e16d8d59c8f9276a3bf3de9cd21ab7c2ec16ca9 Mon Sep 17 00:00:00 2001 From: isscbta <53144593+isscbta@users.noreply.github.com> Date: Fri, 7 Apr 2023 13:50:17 +0200 Subject: [PATCH 585/984] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 62207405..1848be5d 100644 --- a/README.md +++ b/README.md @@ -75,7 +75,7 @@ bash vst-install-debian.sh Or use our installer generator. -

UUseful scripts

+

Useful scripts

  • How to move accounts from one (my)Vesta server to another myVesta server
  • WordPress installer in one second
  • (v-install-wordpress) From 8dbfa3e2103790411c43084024db3fbd832ca06e Mon Sep 17 00:00:00 2001 From: isscbta <53144593+isscbta@users.noreply.github.com> Date: Fri, 7 Apr 2023 13:53:10 +0200 Subject: [PATCH 586/984] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1848be5d..44d414b8 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@
  • Literally no PHP scripts will be alive on your hosting panel (won't be able to get executed), unless you access the hosting panel with secret URL parameter. Thus, when it happens that, let's say, some zero-day exploit pops up - attackers won't be able to access it without knowing your secret URL - PHP scripts from VestaCP will be simply dead - no one will be able to interact with your panel unless they have the secret URL.
  • You can see for yourself how this mechanism was built by looking at:
  • If you didn't set the secret URL during installation, you can do it anytime. Just execute in shell: echo " /usr/local/vesta/web/inc/login_url.php
  • From e2fcade5bb91ab978d6ffb59574d632858386e8b Mon Sep 17 00:00:00 2001 From: isscbta <53144593+isscbta@users.noreply.github.com> Date: Sun, 9 Apr 2023 00:17:27 +0200 Subject: [PATCH 587/984] Update v-clone-website --- bin/v-clone-website | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bin/v-clone-website b/bin/v-clone-website index df98c6db..57749f74 100644 --- a/bin/v-clone-website +++ b/bin/v-clone-website @@ -434,6 +434,9 @@ else sudo -H -u$TO_USER wp search-replace "/home/$FROM_USER/" "/home/$TO_USER/" --precise --all-tables --skip-columns=guid fi sudo -H -u$TO_USER wp cache flush + cd $TO_FOLDER + sudo -H -u$TO_USER wp config shuffle-salts WP_CACHE_KEY_SALT --force + sudo -H -u$TO_USER wp config shuffle-salts fi echo "===== DONE ====" From 2fae00ae7dcce79657f54c3e8c057694a3451566 Mon Sep 17 00:00:00 2001 From: isscbta <53144593+isscbta@users.noreply.github.com> Date: Sun, 9 Apr 2023 00:22:04 +0200 Subject: [PATCH 588/984] Update v-clone-website --- bin/v-clone-website | 6 ------ 1 file changed, 6 deletions(-) diff --git a/bin/v-clone-website b/bin/v-clone-website index 57749f74..74de3271 100644 --- a/bin/v-clone-website +++ b/bin/v-clone-website @@ -420,12 +420,6 @@ if [ $IT_IS_WP -eq 0 ]; then fi else cd $TO_FOLDER - if [ -d "wp-content/plugins/w3-total-cache" ]; then - rm -f wp-content/object-cache.php - rm -f wp-content/db.php - rm -f wp-content/advanced-cache.php - rm -rf wp-content/w3tc-config - rm -rf wp-content/plugins/w3-total-cache fi echo "=== Replacing $FROM_DOMAIN to $TO_DOMAIN in database $TO_DATABASE_NAME" sudo -H -u$TO_USER wp search-replace "$FROM_DOMAIN" "$TO_DOMAIN" --precise --all-tables --skip-columns=guid From 706e365a5e031f9d6d90630954d03cfabc1f0489 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 9 Apr 2023 14:01:18 +0200 Subject: [PATCH 589/984] syntax fix --- bin/v-clone-website | 2 -- 1 file changed, 2 deletions(-) diff --git a/bin/v-clone-website b/bin/v-clone-website index 74de3271..46623db4 100644 --- a/bin/v-clone-website +++ b/bin/v-clone-website @@ -420,7 +420,6 @@ if [ $IT_IS_WP -eq 0 ]; then fi else cd $TO_FOLDER - fi echo "=== Replacing $FROM_DOMAIN to $TO_DOMAIN in database $TO_DATABASE_NAME" sudo -H -u$TO_USER wp search-replace "$FROM_DOMAIN" "$TO_DOMAIN" --precise --all-tables --skip-columns=guid if [ "$FROM_USER" != "$TO_USER" ]; then @@ -428,7 +427,6 @@ else sudo -H -u$TO_USER wp search-replace "/home/$FROM_USER/" "/home/$TO_USER/" --precise --all-tables --skip-columns=guid fi sudo -H -u$TO_USER wp cache flush - cd $TO_FOLDER sudo -H -u$TO_USER wp config shuffle-salts WP_CACHE_KEY_SALT --force sudo -H -u$TO_USER wp config shuffle-salts fi From 77467eeebddd6853c04f462be8117a24f3603c53 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Wed, 12 Apr 2023 19:58:32 +0200 Subject: [PATCH 590/984] exim4 HELO authenticated patch --- install/debian/10/exim/exim4.conf.template | 10 ++++++---- install/debian/11/exim/exim4.conf.template | 10 ++++++---- install/debian/11/exim/exim4.conf.template-RC | 10 ++++++---- install/debian/8/exim/exim4.conf.template | 10 ++++++---- install/debian/9/exim/exim4.conf.template | 10 ++++++---- .../tools/patches/exim_helo_authenticated.patch | 14 ++++++++++++++ 6 files changed, 44 insertions(+), 20 deletions(-) create mode 100644 src/deb/for-download/tools/patches/exim_helo_authenticated.patch diff --git a/install/debian/10/exim/exim4.conf.template b/install/debian/10/exim/exim4.conf.template index 70577b6e..0e5afaac 100644 --- a/install/debian/10/exim/exim4.conf.template +++ b/install/debian/10/exim/exim4.conf.template @@ -91,16 +91,18 @@ acl_check_mail: deny condition = ${if eq{$sender_helo_name}{}} message = HELO required before MAIL - drop message = Helo name contains a ip address (HELO was $sender_helo_name) and not is valid + drop !authenticated = * + message = Helo name contains a ip address (HELO was $sender_helo_name) and not is valid condition = ${if match{$sender_helo_name}{\N((\d{1,3}[.-]\d{1,3}[.-]\d{1,3}[.-]\d{1,3})|([0-9a-f]{8})|([0-9A-F]{8}))\N}{yes}{no}} - condition = ${if match{${lc:$sender_host_name}}{.telenor.rs}{false}{true}} condition = ${if match {${lookup dnsdb{>: defer_never,ptr=$sender_host_address}}\}{$sender_helo_name}{no}{yes}} delay = 45s - drop condition = ${if isip{$sender_helo_name}} + drop !authenticated = * + condition = ${if isip{$sender_helo_name}} message = Access denied - Invalid HELO name (See RFC2821 4.1.3) - drop condition = ${if eq{[$interface_address]}{$sender_helo_name}} + drop !authenticated = * + condition = ${if eq{[$interface_address]}{$sender_helo_name}} message = $interface_address is _my_ address accept diff --git a/install/debian/11/exim/exim4.conf.template b/install/debian/11/exim/exim4.conf.template index 4b3c0dd9..72e3f668 100644 --- a/install/debian/11/exim/exim4.conf.template +++ b/install/debian/11/exim/exim4.conf.template @@ -91,16 +91,18 @@ acl_check_mail: deny condition = ${if eq{$sender_helo_name}{}} message = HELO required before MAIL - drop message = Helo name contains a ip address (HELO was $sender_helo_name) and not is valid + drop !authenticated = * + message = Helo name contains a ip address (HELO was $sender_helo_name) and not is valid condition = ${if match{$sender_helo_name}{\N((\d{1,3}[.-]\d{1,3}[.-]\d{1,3}[.-]\d{1,3})|([0-9a-f]{8})|([0-9A-F]{8}))\N}{yes}{no}} - condition = ${if match{${lc:$sender_host_name}}{.telenor.rs}{false}{true}} condition = ${if match {${lookup dnsdb{>: defer_never,ptr=$sender_host_address}}\}{$sender_helo_name}{no}{yes}} delay = 45s - drop condition = ${if isip{$sender_helo_name}} + drop !authenticated = * + condition = ${if isip{$sender_helo_name}} message = Access denied - Invalid HELO name (See RFC2821 4.1.3) - drop condition = ${if eq{[$interface_address]}{$sender_helo_name}} + drop !authenticated = * + condition = ${if eq{[$interface_address]}{$sender_helo_name}} message = $interface_address is _my_ address accept diff --git a/install/debian/11/exim/exim4.conf.template-RC b/install/debian/11/exim/exim4.conf.template-RC index 36ba2a0d..e5ba36ab 100644 --- a/install/debian/11/exim/exim4.conf.template-RC +++ b/install/debian/11/exim/exim4.conf.template-RC @@ -108,16 +108,18 @@ acl_check_mail: deny condition = ${if eq{$sender_helo_name}{}} message = HELO required before MAIL - drop message = Helo name contains a ip address (HELO was $sender_helo_name) and not is valid + drop !authenticated = * + message = Helo name contains a ip address (HELO was $sender_helo_name) and not is valid condition = ${if match{$sender_helo_name}{\N((\d{1,3}[.-]\d{1,3}[.-]\d{1,3}[.-]\d{1,3})|([0-9a-f]{8})|([0-9A-F]{8}))\N}{yes}{no}} - condition = ${if match{${lc:$sender_host_name}}{.telenor.rs}{false}{true}} condition = ${if match {${lookup dnsdb{>: defer_never,ptr=$sender_host_address}}\}{$sender_helo_name}{no}{yes}} delay = 45s - drop condition = ${if isip{$sender_helo_name}} + drop !authenticated = * + condition = ${if isip{$sender_helo_name}} message = Access denied - Invalid HELO name (See RFC2821 4.1.3) - drop condition = ${if eq{[$interface_address]}{$sender_helo_name}} + drop !authenticated = * + condition = ${if eq{[$interface_address]}{$sender_helo_name}} message = $interface_address is _my_ address accept diff --git a/install/debian/8/exim/exim4.conf.template b/install/debian/8/exim/exim4.conf.template index e49bbf4e..261947d2 100644 --- a/install/debian/8/exim/exim4.conf.template +++ b/install/debian/8/exim/exim4.conf.template @@ -87,16 +87,18 @@ acl_check_mail: deny condition = ${if eq{$sender_helo_name}{}} message = HELO required before MAIL - drop message = Helo name contains a ip address (HELO was $sender_helo_name) and not is valid + drop !authenticated = * + message = Helo name contains a ip address (HELO was $sender_helo_name) and not is valid condition = ${if match{$sender_helo_name}{\N((\d{1,3}[.-]\d{1,3}[.-]\d{1,3}[.-]\d{1,3})|([0-9a-f]{8})|([0-9A-F]{8}))\N}{yes}{no}} - condition = ${if match{${lc:$sender_host_name}}{.telenor.rs}{false}{true}} condition = ${if match {${lookup dnsdb{>: defer_never,ptr=$sender_host_address}}\}{$sender_helo_name}{no}{yes}} delay = 45s - drop condition = ${if isip{$sender_helo_name}} + drop !authenticated = * + condition = ${if isip{$sender_helo_name}} message = Access denied - Invalid HELO name (See RFC2821 4.1.3) - drop condition = ${if eq{[$interface_address]}{$sender_helo_name}} + drop !authenticated = * + condition = ${if eq{[$interface_address]}{$sender_helo_name}} message = $interface_address is _my_ address accept diff --git a/install/debian/9/exim/exim4.conf.template b/install/debian/9/exim/exim4.conf.template index e49bbf4e..261947d2 100644 --- a/install/debian/9/exim/exim4.conf.template +++ b/install/debian/9/exim/exim4.conf.template @@ -87,16 +87,18 @@ acl_check_mail: deny condition = ${if eq{$sender_helo_name}{}} message = HELO required before MAIL - drop message = Helo name contains a ip address (HELO was $sender_helo_name) and not is valid + drop !authenticated = * + message = Helo name contains a ip address (HELO was $sender_helo_name) and not is valid condition = ${if match{$sender_helo_name}{\N((\d{1,3}[.-]\d{1,3}[.-]\d{1,3}[.-]\d{1,3})|([0-9a-f]{8})|([0-9A-F]{8}))\N}{yes}{no}} - condition = ${if match{${lc:$sender_host_name}}{.telenor.rs}{false}{true}} condition = ${if match {${lookup dnsdb{>: defer_never,ptr=$sender_host_address}}\}{$sender_helo_name}{no}{yes}} delay = 45s - drop condition = ${if isip{$sender_helo_name}} + drop !authenticated = * + condition = ${if isip{$sender_helo_name}} message = Access denied - Invalid HELO name (See RFC2821 4.1.3) - drop condition = ${if eq{[$interface_address]}{$sender_helo_name}} + drop !authenticated = * + condition = ${if eq{[$interface_address]}{$sender_helo_name}} message = $interface_address is _my_ address accept diff --git a/src/deb/for-download/tools/patches/exim_helo_authenticated.patch b/src/deb/for-download/tools/patches/exim_helo_authenticated.patch new file mode 100644 index 00000000..9dd8dbad --- /dev/null +++ b/src/deb/for-download/tools/patches/exim_helo_authenticated.patch @@ -0,0 +1,14 @@ +--- /etc/exim4/exim4.conf.template.orig 2023-04-12 19:05:20.745847763 +0200 ++++ /etc/exim4/exim4.conf.template 2023-04-12 19:34:29.000000000 +0200 +@@ -94 +94,2 @@ +- drop message = Helo name contains a ip address (HELO was $sender_helo_name) and not is valid ++ drop !authenticated = * ++ message = Helo name contains a ip address (HELO was $sender_helo_name) and not is valid +@@ -100 +101,2 @@ +- drop condition = ${if isip{$sender_helo_name}} ++ drop !authenticated = * ++ condition = ${if isip{$sender_helo_name}} +@@ -103 +105,2 @@ +- drop condition = ${if eq{[$interface_address]}{$sender_helo_name}} ++ drop !authenticated = * ++ condition = ${if eq{[$interface_address]}{$sender_helo_name}} From 4dd6d22f077370e88ff049fc7ee9aab487008efb Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 14 Apr 2023 15:39:33 +0200 Subject: [PATCH 591/984] myvesta-php-func support for stdin --- bin/v-php-func | 9 +++ func/bash-to-php-interpreter.php | 8 +++ func/main.php | 2 + func/string.php | 113 +++++++++++++++++++++++++++++-- 4 files changed, 126 insertions(+), 6 deletions(-) diff --git a/bin/v-php-func b/bin/v-php-func index f6192c33..f7a73385 100644 --- a/bin/v-php-func +++ b/bin/v-php-func @@ -8,5 +8,14 @@ # Action # #----------------------------------------------------------# + +if [ -p /dev/stdin ]; then + STDIN=$(cat -) + if [ ! -z "$STDIN" ]; then + echo "$STDIN" | php /usr/local/vesta/func/bash-to-php-interpreter.php "$@" + exit $? + fi +fi + php /usr/local/vesta/func/bash-to-php-interpreter.php "$@" exit $? diff --git a/func/bash-to-php-interpreter.php b/func/bash-to-php-interpreter.php index 13995e1c..e780d41c 100644 --- a/func/bash-to-php-interpreter.php +++ b/func/bash-to-php-interpreter.php @@ -7,6 +7,14 @@ else $SHLVL=3; if (!isset($argv)) exit(5); +stream_set_blocking(STDIN, false); +$myvesta_stdin=''; +$myvesta_f = fopen( 'php://stdin', 'r' ); +while( $myvesta_line = fgets( $myvesta_f ) ) { + $myvesta_stdin .= $myvesta_line; +} +fclose( $myvesta_f ); + include ("/usr/local/vesta/func/main.php"); include ("/usr/local/vesta/func/string.php"); diff --git a/func/main.php b/func/main.php index fcc96610..03a501a1 100644 --- a/func/main.php +++ b/func/main.php @@ -71,7 +71,9 @@ function myvesta_fix_args() { } function myvesta_test_func () { + global $myvesta_stdin; $args=func_get_args(); + if ($myvesta_stdin!='') array_splice( $args, 0, 0, array($myvesta_stdin) ); myvesta_echo ("You said: "); myvesta_echo (trim(print_r ($args, true))); } diff --git a/func/string.php b/func/string.php index 2b6a63d9..a38e068e 100644 --- a/func/string.php +++ b/func/string.php @@ -70,8 +70,23 @@ function myvesta_strip_in_file_between_including_borders($file, $left, $right) { // --- string functions --- -function myvesta_str_get_between (&$text, $left_substring, $right_substring, $start=0, $return_left_substring=0, $return_right_substring=0, $left_substring_necessary=1, $right_substring_necessary=1) { - global $myvesta_str_found_at, $myvesta_str_end_at; +function myvesta_str_get_between () { + global $myvesta_stdin, $myvesta_str_found_at, $myvesta_str_end_at; + $args=func_get_args(); + $args_i=-1; + if ($myvesta_stdin!='') { + $text=$myvesta_stdin; + } else { + $args_i++; $text=$args[$args_i]; + } + $args_i++; $left_substring=$args[$args_i]; + $args_i++; $right_substring=$args[$args_i]; + $args_i++; $start=0; if (!empty($args[$args_i])) $start=intval($args[$args_i]); + $args_i++; $return_left_substring=0; if (!empty($args[$args_i])) $return_left_substring=intval($args[$args_i]); + $args_i++; $return_right_substring=0; if (!empty($args[$args_i])) $return_right_substring=intval($args[$args_i]); + $args_i++; $left_substring_necessary=1; if (!empty($args[$args_i])) $left_substring_necessary=intval($args[$args_i]); + $args_i++; $right_substring_necessary=1; if (!empty($args[$args_i])) $right_substring_necessary=intval($args[$args_i]); + $myvesta_str_found_at=0; $myvesta_str_end_at=0; $from_null=0; @@ -105,7 +120,19 @@ function myvesta_str_get_between (&$text, $left_substring, $right_substring, $st return substr($text, $pos1, $len); } -function myvesta_str_replace_once_between_including_borders(&$text, $left, $right, $replace_with) { +function myvesta_str_replace_once_between_including_borders() { + global $myvesta_stdin; + $args=func_get_args(); + $args_i=-1; + if ($myvesta_stdin!='') { + $text=$myvesta_stdin; + } else { + $args_i++; $text=$args[$args_i]; + } + $args_i++; $left=$args[$args_i]; + $args_i++; $right=$args[$args_i]; + $args_i++; $replace_with=$args[$args_i]; + $pos1=strpos($text, $left); if ($pos1===false) return $text; $pos2=strpos($text, $right, $pos1+strlen($left)); @@ -113,7 +140,18 @@ function myvesta_str_replace_once_between_including_borders(&$text, $left, $righ return substr($text, 0, $pos1).$replace_with.substr($text, $pos2+strlen($right)); } -function myvesta_str_strip_once_between_including_borders(&$text, $left, $right) { +function myvesta_str_strip_once_between_including_borders() { + global $myvesta_stdin; + $args=func_get_args(); + $args_i=-1; + if ($myvesta_stdin!='') { + $text=$myvesta_stdin; + } else { + $args_i++; $text=$args[$args_i]; + } + $args_i++; $left=$args[$args_i]; + $args_i++; $right=$args[$args_i]; + $pos1=strpos($text, $left); if ($pos1===false) return $text; $pos2=strpos($text, $right, $pos1+strlen($left)); @@ -121,7 +159,19 @@ function myvesta_str_strip_once_between_including_borders(&$text, $left, $right) return substr($text, 0, $pos1).substr($text, $pos2+strlen($right)); } -function myvesta_str_replace_between_including_borders($text, $left, $right, $replace_with) { +function myvesta_str_replace_between_including_borders() { + global $myvesta_stdin; + $args=func_get_args(); + $args_i=-1; + if ($myvesta_stdin!='') { + $text=$myvesta_stdin; + } else { + $args_i++; $text=$args[$args_i]; + } + $args_i++; $left=$args[$args_i]; + $args_i++; $right=$args[$args_i]; + $args_i++; $replace_with=$args[$args_i]; + $start=0; $left_len=strlen($left); $right_len=strlen($right); @@ -135,7 +185,18 @@ function myvesta_str_replace_between_including_borders($text, $left, $right, $re return $text; } -function myvesta_str_strip_between_including_borders($text, $left, $right) { +function myvesta_str_strip_between_including_borders() { + global $myvesta_stdin; + $args=func_get_args(); + $args_i=-1; + if ($myvesta_stdin!='') { + $text=$myvesta_stdin; + } else { + $args_i++; $text=$args[$args_i]; + } + $args_i++; $left=$args[$args_i]; + $args_i++; $right=$args[$args_i]; + $left_len=strlen($left); $right_len=strlen($right); while (true) { @@ -147,3 +208,43 @@ function myvesta_str_strip_between_including_borders($text, $left, $right) { } return $text; } + +function myvesta_str_find() { + global $myvesta_stdin; + $args=func_get_args(); + $args_i=-1; + if ($myvesta_stdin!='') { + $text=$myvesta_stdin; + } else { + $args_i++; $text=$args[$args_i]; + } + $args_i++; $find=$args[$args_i]; + + $pos=strpos($text, $find); + if ($pos===false) return myvesta_throw_error (MYVESTA_ERROR_STRING_NOT_FOUND, ""); + return $pos; +} + +function myvesta_str_uppercase() { + global $myvesta_stdin; + $args=func_get_args(); + $args_i=-1; + if ($myvesta_stdin!='') { + $text=$myvesta_stdin; + } else { + $args_i++; $text=$args[$args_i]; + } + return strtoupper($text); +} + +function myvesta_str_lowercase() { + global $myvesta_stdin; + $args=func_get_args(); + $args_i=-1; + if ($myvesta_stdin!='') { + $text=$myvesta_stdin; + } else { + $args_i++; $text=$args[$args_i]; + } + return strtolower($text); +} From 452f8a81d94380d02f163d110ab3ba4f2c22ea24 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 14 Apr 2023 16:21:00 +0200 Subject: [PATCH 592/984] php myvesta_str_substring --- func/string.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/func/string.php b/func/string.php index a38e068e..9e531fb8 100644 --- a/func/string.php +++ b/func/string.php @@ -248,3 +248,19 @@ function myvesta_str_lowercase() { } return strtolower($text); } + +function myvesta_str_substring() { + global $myvesta_stdin; + $args=func_get_args(); + $args_i=-1; + if ($myvesta_stdin!='') { + $text=$myvesta_stdin; + } else { + $args_i++; $text=$args[$args_i]; + } + $args_i++; $start=$args[$args_i]; + $args_i++; $length=null; if (!empty($args[$args_i])) $length=intval($args[$args_i]); + + if ($length===null) return substr($text, $start); + if ($length!==null) return substr($text, $start, $length); +} From c5144bcbae09a3e332ce934127800b85cc1526df Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 14 Apr 2023 16:47:42 +0200 Subject: [PATCH 593/984] v-php-func str_find quiet --- func/string.php | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/func/string.php b/func/string.php index 9e531fb8..ffc7bf68 100644 --- a/func/string.php +++ b/func/string.php @@ -2,14 +2,18 @@ // --- file functions --- -function myvesta_find_in_file($file, $find) { - if (!file_exists($file)) return myvesta_throw_error (MYVESTA_ERROR_FILE_DOES_NOT_EXISTS, "File '$file' not found"); - +function myvesta_find_in_file($file, $find, $quiet=false) { + if (!file_exists($file)) { + if ($quiet) return false; + return myvesta_throw_error (MYVESTA_ERROR_FILE_DOES_NOT_EXISTS, "File '$file' not found"); + } + $buf=file_get_contents($file); $pos=strpos($buf, $find); + if ($pos===false) return myvesta_throw_error (MYVESTA_ERROR_STRING_NOT_FOUND, ""); - + if ($quiet) return true; return $pos; } @@ -219,9 +223,11 @@ function myvesta_str_find() { $args_i++; $text=$args[$args_i]; } $args_i++; $find=$args[$args_i]; + $args_i++; $quiet=false; if (!empty($args[$args_i])) $quiet=boolval($args[$args_i]); $pos=strpos($text, $find); if ($pos===false) return myvesta_throw_error (MYVESTA_ERROR_STRING_NOT_FOUND, ""); + if ($quiet) return true; return $pos; } From 2f371245455db8e982ddf853c37c820d6b447d54 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Fri, 14 Apr 2023 19:01:07 +0200 Subject: [PATCH 594/984] simplifying php str functions --- func/bash-to-php-interpreter.php | 1 + func/string.php | 110 ++++--------------------------- 2 files changed, 12 insertions(+), 99 deletions(-) diff --git a/func/bash-to-php-interpreter.php b/func/bash-to-php-interpreter.php index e780d41c..461c1af0 100644 --- a/func/bash-to-php-interpreter.php +++ b/func/bash-to-php-interpreter.php @@ -29,6 +29,7 @@ if (!function_exists($func)) { $params=array(); +if ($myvesta_stdin!='') $params[]=$myvesta_stdin; for ($i=2; $i<$counter; $i++) { $argv[$i]=myvesta_fix_backslashes($argv[$i]); $params[]=$argv[$i]; diff --git a/func/string.php b/func/string.php index ffc7bf68..69881c8f 100644 --- a/func/string.php +++ b/func/string.php @@ -7,7 +7,7 @@ function myvesta_find_in_file($file, $find, $quiet=false) { if ($quiet) return false; return myvesta_throw_error (MYVESTA_ERROR_FILE_DOES_NOT_EXISTS, "File '$file' not found"); } - + $buf=file_get_contents($file); $pos=strpos($buf, $find); @@ -74,23 +74,8 @@ function myvesta_strip_in_file_between_including_borders($file, $left, $right) { // --- string functions --- -function myvesta_str_get_between () { - global $myvesta_stdin, $myvesta_str_found_at, $myvesta_str_end_at; - $args=func_get_args(); - $args_i=-1; - if ($myvesta_stdin!='') { - $text=$myvesta_stdin; - } else { - $args_i++; $text=$args[$args_i]; - } - $args_i++; $left_substring=$args[$args_i]; - $args_i++; $right_substring=$args[$args_i]; - $args_i++; $start=0; if (!empty($args[$args_i])) $start=intval($args[$args_i]); - $args_i++; $return_left_substring=0; if (!empty($args[$args_i])) $return_left_substring=intval($args[$args_i]); - $args_i++; $return_right_substring=0; if (!empty($args[$args_i])) $return_right_substring=intval($args[$args_i]); - $args_i++; $left_substring_necessary=1; if (!empty($args[$args_i])) $left_substring_necessary=intval($args[$args_i]); - $args_i++; $right_substring_necessary=1; if (!empty($args[$args_i])) $right_substring_necessary=intval($args[$args_i]); - +function myvesta_str_get_between (&$text, $left_substring, $right_substring, $start=0, $return_left_substring=0, $return_right_substring=0, $left_substring_necessary=1, $right_substring_necessary=1) { + global $myvesta_str_found_at, $myvesta_str_end_at; $myvesta_str_found_at=0; $myvesta_str_end_at=0; $from_null=0; @@ -124,19 +109,7 @@ function myvesta_str_get_between () { return substr($text, $pos1, $len); } -function myvesta_str_replace_once_between_including_borders() { - global $myvesta_stdin; - $args=func_get_args(); - $args_i=-1; - if ($myvesta_stdin!='') { - $text=$myvesta_stdin; - } else { - $args_i++; $text=$args[$args_i]; - } - $args_i++; $left=$args[$args_i]; - $args_i++; $right=$args[$args_i]; - $args_i++; $replace_with=$args[$args_i]; - +function myvesta_str_replace_once_between_including_borders(&$text, $left, $right, $replace_with) { $pos1=strpos($text, $left); if ($pos1===false) return $text; $pos2=strpos($text, $right, $pos1+strlen($left)); @@ -144,18 +117,7 @@ function myvesta_str_replace_once_between_including_borders() { return substr($text, 0, $pos1).$replace_with.substr($text, $pos2+strlen($right)); } -function myvesta_str_strip_once_between_including_borders() { - global $myvesta_stdin; - $args=func_get_args(); - $args_i=-1; - if ($myvesta_stdin!='') { - $text=$myvesta_stdin; - } else { - $args_i++; $text=$args[$args_i]; - } - $args_i++; $left=$args[$args_i]; - $args_i++; $right=$args[$args_i]; - +function myvesta_str_strip_once_between_including_borders(&$text, $left, $right) { $pos1=strpos($text, $left); if ($pos1===false) return $text; $pos2=strpos($text, $right, $pos1+strlen($left)); @@ -163,19 +125,7 @@ function myvesta_str_strip_once_between_including_borders() { return substr($text, 0, $pos1).substr($text, $pos2+strlen($right)); } -function myvesta_str_replace_between_including_borders() { - global $myvesta_stdin; - $args=func_get_args(); - $args_i=-1; - if ($myvesta_stdin!='') { - $text=$myvesta_stdin; - } else { - $args_i++; $text=$args[$args_i]; - } - $args_i++; $left=$args[$args_i]; - $args_i++; $right=$args[$args_i]; - $args_i++; $replace_with=$args[$args_i]; - +function myvesta_str_replace_between_including_borders($text, $left, $right, $replace_with) { $start=0; $left_len=strlen($left); $right_len=strlen($right); @@ -189,7 +139,7 @@ function myvesta_str_replace_between_including_borders() { return $text; } -function myvesta_str_strip_between_including_borders() { +function myvesta_str_strip_between_including_borders($text, $left, $right) { global $myvesta_stdin; $args=func_get_args(); $args_i=-1; @@ -213,60 +163,22 @@ function myvesta_str_strip_between_including_borders() { return $text; } -function myvesta_str_find() { - global $myvesta_stdin; - $args=func_get_args(); - $args_i=-1; - if ($myvesta_stdin!='') { - $text=$myvesta_stdin; - } else { - $args_i++; $text=$args[$args_i]; - } - $args_i++; $find=$args[$args_i]; - $args_i++; $quiet=false; if (!empty($args[$args_i])) $quiet=boolval($args[$args_i]); - +function myvesta_str_find($text, $find, $quiet=false) { $pos=strpos($text, $find); if ($pos===false) return myvesta_throw_error (MYVESTA_ERROR_STRING_NOT_FOUND, ""); if ($quiet) return true; return $pos; } -function myvesta_str_uppercase() { - global $myvesta_stdin; - $args=func_get_args(); - $args_i=-1; - if ($myvesta_stdin!='') { - $text=$myvesta_stdin; - } else { - $args_i++; $text=$args[$args_i]; - } +function myvesta_str_uppercase($text) { return strtoupper($text); } -function myvesta_str_lowercase() { - global $myvesta_stdin; - $args=func_get_args(); - $args_i=-1; - if ($myvesta_stdin!='') { - $text=$myvesta_stdin; - } else { - $args_i++; $text=$args[$args_i]; - } +function myvesta_str_lowercase($text) { return strtolower($text); } -function myvesta_str_substring() { - global $myvesta_stdin; - $args=func_get_args(); - $args_i=-1; - if ($myvesta_stdin!='') { - $text=$myvesta_stdin; - } else { - $args_i++; $text=$args[$args_i]; - } - $args_i++; $start=$args[$args_i]; - $args_i++; $length=null; if (!empty($args[$args_i])) $length=intval($args[$args_i]); - +function myvesta_str_substring($text, $start, $length=null) { if ($length===null) return substr($text, $start); if ($length!==null) return substr($text, $start, $length); } From 888db2bc72a9951b53051ab32ac25a6eb7341ca8 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 15 Apr 2023 15:50:27 +0200 Subject: [PATCH 595/984] myvesta php replacement for gnu 'grep' (but without regular expression) --- bin/v-php-func | 2 +- func/bash-to-php-interpreter.php | 27 ++++++++++- func/main.php | 83 ++++++++++++++++++++++++++++++-- func/string.php | 34 +++++++++++++ 4 files changed, 140 insertions(+), 6 deletions(-) diff --git a/bin/v-php-func b/bin/v-php-func index f7a73385..0c789863 100644 --- a/bin/v-php-func +++ b/bin/v-php-func @@ -2,7 +2,7 @@ # info: calling myVesta PHP functions # options: FUNCTION # -# The function is calling myVesta PHP functions. +# The function is calling myVesta or standard PHP functions directly from bash #----------------------------------------------------------# # Action # diff --git a/func/bash-to-php-interpreter.php b/func/bash-to-php-interpreter.php index 461c1af0..baf9475e 100644 --- a/func/bash-to-php-interpreter.php +++ b/func/bash-to-php-interpreter.php @@ -11,7 +11,7 @@ stream_set_blocking(STDIN, false); $myvesta_stdin=''; $myvesta_f = fopen( 'php://stdin', 'r' ); while( $myvesta_line = fgets( $myvesta_f ) ) { - $myvesta_stdin .= $myvesta_line; + $myvesta_stdin .= $myvesta_line; } fclose( $myvesta_f ); @@ -27,13 +27,36 @@ if (!function_exists($func)) { if (!function_exists($func)) myvesta_throw_error(2, 'Function does not exists'); } +$insert_stdin_at_position=false; +if ($func=="myvesta_grep") $insert_stdin_at_position=1; + $params=array(); -if ($myvesta_stdin!='') $params[]=$myvesta_stdin; +$added=0; +$stdin_content=''; + $myvesta_stdin_return_not_found=false; +if ($myvesta_stdin!='' && $insert_stdin_at_position===false) {$params[]=$myvesta_stdin; $added++;} + for ($i=2; $i<$counter; $i++) { $argv[$i]=myvesta_fix_backslashes($argv[$i]); + if ($insert_stdin_at_position!==false && $myvesta_stdin=='') if ($insert_stdin_at_position==$added) {$stdin_content=$argv[$i]; $added++; continue;} $params[]=$argv[$i]; + $added++; } +if ($insert_stdin_at_position!=false) { + if ($myvesta_stdin=='') { + $file_or_stdin=$stdin_content; + if (!file_exists($file_or_stdin)) { + $myvesta_stdin_return_not_found=true; + $myvesta_stdin=''; + } else { + $myvesta_stdin=file_get_contents($file_or_stdin); + } + } + if (isset($params[$insert_stdin_at_position])) array_splice($params, $insert_stdin_at_position, 0, array($myvesta_stdin)); + else $params[$insert_stdin_at_position]=$myvesta_stdin; +} +//print_r($params); exit; $r=call_user_func_array($func, $params); if (is_bool($r)) { diff --git a/func/main.php b/func/main.php index 03a501a1..650f52ef 100644 --- a/func/main.php +++ b/func/main.php @@ -14,9 +14,88 @@ function myvesta_echo($str) { echo $str; } -function myvesta_exit($code) { +function myvesta_exit($code, $echo='') { global $SHLVL, $myvesta_echo_done, $myvesta_last_echo; // myvesta_echo ("==================== ".$argv[0].": ".$code." ====================\n"); + if ($echo!='') myvesta_echo($echo); + if ($SHLVL<3 && $myvesta_echo_done==true) { + $last_char=substr($myvesta_last_echo, -1, 1); + if ($last_char!="\n") echo "\n"; + } + exit($code); +} + +$myvesta_current_user=exec('whoami', $myvesta_output, $myvesta_return_var); +if ($myvesta_current_user != 'root') {myvesta_echo ("ERROR: You must be root to execute this script"); myvesta_exit(1);} + +function myvesta_throw_error($code, $message) { + global $myvesta_exit_on_error; + if ($message!=='') myvesta_echo ("ERROR: ".$message); + if ($myvesta_exit_on_error) myvesta_exit($code); + return $code; +} + +function myvesta_fix_backslashes($s) { + $s=str_replace("\\n", "\n", $s); + $s=str_replace("\\r", "\r", $s); + $s=str_replace("\\t", "\t", $s); + return $s; +} + +function myvesta_check_args ($requried_arguments, $arguments) { + global $argv; + $argument_counter=count($argv); + $argument_counter--; + $argv[0]=str_replace('/usr/local/vesta/bin/', '', $argv[0]); + // myvesta_echo ( "-------------------- ".$argv[0]." --------------------\n"); + if ($argument_counter<$requried_arguments) { + $arguments=str_replace(" ", "' '", $arguments); + $arguments="'".$arguments."'"; + return myvesta_throw_error(MYVESTA_ERROR_MISSING_ARGUMENTS, "Usage: $command $arguments"); + } + $argument_arr=explode(" ", $arguments); + $i=1; + foreach ($argument_arr as $argument) { + $GLOBALS[$argument]=myvesta_fix_backslashes($argv[$i]); + $i++; + } +} + +function myvesta_fix_args() { + global $argv; + $i=0; + foreach ($argv as $argument) { + if ($i==0) {$i++; continue;} + $argv[$i]=myvesta_fix_backslashes($argv[$i]); + $i++; + } +} + +function myvesta_test_func () { + $args=func_get_args(); + myvesta_echo ("You said: "); + myvesta_echo (trim(print_r ($args, true))); +} + Date: Sat, 15 Apr 2023 15:53:21 +0200 Subject: [PATCH 596/984] correction for main.php --- func/main.php | 78 --------------------------------------------------- 1 file changed, 78 deletions(-) diff --git a/func/main.php b/func/main.php index 650f52ef..b521ea2e 100644 --- a/func/main.php +++ b/func/main.php @@ -76,81 +76,3 @@ function myvesta_test_func () { myvesta_echo ("You said: "); myvesta_echo (trim(print_r ($args, true))); } - Date: Sat, 15 Apr 2023 16:38:53 +0200 Subject: [PATCH 597/984] myvesta php replacement for gnu 'sed' (but without regular expression) --- func/bash-to-php-interpreter.php | 3 +++ func/main.php | 20 ++++++++++++-------- func/string.php | 26 +++++++++++++++++++++++--- 3 files changed, 38 insertions(+), 11 deletions(-) diff --git a/func/bash-to-php-interpreter.php b/func/bash-to-php-interpreter.php index baf9475e..09c9c499 100644 --- a/func/bash-to-php-interpreter.php +++ b/func/bash-to-php-interpreter.php @@ -29,11 +29,13 @@ if (!function_exists($func)) { $insert_stdin_at_position=false; if ($func=="myvesta_grep") $insert_stdin_at_position=1; +if ($func=="myvesta_sed") $insert_stdin_at_position=2; $params=array(); $added=0; $stdin_content=''; +$myvesta_stdin_from_file=''; $myvesta_stdin_return_not_found=false; if ($myvesta_stdin!='' && $insert_stdin_at_position===false) {$params[]=$myvesta_stdin; $added++;} @@ -51,6 +53,7 @@ if ($insert_stdin_at_position!=false) { $myvesta_stdin=''; } else { $myvesta_stdin=file_get_contents($file_or_stdin); + $myvesta_stdin_from_file=$file_or_stdin; } } if (isset($params[$insert_stdin_at_position])) array_splice($params, $insert_stdin_at_position, 0, array($myvesta_stdin)); diff --git a/func/main.php b/func/main.php index b521ea2e..967fb8fb 100644 --- a/func/main.php +++ b/func/main.php @@ -1,6 +1,7 @@ Date: Sat, 15 Apr 2023 18:51:15 +0200 Subject: [PATCH 598/984] MYVESTA_QUIET as export variable --- func/main.php | 2 ++ func/string.php | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/func/main.php b/func/main.php index 967fb8fb..22834d42 100644 --- a/func/main.php +++ b/func/main.php @@ -2,6 +2,8 @@ $myvesta_exit_on_error=true; $myvesta_quiet_mode=0; +if (isset($_SERVER['MYVESTA_QUIET'])) $myvesta_quiet_mode=intval($_SERVER['MYVESTA_QUIET']); + define('MYVESTA_ERROR_PERMISSION_DENIED', 1); define('MYVESTA_ERROR_MISSING_ARGUMENTS', 2); define('MYVESTA_ERROR_FILE_DOES_NOT_EXISTS', 3); diff --git a/func/string.php b/func/string.php index e4ba2a5f..371c643c 100644 --- a/func/string.php +++ b/func/string.php @@ -81,8 +81,8 @@ function myvesta_grep($find, $file_or_stdin, $count=0, $quiet=0) { $myvesta_quiet_mode=$quiet; //echo "find = " . $find."\n"; echo "file_or_stdin = " . $file_or_stdin."\n"; echo "count = " . $count."\n"; echo "quiet = " . $quiet."\n"; exit; if ($myvesta_stdin_return_not_found==true) { - if ($count==1) return myvesta_throw_error (MYVESTA_ERROR_STRING_NOT_FOUND, "0"); - return myvesta_throw_error (MYVESTA_ERROR_STRING_NOT_FOUND, ""); + if ($count==1) return myvesta_throw_error (MYVESTA_ERROR_FILE_DOES_NOT_EXISTS, "0"); + return myvesta_throw_error (MYVESTA_ERROR_FILE_DOES_NOT_EXISTS, ""); } $arr=explode("\n", $file_or_stdin); @@ -111,7 +111,7 @@ function myvesta_sed($find, $replace, $file_or_stdin) { global $myvesta_stdin, $myvesta_stdin_return_not_found, $myvesta_stdin_from_file; //echo "find = " . $find."\n"; echo "replace = " . $replace."\n"; echo "file_or_stdin = " . $file_or_stdin."\n"; echo "stdin_from_file = " . $myvesta_stdin_from_file."\n"; exit; if ($myvesta_stdin_return_not_found==true) { - return myvesta_throw_error (MYVESTA_ERROR_STRING_NOT_FOUND, "File not found"); + return myvesta_throw_error (MYVESTA_ERROR_FILE_DOES_NOT_EXISTS, "File not found"); } if (strpos($file_or_stdin, $find)===false) return myvesta_throw_error (MYVESTA_ERROR_STRING_NOT_FOUND, "String '$find' not found"); From 502acb44c01a21fe4435d93ed59e1fe605441ac9 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 15 Apr 2023 19:03:11 +0200 Subject: [PATCH 599/984] v-grep and v-sed --- bin/v-grep | 21 +++++++++++++++++++++ bin/v-sed | 21 +++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 bin/v-grep create mode 100644 bin/v-sed diff --git a/bin/v-grep b/bin/v-grep new file mode 100644 index 00000000..3e467129 --- /dev/null +++ b/bin/v-grep @@ -0,0 +1,21 @@ +#!/bin/bash +# info: calling myvesta_grep PHP function +# options: PARAMETERS +# +# The function is calling myVesta PHP replacement for GNU 'grep' command (but without regular expression) + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + + +if [ -p /dev/stdin ]; then + STDIN=$(cat -) + if [ ! -z "$STDIN" ]; then + echo "$STDIN" | php /usr/local/vesta/func/bash-to-php-interpreter.php 'myvesta_grep' "$@" + exit $? + fi +fi + +php /usr/local/vesta/func/bash-to-php-interpreter.php 'myvesta_grep' "$@" +exit $? diff --git a/bin/v-sed b/bin/v-sed new file mode 100644 index 00000000..9d1a82ee --- /dev/null +++ b/bin/v-sed @@ -0,0 +1,21 @@ +#!/bin/bash +# info: calling myvesta_sed PHP function +# options: PARAMETERS +# +# The function is calling myVesta PHP replacement for GNU 'sed' command (but without regular expression) + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + + +if [ -p /dev/stdin ]; then + STDIN=$(cat -) + if [ ! -z "$STDIN" ]; then + echo "$STDIN" | php /usr/local/vesta/func/bash-to-php-interpreter.php 'myvesta_sed' "$@" + exit $? + fi +fi + +php /usr/local/vesta/func/bash-to-php-interpreter.php 'myvesta_sed' "$@" +exit $? From ae45e4a57198557a47a31ddf5e847dc0579d060b Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 16 Apr 2023 00:10:54 +0200 Subject: [PATCH 600/984] simplifying php code --- func/bash-to-php-interpreter.php | 11 +++++++---- func/string.php | 26 +++++++++++++------------- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/func/bash-to-php-interpreter.php b/func/bash-to-php-interpreter.php index 09c9c499..4c1e9dc5 100644 --- a/func/bash-to-php-interpreter.php +++ b/func/bash-to-php-interpreter.php @@ -41,13 +41,15 @@ if ($myvesta_stdin!='' && $insert_stdin_at_position===false) {$params[]=$myvesta for ($i=2; $i<$counter; $i++) { $argv[$i]=myvesta_fix_backslashes($argv[$i]); - if ($insert_stdin_at_position!==false && $myvesta_stdin=='') if ($insert_stdin_at_position==$added) {$stdin_content=$argv[$i]; $added++; continue;} + //if ($insert_stdin_at_position!==false && $myvesta_stdin=='') if ($insert_stdin_at_position==$added) {$stdin_content=$argv[$i]; $added++; continue;} $params[]=$argv[$i]; $added++; } +//print_r($params); exit; + if ($insert_stdin_at_position!=false) { if ($myvesta_stdin=='') { - $file_or_stdin=$stdin_content; + $file_or_stdin=$params[$insert_stdin_at_position]; if (!file_exists($file_or_stdin)) { $myvesta_stdin_return_not_found=true; $myvesta_stdin=''; @@ -55,9 +57,10 @@ if ($insert_stdin_at_position!=false) { $myvesta_stdin=file_get_contents($file_or_stdin); $myvesta_stdin_from_file=$file_or_stdin; } + $params[$insert_stdin_at_position]=$myvesta_stdin; + } else { + array_splice($params, $insert_stdin_at_position, 0, array($myvesta_stdin)); } - if (isset($params[$insert_stdin_at_position])) array_splice($params, $insert_stdin_at_position, 0, array($myvesta_stdin)); - else $params[$insert_stdin_at_position]=$myvesta_stdin; } //print_r($params); exit; diff --git a/func/string.php b/func/string.php index 371c643c..7ada2546 100644 --- a/func/string.php +++ b/func/string.php @@ -74,25 +74,25 @@ function myvesta_strip_in_file_between_including_borders($file, $left, $right) { // --- mixed functions --- -function myvesta_grep($find, $file_or_stdin, $count=0, $quiet=0) { +function myvesta_grep($find, $content, $count=0, $quiet=0) { global $myvesta_stdin, $myvesta_stdin_return_not_found, $myvesta_quiet_mode; if ($count==='-c') {$count=1; $quiet=0;} if ($count==='-q') {$count=0; $quiet=1;} - $myvesta_quiet_mode=$quiet; - //echo "find = " . $find."\n"; echo "file_or_stdin = " . $file_or_stdin."\n"; echo "count = " . $count."\n"; echo "quiet = " . $quiet."\n"; exit; + if ($myvesta_quiet_mode==0) $myvesta_quiet_mode=$quiet; + //echo "find = " . $find."\n"; echo "file_or_stdin = " . $content."\n"; echo "count = " . $count."\n"; echo "quiet = " . $quiet."\n"; exit; if ($myvesta_stdin_return_not_found==true) { if ($count==1) return myvesta_throw_error (MYVESTA_ERROR_FILE_DOES_NOT_EXISTS, "0"); return myvesta_throw_error (MYVESTA_ERROR_FILE_DOES_NOT_EXISTS, ""); } - $arr=explode("\n", $file_or_stdin); + $arr=explode("\n", $content); - $buf=''; + $buffer=''; $hits=0; foreach ($arr as $line) { if (strpos($line, $find)!==false) { $hits++; - if ($quiet==false && $count==false) $buf.=$line."\n"; + if ($quiet==false && $count==false) $buffer.=$line."\n"; } } if ($count==1) { @@ -104,24 +104,24 @@ function myvesta_grep($find, $file_or_stdin, $count=0, $quiet=0) { return true; } if ($hits==0) return myvesta_exit (MYVESTA_ERROR_STRING_NOT_FOUND, ""); - return $buf; + return $buffer; } -function myvesta_sed($find, $replace, $file_or_stdin) { +function myvesta_sed($find, $replace, $content) { global $myvesta_stdin, $myvesta_stdin_return_not_found, $myvesta_stdin_from_file; - //echo "find = " . $find."\n"; echo "replace = " . $replace."\n"; echo "file_or_stdin = " . $file_or_stdin."\n"; echo "stdin_from_file = " . $myvesta_stdin_from_file."\n"; exit; + //echo "find = " . $find."\n"; echo "replace = " . $replace."\n"; echo "file_or_stdin = " . $content."\n"; echo "stdin_from_file = " . $myvesta_stdin_from_file."\n"; exit; if ($myvesta_stdin_return_not_found==true) { return myvesta_throw_error (MYVESTA_ERROR_FILE_DOES_NOT_EXISTS, "File not found"); } - if (strpos($file_or_stdin, $find)===false) return myvesta_throw_error (MYVESTA_ERROR_STRING_NOT_FOUND, "String '$find' not found"); + if (strpos($content, $find)===false) return myvesta_throw_error (MYVESTA_ERROR_STRING_NOT_FOUND, "String '$find' not found"); - $file_or_stdin=str_replace($find, $replace, $file_or_stdin); + $content=str_replace($find, $replace, $content); if ($myvesta_stdin_from_file!='') { - $r=file_put_contents($myvesta_stdin_from_file, $file_or_stdin); + $r=file_put_contents($myvesta_stdin_from_file, $content); if ($r===false) return false; } else { - myvesta_echo ($file_or_stdin); + myvesta_echo ($content); } return true; } From 22d524cfceb793cf9c1a1f337fa2c58e0a70004e Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 30 Apr 2023 15:15:43 +0200 Subject: [PATCH 601/984] apache templates -FollowSymLinks +SymLinksIfOwnerMatch --- install/debian/10/templates/web/apache2/PHP-FPM-73-public.stpl | 2 +- install/debian/10/templates/web/apache2/PHP-FPM-73-public.tpl | 2 +- install/debian/10/templates/web/apache2/PHP-FPM-73.stpl | 2 +- install/debian/10/templates/web/apache2/PHP-FPM-73.tpl | 2 +- install/debian/11/templates/web/apache2/PHP-FPM-74-public.stpl | 2 +- install/debian/11/templates/web/apache2/PHP-FPM-74-public.tpl | 2 +- install/debian/11/templates/web/apache2/PHP-FPM-74.stpl | 2 +- install/debian/11/templates/web/apache2/PHP-FPM-74.tpl | 2 +- install/debian/8/templates/web/apache2/basedir.stpl | 2 +- install/debian/8/templates/web/apache2/basedir.tpl | 2 +- install/debian/8/templates/web/apache2/default.stpl | 2 +- install/debian/8/templates/web/apache2/default.tpl | 2 +- install/debian/8/templates/web/apache2/hosting.stpl | 2 +- install/debian/8/templates/web/apache2/hosting.tpl | 2 +- install/debian/8/templates/web/apache2/phpcgi.stpl | 2 +- install/debian/8/templates/web/apache2/phpcgi.tpl | 2 +- install/debian/8/templates/web/apache2/phpfcgid.stpl | 2 +- install/debian/8/templates/web/apache2/phpfcgid.tpl | 2 +- install/debian/9/templates/web/apache2/basedir.stpl | 2 +- install/debian/9/templates/web/apache2/basedir.tpl | 2 +- install/debian/9/templates/web/apache2/default.stpl | 2 +- install/debian/9/templates/web/apache2/default.tpl | 2 +- install/debian/9/templates/web/apache2/hosting.stpl | 2 +- install/debian/9/templates/web/apache2/hosting.tpl | 2 +- install/debian/9/templates/web/apache2/phpcgi.stpl | 2 +- install/debian/9/templates/web/apache2/phpcgi.tpl | 2 +- install/debian/9/templates/web/apache2/phpfcgid.stpl | 2 +- install/debian/9/templates/web/apache2/phpfcgid.tpl | 2 +- src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-56.stpl | 2 +- src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-56.tpl | 2 +- src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-70.stpl | 2 +- src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-70.tpl | 2 +- src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-71.stpl | 2 +- src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-71.tpl | 2 +- src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-72.stpl | 2 +- src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-72.tpl | 2 +- .../for-download/tools/apache-fpm-tpl/PHP-FPM-73-public.stpl | 2 +- src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73-public.tpl | 2 +- src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73.stpl | 2 +- src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73.tpl | 2 +- .../for-download/tools/apache-fpm-tpl/PHP-FPM-74-public.stpl | 2 +- src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74-public.tpl | 2 +- src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74.stpl | 2 +- src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74.tpl | 2 +- .../for-download/tools/apache-fpm-tpl/PHP-FPM-80-public.stpl | 2 +- src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80-public.tpl | 2 +- src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.stpl | 2 +- src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.tpl | 2 +- .../for-download/tools/apache-fpm-tpl/PHP-FPM-81-public.stpl | 2 +- src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81-public.tpl | 2 +- src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81.stpl | 2 +- src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81.tpl | 2 +- .../for-download/tools/apache-fpm-tpl/PHP-FPM-82-public.stpl | 2 +- src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82-public.tpl | 2 +- src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82.stpl | 2 +- src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82.tpl | 2 +- 56 files changed, 56 insertions(+), 56 deletions(-) diff --git a/install/debian/10/templates/web/apache2/PHP-FPM-73-public.stpl b/install/debian/10/templates/web/apache2/PHP-FPM-73-public.stpl index 9660c234..39777224 100644 --- a/install/debian/10/templates/web/apache2/PHP-FPM-73-public.stpl +++ b/install/debian/10/templates/web/apache2/PHP-FPM-73-public.stpl @@ -17,7 +17,7 @@ AllowOverride All SSLRequireSSL - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch SSLEngine on SSLVerifyClient none diff --git a/install/debian/10/templates/web/apache2/PHP-FPM-73-public.tpl b/install/debian/10/templates/web/apache2/PHP-FPM-73-public.tpl index 892c0d1f..b6e306d7 100644 --- a/install/debian/10/templates/web/apache2/PHP-FPM-73-public.tpl +++ b/install/debian/10/templates/web/apache2/PHP-FPM-73-public.tpl @@ -16,7 +16,7 @@ AllowOverride All - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch # # RMode config diff --git a/install/debian/10/templates/web/apache2/PHP-FPM-73.stpl b/install/debian/10/templates/web/apache2/PHP-FPM-73.stpl index 28224413..902d647a 100644 --- a/install/debian/10/templates/web/apache2/PHP-FPM-73.stpl +++ b/install/debian/10/templates/web/apache2/PHP-FPM-73.stpl @@ -17,7 +17,7 @@ AllowOverride All SSLRequireSSL - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch SSLEngine on SSLVerifyClient none diff --git a/install/debian/10/templates/web/apache2/PHP-FPM-73.tpl b/install/debian/10/templates/web/apache2/PHP-FPM-73.tpl index 7bec5e73..40df2629 100644 --- a/install/debian/10/templates/web/apache2/PHP-FPM-73.tpl +++ b/install/debian/10/templates/web/apache2/PHP-FPM-73.tpl @@ -16,7 +16,7 @@ AllowOverride All - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch # # RMode config diff --git a/install/debian/11/templates/web/apache2/PHP-FPM-74-public.stpl b/install/debian/11/templates/web/apache2/PHP-FPM-74-public.stpl index fdbc26f9..739cb48d 100644 --- a/install/debian/11/templates/web/apache2/PHP-FPM-74-public.stpl +++ b/install/debian/11/templates/web/apache2/PHP-FPM-74-public.stpl @@ -17,7 +17,7 @@ AllowOverride All SSLRequireSSL - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch SSLEngine on SSLVerifyClient none diff --git a/install/debian/11/templates/web/apache2/PHP-FPM-74-public.tpl b/install/debian/11/templates/web/apache2/PHP-FPM-74-public.tpl index 614f20c3..f31ed5a8 100644 --- a/install/debian/11/templates/web/apache2/PHP-FPM-74-public.tpl +++ b/install/debian/11/templates/web/apache2/PHP-FPM-74-public.tpl @@ -16,7 +16,7 @@ AllowOverride All - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch # # RMode config diff --git a/install/debian/11/templates/web/apache2/PHP-FPM-74.stpl b/install/debian/11/templates/web/apache2/PHP-FPM-74.stpl index df607247..fbc1d9c6 100644 --- a/install/debian/11/templates/web/apache2/PHP-FPM-74.stpl +++ b/install/debian/11/templates/web/apache2/PHP-FPM-74.stpl @@ -17,7 +17,7 @@ AllowOverride All SSLRequireSSL - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch SSLEngine on SSLVerifyClient none diff --git a/install/debian/11/templates/web/apache2/PHP-FPM-74.tpl b/install/debian/11/templates/web/apache2/PHP-FPM-74.tpl index 7b6e2cb5..aaf8f62c 100644 --- a/install/debian/11/templates/web/apache2/PHP-FPM-74.tpl +++ b/install/debian/11/templates/web/apache2/PHP-FPM-74.tpl @@ -16,7 +16,7 @@ AllowOverride All - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch # # RMode config diff --git a/install/debian/8/templates/web/apache2/basedir.stpl b/install/debian/8/templates/web/apache2/basedir.stpl index 2db1d52c..60a8f7fd 100644 --- a/install/debian/8/templates/web/apache2/basedir.stpl +++ b/install/debian/8/templates/web/apache2/basedir.stpl @@ -14,7 +14,7 @@ AllowOverride All SSLRequireSSL - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch php_admin_value open_basedir %sdocroot%:%home%/%user%/tmp php_admin_value upload_tmp_dir %home%/%user%/tmp php_admin_value session.save_path %home%/%user%/tmp diff --git a/install/debian/8/templates/web/apache2/basedir.tpl b/install/debian/8/templates/web/apache2/basedir.tpl index 96c94a1b..3b8f875a 100644 --- a/install/debian/8/templates/web/apache2/basedir.tpl +++ b/install/debian/8/templates/web/apache2/basedir.tpl @@ -13,7 +13,7 @@ ErrorLog /var/log/%web_system%/domains/%domain%.error.log AllowOverride All - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch php_admin_value open_basedir %docroot%:%home%/%user%/tmp php_admin_value upload_tmp_dir %home%/%user%/tmp php_admin_value session.save_path %home%/%user%/tmp diff --git a/install/debian/8/templates/web/apache2/default.stpl b/install/debian/8/templates/web/apache2/default.stpl index ec34c279..3fc7e160 100644 --- a/install/debian/8/templates/web/apache2/default.stpl +++ b/install/debian/8/templates/web/apache2/default.stpl @@ -14,7 +14,7 @@ AllowOverride All SSLRequireSSL - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch php_admin_value open_basedir %sdocroot%:%home%/%user%/tmp php_admin_value upload_tmp_dir %home%/%user%/tmp php_admin_value session.save_path %home%/%user%/tmp diff --git a/install/debian/8/templates/web/apache2/default.tpl b/install/debian/8/templates/web/apache2/default.tpl index 3a227015..464257ec 100644 --- a/install/debian/8/templates/web/apache2/default.tpl +++ b/install/debian/8/templates/web/apache2/default.tpl @@ -13,7 +13,7 @@ ErrorLog /var/log/%web_system%/domains/%domain%.error.log AllowOverride All - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch php_admin_value open_basedir %docroot%:%home%/%user%/tmp php_admin_value upload_tmp_dir %home%/%user%/tmp php_admin_value session.save_path %home%/%user%/tmp diff --git a/install/debian/8/templates/web/apache2/hosting.stpl b/install/debian/8/templates/web/apache2/hosting.stpl index c9c19512..b17014cd 100644 --- a/install/debian/8/templates/web/apache2/hosting.stpl +++ b/install/debian/8/templates/web/apache2/hosting.stpl @@ -14,7 +14,7 @@ AllowOverride All SSLRequireSSL - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch php_admin_value upload_max_filesize 10M php_admin_value max_execution_time 20 php_admin_value post_max_size 8M diff --git a/install/debian/8/templates/web/apache2/hosting.tpl b/install/debian/8/templates/web/apache2/hosting.tpl index 1eb26910..34f55b29 100644 --- a/install/debian/8/templates/web/apache2/hosting.tpl +++ b/install/debian/8/templates/web/apache2/hosting.tpl @@ -13,7 +13,7 @@ ErrorLog /var/log/%web_system%/domains/%domain%.error.log AllowOverride All - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch php_admin_value upload_max_filesize 10M php_admin_value max_execution_time 20 php_admin_value post_max_size 8M diff --git a/install/debian/8/templates/web/apache2/phpcgi.stpl b/install/debian/8/templates/web/apache2/phpcgi.stpl index ae560dbe..7c1248d4 100644 --- a/install/debian/8/templates/web/apache2/phpcgi.stpl +++ b/install/debian/8/templates/web/apache2/phpcgi.stpl @@ -14,7 +14,7 @@ SSLRequireSSL AllowOverride All - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch php_admin_value open_basedir %sdocroot%:%home%/%user%/tmp php_admin_value upload_tmp_dir %home%/%user%/tmp php_admin_value session.save_path %home%/%user%/tmp diff --git a/install/debian/8/templates/web/apache2/phpcgi.tpl b/install/debian/8/templates/web/apache2/phpcgi.tpl index c6796d29..603ea8b9 100644 --- a/install/debian/8/templates/web/apache2/phpcgi.tpl +++ b/install/debian/8/templates/web/apache2/phpcgi.tpl @@ -13,7 +13,7 @@ ErrorLog /var/log/%web_system%/domains/%domain%.error.log AllowOverride All - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch php_admin_value open_basedir %docroot%:%home%/%user%/tmp php_admin_value upload_tmp_dir %home%/%user%/tmp php_admin_value session.save_path %home%/%user%/tmp diff --git a/install/debian/8/templates/web/apache2/phpfcgid.stpl b/install/debian/8/templates/web/apache2/phpfcgid.stpl index bc3688d9..98304f2a 100644 --- a/install/debian/8/templates/web/apache2/phpfcgid.stpl +++ b/install/debian/8/templates/web/apache2/phpfcgid.stpl @@ -14,7 +14,7 @@ SSLRequireSSL AllowOverride All - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch php_admin_value open_basedir %sdocroot%:%home%/%user%/tmp php_admin_value upload_tmp_dir %home%/%user%/tmp php_admin_value session.save_path %home%/%user%/tmp diff --git a/install/debian/8/templates/web/apache2/phpfcgid.tpl b/install/debian/8/templates/web/apache2/phpfcgid.tpl index a4c01269..525b1f53 100644 --- a/install/debian/8/templates/web/apache2/phpfcgid.tpl +++ b/install/debian/8/templates/web/apache2/phpfcgid.tpl @@ -13,7 +13,7 @@ ErrorLog /var/log/%web_system%/domains/%domain%.error.log AllowOverride All - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch php_admin_value open_basedir %docroot%:%home%/%user%/tmp php_admin_value upload_tmp_dir %home%/%user%/tmp php_admin_value session.save_path %home%/%user%/tmp diff --git a/install/debian/9/templates/web/apache2/basedir.stpl b/install/debian/9/templates/web/apache2/basedir.stpl index 2db1d52c..60a8f7fd 100644 --- a/install/debian/9/templates/web/apache2/basedir.stpl +++ b/install/debian/9/templates/web/apache2/basedir.stpl @@ -14,7 +14,7 @@ AllowOverride All SSLRequireSSL - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch php_admin_value open_basedir %sdocroot%:%home%/%user%/tmp php_admin_value upload_tmp_dir %home%/%user%/tmp php_admin_value session.save_path %home%/%user%/tmp diff --git a/install/debian/9/templates/web/apache2/basedir.tpl b/install/debian/9/templates/web/apache2/basedir.tpl index 96c94a1b..3b8f875a 100644 --- a/install/debian/9/templates/web/apache2/basedir.tpl +++ b/install/debian/9/templates/web/apache2/basedir.tpl @@ -13,7 +13,7 @@ ErrorLog /var/log/%web_system%/domains/%domain%.error.log AllowOverride All - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch php_admin_value open_basedir %docroot%:%home%/%user%/tmp php_admin_value upload_tmp_dir %home%/%user%/tmp php_admin_value session.save_path %home%/%user%/tmp diff --git a/install/debian/9/templates/web/apache2/default.stpl b/install/debian/9/templates/web/apache2/default.stpl index ec34c279..3fc7e160 100644 --- a/install/debian/9/templates/web/apache2/default.stpl +++ b/install/debian/9/templates/web/apache2/default.stpl @@ -14,7 +14,7 @@ AllowOverride All SSLRequireSSL - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch php_admin_value open_basedir %sdocroot%:%home%/%user%/tmp php_admin_value upload_tmp_dir %home%/%user%/tmp php_admin_value session.save_path %home%/%user%/tmp diff --git a/install/debian/9/templates/web/apache2/default.tpl b/install/debian/9/templates/web/apache2/default.tpl index 3a227015..464257ec 100644 --- a/install/debian/9/templates/web/apache2/default.tpl +++ b/install/debian/9/templates/web/apache2/default.tpl @@ -13,7 +13,7 @@ ErrorLog /var/log/%web_system%/domains/%domain%.error.log AllowOverride All - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch php_admin_value open_basedir %docroot%:%home%/%user%/tmp php_admin_value upload_tmp_dir %home%/%user%/tmp php_admin_value session.save_path %home%/%user%/tmp diff --git a/install/debian/9/templates/web/apache2/hosting.stpl b/install/debian/9/templates/web/apache2/hosting.stpl index c9c19512..b17014cd 100644 --- a/install/debian/9/templates/web/apache2/hosting.stpl +++ b/install/debian/9/templates/web/apache2/hosting.stpl @@ -14,7 +14,7 @@ AllowOverride All SSLRequireSSL - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch php_admin_value upload_max_filesize 10M php_admin_value max_execution_time 20 php_admin_value post_max_size 8M diff --git a/install/debian/9/templates/web/apache2/hosting.tpl b/install/debian/9/templates/web/apache2/hosting.tpl index 1eb26910..34f55b29 100644 --- a/install/debian/9/templates/web/apache2/hosting.tpl +++ b/install/debian/9/templates/web/apache2/hosting.tpl @@ -13,7 +13,7 @@ ErrorLog /var/log/%web_system%/domains/%domain%.error.log AllowOverride All - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch php_admin_value upload_max_filesize 10M php_admin_value max_execution_time 20 php_admin_value post_max_size 8M diff --git a/install/debian/9/templates/web/apache2/phpcgi.stpl b/install/debian/9/templates/web/apache2/phpcgi.stpl index ae560dbe..7c1248d4 100644 --- a/install/debian/9/templates/web/apache2/phpcgi.stpl +++ b/install/debian/9/templates/web/apache2/phpcgi.stpl @@ -14,7 +14,7 @@ SSLRequireSSL AllowOverride All - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch php_admin_value open_basedir %sdocroot%:%home%/%user%/tmp php_admin_value upload_tmp_dir %home%/%user%/tmp php_admin_value session.save_path %home%/%user%/tmp diff --git a/install/debian/9/templates/web/apache2/phpcgi.tpl b/install/debian/9/templates/web/apache2/phpcgi.tpl index c6796d29..603ea8b9 100644 --- a/install/debian/9/templates/web/apache2/phpcgi.tpl +++ b/install/debian/9/templates/web/apache2/phpcgi.tpl @@ -13,7 +13,7 @@ ErrorLog /var/log/%web_system%/domains/%domain%.error.log AllowOverride All - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch php_admin_value open_basedir %docroot%:%home%/%user%/tmp php_admin_value upload_tmp_dir %home%/%user%/tmp php_admin_value session.save_path %home%/%user%/tmp diff --git a/install/debian/9/templates/web/apache2/phpfcgid.stpl b/install/debian/9/templates/web/apache2/phpfcgid.stpl index bc3688d9..98304f2a 100644 --- a/install/debian/9/templates/web/apache2/phpfcgid.stpl +++ b/install/debian/9/templates/web/apache2/phpfcgid.stpl @@ -14,7 +14,7 @@ SSLRequireSSL AllowOverride All - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch php_admin_value open_basedir %sdocroot%:%home%/%user%/tmp php_admin_value upload_tmp_dir %home%/%user%/tmp php_admin_value session.save_path %home%/%user%/tmp diff --git a/install/debian/9/templates/web/apache2/phpfcgid.tpl b/install/debian/9/templates/web/apache2/phpfcgid.tpl index a4c01269..525b1f53 100644 --- a/install/debian/9/templates/web/apache2/phpfcgid.tpl +++ b/install/debian/9/templates/web/apache2/phpfcgid.tpl @@ -13,7 +13,7 @@ ErrorLog /var/log/%web_system%/domains/%domain%.error.log AllowOverride All - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch php_admin_value open_basedir %docroot%:%home%/%user%/tmp php_admin_value upload_tmp_dir %home%/%user%/tmp php_admin_value session.save_path %home%/%user%/tmp diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-56.stpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-56.stpl index eb5631db..a24b368f 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-56.stpl +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-56.stpl @@ -17,7 +17,7 @@ AllowOverride All SSLRequireSSL - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch SSLEngine on SSLVerifyClient none diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-56.tpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-56.tpl index cd4e797d..55bc8233 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-56.tpl +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-56.tpl @@ -16,7 +16,7 @@ AllowOverride All - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch # # RMode config diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-70.stpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-70.stpl index 38285302..5d944c0f 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-70.stpl +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-70.stpl @@ -17,7 +17,7 @@ AllowOverride All SSLRequireSSL - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch SSLEngine on SSLVerifyClient none diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-70.tpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-70.tpl index 7d30d39c..c9378152 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-70.tpl +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-70.tpl @@ -16,7 +16,7 @@ AllowOverride All - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch # # RMode config diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-71.stpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-71.stpl index c5d284f7..a718b21f 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-71.stpl +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-71.stpl @@ -17,7 +17,7 @@ AllowOverride All SSLRequireSSL - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch SSLEngine on SSLVerifyClient none diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-71.tpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-71.tpl index 695b9937..9f0cf8a7 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-71.tpl +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-71.tpl @@ -16,7 +16,7 @@ AllowOverride All - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch # # RMode config diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-72.stpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-72.stpl index 2b4363b4..20792e92 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-72.stpl +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-72.stpl @@ -17,7 +17,7 @@ AllowOverride All SSLRequireSSL - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch SSLEngine on SSLVerifyClient none diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-72.tpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-72.tpl index be2ca7ae..89b19147 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-72.tpl +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-72.tpl @@ -16,7 +16,7 @@ AllowOverride All - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch # # RMode config diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73-public.stpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73-public.stpl index 9660c234..39777224 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73-public.stpl +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73-public.stpl @@ -17,7 +17,7 @@ AllowOverride All SSLRequireSSL - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch SSLEngine on SSLVerifyClient none diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73-public.tpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73-public.tpl index 892c0d1f..b6e306d7 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73-public.tpl +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73-public.tpl @@ -16,7 +16,7 @@ AllowOverride All - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch # # RMode config diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73.stpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73.stpl index 28224413..902d647a 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73.stpl +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73.stpl @@ -17,7 +17,7 @@ AllowOverride All SSLRequireSSL - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch SSLEngine on SSLVerifyClient none diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73.tpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73.tpl index 7bec5e73..40df2629 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73.tpl +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-73.tpl @@ -16,7 +16,7 @@ AllowOverride All - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch # # RMode config diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74-public.stpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74-public.stpl index fdbc26f9..739cb48d 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74-public.stpl +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74-public.stpl @@ -17,7 +17,7 @@ AllowOverride All SSLRequireSSL - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch SSLEngine on SSLVerifyClient none diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74-public.tpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74-public.tpl index 614f20c3..f31ed5a8 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74-public.tpl +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74-public.tpl @@ -16,7 +16,7 @@ AllowOverride All - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch # # RMode config diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74.stpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74.stpl index df607247..fbc1d9c6 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74.stpl +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74.stpl @@ -17,7 +17,7 @@ AllowOverride All SSLRequireSSL - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch SSLEngine on SSLVerifyClient none diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74.tpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74.tpl index 7b6e2cb5..aaf8f62c 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74.tpl +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-74.tpl @@ -16,7 +16,7 @@ AllowOverride All - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch # # RMode config diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80-public.stpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80-public.stpl index 4ce4b993..b1335a44 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80-public.stpl +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80-public.stpl @@ -17,7 +17,7 @@ AllowOverride All SSLRequireSSL - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch SSLEngine on SSLVerifyClient none diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80-public.tpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80-public.tpl index 41a5d506..1b0a610c 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80-public.tpl +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80-public.tpl @@ -16,7 +16,7 @@ AllowOverride All - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch # # RMode config diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.stpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.stpl index f39e9631..fae336fc 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.stpl +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.stpl @@ -17,7 +17,7 @@ AllowOverride All SSLRequireSSL - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch SSLEngine on SSLVerifyClient none diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.tpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.tpl index b9e32f14..64699c22 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.tpl +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-80.tpl @@ -16,7 +16,7 @@ AllowOverride All - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch # # RMode config diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81-public.stpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81-public.stpl index 0d6404ec..4116fd42 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81-public.stpl +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81-public.stpl @@ -17,7 +17,7 @@ AllowOverride All SSLRequireSSL - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch SSLEngine on SSLVerifyClient none diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81-public.tpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81-public.tpl index f2814063..ee319a20 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81-public.tpl +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81-public.tpl @@ -16,7 +16,7 @@ AllowOverride All - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch # # RMode config diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81.stpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81.stpl index fb191d03..5822a27a 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81.stpl +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81.stpl @@ -17,7 +17,7 @@ AllowOverride All SSLRequireSSL - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch SSLEngine on SSLVerifyClient none diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81.tpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81.tpl index 1a02ec15..7864b3a4 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81.tpl +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-81.tpl @@ -16,7 +16,7 @@ AllowOverride All - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch # # RMode config diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82-public.stpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82-public.stpl index 6afebb6e..809e7f33 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82-public.stpl +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82-public.stpl @@ -17,7 +17,7 @@ AllowOverride All SSLRequireSSL - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch SSLEngine on SSLVerifyClient none diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82-public.tpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82-public.tpl index 03e67a3d..679d1409 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82-public.tpl +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82-public.tpl @@ -16,7 +16,7 @@ AllowOverride All - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82.stpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82.stpl index ed39fad4..e0d04794 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82.stpl +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82.stpl @@ -17,7 +17,7 @@ AllowOverride All SSLRequireSSL - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch SSLEngine on SSLVerifyClient none diff --git a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82.tpl b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82.tpl index 789ee9d3..eba95935 100644 --- a/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82.tpl +++ b/src/deb/for-download/tools/apache-fpm-tpl/PHP-FPM-82.tpl @@ -16,7 +16,7 @@ AllowOverride All - Options +Includes -Indexes +ExecCGI + Options +Includes -Indexes -FollowSymLinks +SymLinksIfOwnerMatch From c2511876c2a73489a5885efd5ff38af97babb662 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Tue, 2 May 2023 12:59:16 +0200 Subject: [PATCH 602/984] --retry-connrefused exception for Debian8 --- bin/v-add-letsencrypt-domain | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/bin/v-add-letsencrypt-domain b/bin/v-add-letsencrypt-domain index 7a306ab3..1f1f5a6e 100755 --- a/bin/v-add-letsencrypt-domain +++ b/bin/v-add-letsencrypt-domain @@ -21,6 +21,8 @@ if [[ "$LE_STAGING" = 'yes' ]]; then API='https://acme-staging-v02.api.letsencrypt.org' fi +deb_release=$(cat /etc/debian_version | tr "." "\n" | head -n1) + # Includes source $VESTA/func/main.sh source $VESTA/func/domain.sh @@ -60,7 +62,11 @@ query_le_v2() { # Save http response to file passed as "$4" arg or print to stdout if not provided # http response headers are always sent to stdout local save_to_file=${4:-"/dev/stdout"} - curl --location --user-agent "myVesta" --insecure --retry 5 --retry-connrefused --silent --dump-header /dev/stdout --data "$post_data" "$1" --header "$content" --output "$save_to_file" + if [ "$deb_release" -gt 8 ]; then + curl --location --user-agent "myVesta" --insecure --retry 5 --retry-connrefused --silent --dump-header /dev/stdout --data "$post_data" "$1" --header "$content" --output "$save_to_file" + else + curl --location --user-agent "myVesta" --insecure --retry 5 --silent --dump-header /dev/stdout --data "$post_data" "$1" --header "$content" --output "$save_to_file" + fi } From ec8e1741588dc9554d07a0d6b2f3a764d461d9d4 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sat, 27 May 2023 19:03:41 +0200 Subject: [PATCH 603/984] Update README.md, fixing < char --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 44d414b8..71d9f5a9 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@
  • src/deb/for-download/php/php.ini
  • web/inc/secure_login.php
-
  • If you didn't set the secret URL during installation, you can do it anytime. Just execute in shell: echo " /usr/local/vesta/web/inc/login_url.php
  • +
  • If you didn't set the secret URL during installation, you can do it anytime. Just execute in shell: echo "<?php \$login_url='MY-SECRET-URL';" > /usr/local/vesta/web/inc/login_url.php
  • We disabled dangerous PHP functions in php.ini, so even if, for example, your customer's CMS gets compromised, hacker will not be able to execute shell scripts from within PHP.
  • From 2afbc2cddfbbc57f296640cb28d89fb29b2526c2 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 4 Jun 2023 16:41:08 +0200 Subject: [PATCH 604/984] Patching exim4.conf for: smtputf8_advertise_hosts --- install/debian/10/exim/exim4.conf.template | 1 + install/debian/11/exim/exim4.conf.template | 1 + install/debian/9/exim/exim4.conf.template | 1 + src/deb/vesta/postinst | 20 ++++++++++++++++++++ 4 files changed, 23 insertions(+) diff --git a/install/debian/10/exim/exim4.conf.template b/install/debian/10/exim/exim4.conf.template index 0e5afaac..8fa12c2d 100644 --- a/install/debian/10/exim/exim4.conf.template +++ b/install/debian/10/exim/exim4.conf.template @@ -11,6 +11,7 @@ disable_ipv6=true add_environment=<; PATH=/bin:/usr/bin keep_environment= +smtputf8_advertise_hosts = domainlist local_domains = dsearch;/etc/exim4/domains/ domainlist relay_to_domains = dsearch;/etc/exim4/domains/ diff --git a/install/debian/11/exim/exim4.conf.template b/install/debian/11/exim/exim4.conf.template index 72e3f668..cbc2e75f 100644 --- a/install/debian/11/exim/exim4.conf.template +++ b/install/debian/11/exim/exim4.conf.template @@ -11,6 +11,7 @@ disable_ipv6=true add_environment=<; PATH=/bin:/usr/bin keep_environment= +smtputf8_advertise_hosts = domainlist local_domains = dsearch;/etc/exim4/domains/ domainlist relay_to_domains = dsearch;/etc/exim4/domains/ diff --git a/install/debian/9/exim/exim4.conf.template b/install/debian/9/exim/exim4.conf.template index 261947d2..c9344903 100644 --- a/install/debian/9/exim/exim4.conf.template +++ b/install/debian/9/exim/exim4.conf.template @@ -11,6 +11,7 @@ disable_ipv6=true add_environment=<; PATH=/bin:/usr/bin keep_environment= +smtputf8_advertise_hosts = domainlist local_domains = dsearch;/etc/exim4/domains/ domainlist relay_to_domains = dsearch;/etc/exim4/domains/ diff --git a/src/deb/vesta/postinst b/src/deb/vesta/postinst index 975d12cd..97df816e 100755 --- a/src/deb/vesta/postinst +++ b/src/deb/vesta/postinst @@ -25,6 +25,26 @@ fi echo "1" > /usr/local/vesta/data/upgrades/show_changelog chmod a=rw /usr/local/vesta/data/upgrades/show_changelog +# Patching exim4.conf for: smtputf8_advertise_hosts +if [ "$release" -gt 8 ]; then + if [ -f "/etc/exim4/exim4.conf.template" ]; then + if ! grep -q 'smtputf8_advertise_hosts' /etc/exim4/exim4.conf.template; then + echo 'Patching exim4.conf for: smtputf8_advertise_hosts' + sed -i "/^domainlist local_domains = dsearch;\/etc\/exim4\/domains\//i smtputf8_advertise_hosts =" /etc/exim4/exim4.conf.template + systemctl restart exim4 + fi + fi +fi + +# Patching exim4.conf for: Helo name contains a ip address +if [ -f "/etc/exim4/exim4.conf.template" ]; then + if grep -q 'drop message = Helo name contains a ip address (HELO was $sender_helo_name) and not is valid' /etc/exim4/exim4.conf.template; then + echo 'Patching exim4.conf for: Helo name contains a ip address' + patch /etc/exim4/exim4.conf.template < /usr/local/vesta/src/deb/for-download/tools/patches/exim_helo_authenticated.patch + sed -i '/telenor\.rs/d' /etc/exim4/exim4.conf.template + systemctl restart exim4 + fi +fi # Making sure yescrypt is disabled if [ "$release" -eq 11 ]; then From c3d0c17c518153a6bcb725b0d6842706206bb814 Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Sun, 4 Jun 2023 17:56:44 +0200 Subject: [PATCH 605/984] Redesign of hosting panel --- bin/v-list-user-log | 8 +- bin/v-update-sys-rrd-la | 4 +- web/add/user/index.php | 2 +- web/css/styles.fix.css | 1001 ++++++ web/css/styles.fix.css.map | 1 + web/css/styles.min.css | 3491 ++++++++++----------- web/images/myvesta-large-white-130.png | Bin 0 -> 5284 bytes web/images/sprite.png | Bin 57521 -> 35005 bytes web/images/vesta_logo.png | Bin 5902 -> 5438 bytes web/inc/main.php | 5 +- web/js/fix.js | 157 + web/js/init.js | 20 +- web/templates/admin/list_dns_rec.html | 2 +- web/templates/admin/list_server_info.html | 6 +- web/templates/admin/list_user.html | 19 +- web/templates/admin/list_weblog.html | 6 +- web/templates/admin/panel.html | 25 +- web/templates/footer.html | 3 - web/templates/header.html | 15 +- web/templates/login.html | 2 +- web/templates/reset_1.html | 6 +- web/templates/reset_2.html | 6 +- web/templates/reset_3.html | 6 +- web/templates/scripts.html | 161 + web/templates/user/list_dns_rec.html | 2 +- web/templates/user/list_user.html | 2 +- web/templates/user/panel.html | 23 +- 27 files changed, 3143 insertions(+), 1830 deletions(-) create mode 100644 web/css/styles.fix.css create mode 100644 web/css/styles.fix.css.map create mode 100644 web/images/myvesta-large-white-130.png create mode 100644 web/js/fix.js diff --git a/bin/v-list-user-log b/bin/v-list-user-log index ca317f7d..6be9f9ae 100755 --- a/bin/v-list-user-log +++ b/bin/v-list-user-log @@ -12,6 +12,7 @@ # Argument definition user=$1 format=${2-shell} +limit=${3-300} # Includes source $VESTA/func/main.sh @@ -34,6 +35,9 @@ json_list() { "TIME": "'$TIME'", "DATE": "'$DATE'" }' + if [ "$limit" -gt 0 ] && [ "$i" = "$limit" ]; then + break; + fi if [ "$i" -lt "$objects" ]; then echo ',' else @@ -83,7 +87,7 @@ csv_list() { # Verifications # #----------------------------------------------------------# -check_args '1' "$#" 'USER [FORMAT]' +check_args '1' "$#" 'USER [FORMAT] [LIMIT]' is_format_valid 'user' is_object_valid 'user' 'USER' "$user" @@ -93,7 +97,7 @@ is_object_valid 'user' 'USER' "$user" #----------------------------------------------------------# # Parsing history log -logs=$(tail -n 300 $USER_DATA/history.log 2>/dev/null) +logs=$(tail -n $limit $USER_DATA/history.log | tac) case $format in json) json_list ;; diff --git a/bin/v-update-sys-rrd-la b/bin/v-update-sys-rrd-la index c8266626..860bdec6 100755 --- a/bin/v-update-sys-rrd-la +++ b/bin/v-update-sys-rrd-la @@ -74,7 +74,7 @@ rrdtool graph $RRD/la/$period-la.png \ -c "SHADEA#ffffff" \ -c "SHADEB#ffffff" \ -c "FONT#555555" \ - -c "CANVAS#302c2d" \ + -c "CANVAS#F2F2F2" \ -c "GRID#666666" \ -c "MGRID#AAAAAA" \ -c "FRAME#777777" \ @@ -82,7 +82,7 @@ rrdtool graph $RRD/la/$period-la.png \ DEF:la=$RRD/la/la.rrd:LA:AVERAGE \ DEF:pr=$RRD/la/la.rrd:PR:AVERAGE \ COMMENT:'\r' \ - AREA:la#C8EA2E:"LA * 100"\ + AREA:la#00CD2E:"LA * 100"\ GPRINT:la:'LAST: Current\:''%8.0lf' \ GPRINT:la:'MIN: Min\:''%8.0lf' \ GPRINT:la:'MAX: Max\:''%8.0lf\j' \ diff --git a/web/add/user/index.php b/web/add/user/index.php index 1ed521e3..04043484 100644 --- a/web/add/user/index.php +++ b/web/add/user/index.php @@ -100,7 +100,7 @@ if (!empty($_POST['ok'])) { // Flush field values on success if (empty($_SESSION['error_msg'])) { $_SESSION['ok_msg'] = __('USER_CREATED_OK',htmlentities($_POST['v_username']),htmlentities($_POST['v_username'])); - $_SESSION['ok_msg'] .= " / " . __('login as') ." ".htmlentities($_POST['v_username']). ""; + $_SESSION['ok_msg'] .= " / " . __('login as') ." ".htmlentities($_POST['v_username']). ""; unset($v_username); unset($v_password); unset($v_email); diff --git a/web/css/styles.fix.css b/web/css/styles.fix.css new file mode 100644 index 00000000..5fbdb6ec --- /dev/null +++ b/web/css/styles.fix.css @@ -0,0 +1,1001 @@ +body { + background: #f0f3f5; + color: #58666f; + font-family: 'Source Sans Pro', sans-serif; +} +b, strong { + color: #58666f; +} +.l-percent { + border-bottom: none; + margin-top: 1px; + width: 200px; + background: #e4eaed; +} +.l-percent__fill { + background-color: #2ac34e; + bottom: 0; +} +.to-top { + z-index: 100; + top: unset; + bottom: 30px; + right: 85px; +} +.to-shortcuts { + z-index: 100; + top: unset; + bottom: 30px; + right: 130px; +} +.shortcuts { + right: calc(50% - 400px); + bottom: calc(50% - 213px); +} +.l-separator { + display: none; +} +.l-header { + position: fixed; + width: calc(100% - 40px); + z-index: 99; + background: #fff; + box-shadow: 0 2px 2px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(0, 0, 0, 0.05); + color: #58666f; + height: 50px; + padding: 0 20px; + margin-bottom: unset; +} +.l-header a { + color: #58666f; + font-size: 14px; +} +.l-header a:hover { + color: #58666f; +} +.l-header .l-center { + max-width: none !important; +} +.l-header .l-center .l-logo { + background-position: -65px -182px; + /* background-position: -125px -478px; */ + background-repeat: no-repeat; + display: block; + height: 40px; + margin-top: 0; + width: 80px; + /* width: 42px; */ + margin-left: 0; + background-size: 235px 325px; + position: relative; + top: 5px; + left: 0; + float: left; + padding-right: 20px; +} +.l-header .l-center .l-menu { + position: unset; + margin-left: unset; +} +.l-header .l-center .l-menu .l-menu__item a { + line-height: 50px; + padding: 0 18px; + display: inline-block; +} +.l-header .l-center .l-menu .l-menu__item a:hover { + background-color: rgba(0, 0, 0, 0.05); +} +.l-header .l-center .l-menu .l-menu__item a:active { + background-color: rgba(0, 0, 0, 0.05); +} +.l-header .l-center .l-menu .l-menu__item.l-menu__item--active a { + color: unset; + font-size: unset; + font-weight: unset; + text-transform: unset; + background-color: rgba(0, 0, 0, 0.05); +} +.l-header .l-center .l-profile .l-profile__notifications { + margin-top: 13px; +} +.l-header .l-center .l-profile .l-profile__notifications:hover { + background-color: rgba(0, 0, 0, 0.05); +} +.l-header .l-center .l-profile .l-profile__username { + padding: 15px 0 0 10px; +} +.l-header .l-center .l-profile .l-profile__logout { + padding: 15px 0 0 10px; +} +.l-header > .l-center { + margin-left: 200px; +} +.l-content { + position: relative; + top: 50px; +} +.l-content + div { + right: 100px !important; + top: unset !important; + bottom: 40px !important; +} +.l-content + div div { + background-color: #e4eaed !important; + padding: 10px; + border-radius: 5px; +} +.l-content .l-center { + max-width: none !important; +} +.l-content .l-center .l-stat { + display: block; + position: fixed; + z-index: 100; + padding-top: 0 !important; + width: 200px; + height: 100%; + top: 0; + margin-top: 0; + background: #1c2b35; + overflow-y: scroll; + scrollbar-width: thin; + /* Firefox */ + -ms-overflow-style: scrollbar; + /* Internet Explorer 10+ */ + /* width */ +} +.l-content .l-center .l-stat::-webkit-scrollbar { + display: block; + width: 7px; + /* Track */ +} +.l-content .l-center .l-stat::-webkit-scrollbar-track { + background: rgba(255, 255, 255, 0); + /* Handle */ +} +.l-content .l-center .l-stat::-webkit-scrollbar-thumb { + background: rgba(255, 255, 255, 0.15); +} +.l-content .l-center .l-stat:hover { + /* Handle on hover */ +} +.l-content .l-center .l-stat:hover::-webkit-scrollbar-thumb { + background: rgba(255, 255, 255, 0.4); +} +.l-content .l-center .l-stat .l-stat__col--active ul { + display: block !important; +} +.l-content .l-center .l-stat .l-stat__col--active { + background: #131e27; +} +.l-content .l-center .l-stat .l-stat__col--active a { + border-bottom: 2px solid #131e27; +} +.l-content .l-center .l-stat .l-stat__col--active a .l-stat__col-title { + background: #16232d; + color: white !important; + font-size: 20px; + font-weight: 400; + margin-top: unset; + letter-spacing: unset; + margin-right: unset; +} +.l-content .l-center .l-stat .l-stat__col--active span { + display: none; +} +.l-content .l-center .l-stat .focus { + background: #5e5e5e; +} +.l-content .l-center .l-stat .focus a { + border-bottom: 2px solid #131e27; +} +.l-content .l-center .l-stat .focus a ul li { + color: #c2e5ff !important; +} +.l-content .l-center .l-stat .focus a .l-stat__col-title { + background: #5e5e5e; + color: #c4d0d8; + font-size: 20px; + font-weight: 400; + margin-top: unset; + letter-spacing: unset; + margin-right: unset; +} +.l-content .l-center .l-stat .l-stat__col { + display: block; + float: unset; +} +.l-content .l-center .l-stat .l-stat__col:hover .l-stat__col-title { + color: #fff; +} +.l-content .l-center .l-stat .l-stat__col:hover .l-stat__col-title:after { + color: #fff; +} +.l-content .l-center .l-stat .l-stat__col a { + height: unset !important; + min-height: unset !important; + display: block; + width: unset; + border-bottom: 2px solid #131e27; + background-color: transparent; + padding-left: unset; + padding-bottom: 10px; + padding-top: unset; + margin-top: unset; +} +.l-content .l-center .l-stat .l-stat__col a .l-stat__col-title { + min-height: unset !important; + color: #869fb2; + font-size: 20px; + font-weight: 400; + padding: 15px 15px 15px 20px; + margin-bottom: 0; + margin-top: 0 !important; +} +.l-content .l-center .l-stat .l-stat__col a .l-stat__col-title:after { + font-family: 'Font Awesome 5 Free'; + font-weight: bold; + content: "\f054"; + float: right; + font-size: 10px; + color: #5c798f; + margin-top: 8px; + margin-right: 26px; +} +.l-content .l-center .l-stat .l-stat__col a .l-stat__col-title:before { + font-family: 'Font Awesome 5 Free'; + font-weight: bold; + content: "\f233"; + padding-right: 10px; + font-size: 17px; +} + +.l-content .l-center .l-stat .l-stat__col--active a .l-stat__col-title:after { + margin-right: 26px; +} + +.l-content .l-center .l-stat .l-stat__col a ul { + margin: 0; + display: none; +} +.l-content .l-center .l-stat .l-stat__col a ul li { + color: #92adc2; + margin-bottom: unset; + padding: 10px 20px 10px 20px; + font-size: 14px; +} +.l-content .l-center .l-stat .l-stat__col a ul li span { + float: right; + padding: 3px 5px 4px 5px; + font-size: 13px; + color: #fff; + background-color: #27c54e; + font-weight: 700; + text-shadow: 0 1px 0 rgba(0, 0, 0, 0.2); + display: inline-block; + min-width: 10px; + line-height: 1; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: 0.25em; + left: 140px; +} +.l-content .l-center .l-stat .l-stat__col a ul li:first-child span { + float: right; + padding: 3px 5px 4px 5px; + font-size: 13px; + color: #fff; + background-color: #34b5dd; + font-weight: 700; + text-shadow: 0 1px 0 rgba(0, 0, 0, 0.2); + display: inline-block; + min-width: 10px; + line-height: 1; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: 10px; +} +.l-content .l-center .l-stat .l-stat__col a ul li:before { + font-family: 'Font Awesome 5 Free'; + font-weight: bold; + content: "\f03a"; + padding-right: 15px; +} +.l-content .l-center .l-stat .l-stat__col:nth-of-type(1) a .l-stat__col-title:before { + content: "\f500"; +} +.l-content .l-center .l-stat .l-stat__col:nth-of-type(1) a ul li:nth-of-type(1):before { + content: "\f0a0"; +} +.l-content .l-center .l-stat .l-stat__col:nth-of-type(1) a ul li:nth-of-type(2):before { + content: "\f75b"; +} +.l-content .l-center .l-stat .l-stat__col:nth-of-type(1) a ul li:nth-of-type(3):before { + content: "\f05e"; +} +.l-content .l-center .l-stat .l-stat__col:nth-of-type(2) a .l-stat__col-title:before { + content: "\f233"; +} +.l-content .l-center .l-stat .l-stat__col:nth-of-type(2) a ul li:nth-of-type(1):before { + content: "\f0ac"; +} +.l-content .l-center .l-stat .l-stat__col:nth-of-type(2) a ul li:nth-of-type(2):before { + content: "\f0c5"; +} +.l-content .l-center .l-stat .l-stat__col:nth-of-type(2) a ul li:nth-of-type(3):before { + content: "\f05e"; +} +.l-content .l-center .l-stat .l-stat__col:nth-of-type(3) a .l-stat__col-title:before { + content: "\f6ff"; +} +.l-content .l-center .l-stat .l-stat__col:nth-of-type(3) a ul li:nth-of-type(1):before { + content: "\f0ac"; +} +.l-content .l-center .l-stat .l-stat__col:nth-of-type(3) a ul li:nth-of-type(2):before { + content: "\f303"; +} +.l-content .l-center .l-stat .l-stat__col:nth-of-type(3) a ul li:nth-of-type(3):before { + content: "\f05e"; +} +.l-content .l-center .l-stat .l-stat__col:nth-of-type(4) a .l-stat__col-title:before { + content: "\f674"; +} +.l-content .l-center .l-stat .l-stat__col:nth-of-type(4) a ul li:nth-of-type(1):before { + content: "\f0ac"; +} +.l-content .l-center .l-stat .l-stat__col:nth-of-type(4) a ul li:nth-of-type(2):before { + content: "\f2bb"; +} +.l-content .l-center .l-stat .l-stat__col:nth-of-type(4) a ul li:nth-of-type(3):before { + content: "\f05e"; +} +.l-content .l-center .l-stat .l-stat__col:nth-of-type(5) a .l-stat__col-title:before { + content: "\f1c0"; +} +.l-content .l-center .l-stat .l-stat__col:nth-of-type(5) a ul li:nth-of-type(1):before { + content: "\f1c0"; +} +.l-content .l-center .l-stat .l-stat__col:nth-of-type(5) a ul li:nth-of-type(2):before { + content: "\f05e"; +} +.l-content .l-center .l-stat .l-stat__col:nth-of-type(5) a ul li:nth-of-type(3):before { + content: "\f05e"; +} +.l-content .l-center .l-stat .l-stat__col:nth-of-type(6) a .l-stat__col-title:before { + content: "\f120"; +} +.l-content .l-center .l-stat .l-stat__col:nth-of-type(6) a ul li:nth-of-type(1):before { + content: "\f120"; +} +.l-content .l-center .l-stat .l-stat__col:nth-of-type(6) a ul li:nth-of-type(2):before { + content: "\f05e"; +} +.l-content .l-center .l-stat .l-stat__col:nth-of-type(6) a ul li:nth-of-type(3):before { + content: "\f05e"; +} +.l-content .l-center .l-stat .l-stat__col:nth-of-type(7) a .l-stat__col-title:before { + content: "\f019"; +} +.l-content .l-center .l-stat .l-stat__col:nth-of-type(7) a ul li:nth-of-type(1):before { + content: "\f019"; +} +.l-content .l-center .l-stat .l-stat__col:nth-of-type(7) a ul li:nth-of-type(2):before { + content: "\f05e"; +} +.l-content .l-center .l-stat .l-stat__col:nth-of-type(7) a ul li:nth-of-type(3):before { + content: "\f05e"; +} +.l-content .l-center .l-sort { + padding: 0 20px; + position: relative; + z-index: 98; + width: auto; + margin-top: unset !important; + background-color: #f6f8f8; + border-bottom: 1px solid #dee5e8; + margin-bottom: 30px; +} +.l-content .l-center .l-sort .l-sort__create-btn { + bottom: -20px; +} +.l-content .l-center .l-sort .context-menu { + top: 77px; +} +.l-content .l-center .l-sort .l-sort-toolbar { + padding: 24px 0 22px 0; + color: #98a6ac; +} +.l-content .l-center .l-sort .l-sort-toolbar .l-select { + border-radius: 3px 0 0 3px; + background: #fff; + border: 1px solid #dee5e8; +} +.l-content .l-center .l-sort .l-sort-toolbar .l-sort-toolbar__filter-apply { + border-radius: 0 3px 3px 0; +} +.l-content .l-center .l-sort .l-sort-toolbar table tbody tr .l-sort-toolbar__search-box form .search-input { + border-radius: 3px 0 0 3px; + border: 1px solid #dee5e8; +} +.l-content .l-center .l-sort .l-sort-toolbar table tbody tr .l-sort-toolbar__search-box form .l-sort-toolbar__search { + border-radius: 0 3px 3px 0; +} +.l-content .l-center .l-sort .l-sort-toolbar table tbody tr .sort-by { + padding-left: 30px; +} +.l-content .l-center .l-unit { + padding: 0 0 0 15px; + overflow: hidden; + margin: 0px 20px 20px 20px; + background: #fff; + border-radius: 3px; + border-bottom: none !important; + border-left: none !important; + color: #98a6ac; + font-size: 14px; +} +.l-content .l-center .l-unit.selected { + background-color: #e4eaed; +} +.l-content .l-center .l-unit--suspended { + background-color: #eaeaea !important; +} +.l-content .l-center .l-unit.selected .l-percent { + border-bottom: none; + margin-top: 1px; + width: 200px; + background: #cbd3d7; +} +.l-content .l-center .l-unit .l-unit-toolbar .l-unit-toolbar__col.l-unit-toolbar__col--right { + position: relative; + top: 20px; + right: 20px; + display: block; +} +.l-content .l-center .l-unit .l-unit-toolbar .l-unit-toolbar__col.l-unit-toolbar__col--right .actions-panel__col { + margin-left: 10px; + border-radius: 3px; + overflow: hidden; + border-right: none; + background-color: #dde6e8; +} +.l-content .l-center .l-unit .l-unit-toolbar .l-unit-toolbar__col.l-unit-toolbar__col--right .actions-panel__col a { + font-weight: 500; +} +.l-content .l-center .l-unit .l-unit-toolbar .l-unit-toolbar__col .check-label:before { + z-index: 97; +} +.l-content .l-center .l-unit .l-unit__col .l-unit__name { + color: #34b5dd; + font-weight: 500; + font-size: 24px; + margin-bottom: unset; +} +.l-content .l-center .l-unit .l-unit__col .l-unit__ip { + font-size: 18px; +} +.l-content .l-center .l-unit .l-unit__col .l-unit__date { + letter-spacing: unset; + display: inline-block; + border-bottom: solid 10px #ffeb0087; + line-height: 3px; + padding: 0 0px; + margin-bottom: 30px; + font-weight: 400; + font-size: 16px; +} +.l-content .l-center .l-unit .l-unit__col .l-unit__stats td { + height: 27px; +} +.l-content .l-center .io-box { + overflow: hidden; + margin: 20px 20px 0px 20px; + color: #98a6ac; +} +.l-content .l-center .io-box .io-box-left { + float: left; + width: calc(100% - 800px); + min-width: 410px; + text-align: center; +} +.l-content .l-center .io-box .io-box-left .io-box-left-items { + float: left; + width: calc(50% - 20px); + height: 137px; + margin-right: 20px; + margin-bottom: 20px; + background: #fff; + border-radius: 3px; +} +.l-content .l-center .io-box .io-box-left .io-box-left-items a { + display: block; + font-size: 36px; + font-weight: 300; + margin-top: 32px; +} +.l-content .l-center .io-box .io-box-left .io-1-homepage-block { + color: #98a6ac; +} +.l-content .l-center .io-box .io-box-left .io-1-homepage-block a { + color: #34b5dd; +} +.l-content .l-center .io-box .io-box-left .io-2-homepage-block { + color: #b4efc2; + background-color: #27c54e; +} +.l-content .l-center .io-box .io-box-left .io-2-homepage-block a { + color: #ecfff1; +} +.l-content .l-center .io-box .io-box-left .io-3-homepage-block { + color: #b0e1f1; + background-color: #34b5dd; +} +.l-content .l-center .io-box .io-box-left .io-3-homepage-block a { + color: #dcf2f8; +} +.l-content .l-center .io-box .io-box-left .io-4-homepage-block { + color: #98a6ac; +} +.l-content .l-center .io-box .io-box-left .io-4-homepage-block a { + color: #58666f; +} +.l-content .l-center .io-box .io-box-left .io-5-homepage-block { + width: calc(100% - 20px); + color: #98a6ac; + background: #e4eaed; +} +.l-content .l-center .io-box .io-box-left .io-5-homepage-block a { + color: #27c54e; +} +.l-content .l-center .io-box .io-box-left .io-5-homepage-block:before { + font-family: 'Font Awesome 5 Free'; + font-weight: bold; + font-size: 32px; + background: #dde6e8; + height: 121px; + width: 115px; + line-height: 90px; + content: "\f581"; + color: #fff; + float: left; + border-radius: 5px 0 0 5px; + padding-top: 16px; +} +.l-content .l-center .io-box .io-box-right { + float: right; + width: 800px; + background: #fff; + height: 450px; + overflow: hidden; + border-radius: 3px; + text-align: center; +} +.l-content .l-center .io-box .io-box-right img { + margin-top: 8px; + width: 767px; + height: 433px; + position: relative; +} +.l-content .l-center .l-unit-ft { + padding: 0 0 37px 15px; + overflow: hidden; + margin: 0px 20px 19px 20px; + background: #e4eaed; + border-radius: 3px; + border-bottom: none !important; + border-left: none !important; + position: relative; + color: #a6b0b4; + font-weight: bold; + text-transform: uppercase; + font-size: 11px; +} +.l-content .l-center .l-unit-ft:before { + font-family: "Font Awesome 5 Free"; + font-weight: bold; + font-size: 32px; + background: #dde6e8; + height: 100%; + width: 90px; + line-height: 108px; + content: "\f05a"; + color: #fff; + float: left; + border-radius: 5px 0 0 5px; + position: absolute; + left: 0; + text-align: center; +} +.l-content .l-center .l-unit-ft .data { + margin: 0 0 50px 0; +} +.l-content .l-center #vstobjects { + padding: 0 0 0 15px; + overflow: hidden; + margin: 0px 20px 20px 20px; + background: #fff; + border-radius: 3px; + border-bottom: none !important; + border-left: none !important; + color: #98a6ac; + font-size: 14px; +} +.l-content .l-center #vstobjects .data-date { + color: #98A6AC; + letter-spacing: unset; + display: inline-block; + border-bottom: solid 10px #ffeb0087; + line-height: 3px; + padding: 0 0px; + margin-bottom: 30px; + font-weight: 400; + font-size: 16px; +} +.l-content .l-center .vst-text.step-top.helper-container { + margin-bottom: unset; + margin-top: 0; + float: unset; + height: auto; + width: auto; +} +.l-content .l-center .vst-text.step-top.helper-container #tabs.cron-helper-tabs { + padding: 0 0 0 15px; + overflow: hidden; + margin: 0 20px 20px 20px; + background: #fff; + border-radius: 3px; + border-bottom: none !important; + border-left: none !important; + color: #98a6ac; + font-size: 14px; + border: none !important; +} +.l-content > .units.l-center::before { + content: ''; + display: block; + height: 0; +} +.l-content > .l-center { + margin-left: 200px; + margin-right: 40px; +} +.l-content > .l-center:first-child { + margin-left: 0; +} +.l-content #vstobjects > .l-center { + margin-left: 200px; + margin-right: 40px; + padding-top: 0; + padding-bottom: 1px; +} +.l-content .io-log { + color: #58666f; + border-left: 1px solid #dee5e8; + width: 240px; + position: fixed; + display: block; + /*overflow-scrolling: auto;*/ + z-index: 98; + top: 50px; + right: -200px; + background: #fff; + word-break: break-word; + overflow: hidden; + border-right: 10px solid #e3e3e3; + box-sizing: border-box; + /* Firefox */ + /* width */ +} +.l-content .io-log::-webkit-scrollbar { + width: 7px; + /* Track */ +} +.l-content .io-log::-webkit-scrollbar-track { + background: rgba(255, 255, 255, 0); + /* Handle */ +} +.l-content .io-log::-webkit-scrollbar-thumb { + background: rgba(0, 0, 0, 0.15); + border-radius: 7px; + /* Handle on hover */ +} +.l-content .io-log::-webkit-scrollbar-thumb:hover { + background: rgba(0, 0, 0, 0.4); + border-radius: 7px; +} +.l-content .io-log > * { + margin: 0 20px; +} +.l-content .io-log h2 { + margin: 0 0 20px 0; + padding-left: 20px; + font-size: 24px; + font-weight: 300; + line-height: 60px; + color: #98a6ac; + border-bottom: 1px solid #dee5e8; + cursor: pointer; +} +.l-content .io-log h2:before { + font-family: "Font Awesome 5 Free"; + font-weight: bold; + content: "\f15c"; + padding-right: 10px; + font-size: 17px; +} +.l-content .io-log > div { + /* border-left: solid 1px #dee5e8; */ + padding-left: 15px; + position: relative; + margin-left: 25px; +} +.l-content .io-log > div > div { + position: relative; + margin-bottom: 25px; +} +.l-content .io-log > div > div > div:nth-of-type(2) { + color: #98a6ac; + font-size: 13px; + margin-bottom: 5px; +} +.l-content .io-log > div > div > div:nth-of-type(3) { + color: #98a6ac; + font-size: 13px; + margin-bottom: 5px; +} +.l-content .io-log > div > div:before { + content: ''; + position: absolute; + height: 100%; + width: 7px; + border-radius: 10px; + border: solid 1px #dee5e8; + background: #e0fff9; + left: -20px; +} +.l-content .io-log > div > div:first-child(1n):before { + background: #e0fff9; +} +.l-content .io-log > div > div:nth-child(2n):before { + background: #fbffe0; +} +.l-content .io-log > div > div:nth-child(3n):before { + background: #fbffe0; +} +.l-content .io-log > div > div:nth-child(4n):before { + background: #fbffe0; +} +.l-content .io-log > div > div:nth-child(5n):before { + background: #fbffe0; +} + + +.l-content .io-log2 { + color: #58666f; + border-left: 1px solid #dee5e8; + border-top: 1px solid #cecece; + width: 240px; + position: fixed; + height: 100%; + display: block; + /*overflow-scrolling: auto;*/ + z-index: 98; + top: 380px; + right: -200px; + background: #fff; + word-break: break-word; + overflow-y: scroll; + scrollbar-width: thin; + box-sizing: border-box; + /* Firefox */ + /* width */ +} +.l-content .io-log2::-webkit-scrollbar { + width: 7px; + /* Track */ +} +.l-content .io-log2::-webkit-scrollbar-track { + background: rgba(255, 255, 255, 0); + /* Handle */ +} +.l-content .io-log2::-webkit-scrollbar-thumb { + background: rgba(0, 0, 0, 0.15); + border-radius: 7px; + /* Handle on hover */ +} +.l-content .io-log2::-webkit-scrollbar-thumb:hover { + background: rgba(0, 0, 0, 0.4); + border-radius: 7px; +} +.l-content .io-log2 > * { + margin: 0 20px; +} +.l-content .io-log2 h2 { + margin: 0 0 20px 0; + padding-left: 20px; + font-size: 24px; + font-weight: 300; + line-height: 60px; + color: #98a6ac; + border-bottom: 1px solid #dee5e8; + cursor: pointer; +} +.l-content .io-log2 h2:before { + font-family: "Font Awesome 5 Free"; + font-weight: bold; + content: "\f15c"; + padding-right: 10px; + font-size: 17px; +} +.l-content .io-log2 > div { + border-left: solid 1px #dee5e8; + padding-left: 15px; + position: relative; + margin-left: 25px; +} +.l-content .io-log2 > div > div { + position: relative; + margin-bottom: 25px; +} +.l-content .io-log2 > div > div > div:nth-of-type(2) { + color: #98a6ac; + font-size: 12px; + margin-bottom: 5px; +} +.l-content .io-log2 > div > div:before { + content: ''; + position: absolute; + height: 100%; + width: 7px; + border-radius: 10px; + border: solid 1px #dee5e8; + background: #fff; + left: -20px; +} +.l-content .io-log2 > div > div:nth-child(2n):before { + border: solid 1px #27c54e; +} +.l-content .io-log2 > div > div:nth-child(3n):before { + border: solid 1px #27bbc5; +} +.l-content .io-log2 > div > div:nth-child(4n):before { + border: solid 1px #275bc5; +} +.l-content .io-log2 > div > div:nth-child(5n):before { + border: solid 1px #ffcc00; +} + + +#tooltip { + background-color: #34b5dd; +} +.l-sort__create-btn.edit:hover #tooltip { + background-color: #49c8ef; +} +.l-sort__create-btn.edit:active #tooltip { + background-color: #00d8ff !important; +} +.l-sort__create-btn:active #tooltip { + background-color: #00d8ff; +} +.body-login, .body-reset { + background-color: #f0f3f5; +} +.body-login .login, .body-reset .login { + font-family: Arial, Helvetica, sans-serif; + border: 1px solid #e7ecee; + border-radius: 10px; + overflow: hidden; + position: relative; + padding: 35px 35px 10px 35px; + display: block; + width: 420px; + box-shadow: 0 2px 2px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(0, 0, 0, 0.05); +} +.body-login .login > tbody > tr > td > table > tbody > tr:nth-of-type(1) > td:nth-of-type(1), .body-reset .login > tbody > tr > td > table > tbody > tr:nth-of-type(1) > td:nth-of-type(1) { + position: absolute; + text-align: center; + width: calc(100% - 46px); +} +/* +.body-login .login > tbody > tr > td > table > tbody > tr:nth-of-type(1) > td:nth-of-type(1) a, .body-reset .login > tbody > tr > td > table > tbody > tr:nth-of-type(1) > td:nth-of-type(1) a { + background-image: url(/images/sprite.png?1446554103); + background-position: -65px -182px; + background-repeat: no-repeat; + display: inline-block; + height: 40px; + margin-top: 0; + width: 80px; + margin-left: 0; + background-size: 235px 325px; + position: relative; +} +*/ +/* +.body-login .login > tbody > tr > td > table > tbody > tr:nth-of-type(1) > td:nth-of-type(1) a img, .body-reset .login > tbody > tr > td > table > tbody > tr:nth-of-type(1) > td:nth-of-type(1) a img { + display: none; +} +*/ +.body-login .login > tbody > tr > td > table > tbody > tr:nth-of-type(1) > td:nth-of-type(2), .body-reset .login > tbody > tr > td > table > tbody > tr:nth-of-type(1) > td:nth-of-type(2) { + position: relative; + padding: 65px 0 0 0 !important; +} +.body-login .login > tbody > tr > td > table > tbody > tr:nth-of-type(1) > td:nth-of-type(2) .vst-input, .body-reset .login > tbody > tr > td > table > tbody > tr:nth-of-type(1) > td:nth-of-type(2) .vst-input { + padding: 5px 10px; + margin: 0; + width: 320px !important; + margin-top: 7px; + border-radius: 3px; + border: solid 1px #d3d9e2; +} +.body-login .login > tbody > tr > td > table > tbody > tr:nth-of-type(1) > td:nth-of-type(2) .button, .body-reset .login > tbody > tr > td > table > tbody > tr:nth-of-type(1) > td:nth-of-type(2) .button, .body-login .login > tbody > tr > td > table > tbody > tr:nth-of-type(1) > td:nth-of-type(2) .button:hover, .body-reset .login > tbody > tr > td > table > tbody > tr:nth-of-type(1) > td:nth-of-type(2) .button:hover, .body-login .login > tbody > tr > td > table > tbody > tr:nth-of-type(1) > td:nth-of-type(2) .button:active, .body-reset .login > tbody > tr > td > table > tbody > tr:nth-of-type(1) > td:nth-of-type(2) .button:active { + width: 100% !important; + border: 1px solid #27c54e; + background-color: #27c54e; + color: #f4f3f9; + margin-bottom: 20px; +} +.body-login .login > tbody > tr > td > table > tbody > tr:nth-of-type(2) .login-bottom, .body-reset .login > tbody > tr > td > table > tbody > tr:nth-of-type(2) .login-bottom { + width: auto; + text-align: center; + padding-bottom: unset; + padding: 0; +} +.body-login .login-box .vst-advanced, .body-reset .login-box .vst-advanced { + color: #34b5dd; +} +.body-web-log .l-header > .l-center { + margin-left: 0; +} +.l-stat__col span { + padding: 4px 0; + font-size: 15px; + position: fixed; + display: inline-block; + left: 159px; +} +.l-sort__create-btn2 { + background-image: url("/images/sprite.png?1446554103"); + background-position: -331px -107px; + background-repeat: no-repeat; + display: inline-block; + height: 45px; + width: 45px; +} +/* +.ui-resizable-handle { + background-color: #333 !important; +} +*/ +/* +div.ui-dialog div { + background-color: #333 !important; +} +*/ +div.ui-dialog > div { + background-color: #333 !important; +} +div.ui-dialog > div div { + background-color: #333 !important; +} +/* +div.ui-dialog > div > div { + background-color: #333 !important; +} +div.ui-dialog + div { + background-color: #333 !important; +} +div.ui-dialog + div div{ + background-color: #333 !important; +} +*/ +/* +.ui-dialog-titlebar { + background-color: #333 !important; +} +.ui-dialog-buttonpane { + background-color: #333 !important; +} +*/ diff --git a/web/css/styles.fix.css.map b/web/css/styles.fix.css.map new file mode 100644 index 00000000..c6718a78 --- /dev/null +++ b/web/css/styles.fix.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["styles.fix.scss"],"names":[],"mappings":";AAAA;EACI;EACA;EACA;;;AAMJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;AAOJ;EACI;EACA;EACA;EACA;;AAOJ;EACI;EACA;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;;AAEA;EACI;EACA;;AAEA;EACI;;AAMR;EACI;;AAEA;EACI;AACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAII;EACI;EACA;EACA;;AAEA;EACI;;AAEJ;EACI;;AAMJ;EACI;EACA;EACA;EACA;EACA;;AAQZ;EACI;;AAEA;EACI;;AAIR;EACI;;AAGJ;EACI;;AAKZ;EACI;;;AAQR;EACI;EACA;;AAEA;EACI;;AAEA;EACI;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EAyCA;EAEA;AAAwB;EACxB;AAAgC;AAEhC;AAMA;AAKA;;AAVA;EACI;EACA;;AAIJ;EACI;;AAIJ;EACI;;AAIJ;AACI;;AACA;EACI;;AAKR;EAEI;EAKA;EACA;EACA;EACA;EACA;EAGA;EACA;;AAIJ;EACI;;AAEA;EACI;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAQZ;EACI;EACA;;AAII;EACI;;AAEA;EACI;;AAMZ;EACI;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAIR;EACI;;AAEA;EAEI;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAIA;EAEA;EACA;EACA;EAEA;;AA8BA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAIA;EAEA;EACA;EACA;EAEA;;AAIR;EACI;EACA;EACA;EACA;;AASR;EACI;;AAKA;EACI;;AAEJ;EAEI;;AAEJ;EACI;;AAQR;EACI;;AAKA;EACI;;AAEJ;EACI;;AAEJ;EACI;;AAQR;EACI;;AAKA;EACI;;AAEJ;EACI;;AAEJ;EACI;;AAQR;EACI;;AAKA;EACI;;AAEJ;EACI;;AAEJ;EACI;;AAQR;EACI;;AAKA;EACI;;AAEJ;EACI;;AAEJ;EACI;;AAQR;EACI;;AAKA;EACI;;AAEJ;EACI;;AAEJ;EACI;;AAQR;EACI;;AAKA;EACI;;AAEJ;EACI;;AAEJ;EACI;;AAWxB;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAcJ;EACI;EACA;;AAEA;EACI;EACA;EACA;;AAGJ;EACI;;AAiBgB;EACI;EACA;;AAGJ;EACI;;AAqCZ;EACI;;AAmBxB;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEI;;AAOI;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAUR;EACI;;AAQZ;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAOJ;EACI;;AAYZ;EACI;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;;AAQR;EACI;;AAEA;EACI;;AAGR;EACI;EAEA;;AAEA;EACI;;AAGR;EACI;EACA;;AAEA;EACI;;AAGR;EACI;;AAEA;EACI;;AAGR;EACI;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;;AAKZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAII;EACA;EACA;;AAKZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAKZ;EACI;EACA;EACA;;AAEJ;EACI;EACA;;AAEA;EACI;;AAUJ;EACI;EACA;EACA;EACA;;AA0BR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA;EACA;EACA;EACA;EACA;EAQA;EAEA;AAAwB;AAExB;AAKA;AAKA;AAMA;;AAfA;EACI;;AAIJ;EACI;;AAIJ;EACI;EACA;;AAIJ;EACI;EACA;;AAGJ;EACI;;AAIJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAKR;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAEA;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;EACI;;AAKJ;EACI;;AAKJ;EACI;;AAKJ;EACI;;;AA8CxB;EACI;;;AAGJ;EACI;;;AAEJ;EACI;;;AAGJ;EACI;;;AAIJ;EACI;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAQwB;EACI;EACA;EACA;;AAEA;EACI;EACA;AACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA;EACA;EACA;;AAEA;EACI;;AAIZ;EACI;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAKR;EACI;EACA;EACA;EACA;;AAUhC;EACI;;;AAMJ;EACI","file":"styles.fix.css"} \ No newline at end of file diff --git a/web/css/styles.min.css b/web/css/styles.min.css index edc706d5..5f63b030 100644 --- a/web/css/styles.min.css +++ b/web/css/styles.min.css @@ -149,20 +149,20 @@ * `em` units. */ html { - font-family: sans-serif; - /* 1 */ - -ms-text-size-adjust: 100%; - /* 2 */ - -webkit-text-size-adjust: 100%; - /* 2 */ + font-family: sans-serif; + /* 1 */ + -ms-text-size-adjust: 100%; + /* 2 */ + -webkit-text-size-adjust: 100%; + /* 2 */ } /** * Remove default margin. */ body { - margin: 0; - background-color: #fff; + margin: 0; + background-color: #fff; } /* HTML5 display definitions @@ -173,34 +173,19 @@ body { * and Firefox. * Correct `block` display not defined for `main` in IE 11. */ -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; +article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { + display: block; } /** * 1. Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3. * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. */ -audio, -canvas, -progress, -video { - display: inline-block; - /* 1 */ - vertical-align: baseline; - /* 2 */ +audio, canvas, progress, video { + display: inline-block; + /* 1 */ + vertical-align: baseline; + /* 2 */ } /** @@ -208,61 +193,55 @@ video { * Remove excess height in iOS 5 devices. */ audio:not([controls]) { - display: none; - height: 0; + display: none; + height: 0; } /** * Address `[hidden]` styling not present in IE 8/9/10. * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. */ -[hidden], -template { - display: none; +[hidden], template, .hidden { + display: none; } -.hidden { - display: none; -} /* Links ========================================================================== */ /** * Remove the gray background color from active links in IE 10. */ a { - background-color: transparent; + background-color: transparent; +} +a:active, a:hover { + outline: 0; } /** * Improve readability when focused and also mouse hovered in all browsers. */ -a:active, a:hover { - outline: 0; -} - /* Text-level semantics ========================================================================== */ /** * Address styling not present in IE 8/9/10/11, Safari, and Chrome. */ abbr[title] { - border-bottom: 1px dotted; + border-bottom: 1px dotted; } /** * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. */ -b, -strong { - font-weight: bold; - color: #5f5f5f; +b, strong { + font-weight: bold; + color: #5f5f5f; } /** * Address styling not present in Safari and Chrome. */ dfn { - font-style: italic; + font-style: italic; } /** @@ -270,42 +249,45 @@ dfn { * contexts in Firefox 4+, Safari, and Chrome. */ h1 { - font-size: 2em; - margin: 0.67em 0; + font-size: 2em; + margin: 0.67em 0; } /** * Addresses styling not present in IE 8/9. */ mark { - background: #ff0; - color: #000; + background: #ff0; + color: #000; } /** * Address inconsistent and variable font size in all browsers. */ small { - font-size: 80%; + font-size: 80%; } /** * Prevent `sub` and `sup` affecting `line-height` in all browsers. */ -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; +sub { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; } sup { - top: -0.5em; + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; + top: -0.5em; } sub { - bottom: -0.25em; + bottom: -0.25em; } /* Embedded content @@ -315,14 +297,14 @@ sub { * 2. Improves image quality when scaled in IE 7. */ img { - border: 0; + border: 0; } /** * Correct overflow not hidden in IE 9/10/11. */ svg:not(:root) { - overflow: hidden; + overflow: hidden; } /* Grouping content @@ -331,34 +313,31 @@ svg:not(:root) { * Address margin not present in IE 8/9 and Safari. */ figure { - margin: 1em 40px; + margin: 1em 40px; } /** * Address differences between Firefox and other browsers. */ hr { - box-sizing: content-box; - height: 0; + box-sizing: content-box; + height: 0; } /** * Contain overflow in all browsers. */ pre { - overflow: auto; + overflow: auto; } /** * Address odd `em`-unit font size rendering in all browsers. * Correct font family set oddly in IE 6, Safari 4/5, and Chrome. */ -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; +code, kbd, pre, samp { + font-family: monospace, monospace; + font-size: 1em; } /* Forms @@ -374,24 +353,23 @@ samp { * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. * 4. Improves appearance and consistency in all browsers. */ -button, -input, -optgroup, -select, -textarea { - color: inherit; - /* 1 */ - font: inherit; - /* 2 */ - margin: 0; - /* 3 */ +button, input, optgroup, select, textarea { + color: inherit; + /* 1 */ + font: inherit; + /* 2 */ + margin: 0; + /* 3 */ } /** * Address `overflow` set to `hidden` in IE 8/9/10/11. */ button { - overflow: visible; + overflow: visible; + text-transform: none; + /*color: transparent !important;*/ + text-shadow: 0 0 0 #555 !important; } /** @@ -400,11 +378,10 @@ button { * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. * Correct `select` style inheritance in Firefox. */ -button, select { - text-transform: none; - /*color: transparent !important;*/ - text-shadow: 0 0 0 #555 !important; + text-transform: none; + /*color: transparent !important;*/ + text-shadow: 0 0 0 #555 !important; } /** @@ -416,93 +393,92 @@ select { * 4. Removes inner spacing in IE 7 without affecting normal text inputs. * Known issue: inner spacing remains in IE 6. */ -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - /* 2 */ - cursor: pointer; - /* 3 */ +button, html input[type=button] { + -webkit-appearance: button; + /* 2 */ + cursor: pointer; + /* 3 */ +} + +input[type=reset], input[type=submit] { + -webkit-appearance: button; + /* 2 */ + cursor: pointer; + /* 3 */ } /** * Re-set default cursor for disabled elements. */ -button[disabled], -html input[disabled] { - cursor: default; +button[disabled], html input[disabled] { + cursor: default; } /** * Remove inner padding and border in Firefox 4+. */ -button::-moz-focus-inner, +button::-moz-focus-inner { + border: 0; + padding: 0; +} + +input { + line-height: normal; +} input::-moz-focus-inner { - border: 0; - padding: 0; + border: 0; + padding: 0; +} +input[type=checkbox], input[type=radio] { + box-sizing: border-box; + /* 1 */ + padding: 0; + /* 2 */ +} +input[type=number]::-webkit-inner-spin-button, input[type=number]::-webkit-outer-spin-button { + height: auto; +} +input[type=search] { + -webkit-appearance: textfield; + /* 1 */ + /* 2 */ + box-sizing: content-box; +} +input[type=search]::-webkit-search-cancel-button, input[type=search]::-webkit-search-decoration { + -webkit-appearance: none; } /** * Address Firefox 4+ setting `line-height` on `input` using `!important` in * the UA stylesheet. */ -input { - line-height: normal; -} - /** * 1. Address box sizing set to `content-box` in IE 8/9/10. * 2. Remove excess padding in IE 8/9/10. * Known issue: excess padding remains in IE 6. */ -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; - /* 1 */ - padding: 0; - /* 2 */ -} - /** * Fix the cursor style for Chrome's increment/decrement buttons. For certain * `font-size` values of the `input`, it causes the cursor style of the * decrement button to change from `default` to `text`. */ -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} - /** * 1. Address `appearance` set to `searchfield` in Safari and Chrome. * 2. Address `box-sizing` set to `border-box` in Safari and Chrome * (include `-moz` to future-proof). */ -input[type="search"] { - -webkit-appearance: textfield; - /* 1 */ - /* 2 */ - box-sizing: content-box; -} - /** * Remove inner padding and search cancel button in Safari and Chrome on OS X. * Safari (but not Chrome) clips the cancel button when the search input has * padding (and `textfield` appearance). */ -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - /** * Define consistent border, margin, and padding. */ fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; } /** @@ -512,17 +488,17 @@ fieldset { * 4. Corrects alignment displayed oddly in IE 6/7. */ legend { - border: 0; - /* 1 */ - padding: 0; - /* 2 */ + border: 0; + /* 1 */ + padding: 0; + /* 2 */ } /** * Remove default vertical scrollbar in IE 8/9/10/11. */ textarea { - overflow: auto; + overflow: auto; } /** @@ -530,7 +506,7 @@ textarea { * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. */ optgroup { - font-weight: bold; + font-weight: bold; } /* Tables @@ -539,2249 +515,2248 @@ optgroup { * Remove most spacing between table cells. */ table { - border-collapse: collapse; - border-spacing: 0; + border-collapse: collapse; + border-spacing: 0; } -td, -th { - padding: 0; +td, th { + padding: 0; } * { - -webkit-tap-highlight-color: transparent; + -webkit-tap-highlight-color: transparent; } body { -/* -webkit-touch-callout: none; - -webkit-text-size-adjust: none; - -webkit-user-select: none; */ + /* -webkit-touch-callout: none; + -webkit-text-size-adjust: none; + -webkit-user-select: none; */ } -html, -input, -textarea, -select, -button { - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; +html, input, textarea, select, button { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; } html { - height: 100%; + height: 100%; } body { - font-family: arial; - overflow-x: hidden; - font-size: 14px; - height: 100%; - color: #929292; + font-family: arial; + overflow-x: hidden; + font-size: 14px; + height: 100%; + color: #929292; } .body-login, .body-reset { - height: auto; - padding-top: 10%; - /*background: url(/images/edit_bg.png);*/ - background-color: #eee; + height: auto; + padding-top: 10%; + /*background: url(/images/edit_bg.png);*/ + background-color: #eee; } a { - text-decoration: none; - color: #929292; + text-decoration: none; + color: #929292; } .disabled { - text-decoration: line-through; + text-decoration: line-through; } -.clearfix:before, -.clearfix:after { - content: ''; - display: table; +.clearfix:before { + content: ""; + display: table; } - .clearfix:after { - clear: both; + content: ""; + display: table; + clear: both; } .text-right { - text-align: right; + text-align: right; } .text-center { - text-align: center; + text-align: center; } .check-label { - display: inline-block; - cursor: pointer; - position: relative; - line-height: 16px; - padding-left: 26px; + display: inline-block; + cursor: pointer; + position: relative; + line-height: 16px; + padding-left: 26px; } - .check-label:before { - content: ''; - width: 16px; - height: 16px; - position: absolute; - left: 0; - top: 0; - display: inline-block; - background-image: url("/images/sprite.png?1446554103"); - background-size: 450px auto; - background-repeat: no-repeat; - background-position: -232px -9px; - z-index: 99; + content: ""; + width: 16px; + height: 16px; + position: absolute; + left: 0; + top: 0; + display: inline-block; + background-image: url("/images/sprite.png?1446554103"); + background-size: 450px auto; + background-repeat: no-repeat; + background-position: -232px -9px; + z-index: 99; } -input[type="checkbox"] { - display: none; +input[type=checkbox] { + display: none; } -.clicked-on.check-label:before, -.selected .check-label:before { - content: ''; - display: inline-block; - width: 27px; - height: 27px; - background-position: -225px -42px; - left: -6px; - top: -6px; + +.clicked-on.check-label:before, .selected .check-label:before { + content: ""; + display: inline-block; + width: 27px; + height: 27px; + background-position: -225px -42px; + left: -6px; + top: -6px; } .l-center { - margin: 0 auto; - max-width: 998px; + margin: 0 auto; + max-width: 998px; } .l-logo { - background-image: url("/images/sprite.png?1446554103"); - background-position: -117px -7px; -/* background-position: -125px -478px; */ - background-repeat: no-repeat; - display: inline-block; - float: left; - height: 22px; - margin-top: 4px; - width: 73px; -/* width: 42px; */ - margin-left: -2px; + background-image: url("/images/sprite.png?1446554103"); + background-position: -117px -7px; + /* background-position: -125px -478px; */ + background-repeat: no-repeat; + display: inline-block; + float: left; + height: 22px; + margin-top: 4px; + width: 73px; + /* width: 42px; */ + margin-left: -2px; } .l-header { - background-color: #5d5d5d; - overflow: hidden; - margin-bottom: 28px; - position: fixed; - width: 100%; - z-index: 100; - height: 34px + background-color: #5d5d5d; + overflow: hidden; + margin-bottom: 28px; + position: fixed; + width: 100%; + z-index: 100; + height: 34px; } .l-header a { - font-size: 12px; -} - -.l-menu__item--active { - //background-color: #fff; + font-size: 12px; } .l-menu__item.l-menu__item--active a { - color: #ff6701; - font-size: 10px; - font-weight: bold; - text-transform: uppercase; - background-color: #fff; + color: #9c8cff; + font-size: 10px; + font-weight: bold; + text-transform: uppercase; + background-color: #fff; } .l-menu { - float: left; - position: fixed; - margin-left: 70px; + float: left; + position: fixed; + margin-left: 70px; } + .l-menu__item { - float: left; + float: left; } .l-menu__item a { - color: #f7f7f7; - position: relative; - line-height: 34px; - padding: 11px 18px; + color: #f7f7f7; + position: relative; + line-height: 34px; + padding: 11px 18px; } .l-menu__item a:hover { - background-color: #f79b44; - color: #fff; + background-color: #f79b44; + color: #fff; } .l-menu__item a:active { - color: #fff; - background-color: #ff6701; + color: #fff; + background-color: #9c8cff; } .l-menu.active .l-menu__item.focus a { - text-decoration: underline; - color: #5edad0; + text-decoration: underline; + color: #5edad0; } .l-menu.active .l-menu__item.focus a:hover { - background-color: #f79b44; - color: #fff; + background-color: #f79b44; + color: #fff; } +.lang-ua .l-menu__item a, .lang-nl .l-menu__item a, .lang-fr .l-menu__item a, .lang-ru .l-menu__item a { + padding: 11px 18px; +} -.lang-ua .l-menu__item a, -.lang-nl .l-menu__item a, -.lang-fr .l-menu__item a, -.lang-ru .l-menu__item a { - padding: 11px 18px; -} -.lang-el .l-menu__item a, -.lang-tr .l-menu__item a { - padding: 11px 15px; +.lang-el .l-menu__item a, .lang-tr .l-menu__item a { + padding: 11px 15px; } + .lang-ar .l-menu__item a { - padding: 11px 11px; -} -.lang-ar .l-menu__item a { - line-height: 35px; + padding: 11px 11px; + line-height: 35px; } .lang-de .l-menu__item a { - padding: 11px 12px; + padding: 11px 12px; } .lang-tw .l-menu__item a { - padding: 13px 18px; + padding: 13px 18px; } .l-profile { - overflow: hidden; - float: right; + overflow: hidden; + float: right; } + .l-profile__username { - float: left; - color: #a4abad; - font-weight: 700; - padding: 10px 0 0 10px; - margin-right: 12px; + float: left; + color: #a4abad; + font-weight: 700; + padding: 10px 0 0 10px; + margin-right: 12px; } .l-profile__username:hover { - color: #ffd62e; + color: #ffd62e; } .l-profile__username:active { - color: #f79b44; + color: #f79b44; } - .l-profile__logout { - float: left; - color: #fff; -/* margin-left: 40px; */ - padding: 10px 0 0 10px; + float: left; + color: #fff; + /* margin-left: 40px; */ + padding: 10px 0 0 10px; } .l-profile__logout:hover { - color: #C0E60E; + color: #C0E60E; } .l-profile__logout:active { - color: #ffd62e; + color: #ffd62e; } -.lang-cn .l-profile__logout { - padding: 8px 5px; -} -.lang-tw .l-profile__logout { - padding: 8px 5px; + +.lang-cn .l-profile__logout, .lang-tw .l-profile__logout { + padding: 8px 5px; } .l-profile__notifications { - background: url("/images/sprite.png?1446554103") no-repeat scroll -129px -135px; - border-radius: 30px; - color: #fff; - cursor: pointer; - float: left; - font-weight: bold; - height: 15px; - margin-right: 4px; - margin-top: 5px; - padding: 10px 5px 0; - width: 15px; + background: url("/images/sprite.png?1446554103") no-repeat scroll -129px -135px; + border-radius: 30px; + color: #fff; + cursor: pointer; + float: left; + font-weight: bold; + height: 15px; + margin-right: 4px; + margin-top: 5px; + padding: 10px 5px 0; + width: 15px; } .l-profile__notifications.active { - background-color: #454545; + background-color: #454545; } .l-profile__notifications:hover { - background-color: #333; + background-color: #333; } .l-profile__notifications:active { - background-color: #c4da5e; + background-color: #c4da5e; } .l-profile__notifications.updates { - background-position: -202px -135px; + background-position: -202px -135px; } .notification-container { - background-color: #454545; - box-shadow: 0 2px 7px 0 rgba(0, 0, 0, 0.3); - list-style-type: none; - margin: 0; - overflow: hidden; - padding-left: 0; - position: fixed; - top: 34px; - width: 351px; - z-index: 200; - font-size: 12px; - padding: 0; - color: #7f7f7f; + background-color: #454545; + box-shadow: 0 2px 7px 0 rgba(0, 0, 0, 0.3); + list-style-type: none; + margin: 0; + overflow: hidden; + padding-left: 0; + position: fixed; + top: 34px; + width: 351px; + z-index: 200; + font-size: 12px; + padding: 0; + color: #7f7f7f; } .notification-container .unseen { - color: #ABABAB; + color: #ABABAB; } - - .notification-container li { - border-bottom: 1px solid #555; - padding: 10px 15px 24px; + border-bottom: 1px solid #555; + padding: 10px 15px 24px; } .notification-container .mark-seen { - background-color: #abc04b; - border: 2px solid #454545; - border-radius: 10px; - cursor: pointer; - display: none; - float: right; - height: 7px; - margin-right: -5px; - margin-top: 0; - width: 7px; + background-color: #abc04b; + border: 2px solid #454545; + border-radius: 10px; + cursor: pointer; + display: none; + float: right; + height: 7px; + margin-right: -5px; + margin-top: 0; + width: 7px; } .notification-container .mark-seen:hover { - background-color: #333; - border-color: #abc04b; + background-color: #333; + border-color: #abc04b; } .notification-container .mark-seen:active { - background-color: #777; - border-color: #777; + background-color: #777; + border-color: #777; } -.notification-container .unseen .mark-seen{ - display: inline-block; +.notification-container .unseen .mark-seen { + display: inline-block; } .notification-container .title { - color: #9e9e9e; - font-weight: bold; - line-height: 30px; - padding: 0; - text-transform: none; - float: none; - display: block; + color: #9e9e9e; + font-weight: bold; + line-height: 30px; + padding: 0; + text-transform: none; + float: none; + display: block; } .notification-container .title a { - color: #9e9e9e; + color: #9e9e9e; } - -.notification-container .unseen .title a, .notification-container .unseen .title { - color: #C4DA5E; + color: #C4DA5E; +} +.notification-container .unseen .title a { + color: #C4DA5E; } .notification-container .unseen .title a:hover { - color: #ffcc00; + color: #ffcc00; } .notification-container .unseen .title a:active { - color: #dacf2e; + color: #dacf2e; } - .notification-container a { - color: #5ABDB5;/* #eee;*/ + color: #5ABDB5; + /* #eee;*/ } .notification-container a:hover { - color: #2CA99B; + color: #2CA99B; } .notification-container a:active { - color: #00C0C0; + color: #00C0C0; } - .notification-container .icon { - display: inline-block; - width: 0; + display: inline-block; + width: 0; } .notification-container .icon.filemanager { - display: inline-block; - width: 22px; - background: url("/images/flat_icons.png") repeat scroll -31px -100px; + display: inline-block; + width: 22px; + background: url("/images/flat_icons.png") repeat scroll -31px -100px; } .notification-container .icon.starred { - display: inline-block; - width: 21px; - background: url("/images/sprite.png?1446554103") repeat scroll -184px 556px; + display: inline-block; + width: 21px; + background: url("/images/sprite.png?1446554103") repeat scroll -184px 556px; } - - .l-stat { - margin: 0 auto; - margin: 34px auto; - position: fixed; - background-color: #fff; - z-index: 100; - padding-top: 30px; - width: 100%; - overflow: hidden; + margin: 0 auto; + margin: 34px auto; + position: fixed; + background-color: #fff; + z-index: 100; + padding-top: 30px; + width: 100%; + overflow: hidden; } + .l-stat__col { - display: block; - vertical-align: top; - float: left; + display: block; + vertical-align: top; + float: left; } .l-stat__col a { - display: inline-block; - padding-bottom: 36px; - min-height: 111px; - width: 138px; - border-bottom: 3px solid #fff; - overflow: hidden; - background-color: #fff; - padding-top: 3px; - margin-top: -3px; - padding-left: 5px; + display: inline-block; + padding-bottom: 36px; + min-height: 111px; + width: 138px; + border-bottom: 3px solid #fff; + overflow: hidden; + background-color: #fff; + padding-top: 3px; + margin-top: -3px; + padding-left: 5px; } .l-stat__col a:hover { - border-bottom: 3px solid #ff8e61; + border-bottom: 3px solid #ff8e61; } .l-stat__col a:active { - border-bottom: 3px solid #f72b44; + border-bottom: 3px solid #796cc7; } + .l-stat__col--active a { - border-bottom: 3px solid #ff6e42; + border-bottom: 3px solid #ff6e42; } .l-stat.active .l-stat__col.focus a { - border-bottom: 3px solid #5edad0; + border-bottom: 3px solid #5edad0; } .l-stat.active .l-stat__col.focus a .l-stat__col-title { - color: #36B3A9; + color: #36B3A9; } - - .l-stat__col a:hover .l-stat__col-title { - color: #ff6701; + color: #9c8cff; } .l-stat__col a:active .l-stat__col-title { - color: #f72b44; + color: #796cc7; } - - .l-stat__col ul { - list-style-type: none; - font-size: 12px; - padding-left: 0; + list-style-type: none; + font-size: 12px; + padding-left: 0; } .l-stat__col li { - color: #a0a0a0; - margin-bottom: 8px; - text-transform: lowercase; + color: #a0a0a0; + margin-bottom: 8px; + text-transform: lowercase; } .l-stat__col span { - padding-left: 15px; -} -.l-stat__col-title { - text-transform: uppercase; - font-weight: 700; - color: #212134; - min-height: 21px; -} -.l-stat__col--active .l-stat__col-title { - color: #ff6701; - font-size: 24px; - margin-top: -7px; - letter-spacing: -1px; - margin-right: -8px; + padding-left: 15px; +} + +.l-stat__col-title { + text-transform: uppercase; + font-weight: 700; + color: #212134; + min-height: 21px; +} + +.l-stat__col--active .l-stat__col-title { + color: #9c8cff; + font-size: 24px; + margin-top: -7px; + letter-spacing: -1px; + margin-right: -8px; } -.l-separator.selected, .l-separator { - height: 1px; - background-color: #ddd; + height: 1px; + background-color: #ddd; +} +.l-separator.selected { + height: 1px; + background-color: #ddd; } div.l-content > div.l-separator:nth-of-type(2) { - margin-top: 214px; - width: 100%; - position: fixed; - z-index: 120; + margin-top: 214px; + width: 100%; + position: fixed; + z-index: 120; } - div.l-content > div.l-separator:nth-of-type(4) { - margin-top: 259px; - width: 100%; - position: fixed; - z-index: 100; + margin-top: 259px; + width: 100%; + position: fixed; + z-index: 100; } .l-sort { - position: fixed; - width: 998px; - background-color: #fff; - z-index: 110; - margin-top: 215px; + position: fixed; + width: 998px; + background-color: #fff; + z-index: 110; + margin-top: 215px; } + .l-sort__create-btn { - background-image: url("/images/sprite.png?1446554103"); - background-position: -331px -107px; - background-repeat: no-repeat; - bottom: -23px; - display: inline-block; - height: 45px; - left: 30px; - position: absolute; - width: 45px; - z-index: 3; + background-image: url("/images/sprite.png?1446554103"); + background-position: -331px -107px; + background-repeat: no-repeat; + bottom: -23px; + display: inline-block; + height: 45px; + left: 30px; + position: absolute; + width: 45px; + z-index: 3; } .l-sort__create-btn:hover { - background-position: -378px -107px; + background-position: -378px -107px; } .l-sort__create-btn:active { - background-position: -425px -107px; + background-position: -425px -107px; } + .l-sort__create-btn--active { - background-position: -425px -107px; + background-position: -425px -107px; } .l-sort__create-btn.restore { - background-position: -331px -250px; - bottom: -22px; + background-position: -331px -250px; + bottom: -22px; } -.l-sort__create-btn.restore:hover { - background-position: -331px -250px; +.l-sort__create-btn.restore:hover, .l-sort__create-btn.restore:active { + background-position: -331px -250px; } -.l-sort__create-btn.restore:active { - background-position: -331px -250px; -} - .l-sort__create-btn.edit { - background-position: -331px -154px; - bottom: -22px; + background-position: -331px -154px; + bottom: -22px; } .l-sort__create-btn.edit:hover { - background-position: -378px -154px; + background-position: -378px -154px; } .l-sort__create-btn.edit:active { - background-position: -425px -154px; + background-position: -425px -154px; } .context-menu.sort-order { - display: inline-block; - position: absolute; - z-index: 3; - left: 397px; - margin: 0; - overflow: hidden; - top: 42px; - width: 201px; - background-color: #5c5c5c; - list-style-type: none; - padding-left: 0; - box-shadow: 0 2px 7px 0 rgba(0, 0, 0, 0.3); + display: inline-block; + position: absolute; + z-index: 3; + left: 397px; + margin: 0; + overflow: hidden; + top: 42px; + width: 201px; + background-color: #5c5c5c; + list-style-type: none; + padding-left: 0; + box-shadow: 0 2px 7px 0 rgba(0, 0, 0, 0.3); } .context-menu.sort-order li { - padding: 0; + padding: 0; } .context-menu li { - border-bottom: 1px solid #777; - color: #fff; - cursor: pointer; - font-size: 12px; - padding: 12px; + border-bottom: 1px solid #777; + color: #fff; + cursor: pointer; + font-size: 12px; + padding: 12px; } .context-menu.sort-order span.name { - background: url("/images/sprite.png?1446554103") no-repeat scroll -292px -361px rgba(0, 0, 0, 0); - display: inline-block; - padding: 12px 28px 12px 12px; - width: 117px; - text-transform: uppercase; - font-weight: bold; + background: url("/images/sprite.png?1446554103") no-repeat scroll -292px -361px rgba(0, 0, 0, 0); + display: inline-block; + padding: 12px 28px 12px 12px; + width: 117px; + text-transform: uppercase; + font-weight: bold; } .context-menu.sort-order span.up { - background: url("/images/sprite.png?1446554103") no-repeat scroll -434px -417px rgba(0, 0, 0, 0); - display: inline-block; - padding: 12px 14px; - width: 16px; + background: url("/images/sprite.png?1446554103") no-repeat scroll -434px -417px rgba(0, 0, 0, 0); + display: inline-block; + padding: 12px 14px; + width: 16px; } .context-menu.sort-order span.active { - background-color: #FFD437; - color: #555; + background-color: #FFD437; + color: #555; } .context-menu.sort-order span:hover { - background-color: #777; - color: #fff; + background-color: #777; + color: #fff; } .context-menu.sort-order span:active { - background-color: #ffcc00; + background-color: #ffcc00; } - - - .l-sort-toolbar { - float: right; - padding: 7px 0 7px 0; - width: 100%; + float: right; + padding: 7px 0 7px 0; + width: 100%; } -.l-sort-toolbar table{ - float: right; +.l-sort-toolbar table { + float: right; } - .l-sort-toolbar td.toggle-all { - padding-top: 7px; - padding-right: 20px; + padding-top: 7px; + padding-right: 20px; } - .l-sort-toolbar .sort-by { - cursor: pointer; - padding-top: 7px; - padding-left: 40px; + cursor: pointer; + padding-top: 7px; + padding-left: 40px; } .l-sort-toolbar .sort-by:hover { - color: #555; + color: #555; } .l-sort-toolbar .sort-by:hover b { - color: #555; + color: #555; } .l-sort-toolbar .sort-by:active { - color: #55c9c0; + color: #23b7e5; } .l-sort-toolbar .sort-by:active b { - color: #55c9c0; + color: #23b7e5; } - .l-sort-toolbar .sort-by b { - text-transform: uppercase; - padding-left: 3px; - font-size: 12px; + text-transform: uppercase; + padding-left: 3px; + font-size: 12px; } - .l-sort-toolbar .toggle-all:hover { - color: #555; + color: #555; } .l-sort-toolbar .toggle-all:active { - color: #55c9c0; + color: #23b7e5; } - .l-sort-toolbar .l-select { - float: left; + float: left; } .l-sort-toolbar td { - vertical-align: middle; + vertical-align: middle; } - -.l-sort-toolbar.subtitle { - padding-left: 96px; +.l-sort-toolbar.subtitle { + padding-left: 96px; } - - .l-sort-toolbar td:first-of-type { - padding-left: 40px; + padding-left: 40px; } - - .l-sort-toolbar td.step-right:first-of-type { - padding-right: 20px; + padding-right: 20px; } - .l-sort-toolbar td:nth-of-type(2) { -/* /// padding-right: 60px;*/ - padding-right: 20px; + /* /// padding-right: 60px;*/ + padding-right: 20px; } .l-sort-toolbar td:last-of-type { -/* /// padding-left: 40px; */ + /* /// padding-left: 40px; */ } + .l-sort-toolbar__filter-apply { - float: left; - width: 30px; - height: 30px; - background-image: url("/images/sprite.png?1446554103"); - background-position: -333px -1px; - border: none; + float: left; + width: 30px; + height: 30px; + background-image: url("/images/sprite.png?1446554103"); + background-position: -333px -1px; + border: none; } .l-sort-toolbar__filter-apply:hover { - background-position: -368px -1px; - border-color: #afafac; + background-position: -368px -1px; + border-color: #afafac; } .l-sort-toolbar__filter-apply:active { - background-position: -404px -1px; - border-color: #afafac; + background-position: -404px -1px; + border-color: #afafac; } + .l-sort-toolbar__filter-apply--active { - background-position: -404px -1px; - border-color: #50bdb5; + background-position: -404px -1px; + border-color: #50bdb5; } .l-sort-toolbar__search { - float: left; - width: 25px; - height: 25px; - background-image: url("/images/sprite.png?1446554103"); - background-position: -333px -37px; - border: none; + float: left; + width: 25px; + height: 25px; + background-image: url("/images/sprite.png?1446554103"); + background-position: -333px -37px; + border: none; } .l-sort-toolbar__search:hover { - background-position: -368px -37px; - border-color: #afafac; + background-position: -368px -37px; + border-color: #afafac; } .l-sort-toolbar__search:active { - background-position: -404px -37px; - border-color: #50bdb5; + background-position: -404px -37px; + border-color: #50bdb5; } + .l-sort-toolbar__search--active { - background-position: -404px -37px; - border-color: #50bdb5; + background-position: -404px -37px; + border-color: #50bdb5; } + .l-sort-toolbar .vst { - padding: 0 12px; - color: #777; - text-transform: uppercase; - font-size: 11px; - font-weight: bold; - line-height: 30px; + padding: 0 12px; + color: #777; + text-transform: uppercase; + font-size: 11px; + font-weight: bold; + line-height: 30px; } .l-sort-toolbar .vst:hover { - color: #ff6701; + color: #9c8cff; } .l-sort-toolbar .vst:active { - color: #55C9C0; + color: #23b7e5; } .l-sort-toolbar .vst.selected { - color: #ff6701; -// color: #92af0b; + color: #9c8cff; } - - .l-select { - width: 178px; - height: 28px; - border: 1px solid #ddd; - border-radius: 0; - overflow-x: hidden; - position: relative; - display: inline-block; - border-style: solid none solid solid; + width: 178px; + height: 28px; + border: 1px solid #ddd; + border-radius: 0; + overflow-x: hidden; + position: relative; + display: inline-block; + border-style: solid none solid solid; } + .lang-ru .l-select { - width: 199px; + width: 199px; } .l-select:after { - pointer-events: none; - background-image: url("/images/sprite.png?1446554103"); - background-position: -245px -175px; - width: 7px; - height: 4px; - margin-top: -2px; - content: ''; - position: absolute; - right: 10px; - top: 50%; + pointer-events: none; + background-image: url("/images/sprite.png?1446554103"); + background-position: -245px -175px; + width: 7px; + height: 4px; + margin-top: -2px; + content: ""; + position: absolute; + right: 10px; + top: 50%; } .l-select select { - border: 0; - background-color: transparent; - line-height: 28px; - height: 28px; - min-width: 208px; - padding-left: 4px; - appearance:none; - -moz-appearance:none; - -webkit-appearance:none; - padding-left: 10px; + border: 0; + background-color: transparent; + line-height: 28px; + height: 28px; + min-width: 208px; + padding-left: 4px; + appearance: none; + -moz-appearance: none; + -webkit-appearance: none; + padding-left: 10px; } .l-select select:focus { - border: 0; - outline: 0; + border: 0; + outline: 0; } + .lang-ru .l-select select { - min-width: 215px; + min-width: 215px; } + .l-select select option { - padding: 7px; + padding: 7px; } .l-unit { - color: #888; - padding: 0 0 0 15px; - overflow: hidden; - font-size: 13px; -} -.units .l-unit { - border-bottom: 1px solid #ddd; - border-left: 2px solid #fff; -} -.units .l-unit.l-unit--starred { - border-left: 2px solid #ff6701; -} -.units.active .l-unit.focus { - border-left: 2px solid #5edad0; -} -.units.active .l-unit.focus .l-unit__name { - color: #36b3a9; -} -.units.active .l-unit.focus .l-unit-toolbar__col--right { - display: block; + color: #888; + padding: 0 0 0 15px; + overflow: hidden; + font-size: 13px; } +.units .l-unit { + border-bottom: 1px solid #ddd; + border-left: 2px solid #fff; +} +.units .l-unit.l-unit--starred { + border-left: 2px solid #9c8cff; +} +.units.active .l-unit.focus { + border-left: 2px solid #5edad0; + background: #f4faff; +} +.units.active .l-unit.focus .l-unit__name { + color: #36b3a9; +} +.units.active .l-unit.focus .l-unit-toolbar__col--right { + display: block; +} .units > div:last-child { - border-bottom: none; + border-bottom: none; } .l-unit-ft { - color: #929292; - padding: 0 0 0 15px; + color: #929292; + padding: 0 0 0 15px; } .l-unit:hover .l-unit-toolbar__col--right { - display: block; + display: block; } + .l-unit--blue { - border-left: 2px solid #55c9c0; + border-left: 2px solid #23b7e5; } .l-unit--suspended { - background-color: #eaeaea; - color: #c0c0c0; + background-color: #eaeaea; + color: #c0c0c0; } - .units .l-unit.l-unit--outdated { - background-color: #ffcaca; - color: #555; - border-left: 5px solid #ff6f6f; - border-bottom: 1px solid #fff; + background-color: #ffcaca; + color: #555; + border-left: 5px solid #ff6f6f; + border-bottom: 1px solid #fff; } -.l-unit--suspended .l-unit__name, -.l-unit--suspended b, -.l-unit--outdated .l-unit__name, -.l-unit--outdated b { - color: #c0c0c0; +.l-unit--suspended .l-unit__name, .l-unit--suspended b { + color: #c0c0c0; } +.l-unit--outdated .l-unit__name, .l-unit--outdated b { + color: #c0c0c0; +} .l-unit--outdated .l-unit__name { - color: #333; + color: #333; } .l-unit--outdated b { - color: #555; + color: #555; } .l-unit--suspended .l-percent { - border-color: #fff; + border-color: #fff; } .l-unit--suspended .l-percent__fill { - background-color: #fff; + background-color: #fff; +} +.l-unit--suspended .l-unit__name { + color: #ADADAD; } -.l-unit--suspended .l-unit__name, .l-unit--suspended .l-unit__name span { - color: #ADADAD; + color: #ADADAD; } - -.l-unit--suspended.selected .l-unit__name, -.l-unit--suspended.selected .l-unit__name span { - color: #777; -} - .l-unit--suspended.selected { - background-color: #f2eab8 !important; - color: #b2ac87 !important; + background-color: #f2eab8 !important; + color: #b2ac87 !important; +} +.l-unit--suspended.selected .l-unit__name { + color: #777; +} +.l-unit--suspended.selected .l-unit__name span { + color: #777; } .l-unit--outdated.selected { - background: #765D5D !important; - color: #333 !important; + background: #765D5D !important; + color: #333 !important; } +.l-unit--suspended.selected .l-unit__name, .l-unit--suspended.selected b { + color: #333 !important; +} +.l-unit--outdated.selected .l-unit__name, .l-unit--outdated.selected b { + color: #333 !important; +} -.l-unit--suspended.selected .l-unit__name, -.l-unit--suspended.selected b, -.l-unit--outdated.selected .l-unit__name, -.l-unit--outdated.selected b, -.l-unit--suspended.selected .l-percent, -.l-unit--suspended.selected .l-percent__fill, -.l-unit--suspended.selected .l-unit__name, +.l-unit--suspended.selected .l-percent, .l-unit--suspended.selected .l-percent__fill { + color: #333 !important; +} +.l-unit--suspended.selected .l-unit__name { + color: #333 !important; +} .l-unit--suspended.selected .l-unit__name span { - color: #333 !important; + color: #333 !important; } .l-unit.selected .l-percent { - border-bottom: 1px dotted #777; + border-bottom: 1px dotted #777; } - .l-unit--selected { - background-color: #d1eddc; + background-color: #d1eddc; } -.l-unit-toolbar{ - height: 39px; + +.l-unit-toolbar { + height: 39px; } .l-unit label { - margin-bottom: 20px; + margin-bottom: 20px; } + .l-unit__columns { - display: table; - width: 100%; + display: table; + width: 100%; } + .l-unit__col { - display: table-cell; - padding-top: 1px; - vertical-align: top; + display: table-cell; + padding-top: 1px; + vertical-align: top; } + .l-unit__col--left { - width: 124px; - padding-right: 10px; + width: 124px; + padding-right: 10px; } + .units.compact .l-unit__col--left { - vertical-align: top; + vertical-align: top; } .l-unit__col--left.step-left { - padding-left: 30px; + padding-left: 30px; } .l-unit__col--right.total { - padding-left: 16px; + padding-left: 16px; } - .l-unit__col--right.back { - padding-left: 78px + padding-left: 78px; } .l-sort-toolbar .step-left { - padding-left: 40px; + padding-left: 40px; } + .step-right { - padding-right: 40px; + padding-right: 40px; } .l-unit__date { - font-size: 12px; - letter-spacing: 1px; - margin-top: 10px; - padding-bottom: 30px; + font-size: 12px; + letter-spacing: 1px; + margin-top: 10px; + padding-bottom: 30px; } .l-unit__suspended { - display: none; - font-size: 11px; - font-weight: bold; - letter-spacing: 3px; - margin-top: 36px; - text-transform: uppercase; - margin-bottom: 14px; + display: none; + font-size: 11px; + font-weight: bold; + letter-spacing: 3px; + margin-top: 36px; + text-transform: uppercase; + margin-bottom: 14px; } .units.compact .l-unit__suspended { - margin-top: 1px; + margin-top: 1px; } -.l-unit--outdated .l-unit__suspended, -.l-unit--suspended .l-unit__suspended { - display: block; +.l-unit--outdated .l-unit__suspended, .l-unit--suspended .l-unit__suspended { + display: block; +} + +.l-unit-ft .subtitle { + color: #9c8cff; + font-size: 12px; + font-weight: bold; + margin: 20px 0 18px 129px; + text-transform: uppercase; } -.l-unit-ft .subtitle, .l-unit .subtitle { - color: #ff6701; - font-size: 12px; - font-weight: bold; - margin: 20px 0 18px 129px; - text-transform: uppercase; + color: #9c8cff; + font-size: 12px; + font-weight: bold; + margin: 20px 0 18px 129px; + text-transform: uppercase; } - .l-unit.l-unit--outdated .l-unit__date { - color: #d24c4c; - font-size: 10px; - letter-spacing: 3px; - text-transform: uppercase; - font-weight: bold; + color: #d24c4c; + font-size: 10px; + letter-spacing: 3px; + text-transform: uppercase; + font-weight: bold; } .l-unit__name { - color: #111; - font-size: 32px; - margin-bottom: 10px; + color: #111; + font-size: 32px; + margin-bottom: 10px; } -.l-unit__stats.separate, + +.l-unit__stats.separate { + padding-bottom: 15px; +} + .l-unit__name.separate { - padding-bottom: 15px; + padding-bottom: 15px; } - .l-unit__name.small { - font-size: 19px; + font-size: 19px; } - .l-unit__name.small-2 { - font-size: 24px; + font-size: 24px; } - - .l-unit__name span { - color: #999; - margin-left: 30px; - font-size: 14px; - font-style: italic; + color: #999; + margin-left: 30px; + font-size: 14px; + font-style: italic; } .l-unit__name span:first-of-type { - margin-left: 39px; + margin-left: 39px; } .l-unit__name b { - font-weight: normal; - font-style: italic; + font-weight: normal; + font-style: italic; } .l-unit__ip { - margin-bottom: 26px; - font-size: 12px; - letter-spacing: 1px; + margin-bottom: 26px; + font-size: 12px; + letter-spacing: 1px; } .l-unit__ip span { - padding-left: 3px; - padding-right: 3px; + padding-left: 3px; + padding-right: 3px; } + .display-ip { - font-size: 12px; - letter-spacing: 1px; + font-size: 12px; + letter-spacing: 1px; } .display-ip span { - padding-left: 3px; - padding-right: 3px; + padding-left: 3px; + padding-right: 3px; } .l-unit__stats { - margin-bottom: 50px; + margin-bottom: 50px; } .l-unit__stats table { - width: 100%; - table-layout: fixed; + width: 100%; + table-layout: fixed; } .l-unit__stats td { - height: 22px; - padding-bottom: 3px; - vertical-align: top; + height: 22px; + padding-bottom: 3px; + vertical-align: top; } + .l-unit__stat-col--left { - float: left; - width: 124px; + float: left; + width: 124px; } .l-unit__stat-col--left.compact { - width: 70px; + width: 70px; } .l-unit__stat-col--left.compact-2 { - width: 95px; + width: 95px; } .l-unit__stat-col--left.wide { - width: 190px; + width: 190px; } .l-unit__stat-col--left.wide-2 { - width: 230px; + width: 230px; } .l-unit__stat-col--left.wide-3 { - width: 250px; + width: 250px; } .l-unit__stat-col--left.wide-4 { - width: 550px; + width: 550px; } - - .l-unit__stat-col--left.small-2 { - line-height: 11px; + line-height: 11px; } - .l-unit__stat-col--left.tiny { - font-size: 11px; + font-size: 11px; } - .l-unit__stat-col--left.tiny b { - font-size: 18px; + font-size: 18px; } - .l-unit__stat-col--right { - float: left; - max-width: 152px; + float: left; + max-width: 152px; } .l-unit-toolbar__col--left { - float: left; - margin-left: -15px; - margin-top: 0; - padding-bottom: 0px;/* 8px */ - padding-left: 15px; - padding-top: 15px; - width: 30px; - cursor: pointer; + float: left; + margin-left: -15px; + margin-top: 0; + padding-bottom: 0px; + /* 8px */ + padding-left: 15px; + padding-top: 15px; + width: 30px; + cursor: pointer; } .l-unit-toolbar__col--right { - float: right; - display: none; + float: right; + display: none; } body.mobile .l-unit-toolbar__col--right { - display: block; + display: block; } .l-unit-toolbar .shortcut { - display: none; + display: none; } .units.active .l-unit.focus .l-unit-toolbar .shortcut { - display: block; - background-color: #69a298; - border-radius: 13px; - color: #fff; - cursor: pointer; - display: block; - font-size: 12px; - font-weight: 700; - line-height: 25px; - padding-left: 7px; - padding-right: 9px; - position: absolute; - right: 3px; - top: 3px; + display: block; + background-color: #69a298; + border-radius: 13px; + color: #fff; + cursor: pointer; + display: block; + font-size: 12px; + font-weight: 700; + line-height: 25px; + padding-left: 7px; + padding-right: 9px; + position: absolute; + right: 3px; + top: 3px; } .units.active .l-unit.focus .l-unit-toolbar .shortcut.delete { - font-size: 10px; - padding-left: 2px; - padding-right: 5px; - text-transform: capitalize; + font-size: 10px; + padding-left: 2px; + padding-right: 5px; + text-transform: capitalize; } .units.active .l-unit.focus .l-unit-toolbar .shortcut.enter { - font-size: 17px; - padding-left: 1px; - padding-right: 7px; + font-size: 17px; + padding-left: 1px; + padding-right: 7px; } .units.active .l-unit.focus .l-unit-toolbar i { - background: none; + background: none; } .l-unit__stat-col.volume { - font-size: 12px; - line-height: 17px; - float: right; + font-size: 12px; + line-height: 17px; + float: right; } .actions-panel__col { - float: left; - min-width: 95px; - min-height: 31px; - text-transform: uppercase; - background-color: #dfdedd; - border-right: 1px solid #d8d7d7; - position: relative; + float: left; + min-width: 95px; + min-height: 31px; + text-transform: uppercase; + background-color: #dde6e9; + border-right: 1px solid #dde6e9; + position: relative; } + .selected .actions-panel__col { - -webkit-filter: contrast(80%); - filter: contrast(80%); + -webkit-filter: contrast(80%); + filter: contrast(80%); } + .actions-panel__col i { - background-image: url("/images/sprite.png?1446554103"); - background-repeat: no-repeat; - display: inline-block; - float: right; - content: ''; - width: 31px; - height: 31px; - position: absolute; - top: 0; - right: 0; + background-image: url("/images/sprite.png?1446554103"); + background-repeat: no-repeat; + display: inline-block; + float: right; + content: ""; + width: 31px; + height: 31px; + position: absolute; + top: 0; + right: 0; } .actions-panel__col a { - line-height: 31px; - color: #777; - font-weight: 700; - font-size: 12px; - padding-left: 13px; - display: block; - cursor: pointer; - position: relative; - padding-right: 36px; -} -.lang-ru .actions-panel__col a { - font-size: 11px; - padding-top: 1px; -} -.lang-tw .actions-panel__col a { - font-size: 15px; - font-weight: normal; - line-height: 29px; -} -.lang-ar .actions-panel__col a { - font-size: 15px; - font-weight: normal; - line-height: 31px; + line-height: 31px; + color: #777; + font-weight: 700; + font-size: 12px; + padding-left: 13px; + display: block; + cursor: pointer; + position: relative; + padding-right: 36px; } +.lang-ru .actions-panel__col a { + font-size: 11px; + padding-top: 1px; +} + +.lang-tw .actions-panel__col a { + font-size: 15px; + font-weight: normal; + line-height: 29px; +} + +.lang-ar .actions-panel__col a { + font-size: 15px; + font-weight: normal; + line-height: 31px; +} .actions-panel__favorite a { - background-color: #afafac; - color: #fff; + background-color: #afafac; + color: #fff; } .actions-panel__favorite i { - background-position: -39px -85px; + background-position: -39px -85px; } .actions-panel__edit i { - background-position: -1px -169px; + background-position: -1px -169px; } .actions-panel__edit:hover a { - background-color: #9fbf0c; - color: #fff; + background-color: #27c24c; + color: #fff; } .actions-panel__edit:active a { - background-color: #c0e60f; - color: #555; + background-color: #32f360; + color: #555; } .actions-panel__edit:hover a i { - background-position: -41px -169px; + background-position: -41px -169px; } .actions-panel__edit:active a i { - background-position: -81px -169px; + background-position: -81px -169px; } + .actions-panel__edit--active a { - background-color: #c0e60f; - color: #fff; + background-color: #32f360; + color: #fff; } .actions-panel__edit--active i { - background-position: -78px -169px; + background-position: -78px -169px; } .actions-panel__restart i { - background-position: -1px -520px; + background-position: -1px -520px; } .actions-panel__restart:hover a { - background-color: #9fbf0c; - color: #fff; + background-color: #27c24c; + color: #fff; } .actions-panel__restart:active a { - background-color: #c0e60f; - color: #555; + background-color: #32f360; + color: #555; } .actions-panel__restart:hover a i { - background-position: -41px -520px; + background-position: -41px -520px; } .actions-panel__restart:active a i { - background-position: -81px -520px; + background-position: -81px -520px; } + .actions-panel__restart--active a { - background-color: #c0e60f; - color: #fff; + background-color: #32f360; + color: #fff; } .actions-panel__restart--active i { - background-position: -78px -520px; + background-position: -78px -520px; } .actions-panel__add i { - background-position: -1px -285px; + background-position: -1px -285px; } .actions-panel__add:hover a { - background-color: #9fbf0c; - color: #fff; + background-color: #27c24c; + color: #fff; } .actions-panel__add:active a { - background-color: #c0e60f; - color: #555; + background-color: #32f360; + color: #555; } .actions-panel__add:hover a i { - background-position: -41px -285px; + background-position: -41px -285px; } .actions-panel__add:active a i { - background-position: -81px -285px; + background-position: -81px -285px; } .actions-panel__add--active a { - background-color: #c0e60f; - color: #fff; + background-color: #32f360; + color: #fff; } .actions-panel__add--active i { - background-position: -78px -285px; + background-position: -78px -285px; } .actions-panel__update i { - background-position: -1px -481px; + background-position: -1px -481px; } .actions-panel__update:hover a { - background-color: #9fbf0c; - color: #fff; + background-color: #27c24c; + color: #fff; } .actions-panel__update:active a { - background-color: #c0e60f; - color: #555; + background-color: #32f360; + color: #555; } .actions-panel__update:hover a i { - background-position: -41px -481px; + background-position: -41px -481px; } .actions-panel__update:active a i { - background-position: -81px -481px; + background-position: -81px -481px; } + .actions-panel__update--active a { - background-color: #c0e60f; - color: #fff; + background-color: #32f360; + color: #fff; } .actions-panel__update--active i { - background-position: -78px -481px; + background-position: -78px -481px; } .actions-panel__logs i { - background-position: -2px -130px; + background-position: -2px -130px; } .actions-panel__logs:hover a { - background-color: #afafac; - color: #fff; + background-color: #afafac; + color: #fff; } .actions-panel__logs:active a { - background-color: #55c9c0; - color: #fff; + background-color: #23b7e5; + color: #fff; } .actions-panel__logs:hover a i { - background-position: -42px -130px; + background-position: -42px -130px; } .actions-panel__logs:active a i { - background-position: -82px -130px; + background-position: -82px -130px; } + .actions-panel__logs--active a { - background-color: #55c9c0; - color: #fff; + background-color: #23b7e5; + color: #fff; } .actions-panel__logs--active i { - background-position: -79px -130px; + background-position: -79px -130px; } .actions-panel__db i { - background-position: -2px -363px; + background-position: -2px -363px; } .actions-panel__db:hover a { - background-color: #afafac; - color: #fff; + background-color: #afafac; + color: #fff; } .actions-panel__db:active a { - background-color: #55c9c0; - color: #fff; + background-color: #23b7e5; + color: #fff; } .actions-panel__db:hover a i { - background-position: -42px -363px; + background-position: -42px -363px; } .actions-panel__db:active a i { - background-position: -82px -363px; + background-position: -82px -363px; } + .actions-panel__db--active a { - background-color: #55c9c0; - color: #fff; + background-color: #23b7e5; + color: #fff; } .actions-panel__db--active i { - background-position: -79px -362px; + background-position: -79px -362px; } .actions-panel__suspend i { - background-position: -1px -51px; + background-position: -1px -51px; } .actions-panel__suspend:hover a { - background-color: #afafac; - color: #fff; + background-color: #afafac; + color: #fff; } .actions-panel__suspend:active a { - background-color: #55c9c0; - color: #fff; + background-color: #23b7e5; + color: #fff; } .actions-panel__suspend:hover a i { - background-position: -41px -51px; + background-position: -41px -51px; } .actions-panel__suspend:active a i { - background-position: -81px -51px; + background-position: -81px -51px; } + .actions-panel__suspend--active a { - background-color: #55c9c0; - color: #fff; + background-color: #23b7e5; + color: #fff; } .actions-panel__suspend--active i { - background-position: -78px -51px; + background-position: -78px -51px; } .actions-panel__unsuspend i { - background-position: -1px -12px; + background-position: -1px -12px; } .actions-panel__unsuspend:hover a { - background-color: #afafac; - color: #fff; + background-color: #afafac; + color: #fff; } .actions-panel__unsuspend:active a { - background-color: #55c9c0; - color: #fff; + background-color: #23b7e5; + color: #fff; } .actions-panel__unsuspend:hover a i { - background-position: -41px -12px; + background-position: -41px -12px; } .actions-panel__unsuspend:active a i { - background-position: -81px -12px; + background-position: -81px -12px; } + .actions-panel__unsuspend--active a { - background-color: #55c9c0; - color: #fff; + background-color: #23b7e5; + color: #fff; } .actions-panel__unsuspend--active i { - background-position: -78px -12px; + background-position: -78px -12px; } - .actions-panel__loginas i { - background-position: -1px -245px; + background-position: -1px -245px; } .actions-panel__loginas:hover a { - background-color: #afafac; - color: #fff; + background-color: #afafac; + color: #fff; } .actions-panel__loginas:active a { - background-color: #55c9c0; - color: #fff; + background-color: #23b7e5; + color: #fff; } .actions-panel__loginas:hover a i { - background-position: -41px -245px; + background-position: -41px -245px; } .actions-panel__loginas:active a i { - background-position: -81px -245px; + background-position: -81px -245px; } + .actions-panel__loginas--active a { - background-color: #55c9c0; - color: #fff; + background-color: #23b7e5; + color: #fff; } .actions-panel__loginas--active i { - background-position: -78px -245px; + background-position: -78px -245px; } .actions-panel__download i { - background-position: -1px -402px; + background-position: -1px -402px; } .actions-panel__download:hover a { - background-color: #9fbf0c; - color: #fff; + background-color: #27c24c; + color: #fff; } .actions-panel__download:active a { - background-color: #c0e60f; - color: #555; + background-color: #32f360; + color: #555; } .actions-panel__download:hover a i { - background-position: -41px -402px; + background-position: -41px -402px; } .actions-panel__download:active a i { - background-position: -81px -402px; + background-position: -81px -402px; } + .actions-panel__download--active a { - background-color: #c0e60f; - color: #fff; + background-color: #32f360; + color: #fff; } .actions-panel__download--active i { - background-position: -78px -402px; + background-position: -78px -402px; } .actions-panel__configure i { - background-position: -1px -442px; + background-position: -1px -442px; } .actions-panel__configure:hover a { - background-color: #55c9c0; - color: #fff; + background-color: #23b7e5; + color: #fff; } .actions-panel__configure:active a { - background-color: #afafac; - color: #fff; + background-color: #afafac; + color: #fff; } .actions-panel__configure:hover a i { - background-position: -81px -442px; + background-position: -81px -442px; } .actions-panel__configure:active a i { - background-position: -41px -442px; + background-position: -41px -442px; } + .actions-panel__configure--active a { - background-color: #55c9c0; - color: #fff; + background-color: #23b7e5; + color: #fff; } .actions-panel__configure--active i { - background-position: -78px -442px; + background-position: -78px -442px; } .actions-panel__.l-icon-starmail i { - background-position: -1px -324px; + background-position: -1px -324px; } + .actions-panel__mail:hover a { - background-color: #afafac; - color: #fff; + background-color: #afafac; + color: #fff; } .actions-panel__mail:active a { - background-color: #55c9c0; - color: #fff; + background-color: #23b7e5; + color: #fff; } .actions-panel__mail:hover a i { - background-position: -41px -324px; + background-position: -41px -324px; } .actions-panel__mail:active a i { - background-position: -81px -324px; + background-position: -81px -324px; } + .actions-panel__mail--active a { - background-color: #55c9c0; - color: #fff; + background-color: #23b7e5; + color: #fff; } .actions-panel__mail--active i { - background-position: -78px -324px; + background-position: -78px -324px; } .actions-panel__delete i { - background-position: -1px -207px; + background-position: -1px -207px; } .actions-panel__delete:hover a { - background-color: #ff3438; - color: #fff; + background-color: #ff3438; + color: #fff; } .actions-panel__delete:active a { - background-color: #ff5f5f; - color: #fff; + background-color: #ff5f5f; + color: #fff; } .actions-panel__delete:hover a i { - background-position: -41px -207px; + background-position: -41px -207px; } .actions-panel__delete:active a i { - background-position: -81px -207px; + background-position: -81px -207px; } + .actions-panel__delete--active a { - background-color: #ff5f5f; - color: #fff; + background-color: #ff5f5f; + color: #fff; } .actions-panel__delete--active i { - background-position: -78px -207px; + background-position: -78px -207px; } .actions-panel__stop i { - background-position: -1px -561px; + background-position: -1px -561px; } .actions-panel__stop:hover a { - background-color: #ff3438; - color: #fff; + background-color: #ff3438; + color: #fff; } .actions-panel__stop:active a { - background-color: #ff5f5f; - color: #fff; + background-color: #ff5f5f; + color: #fff; } .actions-panel__stop:hover a i { - background-position: -41px -561px; + background-position: -41px -561px; } .actions-panel__stop:active a i { - background-position: -81px -561px; + background-position: -81px -561px; } + .actions-panel__stop--active a { - background-color: #ff5f5f; - color: #fff; + background-color: #ff5f5f; + color: #fff; } .actions-panel__stop--active i { - background-position: -78px -561px; + background-position: -78px -561px; } .actions-panel__start i { - background-position: -1px -482px; + background-position: -1px -482px; } .actions-panel__start:hover a { - background-color: #9fbf0c; - color: #fff; + background-color: #27c24c; + color: #fff; } .actions-panel__start:active a { - background-color: #c0e60f; - color: #555; + background-color: #32f360; + color: #555; } .actions-panel__start:hover a i { - background-position: -41px -482px; + background-position: -41px -482px; } .actions-panel__start:active a i { - background-position: -81px -482px; + background-position: -81px -482px; } + .actions-panel__start--active a { - background-color: #c0e60f; - color: #fff; + background-color: #32f360; + color: #fff; } .actions-panel__start--active i { - background-position: -78px -482px; + background-position: -78px -482px; } - .l-icon-up-arrow, .l-icon-down-arrow, .l-icon-star, .l-icon-to-top, .l-icon-shortcuts, .l-icon-star-orange, .l-icon-star-blue { - display: inline-block; - vertical-align: middle; - background-image: url("/images/sprite.png?1446554103"); + display: inline-block; + vertical-align: middle; + background-image: url("/images/sprite.png?1446554103"); } .l-icon-down-arrow { - width: 7px; - height: 15px; - background-position: -280px -128px; + width: 7px; + height: 15px; + background-position: -280px -128px; } .l-icon-up-arrow { - width: 7px; - height: 15px; - background-position: -299px -129px; + width: 7px; + height: 15px; + background-position: -299px -129px; } - .l-icon-star { - width: 36px; - height: 36px; - background-position: -216px 560px; - cursor: pointer; - visibility: hidden; + width: 36px; + height: 36px; + background-position: -216px 560px; + cursor: pointer; + visibility: hidden; } + .l-unit--starred .l-icon-star { - background-position: -174px 560px; - visibility: visible; + background-position: -174px 560px; + visibility: visible; } + .selected .l-icon-star { - filter: contrast(70%); - -webkit-filter: contrast(70%); + filter: contrast(70%); + -webkit-filter: contrast(70%); } .units.compact .l-icon-star { - margin-top: -14px; + margin-top: -14px; } .l-icon-star:hover { - background-position: 0px 560px; + background-position: 0px 560px; } - .l-icon-star:active { - -background-position: -174px 560px; - background-position: -80px 562px; + -background-position: -174px 560px; + background-position: -80px 562px; } .l-unit:hover .l-icon-star { - visibility: visible; + visibility: visible; } - .l-icon-to-top { - width: 35px; - height: 35px; - background-position: -330px -68px; + width: 35px; + height: 35px; + background-position: -330px -68px; } .l-icon-to-top:hover { - background-position: -366px -68px; + background-position: -366px -68px; } .l-icon-to-top:active { - background-position: -402px -68px; + background-position: -402px -68px; } .l-icon-shortcuts { - width: 35px; - height: 35px; - background-position: -240px -281px; - border-radius: 18px; + width: 35px; + height: 35px; + background-position: -240px -281px; + border-radius: 18px; } .l-icon-shortcuts:hover { - background-position: -160px -281px; + background-position: -160px -281px; } .l-icon-shortcuts:active { - background-position: -198px -281px; + background-position: -198px -281px; } -body.mobile .l-icon-to-top, -body.mobile .l-icon-shortcuts { - display: none; +body.mobile .l-icon-to-top, body.mobile .l-icon-shortcuts { + display: none; } - .l-icon-star-orange { - width: 13px; - height: 13px; - background-position: -178px -97px; + width: 13px; + height: 13px; + background-position: -178px -97px; } .l-icon-star-blue { - width: 13px; - height: 13px; - background-position: -134px -97px; + width: 13px; + height: 13px; + background-position: -134px -97px; } .media-top { - vertical-align: top; + vertical-align: top; } .l-unit__stat-cols { - padding-right: 10px; + padding-right: 10px; } .l-unit__stat-cols.last { - padding-right: 0; + padding-right: 0; } .l-unit__stat-cols.graph { - width: 200px; + width: 200px; } .l-unit__stat-cols.tiny { - font-size:11px; - line-height: 19px; + font-size: 11px; + line-height: 19px; } .l-percent { - border-bottom: 1px dotted #ccc; - margin-top: 1px; - width: 200px; + border-bottom: 1px dotted #ccc; + margin-top: 1px; + width: 200px; } + .l-percent__fill { - background-color: #aacc0d; - height: 3px; - position: relative; - bottom: -1px; + background-color: #aacc0d; + height: 3px; + position: relative; + bottom: -1px; } .to-top { - display: inline-block; - position: fixed; - top: 92%; - right: 1%; + display: inline-block; + position: fixed; + top: 92%; + right: 1%; } .to-shortcuts { - display: inline-block; - position: fixed; - top: 92%; - right: 4%; + display: inline-block; + position: fixed; + top: 92%; + right: 4%; } - /* #vstobjects { margin-top: -1px; } */ - #vstobjects .l-center { - padding-top: 20px; - padding-bottom: 30px; - font-size: 12px; + padding-top: 20px; + padding-bottom: 30px; + font-size: 12px; } .timer-container { - margin-top: 4px; + margin-top: 4px; } - .timer-container .refresh-timer { - border: 2px solid #9f9f9f; - border-radius: 14px; - height: 14px; - width: 14px; - float: left; - margin: 2px 10px 0 0; + border: 2px solid #9f9f9f; + border-radius: 14px; + height: 14px; + width: 14px; + float: left; + margin: 2px 10px 0 0; } .timer-container .refresh-timer.paused { - border: 2px solid #9f9f9f; + border: 2px solid #9f9f9f; } -.timer-container .refresh-timer.paused .loader-half.right, -.timer-container .refresh-timer.paused .loader-half.dark { - background-color: #9d9f9f; +.timer-container .refresh-timer.paused .loader-half.right, .timer-container .refresh-timer.paused .loader-half.dark { + background-color: #9d9f9f; } .timer-container .loader-half { - border-radius: 0 14px 14px 0; - height: 14px; - width: 7px; - float: left; + border-radius: 0 14px 14px 0; + height: 14px; + width: 7px; + float: left; } .timer-container .loader-half.left { - border-radius: 14px 0 0 14px; - background-color: #fff; + border-radius: 14px 0 0 14px; + background-color: #fff; } .timer-container .loader-half.right { - margin-left: 7px; - background-color: #9f9f9f; + margin-left: 7px; + background-color: #9f9f9f; } .timer-container .loader-half.dark { - background-color: #9f9f9f; + background-color: #9f9f9f; } .timer-container .movement { - float: left; - width: 14px; - height: 14px; - position: absolute; + float: left; + width: 14px; + height: 14px; + position: absolute; } .timer-container .movement.left { - z-index: 10; + z-index: 10; } .timer-container .movement.right { - transform: rotate(180deg); - -webkit-transform: rotate(180deg); + transform: rotate(180deg); + -webkit-transform: rotate(180deg); } .timer-container .timer-button { - cursor: pointer; - text-decotation: underline; - margin: 7px 0 0 38px; - width: 15px; - float: left; - height: 10px; + cursor: pointer; + text-decotation: underline; + margin: 7px 0 0 38px; + width: 15px; + float: left; + height: 10px; } .timer-container .timer-button.pause { - background: url(/images/pause.png) no-repeat ; + background: url(/images/pause.png) no-repeat; } .timer-container .timer-button.play { - background: url(/images/start.png) no-repeat; + background: url(/images/start.png) no-repeat; } .uppercase { - text-transform: uppercase; -} - -.title b, -.title { - color: #ff6701; - font-size: 12px; - font-weight: bold; - padding: 0 30px 0px 73px; - line-height: 30px; - text-transform: uppercase; + text-transform: uppercase; } .title { - display: inline-block; - float: left; + color: #9c8cff; + font-size: 12px; + font-weight: bold; + padding: 0 30px 0px 73px; + line-height: 30px; + text-transform: uppercase; + display: inline-block; + float: left; +} +.title b { + color: #9c8cff; + font-size: 12px; + font-weight: bold; + padding: 0 30px 0px 73px; + line-height: 30px; + text-transform: uppercase; } - - - /* form styles */ - - - .vst-error { - color: #BE5ABF; - font-weight: bold; - display: inline-block; - height: 17px; - overflow: hidden; - padding-top: 6px; - width: 593px; + color: #BE5ABF; + font-weight: bold; + display: inline-block; + height: 17px; + overflow: hidden; + padding-top: 6px; + width: 593px; } .vst-ok { - color: #9fbf0c; - font-weight: bold; - display: inline-block; - height: 17px; - overflow: hidden; - padding-top: 6px; - max-width: 600px; + color: #27c24c; + font-weight: bold; + display: inline-block; + height: 17px; + overflow: hidden; + padding-top: 6px; + max-width: 600px; } - .vst-ok a { - color: #2c9491; + color: #27c24c; } .vst-ok a:hover { - color: #ff6701; + color: #9c8cff; } .vst-ok a:active { - color: #f72b44; + color: #796cc7; } - - - .data { - margin: 0 0 90px 0; + margin: 0 0 90px 0; } + .data-col1 { - width: 148px; + width: 148px; } - .data-col1 td { - padding: 10px 0 0 5px; + padding: 10px 0 0 5px; } - .data-col1 tr:first-child td { - padding: 59px 0 0 5px; + padding: 59px 0 0 5px; } -.login-box td, -.data td { - color: #555; - font-size: 15px; - padding-bottom: 3px; - font-weight: bold; +.login-box td, .data td { + color: #555; + font-size: 15px; + padding-bottom: 3px; + font-weight: bold; } + .input-label { - padding-top: 20px; + padding-top: 20px; } -.data input[type="checkbox"] { - display: inline; - cursor: pointer; + +.data input[type=checkbox] { + display: inline; + cursor: pointer; } + .step-top { - padding-top: 42px; + padding-top: 42px; } + .step-top-small { - padding-top: 22px; + padding-top: 22px; } + .jump-top { - margin-top: -60px; + margin-top: -60px; } + .jump-small-top { - margin-top: -12px; + margin-top: -12px; } + .float-right { display: inline-block; float: right; } .data a { - text-decoration: none; -} -label { - cursor: pointer; + text-decoration: none; } +label { + cursor: pointer; +} label:hover { - color: #333; + color: #333; } .vst-input { - background-color: #fff; - border: 1px solid #cfcfcf; - border-radius: 0px; - color: #555; - font-family: Arial; - font-size: 19px; - height: 28px; - margin: 2px 6px 0 0; - padding: 7px 3px 9px 14px; - width: 360px; - font-weight: normal; + background-color: #fff; + border: 1px solid #dee5e7; + border-radius: 3px; + color: #555; + font-family: Arial; + font-size: 19px; + height: 28px; + margin: 2px 6px 0 0; + padding: 7px 3px 9px 14px; + width: 360px; + font-weight: normal; } .vst-input:hover { - border: 1px solid #909090; + border: 1px solid #909090; } .vst-input:focus { - border: 1px solid #55C9C0; - background-color: #D7F9FF; - color: #333; + border: 1px solid #23b7e5; + background-color: #fff; + color: #333; +} +.vst-input:disabled { + background-color: #e0e0e0; } -.vst-input:disabled, .vst-list:disabled { - background-color: #e0e0e0; + background-color: #e0e0e0; } + .vst-input:focus:disabled { - border-color: #f1f1f1; - background-color: #f1f1f1; + border-color: #f1f1f1; + background-color: #f1f1f1; } .vst-input.long { - width: 832px; + width: 100%; } .vst-input.short { - width: 200px; + width: 200px; } .vst-list { - background-color: #fff; - border: 1px solid #ccc; - border-radius: 0; - color: #555; - font-family: Arial,Helvetica,sans-serif; - font-size: 19px; - font-weight: normal; - height: 43px; - cursor: pointer; - margin: 2px 6px 0 0; - min-width: 138px; - padding: 8px 1px 6px 10px; - background-image: url("/images/sprite.png?1446554103"); - background-position: -185px -604px; - width: 270px; - appearance:none; - -moz-appearance:none; - -webkit-appearance:none; - text-shadow: 0 0 0 #555; + background-color: #fff; + border: 1px solid #dee5e7; + border-radius: 3px; + color: #555; + font-family: Arial, Helvetica, sans-serif; + font-size: 19px; + font-weight: normal; + height: 43px; + cursor: pointer; + margin: 2px 6px 0 0; + min-width: 138px; + padding: 8px 1px 6px 10px; + background-image: url("/images/sprite.png?1446554103"); + background-position: -185px -604px; + width: 270px; + appearance: none; + -moz-appearance: none; + -webkit-appearance: none; + text-shadow: 0 0 0 #555; } - .vst-list.long-2 { - width: 486px; - background-position: 502px -604px; + width: 486px; + background-position: 502px -604px; } .vst-list option { - padding: 6px 1px 6px 15px; + padding: 6px 1px 6px 15px; } .vst-list:hover { - border: 1px solid #909090; + border: 1px solid #909090; } .vst-list:focus { - border: 1px solid #55C9C0; - color: #333; + border: 1px solid #23b7e5; + color: #333; } - .vst-list.flat { - border: 1px solid #fff; - color: #2c9491; - text-transform: uppercase; - font-weight: bold; - font-size: 11px; - margin-left: -14px; - background-position: -210px -604px; - text-shadow: none !important; + border: 1px solid #fff; + color: #27c24c; + text-transform: uppercase; + font-weight: bold; + font-size: 11px; + margin-left: -14px; + background-position: -210px -604px; + text-shadow: none !important; } .vst-list.flat:hover { - color: #ff6701; + color: #9c8cff; } .vst-list.flat option { - color: #555; + color: #555; } -a.vst-text, -a.vst-text b{ - color: #2c9491; +a.vst-text { + color: #27c24c; } -a.vst-text:hover, -a.vst-text:hover b{ - color: #ff6701; +a.vst-text b { + color: #27c24c; } -a.vst-text:active, -a.vst-text:active b{ - color: #ff6701; +a.vst-text:hover, a.vst-text:active { + color: #9c8cff; +} +a.vst-text:hover b, a.vst-text:active b { + color: #9c8cff; } .vst-textinput { - background-color: #fff; - border: 1px solid #cfcfcf; - border-radius: 0px; - color: #555; - font-size: 19px; - padding: 5px; - width: 560px; - height: 90px; - font-family:Arial, Helvetica, sans-serif; - padding: 9px 1px 6px 14px; - font-weight: normal; + background-color: #fff; + border: 1px solid #dee5e7; + border-radius: 3px; + color: #555; + font-size: 19px; + padding: 5px; + width: 560px; + height: 90px; + font-family: Arial, Helvetica, sans-serif; + padding: 9px 1px 6px 14px; + font-weight: normal; } .vst-textinput:hover { - border: 1px solid #909090; + border: 1px solid #909090; } .vst-textinput:focus { - border: 1px solid #55C9C0; - background-color: #D7F9FF; - color: #333; + border: 1px solid #23b7e5; + background-color: #fff; + color: #333; } .vst-textinput:disabled { - background-color: #f1f1f1; + background-color: #f1f1f1; } -.vst-textinput.console{ - font-size: 13px; - width: 630px; - height: 300px; - font-family:"Lucida Console", Monaco, monospace; - white-space: pre; +.vst-textinput.console { + font-size: 13px; + width: 630px; + height: 300px; + font-family: "Lucida Console", Monaco, monospace; + white-space: pre; } .vst-textinput.short { - width: 360px; + width: 360px; } -#advanced-options .console{ - width: 833px; - height: 600px; + +#advanced-options .console { + width: 833px; + height: 600px; } + .generate { - color: #2C9491; - text-decoration: underline; - cursor: pointer; - margin-left: -3px; - padding: 0 3px; + color: #27c24c; + text-decoration: underline; + cursor: pointer; + margin-left: -3px; + padding: 0 3px; } .generate:hover { - background-color: #ff6701; - border-color: #ff6701; - color: #fff; + background-color: #9c8cff; + border-color: #9c8cff; + color: #fff; } .generate:active { - background-color: #F7D616; - border-color: #F7D616; + background-color: #F7D616; + border-color: #F7D616; } + .vst-advanced { - border-bottom: 1px solid #2c9491; - color: #2c9491; - font-size: 11px; - letter-spacing: 1px; - padding: 2px 2px 0; - text-decoration: none; - text-transform: uppercase; + border-bottom: 1px solid #27c24c; + color: #27c24c; + font-size: 11px; + letter-spacing: 1px; + padding: 2px 2px 0; + text-decoration: none; + text-transform: uppercase; } + .login-box .vst-advanced:hover { - color: #ff6701; - background-color: transparent; - border-color: transparent; + color: #9c8cff; + background-color: transparent; + border-color: transparent; } .vst-advanced:hover { - color: #fff; - background-color: #ff6701; - border-color: #ff6701; + color: #fff; + background-color: #9c8cff; + border-color: #9c8cff; } -.login-box .vst-advanced:active, -.vst-advanced:active { - color: #fff; - background-color: #F7D616; - border-color: #F7D616; +.login-box .vst-advanced:active, .vst-advanced:active { + color: #fff; + background-color: #F7D616; + border-color: #F7D616; } .login-box .vst-advanced { - border-bottom: none; - color: #2c9491; - font-size: 10px; - letter-spacing: 1px; - padding: 2px 2px 0; - text-decoration: none; - text-transform: uppercase; + border-bottom: none; + color: #27c24c; + font-size: 10px; + letter-spacing: 1px; + padding: 2px 2px 0; + text-decoration: none; + text-transform: uppercase; } + .vst-checkbox { - font-size: 19px; - margin: 2px 6px 0 3px; - padding: 5px; + font-size: 19px; + margin: 2px 6px 0 3px; + padding: 5px; } + .lets-encrypt-note { - color: #89a40a !important; - font-style: italic; - font-weight: normal !important; - height: 30px; - padding-top: 10px; - vertical-align: top; + color: #89a40a !important; + font-style: italic; + font-weight: normal !important; + height: 30px; + padding-top: 10px; + vertical-align: top; } .additional-control { - margin-left: 17px; - color: #2C9491; - border-bottom: 1px solid #2C9491; - font-size: 11px; - letter-spacing: 1px; - cursor: pointer; - text-transform: uppercase; - font-weight: bold; - padding: 2px 2px 0; + margin-left: 17px; + color: #27c24c; + border-bottom: 1px solid #27c24c; + font-size: 11px; + letter-spacing: 1px; + cursor: pointer; + text-transform: uppercase; + font-weight: bold; + padding: 2px 2px 0; } .additional-control:hover { - background-color: #ff6701; - border-color: #ff6701; - color: #fff; + background-color: #9c8cff; + border-color: #9c8cff; + color: #fff; } .additional-control:active { - color: #fff; - background-color: #aaa; + color: #fff; + background-color: #aaa; } - .additional-control.ftp-remove-user { - padding: 2px 0 0 0; + padding: 2px 0 0 0; } - -.additional-control.delete:hover, -.additional-control.ftp-remove-user:hover { - background-color: #FF3438; - border-color: #FF3438; +.additional-control.delete:hover, .additional-control.ftp-remove-user:hover { + background-color: #FF3438; + border-color: #FF3438; } -.additional-control.delete:active, -.additional-control.ftp-remove-user:active { - background-color: #FF5F5F; - border-color: #FF5F5F; +.additional-control.delete:active, .additional-control.ftp-remove-user:active { + background-color: #FF5F5F; + border-color: #FF5F5F; } .additional-control.add:hover { - background-color: #9FBF0C; - border-color: #9FBF0C; + background-color: #27c24c; + border-color: #27c24c; } -.additional-control.add:active{ - background-color: #c0e60f; - border-color: #c0e60f; +.additional-control.add:active { + background-color: #32f360; + border-color: #32f360; } - .additional-control.remove-ns { - display: none; + display: none; } .data .step-left { - padding-left: 50px; + padding-left: 50px; } + .hide-password { - color: #2361a1; - margin-left: -36px; - padding-left: 3px; - z-index: 1; + color: #2361a1; + margin-left: -36px; + padding-left: 3px; + z-index: 1; } + .toggle-psw-visibility-icon { - cursor: pointer; - opacity: 1; + cursor: pointer; + opacity: 1; } + .show-passwords-enabled-action { - opacity: 0.4; -} -.ftp-path-value, -.hint, -td.hint { - color: #777; - font-size: 15px; - font-style: italic; - font-weight: normal; -} -.ftp-path-prefix { padding-top: 7px; } - -.ui-button, -.button { - filter:chroma(color=#000); - cursor: pointer; - border-radius: 3px 3px 3px 3px; - font-size: 13px; - font-weight: bold; - padding: 1px 16px 3px 16px; - width: 108px; - height: 34px; - color: #fafafa; - border: 1px solid #9FBF0C; - background-color: #9FBF0C; -} -.ui-button:hover, -.button:hover { - color: #555; - border: 1px solid #C0E60F; - background-color: #C0E60F; -} -.ui-button:active, -.button:active { - border: 1px solid #D1D70D !important; - background-color: #D1D70D !important; + opacity: 0.4; } -.ui-button:focus, -.button:focus { - border: 1px solid #90AD0D; - background-color: #90AD0D; +.ftp-path-value, .hint, td.hint { + color: #777; + font-size: 15px; + font-style: italic; + font-weight: normal; } -.ui-button.cancel, -.button.cancel { - color: #777; - border: 1px solid #DFDEDD; - background-color: #DFDEDD; +.ftp-path-prefix { + padding-top: 7px; } -.ui-button.cancel:hover, -.button.cancel:hover { - color: #fff; - border: 1px solid #999; - background-color: #999; + +.ui-button, .button { + filter: chroma(color=#000); + cursor: pointer; + border-radius: 3px 3px 3px 3px; + font-size: 13px; + font-weight: bold; + padding: 1px 16px 3px 16px; + width: 108px; + height: 34px; + color: #fafafa; + border: 1px solid #27c24c; + background-color: #27c24c; } -.ui-button.cancel:active, -.button.cancel:active { - border: 1px solid #D1D70D; - background-color: #D1D70D; + +.ui-button:hover, .button:hover { + color: #555; + border: 1px solid #32f360; + background-color: #32f360; } + +.ui-button:active, .button:active { + border: 1px solid #54ca70 !important; + background-color: #54ca70 !important; +} + +.ui-button:focus, .button:focus { + border: 1px solid #25af49; + background-color: #25af49; +} + +.ui-button.cancel, .button.cancel { + color: #777; + border: 1px solid #dde6e9; + background-color: #dde6e9; +} + +.ui-button.cancel:hover, .button.cancel:hover { + color: #fff; + border: 1px solid #999; + background-color: #999; +} + +.ui-button.cancel:active, .button.cancel:active { + border: 1px solid #54ca70; + background-color: #54ca70; +} + a.button.cancel { - padding: 8px 38px; - text-transform: capitalize; + padding: 8px 38px; + text-transform: capitalize; } - .ui-dialog button.cancel { - color: #000; - border: 1px solid #555; - background-color: #555; + color: #000; + border: 1px solid #555; + background-color: #555; } + /* .ui-dialog button.cancel:hover { color: #fff; @@ -2789,105 +2764,101 @@ a.button.cancel { background-color: #999; } .ui-dialog button.cancel:active { - border: 1px solid #D1D70D; - background-color: #D1D70D; + border: 1px solid #54ca70; + background-color: #54ca70; } */ - - - .ui-button span { - color: #fff; + color: #fff; } .ui-button:hover span { - color: #555 !important; + color: #555 !important; } .ui-button:active span { - color: #555; + color: #555; } .ui-button.cancel span { - color: #777; + color: #777; } -.ui-button:hover span { - color: #fff; -} -.ui-button:active span { - color: #fff; +.ui-button:hover span, .ui-button:active span { + color: #fff; } .ui-dialog button.cancel span { - color: #ccc; + color: #ccc; } - .unlim-trigger { - cursor: pointer; - margin-left: -36px; - padding-left: 3px; - z-index: 1; + cursor: pointer; + margin-left: -36px; + padding-left: 3px; + z-index: 1; } + .optional { - font-size: 12px; - padding: 0 0 0 6px; - font-weight: normal; + font-size: 12px; + padding: 0 0 0 6px; + font-weight: normal; } + .data-active b { - color: #9FBF0C; - font-size: 11px; - letter-spacing: 1px; - text-transform: uppercase; + color: #27c24c; + font-size: 11px; + letter-spacing: 1px; + text-transform: uppercase; } + .data-suspended b { - color: #A3A3A3; - font-size: 11px; - letter-spacing: 3px; - font-weight: bold; - text-transform: uppercase; + color: #A3A3A3; + font-size: 11px; + letter-spacing: 3px; + font-weight: bold; + text-transform: uppercase; } + .data-date { - font-weight: normal; - color: #777; - font-size: 12px; - letter-spacing: 1px; - line-height: 23px; + font-weight: normal; + color: #777; + font-size: 12px; + letter-spacing: 1px; + line-height: 23px; } -.data-dotted { - vertical-align: top; -} -.mail-infoblock-td { - vertical-align: top; + +.data-dotted, .mail-infoblock-td { + vertical-align: top; } + .mail-infoblock { - margin-left: -110px; - font-size: 12px; - color: #777; - border: 1px solid #d9d9d9; - padding: 0px 5px 12px 20px; - margin-top: 64px; - width: 334px; - overflow: hidden; + margin-left: -110px; + font-size: 12px; + color: #777; + border: 1px solid #d9d9d9; + padding: 0px 5px 12px 20px; + margin-top: 64px; + width: 334px; + overflow: hidden; } .mail-infoblock:hover { - overflow: visible; + overflow: visible; } .mail-infoblock td { - color: #777; - font-size: 14px; - height: 18px; - font-weight: normal; + color: #777; + font-size: 14px; + height: 18px; + font-weight: normal; } -.mail-infoblock td:first-child{ - padding-right: 15px; +.mail-infoblock td:first-child { + padding-right: 15px; } .mail-infoblock div { - width: 190px; - white-space: nowrap; + width: 190px; + white-space: nowrap; } .mail-infoblock a { - color: #2c9491; + color: #27c24c; } .mail-infoblock a:hover { - color: #ff6701; + color: #9c8cff; } .additional-info { @@ -2904,489 +2875,467 @@ a.button.cancel { padding-left: 20px; } +:focus { + outline: none; +} - -:focus {outline:none;} -::-moz-focus-inner {border:0;} +::-moz-focus-inner { + border: 0; +} .login { - background-color: #fff; - box-shadow: 0 2px 6px rgba(100, 100, 100, 0.3); - font-family: Arial,Helvetica,sans-serif; - margin: 0; - padding: 0; - text-align: left; - vertical-align: top; - width: 550px; + background-color: #fff; + box-shadow: 0 2px 6px rgba(100, 100, 100, 0.3); + font-family: Arial, Helvetica, sans-serif; + margin: 0; + padding: 0; + text-align: left; + vertical-align: top; + width: 500px; +} +.login a.error { + color: #BE5ABF; } -.login a.error { - color: #BE5ABF; -} .vestacp { - color: #505050; - font-size: 10px; - text-align: right; + color: #505050; + font-size: 10px; + text-align: right; } .vestacp:hover { - color: #2c9491; + color: #27c24c; } .vestacp:active { - color: #ff6701; + color: #9c8cff; } + .login-bottom { - height: 50px; - margin: 0; - padding: 0 26px 0 0; - text-align: right; - vertical-align: top; - width: 520px; + height: 50px; + margin: 0; + padding: 0 26px 0 0; + text-align: right; + vertical-align: top; + width: 474px; } .l-unit.selected { - background-color: #feef9a; - color: #555; - border-bottom: 1px solid #c0b990; + background-color: #feef9a; + color: #555; + border-bottom: 1px solid #c0b990; } - -.l-unit.selected b, -.l-unit.selected strong { - color: #555; +.l-unit.selected b, .l-unit.selected strong { + color: #555; } - /* MAIN MENU COLLAPSED */ .collapsed .l-stat { - padding-top: 20px; + padding-top: 20px; } - .collapsed .l-stat__col a { - height: 0; - min-height: 0; - overflow: hidden; + height: 0; + min-height: 0; + overflow: hidden; } - .collapsed .l-stat__col-title { - padding-top: 2px; + padding-top: 2px; } div.l-content.collapsed > div.l-separator:nth-of-type(2) { - margin-top: 93px; - position: fixed; + margin-top: 93px; + position: fixed; } - div.l-content.collapsed > div.l-separator:nth-of-type(4) { - margin-top: 138px; - position: fixed; + margin-top: 138px; + position: fixed; } - div.l-content.collapsed .l-sort { - margin-top: 94px; + margin-top: 94px; } .l-content > .units.l-center::before { - content: ''; - display: block; - height: 260px; + content: ""; + display: block; + height: 260px; } form#vstobjects { - padding-top: 280px; + padding-top: 280px; } - form#vstobjects.suspended { - background-color: #EAEAEA; - padding-bottom: 30px; + background-color: #EAEAEA; + padding-bottom: 30px; } #add-icon { - width: 45px; - height: 45px; - background-image: url("/images/sprite.png?1446554103"); - background-position: -378px -107px; - background-repeat: no-repeat; - display: inline-block; - z-index: 3; + width: 45px; + height: 45px; + background-image: url("/images/sprite.png?1446554103"); + background-position: -378px -107px; + background-repeat: no-repeat; + display: inline-block; + z-index: 3; } + .l-sort__create-btn.restore #add-icon { - background-position: -378px -250px; + background-position: -378px -250px; } .l-sort__create-btn.edit #add-icon { - background-position: -378px -154px; + background-position: -378px -154px; } + #tooltip { - background-color: #aacc0d; - border-radius: 15px; - bottom: 6px; - color: #fff; - font-size: 12px; - font-weight: bold; - height: 26px; - left: 12px; - letter-spacing: 0; - line-height: 25px; - margin-left: 12px; - margin-top: 7px; - padding: 3px 14px 3px 27px; - position: absolute; - text-transform: uppercase; - white-space: nowrap; - word-break: keep-all; - z-index: -1; + background-color: #aacc0d; + border-radius: 15px; + bottom: 6px; + color: #fff; + font-size: 12px; + font-weight: bold; + height: 26px; + left: 12px; + letter-spacing: 0; + line-height: 25px; + margin-left: 12px; + margin-top: 7px; + padding: 3px 14px 3px 27px; + position: absolute; + text-transform: uppercase; + white-space: nowrap; + word-break: keep-all; + z-index: -1; } .l-sort__create-btn:active #add-icon { - background-position: -425px -107px; + background-position: -425px -107px; } .l-sort__create-btn.restore:active #add-icon { - background-position: -425px -250px !important; + background-position: -425px -250px !important; } - .l-sort__create-btn.edit:active #add-icon { - background-position: -425px -154px !important; + background-position: -425px -154px !important; } - .l-sort__create-btn.edit:hover #tooltip { - background-color: #55C9C0; + background-color: #23b7e5; } .l-sort__create-btn.edit:active #tooltip { - background-color: #3BF0E6 !important; + background-color: #3BF0E6 !important; } - - - - .l-sort__create-btn:active #tooltip { - background-color: #D9F210; + background-color: #D9F210; } .noselect { - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } .search-input { - background-color: #fff; - border: 1px solid #ddd; - height: 21px; - line-height: 28px; - padding-left: 7px; - float: left; - width: 74px; -/* visibility: hidden;*/ - -webkit-transition: width .2s ease-out; - -moz-transition: width .2s ease-out; - -o-transition: width .2s ease-out; - transition: width .2s ease-out; -} -.lang-ru .search-input.activated{ - width: 70px; -} -.search-input.activated{ - width: 130px; - visibility: visible; -} -.search-input:focus { -// background-color: #e8fcff; -// border-color: #75c9c2; -// color: #333; + background-color: #fff; + border: 1px solid #ddd; + height: 21px; + line-height: 28px; + padding-left: 7px; + float: left; + width: 74px; + /* visibility: hidden;*/ + -webkit-transition: width 0.2s ease-out; + -moz-transition: width 0.2s ease-out; + -o-transition: width 0.2s ease-out; + transition: width 0.2s ease-out; } +.lang-ru .search-input.activated { + width: 70px; +} + +.search-input.activated { + width: 130px; + visibility: visible; +} .float-left { - float: left; + float: left; } + .float-right { - float: right; + float: right; } + .display-inline-block { - display: inline-block; + display: inline-block; } + .width-100p { - width: 100%; + width: 100%; } .l-sort-toolbar table td { - float: left; + float: left; } + .l-sort-toolbar__search-box { - float: right !important; - padding-top: 3px; - padding-right: 0 !important; + float: right !important; + padding-top: 3px; + padding-right: 0 !important; } + .ui-dialog .ui-dialog-buttonpane button:nth-of-type(2) { - -background-color: #dfdedd; + -background-color: #dde6e9; } .shortcuts { - background: rgba(50, 50, 50, 0.9); - display: inline-block; - position: fixed; - left: 50%; - bottom: 0; - color: #eee; - width: 800px; - border: 1px solid #333; - font-size: 13px; - z-index: 120; - transform: translate(-50%, 0); + background: rgba(50, 50, 50, 0.9); + display: inline-block; + position: fixed; + left: 50%; + bottom: 0; + color: #eee; + width: 800px; + border: 1px solid #333; + font-size: 13px; + z-index: 120; + transform: translate(-50%, 0); } .shortcuts .header { - border-bottom: 1px solid #333; - height: 43px; + border-bottom: 1px solid #333; + height: 43px; } .shortcuts .title { - text-transform: uppercase; - color: #ffcc00; - padding: 7px 0 7px 14px; - display: inline-block; - float: left; - font-size: 11px; - letter-spacing: 3px; + text-transform: uppercase; + color: #ffcc00; + padding: 7px 0 7px 14px; + display: inline-block; + float: left; + font-size: 11px; + letter-spacing: 3px; } .shortcuts .close { - background: url("/images/sprite.png?1446554103") repeat scroll -408px -469px; - cursor: pointer; - display: inline-block; - float: right; - height: 32px; - padding-top: 11px; - width: 46px; + background: url("/images/sprite.png?1446554103") repeat scroll -408px -469px; + cursor: pointer; + display: inline-block; + float: right; + height: 32px; + padding-top: 11px; + width: 46px; } .shortcuts .close:hover { - background-color: #000; + background-color: #000; } .shortcuts .close:active { - background-color: #55c9c0; + background-color: #23b7e5; } .shortcuts ul { - list-style-type: none; - padding: 30px 20px; - display: inline-block; - float: left; - width: 360px; + list-style-type: none; + padding: 30px 20px; + display: inline-block; + float: left; + width: 360px; } .shortcuts ul li { - padding: 5px 20px; + padding: 5px 20px; } .shortcuts ul li.step-top { - padding-top: 30px; + padding-top: 30px; } .shortcuts ul li span { - color: #48F4EF; - display: inline-block; - font-weight: bold; - padding: 0 20px 0 0; - text-align: right; -/* width: 140px;*/ + color: #48F4EF; + display: inline-block; + font-weight: bold; + padding: 0 20px 0 0; + text-align: right; + /* width: 140px;*/ } .shortcuts ul li span.bigger { - font-size: 18px; + font-size: 18px; } .description { - font-weight: normal; - line-height: 25px; - padding-bottom: 45px; - margin-left: 50px; + font-weight: normal; + line-height: 25px; + padding-bottom: 45px; + margin-left: 50px; } -.description ul{ - margin-top: 15px; - list-style: none; - padding-left: 0; +.description ul { + margin-top: 15px; + list-style: none; + padding-left: 0; } - -.description li{ - margin: 10px 0; +.description li { + margin: 10px 0; } - .description a { - line-height: 30px; - text-decoration: underline; - color: #2c9491; + line-height: 30px; + text-decoration: underline; + color: #27c24c; } .description a.purchase { - color: #FFF; - background-color: #9fbf0c; - border: none; - border-radius: 3px; - font-size: 13px; - font-weight: bold; - padding: 7px 15px;; - text-transform: capitalize; - text-decoration: none; + color: #FFF; + background-color: #27c24c; + border: none; + border-radius: 3px; + font-size: 13px; + font-weight: bold; + padding: 7px 15px; + text-transform: capitalize; + text-decoration: none; } .description a.purchase:hover { - background-color: #c0e60f; - color: #555; + background-color: #32f360; + color: #555; } .description a.purchase:active { - background-color: #D9F210; - color: #555; + background-color: #D9F210; + color: #555; } - .description a.cancel { - background-color: #999; - border: none; - border-radius: 3px; - color: #fff; - font-size: 13px; - font-weight: bold; - padding: 7px 15px; - text-transform: capitalize; - text-decoration: none; + background-color: #999; + border: none; + border-radius: 3px; + color: #fff; + font-size: 13px; + font-weight: bold; + padding: 7px 15px; + text-transform: capitalize; + text-decoration: none; } .description a.cancel:hover { - background-color: #2c9491; + background-color: #27c24c; } .description a.cancel:active { - background-color: #5f9491; + background-color: #5f9491; } - .description.cancel-success { - color: #8fac0a; - font-weight: bold; + color: #8fac0a; + font-weight: bold; } - .description .licence { - padding: 20px 0; - color: #2c9491; + padding: 20px 0; + color: #27c24c; } - .description .licence input { - margin-left: 17px; - width: 137px; + margin-left: 17px; + width: 137px; } - .description span { - font-style: italic; - line-height: 45px; - padding-top: 20px; + font-style: italic; + line-height: 45px; + padding-top: 20px; } - .description .twoco { - font-style: italic; - line-height: 15px; - font-size: 12px; + font-style: italic; + line-height: 15px; + font-size: 12px; } .ui-dialog .ui-dialog-content { - padding: 10px 26px 30px !important; + padding: 10px 26px 30px !important; } .helper-container { - float: right; - height: 293px; - margin-bottom: -450px; - margin-top: 459px; - padding-top: 3px; - width: 563px; + float: right; + height: 293px; + margin-bottom: -450px; + margin-top: 459px; + padding-top: 3px; + width: 563px; } .context-helper { - text-transform: uppercase; -# text-decoration: underline; - color: #777; - font-size: 11px; - cursor: pointer; - font-weight: bold; - float: right; + text-transform: uppercase; + color: #777; + font-size: 11px; + cursor: pointer; + font-weight: bold; + float: right; } .context-helper:hover { - color: #55C9C0; + color: #23b7e5; } .context-helper:active { - color: #ff6701; + color: #9c8cff; } - .cron-helper-tabs { -/* margin-top: 30px;*/ - border: 1px solid #d9d9d9 !important; + /* margin-top: 30px;*/ + border: 1px solid #d9d9d9 !important; } - .cron-helper-tabs a { - color: #777; - font-size: 11px; - font-weight: bold; - line-height: 30px; - padding: 0 12px; - text-transform: uppercase; + color: #777; + font-size: 11px; + font-weight: bold; + line-height: 30px; + padding: 0 12px; + text-transform: uppercase; } - .cron-helper-tabs a:hover { - color: #ff6701; + color: #9c8cff; } .cron-helper-tabs a:active { - color: #55C9C0; + color: #23b7e5; } .cron-helper-tabs .ui-tabs-selected a { - color: #ff6701; + color: #9c8cff; } - .cron-helper-tabs select { - font-size: 15px !important; + font-size: 15px !important; } .cron-helper-tabs select.short { - background-position: -388px -604px; - min-width: 30px; - width: 70px; + background-position: -388px -604px; + min-width: 30px; + width: 70px; } - .cron-helper-tabs p { - color: #777; - font-size: 12px; + color: #777; + font-size: 12px; } -.cron-helper-tabs p span{ - padding-right: 15px; - padding-left: 25px; +.cron-helper-tabs p span { + padding-right: 15px; + padding-left: 25px; } -.cron-helper-tabs p span.first{ - display: inline-block; - padding-right: 15px; - width: 100px; - padding-left: 0; +.cron-helper-tabs p span.first { + display: inline-block; + padding-right: 15px; + width: 100px; + padding-left: 0; } - .cron-helper-tabs .button { - width: auto; - background-color: #55C9C0; - border: 1px solid #55C9C0; - text-transform: capitalize; + width: auto; + background-color: #23b7e5; + border: 1px solid #23b7e5; + text-transform: capitalize; } .cron-helper-tabs .button:hover { - background-color: #5BD8CF; - border: 1px solid #5BD8CF; + background-color: #00d8ff; + border: 1px solid #00d8ff; } .cron-helper-tabs .button:active { - background-color: #4FBCB4; - border: 1px solid #4FBCB4; + background-color: #49c8ef; + border: 1px solid #49c8ef; } .context-helper-close { - background: rgba(0, 0, 0, 0) url("/images/sprite.png?1446554103") repeat scroll -408px -469px; - cursor: pointer; - display: inline-block; - float: right; - height: 32px; - padding-top: 11px; - width: 46px; - filter: contrast(50%); + background: rgba(0, 0, 0, 0) url("/images/sprite.png?1446554103") repeat scroll -408px -469px; + cursor: pointer; + display: inline-block; + float: right; + height: 32px; + padding-top: 11px; + width: 46px; + filter: contrast(50%); } .context-helper-close:hover { - background-color: #aaa; - filter: none; + background-color: #aaa; + filter: none; } .context-helper-close:active { - background-color: #999; - filter: none; + background-color: #999; + filter: none; } @media screen and (max-width: 950px) { - .helper-container { - display: none; - } + .helper-container { + display: none; + } } diff --git a/web/images/myvesta-large-white-130.png b/web/images/myvesta-large-white-130.png new file mode 100644 index 0000000000000000000000000000000000000000..2007b0bcf7cdd0506f97f510834aee84386c42b8 GIT binary patch literal 5284 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 literal 0 HcmV?d00001 diff --git a/web/images/sprite.png b/web/images/sprite.png index 456ab6f8d441083a881bcfca34a77bb118374c79..061392c3677cc4e7d9659d877a407891e538dde4 100644 GIT binary patch literal 35005 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 literal 57521 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\n' + + '
    \n' + + ' myVesta\n' + + ' website\n' + + '
    \n' + + '
    \n' + + ' Forum\n' + + ' Ask the questions on our forum\n' + + '
    \n' + + '
    \n' + + ' Git\n' + + ' Become our code contributor\n' + + '
    \n' + + '
    \n' + + ' Donate\n' + + ' Buy us a coffe\n' + + '
    \n' + + '
    \n' + + ' Wiki\n' + + ' Find solution in our documentation\n' + + '
    \n' + + '
    \n' + + '
    \n' + + ' SysLoad\n' + + '
    \n' + + '
    '; + +$(document).ready(function(){ + var sys_height=$(".io-log").height(); + $(".io-log2").css("top", sys_height+50); + setTimeout(function() { + iolog = getCookie("iolog"); + //console.log('cookie: "'+iolog+'"'); + if (iolog === '1') { + showIoLog(0); + return 1; + } + if (iolog === '0') { + //setCookie("iolog", 0, 365); + hideIoLog(0); + return 0; + } + if (iolog == '') { + //console.log('cookie is empty'); + //setCookie("iolog", 1, 365); + showIoLog(0); + return ''; + } + }, 1); + + if (GLOBAL.CURRENT_USER_FINAL == 'admin') $(".body-user .l-content > .l-center.units").first().prepend( iohtml ); + + $(".io-log").on("click", function() { + var showlog=checkCookie(); + //console.log('cookie = "'+iolog+'"'); + if (showlog===1 || showlog=='') { + //console.log('cookie is active or empty, calling hidelog()'); + setCookie("iolog", 0, 365); + hideIoLog(1); + } + if (showlog===0) { + //console.log('cookie is inactive, calling showlog()'); + setCookie("iolog", 1, 365); + showIoLog(1); + } + + }); +}); + diff --git a/web/js/init.js b/web/js/init.js index 6c60ff85..4da9422f 100644 --- a/web/js/init.js +++ b/web/js/init.js @@ -32,15 +32,17 @@ $(document).ready(function(){ // CREATE BUTTON - - $('.l-sort__create-btn').hover(function(){ - $(".l-sort__create-btn").append("
    "); - $(".l-sort__create-btn").append("
    "+$('.l-sort__create-btn').attr('title').replace(' ',' ')+"
    "); - }, function(){ - $("#add-icon").remove(); - $("#tooltip").remove(); - }); - + if ($(".l-sort__create-btn").length>0) { + $(".l-sort__create-btn").append("
    "); + $(".l-sort__create-btn").append("
    "+$('.l-sort__create-btn').attr('title').replace(' ',' ')+"
    "); + $('.l-sort__create-btn').hover(function(){ + $("#tooltip").css('background-color', '#1ca2cc'); + }, function() { + $("#tooltip").css('background-color', '#34b5dd'); + //$("#add-icon").remove(); + //$("#tooltip").remove(); + }); + } // SEARCH BOX diff --git a/web/templates/admin/list_dns_rec.html b/web/templates/admin/list_dns_rec.html index 24f28103..f84b504f 100644 --- a/web/templates/admin/list_dns_rec.html +++ b/web/templates/admin/list_dns_rec.html @@ -105,7 +105,7 @@ v_unit_id="" v_section="dns_rec">
    12 ) echo '...'; ?>
     
    -
    +
    diff --git a/web/templates/admin/list_server_info.html b/web/templates/admin/list_server_info.html index 7a131572..7ff5feec 100644 --- a/web/templates/admin/list_server_info.html +++ b/web/templates/admin/list_server_info.html @@ -5,6 +5,10 @@ Vesta - <?=__($TAB)?> + + + + @@ -12,7 +16,7 @@ - + diff --git a/web/templates/admin/list_user.html b/web/templates/admin/list_user.html index 4ad3daec..1e5a67cc 100644 --- a/web/templates/admin/list_user.html +++ b/web/templates/admin/list_user.html @@ -1,9 +1,9 @@
    '; - } else { + if ($user != 'admin') { + //echo ''; + //} else { echo ''; } ?> @@ -61,12 +61,15 @@
    -

    ".__("What's new:")."


    ".$changelog."
    ".__("This only admin see after myVesta upgrade, and will dissapear on next refresh.")." ".__("If you missed an update, see our previous")." ".__("change logs").".
    ".__("Check out our")." ".__("new site, forum and knowledge base").".


    "; - + if ($user == 'admin') { + echo ''; + } + if (isset($changelog)) { + echo "

    ".__("What's new:")."


    ".$changelog."
    ".__("This only admin see after myVesta upgrade, and will dissapear on next refresh.")." ".__("If you missed an update, see our previous")." ".__("change logs").".
    ".__("Check out our")." ".__("new site, forum and knowledge base").".


    "; + } + foreach ($data as $key => $value) { ++$i; if ($data[$key]['SUSPENDED'] == 'yes') { @@ -176,7 +179,7 @@ sort-bandwidth="" sort-disk="
    -
    :
    +
    :
    diff --git a/web/templates/admin/list_weblog.html b/web/templates/admin/list_weblog.html index b46e7979..08fea512 100644 --- a/web/templates/admin/list_weblog.html +++ b/web/templates/admin/list_weblog.html @@ -5,6 +5,10 @@ Vesta - <?=__('Web Log Manager')?> + + + + @@ -12,7 +16,7 @@ - + diff --git a/web/templates/admin/panel.html b/web/templates/admin/panel.html index b4534ccd..4c1fdaf7 100644 --- a/web/templates/admin/panel.html +++ b/web/templates/admin/panel.html @@ -40,9 +40,10 @@
    +
    -
    +
    • :
    • :
    • @@ -52,7 +53,7 @@
      -
      +
      • :
      • :
      • @@ -64,7 +65,7 @@
        -
        +
        • :
        • :
        • @@ -76,7 +77,7 @@
          -
          +
          -
          -
          myVesta
          Build date:
          -
    -
    + Vesta Control Panel diff --git a/web/templates/reset_1.html b/web/templates/reset_1.html index 87c9235a..ad14d07d 100644 --- a/web/templates/reset_1.html +++ b/web/templates/reset_1.html @@ -4,10 +4,10 @@ - -
    - myVesta Control Panel + + Vesta Control Panel +
    diff --git a/web/templates/reset_2.html b/web/templates/reset_2.html index 94fd9fea..5fe8bf40 100644 --- a/web/templates/reset_2.html +++ b/web/templates/reset_2.html @@ -4,10 +4,10 @@