Compare commits
26 Commits
bd56dcf5f5
...
devel
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d76624ff43 | ||
|
|
27b237a3c7 | ||
|
|
5349d46d71 | ||
|
|
75df7a2554 | ||
|
|
479a65e0dd | ||
|
|
aae561716c | ||
|
|
8a2ec261f5 | ||
|
|
ec4bb73609 | ||
|
|
e37e8a0d1e | ||
|
|
f398decba9 | ||
|
|
ae8b90d66e | ||
|
|
5610859f17 | ||
|
|
598c9abdfb | ||
|
|
5d461cc39b | ||
|
|
8b2c076e2e | ||
|
|
f44fe71c28 | ||
|
|
7e9f0f1074 | ||
|
|
be9c2de988 | ||
|
|
f433895670 | ||
|
|
e2c8835b6b | ||
|
|
751814c48a | ||
|
|
113cd37b9d | ||
|
|
ce83ca97a9 | ||
|
|
bb547d1d9a | ||
|
|
fd667cd08b | ||
|
|
46fb25bcc0 |
10
CHANGELOG.md
10
CHANGELOG.md
@@ -2,6 +2,16 @@
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [1.9.6.rpm] - Release
|
||||
|
||||
- Fix error on all web and mail domains after Apache 2.4.64 update
|
||||
- Fix error on local php installation and extension activation
|
||||
- Added templates for nginx mod_rewrite activation
|
||||
- Added nginx with mod_rewrite
|
||||
- Fixed database size usage and disk usage output on the info pages
|
||||
- Fixed installation of panel without PHP-FPM
|
||||
- Fixed mod_php, fcgid, fcgi mode
|
||||
|
||||
## [1.9.5.rpm] - Release
|
||||
|
||||
- Added support installation of alternative php not only remi
|
||||
|
||||
@@ -84,10 +84,10 @@ if [ "$LOCAL_PHP" == "yes" ]; then
|
||||
fi
|
||||
else
|
||||
# Packages in Remi repo have names with php$version-php- prefixes
|
||||
mph="php$version-php-fpm php$version-php-cgi php$version-php-mysqlnd php$version-php-pgsql
|
||||
php$version-php-pdo php$version-php-common php$version-php-pecl-imagick php$version-php-imap
|
||||
php$version-php-ldap php$version-php-pecl-apcu php$version-php-pecl-zip php$version-php-cli
|
||||
php$version-php-opcache php$version-php-xml php$version-php-gd php$version-php-intl
|
||||
mph="php$version-php-fpm php$version-php-cgi php$version-php-mysqlnd php$version-php-pgsql
|
||||
php$version-php-pdo php$version-php-common php$version-php-pecl-imagick php$version-php-imap
|
||||
php$version-php-ldap php$version-php-pecl-apcu php$version-php-pecl-zip php$version-php-cli
|
||||
php$version-php-opcache php$version-php-xml php$version-php-gd php$version-php-intl
|
||||
php$version-php-mbstring php$version-php-pspell php$version-php-readline"
|
||||
if [ "$version" = "56" ]; then
|
||||
mph=$(sed -e "s/php$version-php-pecl-apcu//")
|
||||
@@ -130,10 +130,10 @@ echo
|
||||
|
||||
if [ "$LOCAL_PHP" == "yes" ]; then
|
||||
for mod in $php_modules_install; do
|
||||
enable_local_php_extension "$version" "$mod"
|
||||
fn_enable_local_php_extension "$version" "$mod"
|
||||
done
|
||||
for mod in $php_modules_disable; do
|
||||
disable_local_php_extension "$version" "$mod"
|
||||
fn_disable_local_php_extension "$version" "$mod"
|
||||
done
|
||||
fi
|
||||
|
||||
@@ -156,23 +156,15 @@ else
|
||||
fi
|
||||
|
||||
# Check if required modules for apache2 are enabled
|
||||
if [ "$WEB_SYSTEM" = "apache2" ]; then
|
||||
if [ -f /etc/redhat-release ]; then
|
||||
if ! httpd -M | grep 'proxy_fcgi_module' ; then
|
||||
sed 's/#LoadModule proxy_fcgi_module/LoadModule proxy_fcgi_module/' -i /etc/httpd/conf.modules.d/00-proxy.conf
|
||||
sed 's/#LoadModule proxy_module/LoadModule proxy_module/' -i /etc/httpd/conf.modules.d/00-proxy.conf
|
||||
fi
|
||||
if ! httpd -M | grep 'setenvif_module' ; then
|
||||
sed 's/#LoadModule setenvif_module/LoadModule setenvif_module/' -i /etc/httpd/conf.modules.d/00-base.conf
|
||||
fi
|
||||
else
|
||||
if ! a2query -q -m proxy_fcgi; then
|
||||
a2enmod -q proxy_fcgi
|
||||
fi
|
||||
if ! a2query -q -m setenvif; then
|
||||
a2enmod -q setenvif
|
||||
fi
|
||||
if [ "$WEB_SYSTEM" = "httpd" ]; then
|
||||
if ! httpd -M | grep 'proxy_fcgi_module' ; then
|
||||
sed 's/#LoadModule proxy_fcgi_module/LoadModule proxy_fcgi_module/' -i /etc/httpd/conf.modules.d/00-proxy.conf
|
||||
sed 's/#LoadModule proxy_module/LoadModule proxy_module/' -i /etc/httpd/conf.modules.d/00-proxy.conf
|
||||
fi
|
||||
if ! httpd -M | grep 'setenvif_module' ; then
|
||||
sed 's/#LoadModule setenvif_module/LoadModule setenvif_module/' -i /etc/httpd/conf.modules.d/00-base.conf
|
||||
fi
|
||||
|
||||
$BIN/v-restart-web "yes"
|
||||
fi
|
||||
|
||||
|
||||
105
bin/v-default-domain
Executable file
105
bin/v-default-domain
Executable file
@@ -0,0 +1,105 @@
|
||||
#!/bin/bash
|
||||
# info: add web/dns/mail domain
|
||||
# options: USER DOMAIN COMMAND
|
||||
#
|
||||
# example: v-default-domain admin example.com set
|
||||
# v-default-domain admin example.com delete
|
||||
# v-default-domain admin example.com check
|
||||
# v-default-domain admin example.com check-default
|
||||
#
|
||||
# This function set user's domain as default or reset it or get default domain or check is domain default.
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Variables & Functions #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Argument definition
|
||||
user=$1
|
||||
domain=$2
|
||||
command=$3
|
||||
|
||||
# Includes
|
||||
# shellcheck source=/etc/hestiacp/hestia.conf
|
||||
source /etc/hestiacp/hestia.conf
|
||||
# shellcheck source=/usr/local/hestia/func/main.sh
|
||||
source $HESTIA/func/main.sh
|
||||
# load config file
|
||||
source_conf "$HESTIA/conf/hestia.conf"
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Verifications #
|
||||
#----------------------------------------------------------#
|
||||
check_args '3' "$#" 'USER DOMAIN COMMAND'
|
||||
is_format_valid 'user' 'domain'
|
||||
if [ -n "$ip" ]; then
|
||||
is_format_valid 'ip'
|
||||
fi
|
||||
is_object_valid 'user' 'USER' "$user"
|
||||
is_object_unsuspended 'user' 'USER' "$user"
|
||||
|
||||
# Perform verification if read-only mode is enabled
|
||||
check_hestia_demo_mode
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
confd="conf.h.d"
|
||||
|
||||
if [[ $command == check* ]]; then
|
||||
default_conf="/etc/httpd/$confd/domains/00000000000000000_default.conf"
|
||||
if [ -e "$default_conf" ]; then
|
||||
file_name=$(readlink -f "$default_conf")
|
||||
s_username=$(echo "$file_name" | cut -d"/" -f3 )
|
||||
s_domain=$(echo "$file_name" | rev | cut -d"/" -f2 | rev )
|
||||
if [ "$command" == "check-default" ]; then
|
||||
echo "$s_username:$s_domain"
|
||||
else
|
||||
if [ "$user" == "$s_username" ] && [ "$domain" == "$s_domain" ]; then
|
||||
echo "true"
|
||||
else
|
||||
echo "false"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo "no default domain"
|
||||
fi
|
||||
else
|
||||
# Working on web domain
|
||||
if [ -n "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" == "httpd" ]; then
|
||||
domain_path="/etc/httpd/$confd/domains/$domain.conf"
|
||||
domain_ssl_path="/etc/httpd/$confd/domains/$domain.ssl.conf"
|
||||
if [ -e "$domain_ssl_path" ] || [ -e "$domain_path" ]; then
|
||||
path_name="$domain_path"
|
||||
if [ -e "$domain_ssl_path" ]; then
|
||||
path_name="$domain_ssl_path"
|
||||
fi
|
||||
if [ "$command" == "delete" ]; then
|
||||
if [ -e "/etc/httpd/$confd/domains/00000000000000000_default.conf" ]; then
|
||||
mv -f "/etc/httpd/$confd/domains/00000000000000000_default.conf" "/etc/httpd/$confd/domains/00000000000000000_default.conf.trash"
|
||||
fi
|
||||
else
|
||||
ln -sf "${path_name}" "/etc/httpd/$confd/domains/00000000000000000_default.conf"
|
||||
fi
|
||||
echo "true"
|
||||
else
|
||||
echo "false"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Restarting services
|
||||
$BIN/v-restart-web "yes"
|
||||
check_result $? "can't restart web" > /dev/null
|
||||
|
||||
$BIN/v-restart-proxy "yes"
|
||||
check_result $? "can't restart proxy" > /dev/null
|
||||
|
||||
$BIN/v-restart-dns "yes"
|
||||
check_result $? "can't restart dns" > /dev/null
|
||||
fi
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Hestia #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
exit
|
||||
@@ -1,158 +1,224 @@
|
||||
import { defineConfig } from 'vitepress';
|
||||
import { version } from '../../package.json';
|
||||
import { defineConfig } from "vitepress";
|
||||
import { version } from "../../package.json";
|
||||
|
||||
export default defineConfig({
|
||||
lang: 'en-US',
|
||||
title: 'Hestia Control Panel',
|
||||
description: 'Open-source web server control panel.',
|
||||
lang: "en-US",
|
||||
title: "Hestia Control Panel",
|
||||
description: "Open-source web server control panel.",
|
||||
|
||||
lastUpdated: true,
|
||||
cleanUrls: false,
|
||||
lastUpdated: true,
|
||||
cleanUrls: false,
|
||||
|
||||
head: [
|
||||
['link', { rel: 'icon', sizes: 'any', href: '/favicon.ico' }],
|
||||
['link', { rel: 'icon', type: 'image/svg+xml', sizes: '16x16', href: '/logo.svg' }],
|
||||
['link', { rel: 'apple-touch-icon', sizes: '180x180', href: '/apple-touch-icon.png' }],
|
||||
['link', { rel: 'manifest', href: '/site.webmanifest' }],
|
||||
['meta', { name: 'theme-color', content: '#b7236a' }],
|
||||
],
|
||||
head: [
|
||||
["link", { rel: "icon", sizes: "any", href: "/favicon.ico" }],
|
||||
[
|
||||
"link",
|
||||
{ rel: "icon", type: "image/svg+xml", sizes: "16x16", href: "/logo.svg" },
|
||||
],
|
||||
[
|
||||
"link",
|
||||
{
|
||||
rel: "apple-touch-icon",
|
||||
sizes: "180x180",
|
||||
href: "/apple-touch-icon.png",
|
||||
},
|
||||
],
|
||||
["link", { rel: "manifest", href: "/site.webmanifest" }],
|
||||
["meta", { name: "theme-color", content: "#b7236a" }],
|
||||
],
|
||||
|
||||
themeConfig: {
|
||||
logo: '/logo.svg',
|
||||
themeConfig: {
|
||||
logo: "/logo.svg",
|
||||
|
||||
nav: nav(),
|
||||
nav: nav(),
|
||||
|
||||
socialLinks: [
|
||||
{ icon: 'github', link: 'https://dev.brepo.ru/bayrepo/hestiacp' },
|
||||
{ icon: 'github', link: 'https://github.com/bayrepo/hestiacp-rpm' },
|
||||
{ icon: 'github', link: 'https://github.com/hestiacp/hestiacp' },
|
||||
],
|
||||
socialLinks: [
|
||||
{ icon: "github", link: "https://dev.brepo.ru/bayrepo/hestiacp" },
|
||||
{ icon: "github", link: "https://github.com/bayrepo/hestiacp-rpm" },
|
||||
{ icon: "github", link: "https://github.com/hestiacp/hestiacp" },
|
||||
],
|
||||
|
||||
sidebar: { '/docs/': sidebarDocs() },
|
||||
sidebar: { "/docs/": sidebarDocs() },
|
||||
|
||||
outline: [2, 3],
|
||||
outline: [2, 3],
|
||||
|
||||
footer: {
|
||||
message: 'Выпущена под лицензией GPLv3.',
|
||||
copyright: 'Copyright © 2019-present Hestia Control Panel и некоторые RPM based компоненты принадлежат bayrepo',
|
||||
},
|
||||
|
||||
},
|
||||
footer: {
|
||||
message: "Выпущена под лицензией GPLv3.",
|
||||
copyright:
|
||||
"Copyright © 2019-present Hestia Control Panel и некоторые RPM based компоненты принадлежат bayrepo",
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
/** @returns {import("vitepress").DefaultTheme.NavItem[]} */
|
||||
function nav() {
|
||||
return [
|
||||
{ text: 'Характеристики', link: '/features.md' },
|
||||
{ text: 'Установка', link: '/install.md' },
|
||||
{ text: 'Документация', link: '/docs/introduction/getting-started.md', activeMatch: '/docs/' },
|
||||
{
|
||||
text: `v${version}`,
|
||||
items: [
|
||||
{
|
||||
text: 'Changelog',
|
||||
link: 'https://dev.brepo.ru/bayrepo/hestiacp/src/branch/master/CHANGELOG.md',
|
||||
},
|
||||
{
|
||||
text: 'Содействие в разработке',
|
||||
link: 'https://dev.brepo.ru/bayrepo/hestiacp/src/branch/master/CONTRIBUTING.md',
|
||||
},
|
||||
{
|
||||
text: 'Политика безопасности',
|
||||
link: 'https://dev.brepo.ru/bayrepo/hestiacp/src/branch/master/SECURITY.md',
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
return [
|
||||
{ text: "Характеристики", link: "/features.md" },
|
||||
{ text: "Установка", link: "/install.md" },
|
||||
{
|
||||
text: "Документация",
|
||||
link: "/docs/introduction/getting-started.md",
|
||||
activeMatch: "/docs/",
|
||||
},
|
||||
{
|
||||
text: `v${version}`,
|
||||
items: [
|
||||
{
|
||||
text: "Changelog",
|
||||
link: "https://dev.brepo.ru/bayrepo/hestiacp/src/branch/master/CHANGELOG.md",
|
||||
},
|
||||
{
|
||||
text: "Содействие в разработке",
|
||||
link: "https://dev.brepo.ru/bayrepo/hestiacp/src/branch/master/CONTRIBUTING.md",
|
||||
},
|
||||
{
|
||||
text: "Политика безопасности",
|
||||
link: "https://dev.brepo.ru/bayrepo/hestiacp/src/branch/master/SECURITY.md",
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
}
|
||||
/** @returns {import("vitepress").DefaultTheme.SidebarItem[]} */
|
||||
function sidebarDocs() {
|
||||
return [
|
||||
{
|
||||
text: 'Знакомство',
|
||||
collapsed: false,
|
||||
items: [
|
||||
{ text: 'С чего начать', link: '/docs/introduction/getting-started.md' },
|
||||
{ text: 'Рекомендации', link: '/docs/introduction/best-practices.md' },
|
||||
],
|
||||
},
|
||||
{
|
||||
text: 'Инструкция пользователя',
|
||||
collapsed: false,
|
||||
items: [
|
||||
{ text: 'Аккаунт', link: '/docs/user-guide/account.md' },
|
||||
{ text: 'Резервные копии', link: '/docs/user-guide/backups.md' },
|
||||
{ text: 'Cron задачи', link: '/docs/user-guide/cron-jobs.md' },
|
||||
{ text: 'Базы данных', link: '/docs/user-guide/databases.md' },
|
||||
{ text: 'DNS', link: '/docs/user-guide/dns.md' },
|
||||
{ text: 'Менеджер файлов', link: '/docs/user-guide/file-manager.md' },
|
||||
{ text: 'Почтовые домены', link: '/docs/user-guide/mail-domains.md' },
|
||||
{ text: 'Оповещения', link: '/docs/user-guide/notifications.md' },
|
||||
{ text: 'Пакеты', link: '/docs/user-guide/packages.md' },
|
||||
{ text: 'Статистика', link: '/docs/user-guide/statistics.md' },
|
||||
{ text: 'Пользователи', link: '/docs/user-guide/users.md' },
|
||||
{ text: 'Веб домены', link: '/docs/user-guide/web-domains.md' },
|
||||
],
|
||||
},
|
||||
{
|
||||
text: 'Администрирование сервера',
|
||||
collapsed: false,
|
||||
items: [
|
||||
{ text: 'Создание резервных копий и восстановление', link: '/docs/server-administration/backup-restore.md' },
|
||||
{ text: 'Конфигурация', link: '/docs/server-administration/configuration.md' },
|
||||
{ text: 'Персональная настройка', link: '/docs/server-administration/customisation.md' },
|
||||
{ text: 'Базы данных и phpMyAdmin', link: '/docs/server-administration/databases.md' },
|
||||
{ text: 'DNS кластера & DNSSEC', link: '/docs/server-administration/dns.md' },
|
||||
{ text: 'Email', link: '/docs/server-administration/email.md' },
|
||||
{ text: 'Менеджер файлов', link: '/docs/server-administration/file-manager.md' },
|
||||
{ text: 'Firewall', link: '/docs/server-administration/firewall.md' },
|
||||
{ text: 'Обновления ОС', link: '/docs/server-administration/os-upgrades.md' },
|
||||
{ text: 'Rest API', link: '/docs/server-administration/rest-api.md' },
|
||||
{ text: 'SSL сертификаты', link: '/docs/server-administration/ssl-certificates.md' },
|
||||
{ text: 'Веб шаблоны и кэширование', link: '/docs/server-administration/web-templates.md' },
|
||||
{ text: 'Troubleshooting', link: '/docs/server-administration/troubleshooting.md' },
|
||||
],
|
||||
},
|
||||
{
|
||||
text: 'Содейтсвие в разработке',
|
||||
collapsed: false,
|
||||
items: [
|
||||
{ text: 'Сборка пакетов', link: '/docs/contributing/building.md' },
|
||||
{ text: 'Разработка', link: '/docs/contributing/development.md' },
|
||||
{ text: 'Документация', link: '/docs/contributing/documentation.md' },
|
||||
{ text: 'Установка приложений', link: '/docs/contributing/quick-install-app.md' },
|
||||
{ text: 'Тестирование', link: '/docs/contributing/testing.md' },
|
||||
{ text: 'Переводы', link: '/docs/contributing/translations.md' },
|
||||
],
|
||||
},
|
||||
{
|
||||
text: 'Сообщество',
|
||||
collapsed: false,
|
||||
items: [
|
||||
{ text: 'Hestia Nginx Cache', link: '/docs/community/hestia-nginx-cache.md' },
|
||||
{
|
||||
text: 'Ioncube installer for Hestia',
|
||||
link: '/docs/community/ioncube-hestia-installer.md',
|
||||
},
|
||||
{ text: 'Генератор установочной команды', link: '/docs/community/install-script-generator.md' },
|
||||
],
|
||||
},
|
||||
{
|
||||
text: 'Ссылки',
|
||||
collapsed: false,
|
||||
items: [
|
||||
{ text: 'API', link: '/docs/reference/api.md' },
|
||||
{ text: 'CLI', link: '/docs/reference/cli.md' },
|
||||
],
|
||||
},
|
||||
{
|
||||
text: 'Дополнения',
|
||||
collapsed: false,
|
||||
items: [
|
||||
{ text: 'PHP cli селектор', link: '/docs/extensions/php-cli-selector.md' },
|
||||
{ text: 'Расширенные модули', link: '/docs/extensions/extended-modules.md' },
|
||||
{ text: 'Настройка Local PHP', link: '/docs/extensions/local-php.md' },
|
||||
],
|
||||
},
|
||||
];
|
||||
return [
|
||||
{
|
||||
text: "Знакомство",
|
||||
collapsed: false,
|
||||
items: [
|
||||
{
|
||||
text: "С чего начать",
|
||||
link: "/docs/introduction/getting-started.md",
|
||||
},
|
||||
{ text: "Рекомендации", link: "/docs/introduction/best-practices.md" },
|
||||
],
|
||||
},
|
||||
{
|
||||
text: "Инструкция пользователя",
|
||||
collapsed: false,
|
||||
items: [
|
||||
{ text: "Аккаунт", link: "/docs/user-guide/account.md" },
|
||||
{ text: "Резервные копии", link: "/docs/user-guide/backups.md" },
|
||||
{ text: "Cron задачи", link: "/docs/user-guide/cron-jobs.md" },
|
||||
{ text: "Базы данных", link: "/docs/user-guide/databases.md" },
|
||||
{ text: "DNS", link: "/docs/user-guide/dns.md" },
|
||||
{ text: "Менеджер файлов", link: "/docs/user-guide/file-manager.md" },
|
||||
{ text: "Почтовые домены", link: "/docs/user-guide/mail-domains.md" },
|
||||
{ text: "Оповещения", link: "/docs/user-guide/notifications.md" },
|
||||
{ text: "Пакеты", link: "/docs/user-guide/packages.md" },
|
||||
{ text: "Статистика", link: "/docs/user-guide/statistics.md" },
|
||||
{ text: "Пользователи", link: "/docs/user-guide/users.md" },
|
||||
{ text: "Веб домены", link: "/docs/user-guide/web-domains.md" },
|
||||
],
|
||||
},
|
||||
{
|
||||
text: "Администрирование сервера",
|
||||
collapsed: false,
|
||||
items: [
|
||||
{
|
||||
text: "Создание резервных копий и восстановление",
|
||||
link: "/docs/server-administration/backup-restore.md",
|
||||
},
|
||||
{
|
||||
text: "Конфигурация",
|
||||
link: "/docs/server-administration/configuration.md",
|
||||
},
|
||||
{
|
||||
text: "Персональная настройка",
|
||||
link: "/docs/server-administration/customisation.md",
|
||||
},
|
||||
{
|
||||
text: "Базы данных и phpMyAdmin",
|
||||
link: "/docs/server-administration/databases.md",
|
||||
},
|
||||
{
|
||||
text: "DNS кластера & DNSSEC",
|
||||
link: "/docs/server-administration/dns.md",
|
||||
},
|
||||
{ text: "Email", link: "/docs/server-administration/email.md" },
|
||||
{
|
||||
text: "Менеджер файлов",
|
||||
link: "/docs/server-administration/file-manager.md",
|
||||
},
|
||||
{ text: "Firewall", link: "/docs/server-administration/firewall.md" },
|
||||
{
|
||||
text: "Обновления ОС",
|
||||
link: "/docs/server-administration/os-upgrades.md",
|
||||
},
|
||||
{ text: "Rest API", link: "/docs/server-administration/rest-api.md" },
|
||||
{
|
||||
text: "SSL сертификаты",
|
||||
link: "/docs/server-administration/ssl-certificates.md",
|
||||
},
|
||||
{
|
||||
text: "Веб шаблоны и кэширование",
|
||||
link: "/docs/server-administration/web-templates.md",
|
||||
},
|
||||
{
|
||||
text: "Troubleshooting",
|
||||
link: "/docs/server-administration/troubleshooting.md",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
text: "Содейтсвие в разработке",
|
||||
collapsed: false,
|
||||
items: [
|
||||
{ text: "Сборка пакетов", link: "/docs/contributing/building.md" },
|
||||
{ text: "Разработка", link: "/docs/contributing/development.md" },
|
||||
{ text: "Документация", link: "/docs/contributing/documentation.md" },
|
||||
{
|
||||
text: "Установка приложений",
|
||||
link: "/docs/contributing/quick-install-app.md",
|
||||
},
|
||||
{ text: "Тестирование", link: "/docs/contributing/testing.md" },
|
||||
{ text: "Переводы", link: "/docs/contributing/translations.md" },
|
||||
],
|
||||
},
|
||||
{
|
||||
text: "Сообщество",
|
||||
collapsed: false,
|
||||
items: [
|
||||
{
|
||||
text: "Hestia Nginx Cache",
|
||||
link: "/docs/community/hestia-nginx-cache.md",
|
||||
},
|
||||
{
|
||||
text: "Ioncube installer for Hestia",
|
||||
link: "/docs/community/ioncube-hestia-installer.md",
|
||||
},
|
||||
{
|
||||
text: "Генератор установочной команды",
|
||||
link: "/docs/community/install-script-generator.md",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
text: "Ссылки",
|
||||
collapsed: false,
|
||||
items: [
|
||||
{ text: "API", link: "/docs/reference/api.md" },
|
||||
{ text: "CLI", link: "/docs/reference/cli.md" },
|
||||
],
|
||||
},
|
||||
{
|
||||
text: "Дополнения",
|
||||
collapsed: false,
|
||||
items: [
|
||||
{
|
||||
text: "PHP cli селектор",
|
||||
link: "/docs/extensions/php-cli-selector.md",
|
||||
},
|
||||
{
|
||||
text: "Расширенные модули",
|
||||
link: "/docs/extensions/extended-modules.md",
|
||||
},
|
||||
{ text: "Настройка Local PHP", link: "/docs/extensions/local-php.md" },
|
||||
{
|
||||
text: "nginx+mod_rewrite",
|
||||
link: "/docs/extensions/nginx-mod-rewrite.md",
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@ export const webDomains = [
|
||||
{ text: 'PHP 8.2' },
|
||||
{ text: 'PHP 8.3' },
|
||||
{ text: 'PHP 8.4' },
|
||||
{ text: 'PHP 8.5' },
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
@@ -148,4 +148,4 @@ bundle install
|
||||
bundle install --path=vendor
|
||||
```
|
||||
|
||||
для установки пользователю необходимых гемов локально.
|
||||
для установки пользователю необходимых гемов локально.
|
||||
|
||||
15
docs/docs/extensions/nginx-mod-rewrite.md
Normal file
15
docs/docs/extensions/nginx-mod-rewrite.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# nginx с поддержкой mdo_rewrite
|
||||
|
||||
HestiaCP RPM edition поддерживает установку приложений для доменов, таких как Wordpress, Joomla, Drupal и т.д.
|
||||
|
||||
Данные приложения написаны на PHP и требуют особого режима доступа к файлам, который реализуется с помощью .htaccess файла, в котором опианы эти правила преобразования URL.
|
||||
|
||||
Но .htaccess файл доступен только для Apache, для реализации работоспособнсти приложений в контрольной панели организованы шаблоны конфигурации nginx, которые по сути являются аналогами конфигурации из .htaccess.
|
||||
|
||||
Эти шаблоны размещены в каталоге `/usr/local/hestia/data/templates/web/nginx/php-fpm`.
|
||||
|
||||
# nginx + mod_rewrite
|
||||
|
||||
Но с версии 1.28.2 nginx добавлен экспериментальный модуль mod_rewrite для nginx, который позволяет понимать конфигурации из .htaccess и для nginx.
|
||||
|
||||
Для активации данной конфигурации, необходимо в настройках домена в `Расширенных настройках` выбрать в поле `Шаблон прокси` шаблон `nginx-php-rewrite`. Данный шаблон автоматически определит версию PHP-FPM для домена и активирует работу модуля mod_rewrite для nginx. Для данного домена Apache больше не будет принимать участие в обработке запроса, все будет обрабатываться в связке nginx-PHP-FPM.
|
||||
@@ -61,3 +61,4 @@
|
||||
- [PHP cli селектор](/docs/extensions/php-cli-selector.md)
|
||||
- [Расширенные модули](/docs/extensions/extended-modules.md)
|
||||
- [Настройка Local PHP](/docs/extensions/local-php.md)
|
||||
- [nginx + mod_rewrite](/docs/extensions/nginx-mod-rewrite.md)
|
||||
|
||||
@@ -141,4 +141,14 @@
|
||||
|
||||
Когда включено кэширование Nginx (с использованием кэша FastCGI или с шаблоном с поддержкой кэширования), вы можете очистить кэш с помощью кнопки **<i class="fas fa-fw fa-trash"></i> Очистить кэш Nginx**.
|
||||
|
||||
При использовании только Nginx вы можете включить кэширование FastCGI с помощью поля **Включить кэш FastCGI**. Если этот флажок установлен, отображается опция, позволяющая определить, в течение какого времени кэш считается действительным.
|
||||
При использовании только Nginx вы можете включить кэширование FastCGI с помощью поля **Включить кэш FastCGI**. Если этот флажок установлен, отображается опция, позволяющая определить, в течение какого времени кэш считается действительным.
|
||||
|
||||
### Домен по умолчанию
|
||||
|
||||
Для вебсервера Apache при обращении по IP адресу без указания домена доменом по умолчанию является первый загруженный виртуальный хост.
|
||||
|
||||
Для изменения домена по умолчанию необходимо выбрать среди доменов интересующий и в настройках домена необходимо установить флажок:
|
||||
|
||||
**Установить текущий домен как домент по умолчанию при обращении к серверу по IP**
|
||||
|
||||
затем нажмите кнопку **<i class="fas fa-fw fa-save"></i> Сохранить** в правом верхнем углу.
|
||||
@@ -102,7 +102,7 @@ prepare_web_backend() {
|
||||
# Accept first function argument as backend template otherwise fallback to $template global variable
|
||||
local backend_template=${1:-$template}
|
||||
php_type=$(cat "$HESTIA/conf/hestia.conf" | grep "LOCAL_PHP" | grep "yes")
|
||||
|
||||
|
||||
if [ -n "$php_type" ]; then
|
||||
pool=$(find -L /opt/brepo/ -name "$domain.conf" -exec dirname {} \; 2>/dev/null)
|
||||
else
|
||||
@@ -359,7 +359,7 @@ add_web_config() {
|
||||
-e "s|%ssl_ca%|$ssl_ca|g" \
|
||||
-e "s|%docrtpriv%|$docrtpriv|g" \
|
||||
> $conf
|
||||
|
||||
|
||||
if [ "$TPLNM" == "srvproxy.tpl" -o "$TPLNM" == "srvproxy.stpl" ];then
|
||||
proxy_backend_port_internal=$(convert_proxy_ngix_internal_redirect "$3")
|
||||
cat "$conf" \
|
||||
@@ -419,11 +419,41 @@ add_web_config() {
|
||||
done
|
||||
fi
|
||||
|
||||
#----
|
||||
|
||||
php_type=$(cat "$HESTIA/conf/hestia.conf" | grep "LOCAL_PHP" | grep "yes")
|
||||
|
||||
MOD_CONF="/etc/httpd/conf.modules.d/09-mod-php.conf"
|
||||
PHP_DEFAULT="/usr/bin/php-cgi"
|
||||
if [ -e $MOD_CONF ]; then
|
||||
php_ver=$(grep -m1 '^LoadModule php_module ' "$MOD_CONF" | grep -oP 'php\d{2}')
|
||||
else
|
||||
php_ver=$(find /etc/httpd/conf.modules.d -maxdepth 1 -type f -name '*-php*-php.conf' -print -quit | sed -n 's/.*-\(php[0-9]\+\)-php\.conf$/\1/p')
|
||||
fi
|
||||
php_cgi_path=$PHP_DEFAULT
|
||||
|
||||
if [ -n "$php_ver" ]; then
|
||||
if [ -n "$php_type" ]; then
|
||||
php_cgi_path="/opt/brepo/${php_ver}/bin/php-cgi"
|
||||
else
|
||||
php_cgi_path="/opt/remi/${php_ver}/root/bin/php-cgi"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -x "$php_cgi_path" ]]; then
|
||||
:
|
||||
else
|
||||
php_cgi_path=$PHP_DEFAULT
|
||||
fi
|
||||
|
||||
#----
|
||||
|
||||
trigger="${TPLNM/.*pl/.sh}"
|
||||
if [ -x "${WEBTPL_LOCATION}/$trigger" ]; then
|
||||
$WEBTPL_LOCATION/$trigger \
|
||||
$user $domain $local_ip $HOMEDIR \
|
||||
$HOMEDIR/$user/web/$domain/public_html
|
||||
$HOMEDIR/$user/web/$domain/public_html \
|
||||
$php_cgi_path
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
@@ -56,11 +56,12 @@ upgrade_health_check() {
|
||||
|
||||
upgrade_welcome_message() {
|
||||
echo
|
||||
echo ' _ _ _ _ ____ ____ '
|
||||
echo ' | | | | ___ ___| |_(_) __ _ / ___| _ \ '
|
||||
echo ' | |_| |/ _ \/ __| __| |/ _` | | | |_) | '
|
||||
echo ' | _ | __/\__ \ |_| | (_| | |___| __/ '
|
||||
echo ' |_| |_|\___||___/\__|_|\__,_|\____|_| '
|
||||
echo ' _ _ _ _ ____ ____ '
|
||||
echo ' | | | | ___ ___| |_(_) __ _ / ___| _ \ _ _ . . '
|
||||
echo ' | |_| |/ _ \/ __| __| |/ _` | | | |_) | | \| \|\/| '
|
||||
echo ' | _ | __/\__ \ |_| | (_| | |___| __/ |_/|_/| | '
|
||||
echo ' |_| |_|\___||___/\__|_|\__,_|\____|_| | \| | | '
|
||||
echo " "
|
||||
echo " "
|
||||
echo " Hestia Control Panel Software Update "
|
||||
echo " Version: ${DISPLAY_VER}"
|
||||
|
||||
@@ -20,15 +20,15 @@ class PassengerWorker < Kernel::ModuleCoreWorker
|
||||
ID: 2,
|
||||
NAME: MODULE_ID,
|
||||
DESCR: "Added passenger support for nginx",
|
||||
REQ: "puppet_installer",
|
||||
REQ: "",
|
||||
CONF: "yes",
|
||||
}
|
||||
end
|
||||
|
||||
def enable
|
||||
log_file = get_log
|
||||
f_inst_pp = get_module_paydata("passenger_installer.pp")
|
||||
f_uninst_pp = get_module_paydata("passenger_uninstaller.pp")
|
||||
f_inst_pp = get_module_paydata("passenger_installer.yml")
|
||||
f_uninst_pp = get_module_paydata("passenger_uninstaller.yml")
|
||||
if !check
|
||||
inf = info
|
||||
log("Req error, needed #{inf[:REQ]}")
|
||||
@@ -36,16 +36,16 @@ class PassengerWorker < Kernel::ModuleCoreWorker
|
||||
else
|
||||
begin
|
||||
prepare_default_ruby_conf
|
||||
log("install packages for passenger + nginx support: /usr/bin/puppet apply --detailed-exitcodes #{f_inst_pp}")
|
||||
result_action = `/usr/bin/puppet apply --detailed-exitcodes "#{f_inst_pp}" 2>&1`
|
||||
log("install packages for passenger + nginx support: /usr/bin/ansible-playbook -vv #{f_inst_pp}")
|
||||
result_action = `LC_ALL=C.UTF-8 /usr/bin/ansible-playbook -vv "#{f_inst_pp}" 2>&1`
|
||||
ex_status = $?.exitstatus
|
||||
if ex_status.to_i == 0 || ex_status.to_i == 2
|
||||
log(result_action)
|
||||
super
|
||||
else
|
||||
log(result_action)
|
||||
log("Try to disable action: /usr/bin/puppet apply --detailed-exitcodes #{f_uninst_pp}")
|
||||
result_action = `/usr/bin/puppet apply --detailed-exitcodes "#{f_uninst_pp}" 2>&1`
|
||||
log("Try to disable action: /usr/bin/ansible-playbook -vv #{f_uninst_pp}")
|
||||
result_action = `LC_ALL=C.UTF-8 /usr/bin/ansible-playbook -vv "#{f_uninst_pp}" 2>&1`
|
||||
"module installation error. See log #{log_file}"
|
||||
end
|
||||
rescue => e
|
||||
@@ -57,14 +57,14 @@ class PassengerWorker < Kernel::ModuleCoreWorker
|
||||
|
||||
def disable
|
||||
log_file = get_log
|
||||
f_uninst_pp = get_module_paydata("passenger_uninstaller.pp")
|
||||
f_uninst_pp = get_module_paydata("passenger_uninstaller.yml")
|
||||
if !check_domains_with_passenger
|
||||
return log_return("Presents domains with passenger support disable it first")
|
||||
end
|
||||
begin
|
||||
log("uninstall packages for passenger + nginx support")
|
||||
log("Try to disable action: /usr/bin/puppet apply --detailed-exitcodes #{f_uninst_pp}")
|
||||
result_action = `/usr/bin/puppet apply --detailed-exitcodes "#{f_uninst_pp}" 2>&1`
|
||||
log("Try to disable action: /usr/bin/ansible-playbook -vv #{f_uninst_pp}")
|
||||
result_action = `LC_ALL=C.UTF-8 /usr/bin/ansible-playbook -vv "#{f_uninst_pp}" 2>&1`
|
||||
ex_status = $?.exitstatus
|
||||
if ex_status.to_i == 0 || ex_status.to_i == 2
|
||||
log(result_action)
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
---
|
||||
- name: Install Passenger and configure Nginx on localhost
|
||||
hosts: localhost
|
||||
connection: local
|
||||
become: true
|
||||
gather_facts: false
|
||||
environment:
|
||||
LANG: en_US.UTF-8
|
||||
LC_ALL: en_US.UTF-8
|
||||
tasks:
|
||||
# Устанавливаем Ruby и зависимости
|
||||
- name: Install rubygems-devel
|
||||
ansible.builtin.dnf:
|
||||
name: rubygems-devel
|
||||
state: present
|
||||
- name: Install rubygem-rake
|
||||
ansible.builtin.dnf:
|
||||
name: rubygem-rake
|
||||
state: present
|
||||
- name: Install ruby-devel
|
||||
ansible.builtin.dnf:
|
||||
name: ruby-devel
|
||||
state: present
|
||||
- name: Install rubygem-rack
|
||||
ansible.builtin.dnf:
|
||||
name: rubygem-rack
|
||||
state: present
|
||||
- name: Install alt-brepo-ruby33-devel
|
||||
ansible.builtin.dnf:
|
||||
name: alt-brepo-ruby33-devel
|
||||
state: present
|
||||
- name: Install alt-brepo-ruby33-rubygem-rake
|
||||
ansible.builtin.dnf:
|
||||
name: alt-brepo-ruby33-rubygem-rake
|
||||
state: present
|
||||
# Устанавливаем Passenger и модуль Nginx
|
||||
- name: Install passenger-devel
|
||||
ansible.builtin.dnf:
|
||||
name: passenger-devel
|
||||
state: present
|
||||
- name: Install passenger
|
||||
ansible.builtin.dnf:
|
||||
name: passenger
|
||||
state: present
|
||||
- name: Install nginx-mod-http-passenger
|
||||
ansible.builtin.dnf:
|
||||
name: nginx-mod-http-passenger
|
||||
state: present
|
||||
# Конфигурируем Nginx для Passenger
|
||||
- name: Create passenger.conf
|
||||
ansible.builtin.copy:
|
||||
dest: /etc/nginx/conf.d/passenger.conf
|
||||
content: |
|
||||
passenger_root /usr/share/ruby/vendor_ruby/phusion_passenger/locations.ini;
|
||||
passenger_ruby /usr/bin/ruby;
|
||||
passenger_instance_registry_dir /var/run/passenger-instreg;
|
||||
passenger_user_switching on;
|
||||
passenger_env_var PASSENGER_COMPILE_NATIVE_SUPPORT_BINARY 0;
|
||||
passenger_env_var PASSENGER_DOWNLOAD_NATIVE_SUPPORT_BINARY 0;
|
||||
- name: Create passenger_includer.conf
|
||||
ansible.builtin.copy:
|
||||
dest: /etc/nginx/conf.d/main/passenger.conf
|
||||
content: |
|
||||
load_module modules/ngx_http_passenger_module.so;
|
||||
# Перезапускаем Nginx
|
||||
- name: Restart nginx service
|
||||
ansible.builtin.service:
|
||||
name: nginx
|
||||
state: restarted
|
||||
@@ -0,0 +1,38 @@
|
||||
---
|
||||
- name: Uninstall Passenger and configure Nginx on localhost
|
||||
hosts: localhost
|
||||
connection: local
|
||||
become: true
|
||||
gather_facts: false
|
||||
environment:
|
||||
LANG: en_US.UTF-8
|
||||
LC_ALL: en_US.UTF-8
|
||||
tasks:
|
||||
# Удалаем модуль nginx-passenger
|
||||
- name: Remove nginx-mod-http-passenger package
|
||||
ansible.builtin.dnf:
|
||||
name: nginx-mod-http-passenger
|
||||
state: absent
|
||||
# Удалаем passenger и зависимости
|
||||
- name: Remove passenger-devel package
|
||||
ansible.builtin.dnf:
|
||||
name: passenger-devel
|
||||
state: absent
|
||||
- name: Remove passenger package
|
||||
ansible.builtin.dnf:
|
||||
name: passenger
|
||||
state: absent
|
||||
# Удаляем конфигурационные файлы Nginx
|
||||
- name: Remove passenger.conf
|
||||
ansible.builtin.file:
|
||||
path: /etc/nginx/conf.d/passenger.conf
|
||||
state: absent
|
||||
- name: Remove passenger_includer.conf
|
||||
ansible.builtin.file:
|
||||
path: /etc/nginx/conf.d/main/passenger.conf
|
||||
state: absent
|
||||
# Перезапускаем Nginx (необязательно, но полезно)
|
||||
- name: Restart nginx service
|
||||
ansible.builtin.service:
|
||||
name: nginx
|
||||
state: restarted
|
||||
@@ -42,7 +42,7 @@ HESTIA_INSTALL_VER='1.9.6.rpm-alpha'
|
||||
|
||||
# Dependencies
|
||||
mariadb_v="10.11"
|
||||
multiphp_v=("74" "80" "81" "82" "83")
|
||||
multiphp_v=("74" "80" "81" "82" "83" "84" "85")
|
||||
|
||||
# default PHP version
|
||||
php_v="82"
|
||||
@@ -61,7 +61,7 @@ software="nginx
|
||||
hestia hestia-nginx hestia-php
|
||||
rrdtool quota e2fsprogs fail2ban dnsutils util-linux cronie expect perl-Mail-DKIM unrar vim acl sysstat
|
||||
rsyslog openssh-clients util-linux ipset zstd systemd-timesyncd jq awstats perl-Switch net-tools mc flex
|
||||
whois git idn2 unzip zip sudo bc ftp lsof"
|
||||
whois git idn2 unzip zip sudo bc ftp lsof unzip"
|
||||
|
||||
|
||||
installer_dependencies="gnupg2 policycoreutils wget ca-certificates"
|
||||
@@ -753,7 +753,7 @@ if [ "$uselocalphp" == "yes" ]; then
|
||||
php_pkgs_lst="brepo-php${php_v} brepo-php${php_v}-mod-apache"
|
||||
else
|
||||
write_config_value "LOCAL_PHP" "no"
|
||||
php_pkgs_lst="php${php_v}-php.${arch} php${php_v}-php-cgi.${arch} php${php_v}-php-mysqlnd.${arch} php${php_v}-php-pgsql.${arch}
|
||||
php_pkgs_lst="php${php_v}-php php${php_v}-php-cgi php${php_v}-php-mysqlnd php${php_v}-php-pgsql
|
||||
php${php_v}-php-pdo php${php_v}-php-common php${php_v}-php-pecl-imagick php${php_v}-php-imap php${php_v}-php-ldap
|
||||
php${php_v}-php-pecl-apcu php${php_v}-php-pecl-zip php${php_v}-php-cli php${php_v}-php-opcache php${php_v}-php-xml
|
||||
php${php_v}-php-gd php${php_v}-php-intl php${php_v}-php-mbstring php${php_v}-php-pspell php${php_v}-php-readline"
|
||||
@@ -911,7 +911,7 @@ if [ "$apache" = 'no' ]; then
|
||||
software=$(echo "$software" | sed -e "s/mod_suphp//")
|
||||
software=$(echo "$software" | sed -e "s/mod_fcgid//")
|
||||
software=$(echo "$software" | sed -e "s/mod_ssl//")
|
||||
software=$(echo "$software" | sed -e "s/php${php_v}-php.${arch}//")
|
||||
software=$(echo "$software" | sed -e "s/php${php_v}-php//")
|
||||
software=$(echo "$software" | sed -e "s/brepo-php${php_v}-mod-apache//")
|
||||
mod_php="disable"
|
||||
fi
|
||||
@@ -956,11 +956,11 @@ if [ "$mysql8" = 'no' ]; then
|
||||
software=$(echo "$software" | sed -e "s/mysql-common//")
|
||||
fi
|
||||
if [ "$mysql" = 'no' ] && [ "$mysql8" = 'no' ]; then
|
||||
software=$(echo "$software" | sed -e "s/php${php_v}-php-mysql.${arch}//")
|
||||
software=$(echo "$software" | sed -e "s/php${php_v}-php-mysql//")
|
||||
fi
|
||||
if [ "$postgresql" = 'no' ]; then
|
||||
software=$(echo "$software" | sed -e "s/postgresql-server//")
|
||||
software=$(echo "$software" | sed -e "s/php${php_v}-php-pgsql.${arch}//")
|
||||
software=$(echo "$software" | sed -e "s/php${php_v}-php-pgsql//")
|
||||
software=$(echo "$software" | sed -e "s/phppgadmin//")
|
||||
php_modules_install=$(echo "$php_modules_install" | sed -e "s/pgsql//")
|
||||
php_modules_install=$(echo "$php_modules_install" | sed -e "s/pdo_pgsql//")
|
||||
@@ -974,12 +974,12 @@ if [ "$iptables" = 'no' ]; then
|
||||
software=$(echo "$software" | sed -e "s/fail2ban//")
|
||||
fi
|
||||
if [ "$phpfpm" = 'yes' ]; then
|
||||
software=$(echo "$software" | sed -e "s/php${php_v}-php-cgi.${arch}//")
|
||||
software=$(echo "$software" | sed -e "s/php${php_v}-php-cgi//")
|
||||
software=$(echo "$software" | sed -e "s/httpd-itk//")
|
||||
software=$(echo "$software" | sed -e "s/mod_ruid2 //")
|
||||
software=$(echo "$software" | sed -e "s/mod_suphp//")
|
||||
software=$(echo "$software" | sed -e "s/mod_fcgid//")
|
||||
software=$(echo "$software" | sed -e "s/php${php_v}-php.${arch}//")
|
||||
software=$(echo "$software" | sed -e "s/php${php_v}-php//")
|
||||
software=$(echo "$software" | sed -e "s/brepo-php${php_v}-mod-apache//")
|
||||
mod_php="disable"
|
||||
fi
|
||||
@@ -1456,11 +1456,32 @@ if [ "$apache" = 'yes' ]; then
|
||||
|
||||
# IDK why those modules still here, but ok. if they are disabled by default
|
||||
|
||||
if [ -e /etc/httpd/conf.modules.d/01-suexec.conf ]; then
|
||||
sed 's/^LoadModule suexec_module/#LoadModule suexec_module/' -i /etc/httpd/conf.modules.d/01-suexec.conf
|
||||
fi
|
||||
if [ -e /etc/httpd/conf.modules.d/10-fcgid.conf ]; then
|
||||
sed 's/^LoadModule fcgid_module/#LoadModule fcgid_module/' -i /etc/httpd/conf.modules.d/10-fcgid.conf
|
||||
if [ "$phpfpm" = 'yes' ]; then
|
||||
if [ -e /etc/httpd/conf.modules.d/01-suexec.conf ]; then
|
||||
sed 's/^LoadModule suexec_module/#LoadModule suexec_module/' -i /etc/httpd/conf.modules.d/01-suexec.conf
|
||||
fi
|
||||
if [ -e /etc/httpd/conf.modules.d/10-fcgid.conf ]; then
|
||||
sed 's/^LoadModule fcgid_module/#LoadModule fcgid_module/' -i /etc/httpd/conf.modules.d/10-fcgid.conf
|
||||
fi
|
||||
else
|
||||
cp -f $HESTIA_INSTALL_DIR/httpd/01-mpm-itk.conf /etc/httpd/conf.modules.d/
|
||||
if [ -e /etc/httpd/conf.modules.d/01-suexec.conf ]; then
|
||||
sed 's/#LoadModule suexec_module/LoadModule suexec_module/' -i /etc/httpd/conf.modules.d/01-suexec.conf
|
||||
fi
|
||||
echo "LoadModule suphp_module modules/mod_suphp.so" > /etc/httpd/conf.modules.d/10-suphp.conf
|
||||
if [ -e /etc/httpd/conf.modules.d/10-fcgid.conf ]; then
|
||||
sed 's/#LoadModule fcgid_module/LoadModule fcgid_module/' -i /etc/httpd/conf.modules.d/10-fcgid.conf
|
||||
fi
|
||||
if [ -e /etc/httpd/conf.d/fcgid.conf ]; then
|
||||
cp /etc/httpd/conf.d/fcgid.conf /etc/httpd/conf.h.d/fcgid.conf
|
||||
fi
|
||||
if [ -e /etc/httpd/conf.dmod_suphp.conf ]; then
|
||||
cp /etc/httpd/conf.d/mod_suphp.conf /etc/httpd/conf.h.d/mod_suphp.conf
|
||||
fi
|
||||
if [ -e "/etc/httpd/conf.d.prep/php${php_v}.conf" ]; then
|
||||
ln -s "/etc/httpd/conf.d.prep/php${php_v}.conf" /etc/httpd/conf.modules.d/09-mod-php.conf
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
# Switch status loader to custom one
|
||||
@@ -1474,6 +1495,10 @@ if [ "$apache" = 'yes' ]; then
|
||||
sed 's/LoadModule mpm_prefork_module/#LoadModule mpm_prefork_module/' -i /etc/httpd/conf.modules.d/00-mpm.conf
|
||||
sed 's/#LoadModule mpm_event_module/LoadModule mpm_event_module/' -i /etc/httpd/conf.modules.d/00-mpm.conf
|
||||
cp -f $HESTIA_INSTALL_DIR/httpd/hestia-event.conf /etc/httpd/conf.h.d/
|
||||
else
|
||||
sed 's/LoadModule mpm_worker_module/#LoadModule mpm_worker_module/' -i /etc/httpd/conf.modules.d/00-mpm.conf
|
||||
sed 's/LoadModule mpm_event_module/#LoadModule mpm_event_module/' -i /etc/httpd/conf.modules.d/00-mpm.conf
|
||||
sed 's/#LoadModule mpm_prefork_module/LoadModule mpm_prefork_module/' -i /etc/httpd/conf.modules.d/00-mpm.conf
|
||||
fi
|
||||
|
||||
if [ ! -d /etc/httpd/sites-available ]; then
|
||||
@@ -1499,6 +1524,10 @@ fi
|
||||
# Configure PHP-FPM #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
if [ "$uselocalphp" == "no" ]; then
|
||||
multiphp_v=("74" "80" "81" "82" "83" "84")
|
||||
fi
|
||||
|
||||
if [ "$phpfpm" = "yes" ]; then
|
||||
if [ "$multiphp" = 'yes' ]; then
|
||||
for v in "${multiphp_v[@]}"; do
|
||||
@@ -1666,10 +1695,10 @@ if [ "$mysql" = 'yes' ] || [ "$mysql8" = 'yes' ]; then
|
||||
echo "[ * ] Installing phpMyAdmin version v$pma_v..."
|
||||
|
||||
# Download latest phpmyadmin release
|
||||
wget --quiet --retry-connrefused https://files.phpmyadmin.net/phpMyAdmin/$pma_v/phpMyAdmin-$pma_v-all-languages.tar.gz
|
||||
wget --quiet --retry-connrefused https://data.brepo.ru/hestiacp/phpMyAdmin/$pma_v/phpMyAdmin-$pma_v-all-languages.zip
|
||||
|
||||
# Unpack files
|
||||
tar xzf phpMyAdmin-$pma_v-all-languages.tar.gz
|
||||
unzip phpMyAdmin-$pma_v-all-languages.zip
|
||||
|
||||
# Create folders
|
||||
mkdir -p /usr/share/phpmyadmin
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
[hectiacp]
|
||||
name=msvsphere9 hestia repo on repo.brepo.ru
|
||||
name=RPM Alma Rocky 9 hestia repo on repo.brepo.ru
|
||||
baseurl=https://repo.brepo.ru/hestia/
|
||||
enabled=1
|
||||
gpgkey=https://repo.brepo.ru/hestia/brepo_projects-gpg-key
|
||||
|
||||
3
install/rpm/httpd/01-mpm-itk.conf
Normal file
3
install/rpm/httpd/01-mpm-itk.conf
Normal file
@@ -0,0 +1,3 @@
|
||||
<IfModule mpm_prefork_module>
|
||||
LoadModule mpm_itk_module modules/mod_mpm_itk.so
|
||||
</IfModule>
|
||||
@@ -18,6 +18,13 @@
|
||||
CustomLog /var/log/%web_system%/domains/%domain%.log combined
|
||||
ErrorLog /var/log/%web_system%/domains/%domain%.error.log
|
||||
<Directory %sdocroot%>
|
||||
<FilesMatch ".+\.ph(ar|p|tml)$">
|
||||
SetHandler application/x-httpd-php
|
||||
</FilesMatch>
|
||||
<FilesMatch ".+\.phps$">
|
||||
SetHandler application/x-httpd-php-source
|
||||
Require all denied
|
||||
</FilesMatch>
|
||||
AllowOverride All
|
||||
SSLRequireSSL
|
||||
Options +Includes -Indexes +ExecCGI
|
||||
|
||||
@@ -21,6 +21,13 @@
|
||||
IncludeOptional %home%/%user%/conf/web/%domain%/forcessl.apache2.conf*
|
||||
|
||||
<Directory %docroot%>
|
||||
<FilesMatch ".+\.ph(ar|p|tml)$">
|
||||
SetHandler application/x-httpd-php
|
||||
</FilesMatch>
|
||||
<FilesMatch ".+\.phps$">
|
||||
SetHandler application/x-httpd-php-source
|
||||
Require all denied
|
||||
</FilesMatch>
|
||||
AllowOverride All
|
||||
Options +Includes -Indexes +ExecCGI
|
||||
php_admin_value open_basedir %docroot%:%home%/%user%/tmp
|
||||
|
||||
41
install/rpm/templates/web/httpd/forbidden.stpl
Normal file
41
install/rpm/templates/web/httpd/forbidden.stpl
Normal file
@@ -0,0 +1,41 @@
|
||||
#=========================================================================#
|
||||
# Default Web Domain Template #
|
||||
# DO NOT MODIFY THIS FILE! CHANGES WILL BE LOST WHEN REBUILDING DOMAINS #
|
||||
# https://hestiacp.com/docs/server-administration/web-templates.html #
|
||||
#=========================================================================#
|
||||
|
||||
<VirtualHost %ip%:%web_ssl_port%>
|
||||
|
||||
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
|
||||
|
||||
<Location />
|
||||
Require all denied
|
||||
</Location>
|
||||
SSLEngine on
|
||||
SSLVerifyClient none
|
||||
SSLCertificateFile %ssl_crt%
|
||||
SSLCertificateKeyFile %ssl_key%
|
||||
%ssl_ca_str%SSLCertificateChainFile %ssl_ca%
|
||||
|
||||
<IfModule mod_ruid2.c>
|
||||
RMode config
|
||||
RUidGid %user% %group%
|
||||
RGroups apache
|
||||
</IfModule>
|
||||
<IfModule mpm_itk.c>
|
||||
AssignUserID %user% %group%
|
||||
</IfModule>
|
||||
|
||||
IncludeOptional %home%/%user%/conf/web/%domain%/%web_system%.ssl.conf_*
|
||||
IncludeOptional /etc/httpd/conf.h.d/*.inc
|
||||
</VirtualHost>
|
||||
38
install/rpm/templates/web/httpd/forbidden.tpl
Normal file
38
install/rpm/templates/web/httpd/forbidden.tpl
Normal file
@@ -0,0 +1,38 @@
|
||||
#=========================================================================#
|
||||
# Default Web Domain Template #
|
||||
# DO NOT MODIFY THIS FILE! CHANGES WILL BE LOST WHEN REBUILDING DOMAINS #
|
||||
# https://hestiacp.com/docs/server-administration/web-templates.html #
|
||||
#=========================================================================#
|
||||
|
||||
<VirtualHost %ip%:%web_port%>
|
||||
|
||||
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
|
||||
|
||||
IncludeOptional %home%/%user%/conf/web/%domain%/forcessl.apache2.conf*
|
||||
|
||||
<Location />
|
||||
Require all denied
|
||||
</Location>
|
||||
|
||||
<IfModule mod_ruid2.c>
|
||||
RMode config
|
||||
RUidGid %user% %group%
|
||||
RGroups apache
|
||||
</IfModule>
|
||||
<IfModule mpm_itk.c>
|
||||
AssignUserID %user% %group%
|
||||
</IfModule>
|
||||
|
||||
IncludeOptional %home%/%user%/conf/web/%domain%/%web_system%.conf_*
|
||||
IncludeOptional /etc/httpd/conf.h.d/*.inc
|
||||
</VirtualHost>
|
||||
@@ -18,6 +18,13 @@
|
||||
CustomLog /var/log/%web_system%/domains/%domain%.log combined
|
||||
ErrorLog /var/log/%web_system%/domains/%domain%.error.log
|
||||
<Directory %sdocroot%>
|
||||
<FilesMatch ".+\.ph(ar|p|tml)$">
|
||||
SetHandler application/x-httpd-php
|
||||
</FilesMatch>
|
||||
<FilesMatch ".+\.phps$">
|
||||
SetHandler application/x-httpd-php-source
|
||||
Require all denied
|
||||
</FilesMatch>
|
||||
AllowOverride All
|
||||
SSLRequireSSL
|
||||
Options +Includes -Indexes +ExecCGI
|
||||
|
||||
@@ -21,6 +21,13 @@
|
||||
IncludeOptional %home%/%user%/conf/web/%domain%/forcessl.apache2.conf*
|
||||
|
||||
<Directory %docroot%>
|
||||
<FilesMatch ".+\.ph(ar|p|tml)$">
|
||||
SetHandler application/x-httpd-php
|
||||
</FilesMatch>
|
||||
<FilesMatch ".+\.phps$">
|
||||
SetHandler application/x-httpd-php-source
|
||||
Require all denied
|
||||
</FilesMatch>
|
||||
AllowOverride All
|
||||
Options +Includes -Indexes +ExecCGI
|
||||
php_admin_value upload_max_filesize 10M
|
||||
|
||||
32
install/rpm/templates/web/httpd/php-fpm/forbidden.stpl
Normal file
32
install/rpm/templates/web/httpd/php-fpm/forbidden.stpl
Normal file
@@ -0,0 +1,32 @@
|
||||
#=========================================================================#
|
||||
# Default Web Domain Template #
|
||||
# DO NOT MODIFY THIS FILE! CHANGES WILL BE LOST WHEN REBUILDING DOMAINS #
|
||||
# https://hestiacp.com/docs/server-administration/web-templates.html #
|
||||
#=========================================================================#
|
||||
|
||||
<VirtualHost %ip%:%web_ssl_port%>
|
||||
|
||||
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
|
||||
<Location />
|
||||
Require all denied
|
||||
</Location>
|
||||
|
||||
SSLEngine on
|
||||
SSLVerifyClient none
|
||||
SSLCertificateFile %ssl_crt%
|
||||
SSLCertificateKeyFile %ssl_key%
|
||||
%ssl_ca_str%SSLCertificateChainFile %ssl_ca%
|
||||
|
||||
IncludeOptional %home%/%user%/conf/web/%domain%/%web_system%.ssl.conf_*
|
||||
IncludeOptional /etc/httpd/conf.h.d/*.inc
|
||||
</VirtualHost>
|
||||
30
install/rpm/templates/web/httpd/php-fpm/forbidden.tpl
Normal file
30
install/rpm/templates/web/httpd/php-fpm/forbidden.tpl
Normal file
@@ -0,0 +1,30 @@
|
||||
#=========================================================================#
|
||||
# Default Web Domain Template #
|
||||
# DO NOT MODIFY THIS FILE! CHANGES WILL BE LOST WHEN REBUILDING DOMAINS #
|
||||
# https://hestiacp.com/docs/server-administration/web-templates.html #
|
||||
#=========================================================================#
|
||||
|
||||
<VirtualHost %ip%:%web_port%>
|
||||
|
||||
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
|
||||
|
||||
IncludeOptional %home%/%user%/conf/web/%domain%/apache2.forcessl.conf*
|
||||
|
||||
<Location />
|
||||
Require all denied
|
||||
</Location>
|
||||
|
||||
|
||||
IncludeOptional %home%/%user%/conf/web/%domain%/%web_system%.conf_*
|
||||
IncludeOptional /etc/httpd/conf.h.d/*.inc
|
||||
</VirtualHost>
|
||||
@@ -1,16 +1,26 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/bash
|
||||
# Adding php wrapper
|
||||
user="$1"
|
||||
domain="$2"
|
||||
ip="$3"
|
||||
home_dir="$4"
|
||||
docroot="$5"
|
||||
php_path="$6"
|
||||
|
||||
wrapper_script='#!/usr/bin/php-cgi -cphp5-cgi.ini'
|
||||
wrapper_script="#!$php_path -cphp5-cgi.ini"
|
||||
wrapper_file="$home_dir/$user/web/$domain/cgi-bin/php"
|
||||
wrapper_dir="/var/www/$user/$domain/cgi-bin"
|
||||
wrapper_file2="$wrapper_dir/php"
|
||||
|
||||
echo "$wrapper_script" > $wrapper_file
|
||||
chown $user:$user $wrapper_file
|
||||
chmod -f 751 $wrapper_file
|
||||
|
||||
mkdir -p $wrapper_dir
|
||||
|
||||
echo "$wrapper_script" > $wrapper_file2
|
||||
chown $user:$user $wrapper_file2
|
||||
chown $user:$user $wrapper_dir
|
||||
chmod -f 751 $wrapper_file2
|
||||
|
||||
exit 0
|
||||
|
||||
@@ -10,7 +10,8 @@
|
||||
%alias_string%
|
||||
ServerAdmin %email%
|
||||
DocumentRoot %sdocroot%
|
||||
ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
|
||||
#ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
|
||||
ScriptAlias /cgi-bin/ /var/www/%user%/%domain%/cgi-bin/
|
||||
Alias /vstats/ %home%/%user%/web/%domain%/stats/
|
||||
Alias /error/ %home%/%user%/web/%domain%/document_errors/
|
||||
SuexecUserGroup %user% %group%
|
||||
|
||||
@@ -10,7 +10,8 @@
|
||||
%alias_string%
|
||||
ServerAdmin %email%
|
||||
DocumentRoot %docroot%
|
||||
ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
|
||||
#ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
|
||||
ScriptAlias /cgi-bin/ /var/www/%user%/%domain%/cgi-bin/
|
||||
Alias /vstats/ %home%/%user%/web/%domain%/stats/
|
||||
Alias /error/ %home%/%user%/web/%domain%/document_errors/
|
||||
SuexecUserGroup %user% %group%
|
||||
|
||||
@@ -1,22 +1,32 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/bash
|
||||
# Adding php wrapper
|
||||
user="$1"
|
||||
domain="$2"
|
||||
ip="$3"
|
||||
home_dir="$4"
|
||||
docroot="$5"
|
||||
php_path="$6"
|
||||
|
||||
wrapper_script="#!/bin/sh
|
||||
PHPRC=/usr/local/lib
|
||||
export PHPRC
|
||||
export PHP_FCGI_MAX_REQUESTS=1000
|
||||
export PHP_FCGI_CHILDREN=20
|
||||
exec /usr/bin/php-cgi
|
||||
exec $php_path
|
||||
"
|
||||
wrapper_file="$home_dir/$user/web/$domain/cgi-bin/fcgi-starter"
|
||||
wrapper_dir="/var/www/$user/$domain/cgi-bin"
|
||||
wrapper_file2="$wrapper_dir/fcgi-starter"
|
||||
|
||||
echo "$wrapper_script" > $wrapper_file
|
||||
chown $user:$user $wrapper_file
|
||||
chmod -f 751 $wrapper_file
|
||||
|
||||
mkdir -p $wrapper_dir
|
||||
|
||||
echo "$wrapper_script" > $wrapper_file2
|
||||
chown $user:$user $wrapper_file2
|
||||
chown $user:$user $wrapper_dir
|
||||
chmod -f 751 $wrapper_file2
|
||||
|
||||
exit 0
|
||||
|
||||
@@ -28,7 +28,8 @@
|
||||
<Files *.php>
|
||||
SetHandler fcgid-script
|
||||
</Files>
|
||||
FCGIWrapper %home%/%user%/web/%domain%/cgi-bin/fcgi-starter .php
|
||||
#FCGIWrapper %home%/%user%/web/%domain%/cgi-bin/fcgi-starter .php
|
||||
FCGIWrapper /var/www/%user%/%domain%/cgi-bin/fcgi-starter .php
|
||||
</Directory>
|
||||
<Directory %home%/%user%/web/%domain%/stats>
|
||||
AllowOverride All
|
||||
@@ -42,4 +43,5 @@
|
||||
|
||||
IncludeOptional %home%/%user%/conf/web/%domain%/%web_system%.ssl.conf_*
|
||||
IncludeOptional /etc/httpd/conf.h.d/*.inc
|
||||
|
||||
</VirtualHost>
|
||||
|
||||
@@ -30,11 +30,13 @@
|
||||
<Files *.php>
|
||||
SetHandler fcgid-script
|
||||
</Files>
|
||||
FCGIWrapper %home%/%user%/web/%domain%/cgi-bin/fcgi-starter .php
|
||||
#FCGIWrapper %home%/%user%/web/%domain%/cgi-bin/fcgi-starter .php
|
||||
FCGIWrapper /var/www/%user%/%domain%/cgi-bin/fcgi-starter .php
|
||||
</Directory>
|
||||
<Directory %home%/%user%/web/%domain%/stats>
|
||||
AllowOverride All
|
||||
</Directory>
|
||||
IncludeOptional %home%/%user%/conf/web/%domain%/%web_system%.conf_*
|
||||
IncludeOptional /etc/httpd/conf.h.d/*.inc
|
||||
|
||||
</VirtualHost>
|
||||
|
||||
@@ -19,6 +19,13 @@
|
||||
CustomLog /var/log/%web_system%/domains/%domain%.log combined
|
||||
ErrorLog /var/log/%web_system%/domains/%domain%.error.log
|
||||
<Directory %sdocroot%>
|
||||
<FilesMatch ".+\.ph(ar|p|tml)$">
|
||||
SetHandler application/x-httpd-php
|
||||
</FilesMatch>
|
||||
<FilesMatch ".+\.phps$">
|
||||
SetHandler application/x-httpd-php-source
|
||||
Require all denied
|
||||
</FilesMatch>
|
||||
AllowOverride All
|
||||
SSLRequireSSL
|
||||
Options +Includes -Indexes +ExecCGI
|
||||
|
||||
@@ -22,6 +22,13 @@
|
||||
IncludeOptional %home%/%user%/conf/web/%domain%/forcessl.apache2.conf*
|
||||
|
||||
<Directory %docroot%>
|
||||
<FilesMatch ".+\.ph(ar|p|tml)$">
|
||||
SetHandler application/x-httpd-php
|
||||
</FilesMatch>
|
||||
<FilesMatch ".+\.phps$">
|
||||
SetHandler application/x-httpd-php-source
|
||||
Require all denied
|
||||
</FilesMatch>
|
||||
AllowOverride All
|
||||
Options +Includes -Indexes +ExecCGI
|
||||
php_admin_value open_basedir %docroot%:%home%/%user%/tmp
|
||||
|
||||
66
install/rpm/templates/web/nginx/nginx-php-rewrite.stpl
Executable file
66
install/rpm/templates/web/nginx/nginx-php-rewrite.stpl
Executable file
@@ -0,0 +1,66 @@
|
||||
#=========================================================================#
|
||||
# Default Web Domain Template #
|
||||
# DO NOT MODIFY THIS FILE! CHANGES WILL BE LOST WHEN REBUILDING DOMAINS #
|
||||
# https://hestiacp.com/docs/server-administration/web-templates.html #
|
||||
#=========================================================================#
|
||||
|
||||
server {
|
||||
listen %ip%:%proxy_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_certificate %ssl_pem%;
|
||||
ssl_certificate_key %ssl_key%;
|
||||
ssl_stapling on;
|
||||
ssl_stapling_verify on;
|
||||
|
||||
# TLS 1.3 0-RTT anti-replay
|
||||
if ($anti_replay = 307) { return 307 https://$host$request_uri; }
|
||||
if ($anti_replay = 425) { return 425; }
|
||||
|
||||
include %home%/%user%/conf/web/%domain%/nginx.hsts.conf*;
|
||||
|
||||
HtaccessEnable on;
|
||||
|
||||
location ~ /\.(?!well-known\/) {
|
||||
deny all;
|
||||
return 404;
|
||||
}
|
||||
|
||||
location ~* ^.+\.(jpeg|jpg|png|webp|gif|bmp|ico|svg|css|js|txt)$ {
|
||||
expires max;
|
||||
fastcgi_hide_header "Set-Cookie";
|
||||
}
|
||||
|
||||
location / {
|
||||
RewriteEngine On;
|
||||
|
||||
location ~ [^/]\.php(/|$) {
|
||||
try_files $uri =404;
|
||||
|
||||
include /etc/nginx/fastcgi_params;
|
||||
|
||||
fastcgi_index index.php;
|
||||
fastcgi_param HTTP_EARLY_DATA $rfc_early_data if_not_empty;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
|
||||
fastcgi_pass %backend_lsnr%;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
location /vstats/ {
|
||||
alias %home%/%user%/web/%domain%/stats/;
|
||||
include %home%/%user%/web/%domain%/stats/auth.conf*;
|
||||
}
|
||||
|
||||
proxy_hide_header Upgrade;
|
||||
|
||||
include /etc/nginx/conf.d/phpmyadmin.inc*;
|
||||
include /etc/nginx/conf.d/phppgadmin.inc*;
|
||||
include %home%/%user%/conf/web/%domain%/nginx.ssl.conf_*;
|
||||
}
|
||||
53
install/rpm/templates/web/nginx/nginx-php-rewrite.tpl
Executable file
53
install/rpm/templates/web/nginx/nginx-php-rewrite.tpl
Executable file
@@ -0,0 +1,53 @@
|
||||
#=========================================================================#
|
||||
# Default Web Domain Template #
|
||||
# DO NOT MODIFY THIS FILE! CHANGES WILL BE LOST WHEN REBUILDING DOMAINS #
|
||||
# https://hestiacp.com/docs/server-administration/web-templates.html #
|
||||
#=========================================================================#
|
||||
|
||||
server {
|
||||
listen %ip%:%proxy_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;
|
||||
|
||||
include %home%/%user%/conf/web/%domain%/nginx.forcessl.conf*;
|
||||
|
||||
HtaccessEnable on;
|
||||
|
||||
location ~ /\.(?!well-known\/) {
|
||||
deny all;
|
||||
return 404;
|
||||
}
|
||||
|
||||
location ~* ^.+\.(jpeg|jpg|png|webp|gif|bmp|ico|svg|css|js|txt)$ {
|
||||
expires max;
|
||||
fastcgi_hide_header "Set-Cookie";
|
||||
}
|
||||
|
||||
location / {
|
||||
RewriteEngine On;
|
||||
|
||||
location ~ [^/]\.php(/|$) {
|
||||
try_files $uri =404;
|
||||
|
||||
include /etc/nginx/fastcgi_params;
|
||||
|
||||
fastcgi_index index.php;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
|
||||
fastcgi_pass %backend_lsnr%;
|
||||
}
|
||||
}
|
||||
|
||||
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 %home%/%user%/conf/web/%domain%/nginx.conf_*;
|
||||
}
|
||||
64
install/rpm/templates/web/nginx/nginx-php.stpl
Executable file
64
install/rpm/templates/web/nginx/nginx-php.stpl
Executable file
@@ -0,0 +1,64 @@
|
||||
#=========================================================================#
|
||||
# Default Web Domain Template #
|
||||
# DO NOT MODIFY THIS FILE! CHANGES WILL BE LOST WHEN REBUILDING DOMAINS #
|
||||
# https://hestiacp.com/docs/server-administration/web-templates.html #
|
||||
#=========================================================================#
|
||||
|
||||
server {
|
||||
listen %ip%:%proxy_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_certificate %ssl_pem%;
|
||||
ssl_certificate_key %ssl_key%;
|
||||
ssl_stapling on;
|
||||
ssl_stapling_verify on;
|
||||
|
||||
# TLS 1.3 0-RTT anti-replay
|
||||
if ($anti_replay = 307) { return 307 https://$host$request_uri; }
|
||||
if ($anti_replay = 425) { return 425; }
|
||||
|
||||
include %home%/%user%/conf/web/%domain%/nginx.hsts.conf*;
|
||||
|
||||
location ~ /\.(?!well-known\/) {
|
||||
deny all;
|
||||
return 404;
|
||||
}
|
||||
|
||||
location / {
|
||||
try_files $uri $uri/ /index.php?$args;
|
||||
|
||||
location ~* ^.+\.(jpeg|jpg|png|webp|gif|bmp|ico|svg|css|js)$ {
|
||||
expires max;
|
||||
fastcgi_hide_header "Set-Cookie";
|
||||
}
|
||||
|
||||
location ~ [^/]\.php(/|$) {
|
||||
try_files $uri =404;
|
||||
|
||||
include /etc/nginx/fastcgi_params;
|
||||
|
||||
fastcgi_index index.php;
|
||||
fastcgi_param HTTP_EARLY_DATA $rfc_early_data if_not_empty;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
|
||||
fastcgi_pass %backend_lsnr%;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
location /vstats/ {
|
||||
alias %home%/%user%/web/%domain%/stats/;
|
||||
include %home%/%user%/web/%domain%/stats/auth.conf*;
|
||||
}
|
||||
|
||||
proxy_hide_header Upgrade;
|
||||
|
||||
include /etc/nginx/conf.d/phpmyadmin.inc*;
|
||||
include /etc/nginx/conf.d/phppgadmin.inc*;
|
||||
include %home%/%user%/conf/web/%domain%/nginx.ssl.conf_*;
|
||||
}
|
||||
51
install/rpm/templates/web/nginx/nginx-php.tpl
Executable file
51
install/rpm/templates/web/nginx/nginx-php.tpl
Executable file
@@ -0,0 +1,51 @@
|
||||
#=========================================================================#
|
||||
# Default Web Domain Template #
|
||||
# DO NOT MODIFY THIS FILE! CHANGES WILL BE LOST WHEN REBUILDING DOMAINS #
|
||||
# https://hestiacp.com/docs/server-administration/web-templates.html #
|
||||
#=========================================================================#
|
||||
|
||||
server {
|
||||
listen %ip%:%proxy_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;
|
||||
|
||||
include %home%/%user%/conf/web/%domain%/nginx.forcessl.conf*;
|
||||
|
||||
location ~ /\.(?!well-known\/) {
|
||||
deny all;
|
||||
return 404;
|
||||
}
|
||||
|
||||
location / {
|
||||
try_files $uri $uri/ /index.php?$args;
|
||||
|
||||
location ~* ^.+\.(jpeg|jpg|png|webp|gif|bmp|ico|svg|css|js)$ {
|
||||
expires max;
|
||||
fastcgi_hide_header "Set-Cookie";
|
||||
}
|
||||
|
||||
location ~ [^/]\.php(/|$) {
|
||||
try_files $uri =404;
|
||||
|
||||
include /etc/nginx/fastcgi_params;
|
||||
|
||||
fastcgi_index index.php;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
|
||||
fastcgi_pass %backend_lsnr%;
|
||||
}
|
||||
}
|
||||
|
||||
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 %home%/%user%/conf/web/%domain%/nginx.conf_*;
|
||||
}
|
||||
@@ -35,7 +35,7 @@ UPGRADE_RESTART_SERVICES='true'
|
||||
#######################################################################################
|
||||
|
||||
# Supported PHP versions
|
||||
multiphp_v=("5.6" "7.0" "7.1" "7.2" "7.3" "7.4" "8.0" "8.1" "8.2", "8.3")
|
||||
multiphp_v=("5.6" "7.0" "7.1" "7.2" "7.3" "7.4" "8.0" "8.1" "8.2" "8.3" "8.4" "8.5")
|
||||
|
||||
#######################################################################################
|
||||
####### 3rd Party Software Updates #######
|
||||
@@ -43,7 +43,7 @@ multiphp_v=("5.6" "7.0" "7.1" "7.2" "7.3" "7.4" "8.0" "8.1" "8.2", "8.3")
|
||||
|
||||
# Check if update is required by matching versions if version != current version run update
|
||||
# Set version of phpMyAdmin to install during upgrade if not already installed
|
||||
pma_v='5.2.1'
|
||||
pma_v='5.2.3'
|
||||
|
||||
# Set version of phppgadmin to install during upgrade if not already installed
|
||||
pga_v='7.14.4'
|
||||
|
||||
169
install/utility/hestiacp_replace_remi_to_local.rb
Normal file
169
install/utility/hestiacp_replace_remi_to_local.rb
Normal file
@@ -0,0 +1,169 @@
|
||||
#!/opt/brepo/ruby33/bin/ruby
|
||||
|
||||
require 'json'
|
||||
|
||||
# Файл конфигурации Hestia
|
||||
config_file = '/usr/local/hestia/conf/hestia.conf'
|
||||
|
||||
# Проверяем наличие строки LOCAL_PHP и её значение. Если она отсутствует или не равна 'yes', добавляем или заменяем её.
|
||||
def ensure_local_php_enabled(config_file)
|
||||
if File.exist?(config_file)
|
||||
lines = File.readlines(config_file)
|
||||
found = false
|
||||
|
||||
# Обрабатываем каждую строку
|
||||
new_lines = lines.map do |line|
|
||||
if line.strip.start_with?("LOCAL_PHP=")
|
||||
found = true
|
||||
"LOCAL_PHP='yes'"
|
||||
else
|
||||
line
|
||||
end
|
||||
end
|
||||
|
||||
# Если строки LOCAL_PHP не было найдено, добавляем её в конец файла
|
||||
unless found
|
||||
new_lines << "LOCAL_PHP='yes'\n"
|
||||
end
|
||||
|
||||
# Записываем изменения обратно в файл
|
||||
File.open(config_file, 'w') do |file|
|
||||
file.puts new_lines
|
||||
end
|
||||
else
|
||||
# Если файла не существует, создаём его и добавляем строку LOCAL_PHP='yes'
|
||||
File.write(config_file, "LOCAL_PHP='yes'\n")
|
||||
end
|
||||
end
|
||||
|
||||
# Вызываем утилиту и разбираем JSON-ответ для получения списка установленных версий PHP
|
||||
def get_installed_php_versions
|
||||
output = `v-list-web-templates-backend json`
|
||||
json_data = JSON.parse(output)
|
||||
json_data.select { |version| version.start_with?("PHP-") }
|
||||
end
|
||||
|
||||
# Вызываем утилиту и разбираем JSON-ответ для получения списка пользователей
|
||||
def get_hestia_users
|
||||
output = `v-list-users json`
|
||||
json_data = JSON.parse(output)
|
||||
json_data.keys # Возвращаем только ключи (имена пользователей)
|
||||
end
|
||||
|
||||
# Вызываем утилиту и разбираем JSON-ответ для получения списка доменов пользователя
|
||||
def get_user_domains(user)
|
||||
output = `v-list-web-domains #{user} json`
|
||||
json_data = JSON.parse(output)
|
||||
json_data # Возвращаем весь хэш с доменами
|
||||
end
|
||||
|
||||
# Функция для получения корректной версии PHP
|
||||
def get_correct_php_version(system_php_version)
|
||||
if system_php_version.length < 2
|
||||
"8.2"
|
||||
else
|
||||
"#{system_php_version[0]}.#{system_php_version[1]}"
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
# Основная часть программы
|
||||
begin
|
||||
system_php_version = `php -r "echo str_replace('.', '', substr(phpversion(), 0, 3));"`
|
||||
|
||||
ensure_local_php_enabled(config_file)
|
||||
|
||||
INSTALLED_PHP_LIST = get_installed_php_versions
|
||||
puts "Установленные версии PHP: #{INSTALLED_PHP_LIST.join(', ')}"
|
||||
|
||||
# Обрабатываем каждый элемент массива INSTALLED_PHP_LIST
|
||||
INSTALLED_PHP_LIST.each do |php_version|
|
||||
# Удаляем префикс 'PHP-' и остаёмся только с цифрами
|
||||
version_number = php_version.gsub(/^PHP-/, '')
|
||||
|
||||
# Вызываем команду v-add-web-php с номером версии PHP
|
||||
puts "Выполняем команду: v-add-web-php #{version_number}"
|
||||
system("v-add-web-php", version_number)
|
||||
end
|
||||
|
||||
# Получаем список пользователей Hestia
|
||||
HESTIA_USERS_LIST = get_hestia_users
|
||||
puts "Список пользователей Hestia: #{HESTIA_USERS_LIST.join(', ')}"
|
||||
|
||||
# Для каждого пользователя из списка выполняем действия с доменами
|
||||
HESTIA_USERS_LIST.each do |user|
|
||||
puts "Обрабатываем пользователя: #{user}"
|
||||
|
||||
# Получаем список доменов для текущего пользователя
|
||||
user_domains = get_user_domains(user)
|
||||
|
||||
# Обрабатываем каждый домен и изменяем шаблон бэкенда
|
||||
user_domains.each do |domain, details|
|
||||
current_domain = domain
|
||||
current_backend = details['BACKEND']
|
||||
|
||||
puts "Обрабатываем домен: #{current_domain}, текущий бэкенд: #{current_backend}"
|
||||
|
||||
# Вызываем команду для изменения шаблона бэкенда
|
||||
command = ["v-change-web-domain-backend-tpl", user, current_domain, current_backend]
|
||||
puts "Выполняем команду: #{command.join(' ')}"
|
||||
system(*command)
|
||||
end
|
||||
end
|
||||
|
||||
# Перенастраиваем alternatives для новго PHP
|
||||
correct_php_version = get_correct_php_version(system_php_version)
|
||||
puts "Перенастраиваем PHP на новый путь командой: v-change-sys-php #{correct_php_version}"
|
||||
system("v-change-sys-php", system_php_version)
|
||||
|
||||
# Список регулярных выражений для поиска пакетов, которые нужно удалить
|
||||
patterns_to_remove = [
|
||||
/^php\d{2}-runtime-.*$/,
|
||||
/^php\d{2}-php/
|
||||
]
|
||||
|
||||
# Получаем список установленных пакетов на системе
|
||||
installed_packages = `yum list installed | grep remi`.split("\n").map { |line| line.split.first }
|
||||
|
||||
# Фильтруем подходящие пакеты для удаления
|
||||
packages_to_remove = []
|
||||
|
||||
patterns_to_remove.each do |pattern|
|
||||
installed_packages.each do |package|
|
||||
if package.match?(pattern)
|
||||
packages_to_remove << package
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if packages_to_remove.empty?
|
||||
puts "Нет подходящих пакетов для удаления."
|
||||
else
|
||||
puts "Следующие пакеты будут удалены:"
|
||||
packages_to_remove.each_with_index { |package, index| puts "#{index + 1}. #{package}" }
|
||||
|
||||
print "\nВы уверены, что хотите удалить эти пакеты? (y/n): "
|
||||
response = gets.chomp.downcase
|
||||
|
||||
if response == 'y'
|
||||
# Формируем команду для удаления всех пакетов одной командой
|
||||
remove_command = "yum remove -y #{packages_to_remove.join(' ')}"
|
||||
system(remove_command)
|
||||
puts "\nОперация завершена. Пакеты были успешно удалены."
|
||||
else
|
||||
puts "\nУдаление отменено пользователем."
|
||||
end
|
||||
end
|
||||
|
||||
# Перезапустим все PHP-FPM
|
||||
INSTALLED_PHP_LIST.each do |php_version|
|
||||
# Удаляем префикс 'PHP-' и остаёмся только с цифрами
|
||||
version_number = php_version.gsub(/^PHP-/, '')
|
||||
|
||||
puts "Выполняем команду: systemctl restart brepo-php-fpm#{version_number}"
|
||||
system("systemctl", "restart", "brepo-php-fpm#{version_number}")
|
||||
end
|
||||
|
||||
rescue => e
|
||||
puts "Произошла ошибка: #{e.message}"
|
||||
end
|
||||
@@ -335,7 +335,7 @@ if [ "$dontinstalldeps" != 'true' ]; then
|
||||
echo "Installing dependencies for compilation..."
|
||||
dnf install -y -q $SOFTWARE
|
||||
|
||||
mock -r msvsphere+epel-${release}-$BUILD_ARCH --clean
|
||||
mock -r alma+epel-${release}-$BUILD_ARCH --clean
|
||||
else
|
||||
# Set package dependencies for compiling
|
||||
SOFTWARE='wget tar git curl build-essential libxml2-dev libz-dev libzip-dev libgmp-dev libcurl4-gnutls-dev unzip openssl libssl-dev pkg-config libsqlite3-dev libonig-dev rpm lsb-release'
|
||||
@@ -536,7 +536,7 @@ if [ "$NGINX_B" = true ]; then
|
||||
|
||||
# Build the package
|
||||
echo Building Nginx RPM
|
||||
mock -r msvsphere+epel-${release}-$BUILD_ARCH --sources $BUILD_DIR --spec $BUILD_DIR/hestia-nginx.spec --resultdir $RPM_DIR
|
||||
mock -r alma+epel-${release}-$BUILD_ARCH --sources $BUILD_DIR --spec $BUILD_DIR/hestia-nginx.spec --resultdir $RPM_DIR
|
||||
rm -f $BUILD_DIR/*
|
||||
fi
|
||||
fi
|
||||
@@ -674,7 +674,7 @@ if [ "$PHP_B" = true ]; then
|
||||
|
||||
# Build RPM package
|
||||
echo Building PHP RPM
|
||||
mock -r msvsphere+epel-${release}-$BUILD_ARCH --sources $BUILD_DIR --spec $BUILD_DIR/hestia-php.spec --resultdir $RPM_DIR
|
||||
mock -r alma+epel-${release}-$BUILD_ARCH --sources $BUILD_DIR --spec $BUILD_DIR/hestia-php.spec --resultdir $RPM_DIR
|
||||
rm -f $BUILD_DIR/*
|
||||
fi
|
||||
fi
|
||||
@@ -792,7 +792,7 @@ if [ "$HESTIA_B" = true ]; then
|
||||
|
||||
# Build RPM package
|
||||
echo Building Hestia RPM
|
||||
mock -r msvsphere+epel-${release}-$BUILD_ARCH --sources $BUILD_DIR --spec $BUILD_DIR/hestia.spec --resultdir $RPM_DIR
|
||||
mock -r alma+epel-${release}-$BUILD_ARCH --sources $BUILD_DIR --spec $BUILD_DIR/hestia.spec --resultdir $RPM_DIR
|
||||
rm -f $BUILD_DIR/*
|
||||
fi
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
Name: hestia
|
||||
Version: 1.9.6
|
||||
Release: 1%{dist}
|
||||
Release: 9%{dist}
|
||||
Summary: Hestia Control Panel
|
||||
Group: System Environment/Base
|
||||
License: GPLv3
|
||||
@@ -36,8 +36,7 @@ Requires(post): systemd
|
||||
Requires(preun): systemd
|
||||
Requires(postun): systemd
|
||||
Requires: ruby
|
||||
Requires: puppet
|
||||
Requires: puppet-stdlib
|
||||
Requires: ansible-core
|
||||
|
||||
Provides: hestia = %{version}-%{release}
|
||||
Conflicts: redhat-release < 8
|
||||
@@ -184,7 +183,24 @@ fi
|
||||
%{_tmpfilesdir}/%{name}.conf
|
||||
|
||||
%changelog
|
||||
* Thu Oct 09 2025 Alexey Berezhok <a@bayrepo.ru> - 1.9.6-1
|
||||
* Sun Mar 29 2026 Alexey Berezhok <a@bayrepo.ru> - 1.9.6-9
|
||||
- Added support ansible instead of puppet
|
||||
|
||||
* Fri Mar 27 2026 Alexey Berezhok <a@bayrepo.ru> - 1.9.6-8
|
||||
- Fixed installation of panel without PHP-FPM
|
||||
- Fixed mod_php, fcgid, fcgi mode
|
||||
|
||||
* Thu Mar 26 2026 Alexey Berezhok <a@bayrepo.ru> - 1.9.6-6
|
||||
- Fixed database size usage and disk usage output on the info pages
|
||||
|
||||
* Thu Mar 19 2026 Alexey Berezhok <a@bayrepo.ru> - 1.9.6-5
|
||||
- Added nginx with mod_rewrite
|
||||
- Added templates for nginx mod_rewrite activation
|
||||
|
||||
* Thu Jan 15 2026 Alexey Berezhok <a@bayrepo.ru> - 1.9.6-3
|
||||
- Fix error on local php installation and extension activation
|
||||
|
||||
* Thu Oct 09 2025 Alexey Berezhok <a@bayrepo.ru> - 1.9.6-2
|
||||
- Fix error on all web and mail domains after Apache 2.4.64 update
|
||||
|
||||
* Thu Jun 05 2025 Alexey Berezhok <a@bayrepo.ru> - 1.9.5-4
|
||||
|
||||
@@ -39,6 +39,8 @@ $v_php_versions = [
|
||||
"php-81",
|
||||
"php-82",
|
||||
"php-83",
|
||||
"php-84",
|
||||
"php-85",
|
||||
];
|
||||
|
||||
|
||||
|
||||
@@ -130,6 +130,16 @@ if (!in_array($v_redirect, ["www." . $v_domain, $v_domain])) {
|
||||
$v_redirect_custom = $v_redirect;
|
||||
}
|
||||
|
||||
//Is default domain
|
||||
$v_is_default = false;
|
||||
exec(HESTIA_CMD . "v-default-domain " . $user . " " . quoteshellarg($v_domain). " check", $output, $return_var);
|
||||
if ($return_var == 0) {
|
||||
if (strpos(implode("", $output), 'true') !== false) {
|
||||
$v_is_default = true;
|
||||
}
|
||||
}
|
||||
unset($output);
|
||||
|
||||
$v_ftp_user = $data[$v_domain]["FTP_USER"];
|
||||
$v_ftp_path = $data[$v_domain]["FTP_PATH"];
|
||||
if (!empty($v_ftp_user)) {
|
||||
@@ -1593,6 +1603,40 @@ if (!empty($_POST["save"])) {
|
||||
unset($v_custom_doc_root);
|
||||
}
|
||||
|
||||
if (!empty($_POST["v-default-domain"])) {
|
||||
if ($v_is_default == false) {
|
||||
exec(
|
||||
HESTIA_CMD .
|
||||
"v-default-domain " .
|
||||
$user .
|
||||
" " .
|
||||
quoteshellarg($v_domain) .
|
||||
" set",
|
||||
$output,
|
||||
$return_var,
|
||||
);
|
||||
check_return_code($return_var, $output);
|
||||
unset($output);
|
||||
$v_is_default = true;
|
||||
}
|
||||
} else {
|
||||
if ($v_is_default == true) {
|
||||
exec(
|
||||
HESTIA_CMD .
|
||||
"v-default-domain " .
|
||||
$user .
|
||||
" " .
|
||||
quoteshellarg($v_domain) .
|
||||
" delete",
|
||||
$output,
|
||||
$return_var,
|
||||
);
|
||||
check_return_code($return_var, $output);
|
||||
unset($output);
|
||||
$v_is_default = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($v_redirect) && empty($_POST["v-redirect-checkbox"])) {
|
||||
exec(
|
||||
HESTIA_CMD . "v-delete-web-domain-redirect " . $user . " " . quoteshellarg($v_domain),
|
||||
|
||||
@@ -4,13 +4,17 @@ $TAB = "DB";
|
||||
// Main include
|
||||
include $_SERVER["DOCUMENT_ROOT"] . "/inc/main.php";
|
||||
|
||||
//Update data before $output
|
||||
exec(HESTIA_CMD . "v-update-databases-disk $user", $output, $return_var);
|
||||
unset($output);
|
||||
|
||||
// Data
|
||||
exec(HESTIA_CMD . "v-list-databases $user json", $output, $return_var);
|
||||
$data = json_decode(implode("", $output), true);
|
||||
if ($_SESSION["userSortOrder"] == "name") {
|
||||
ksort($data);
|
||||
ksort($data);
|
||||
} else {
|
||||
$data = array_reverse($data, true);
|
||||
$data = array_reverse($data, true);
|
||||
}
|
||||
unset($output);
|
||||
|
||||
|
||||
@@ -4,13 +4,25 @@ $TAB = "WEB";
|
||||
// Main include
|
||||
include $_SERVER["DOCUMENT_ROOT"] . "/inc/main.php";
|
||||
|
||||
//Update data before output
|
||||
exec(HESTIA_CMD . "v-update-web-domains-disk " . $user, $output, $return_var);
|
||||
unset($output);
|
||||
exec(HESTIA_CMD . "v-update-web-domains-stat " . $user, $output, $return_var);
|
||||
unset($output);
|
||||
exec(HESTIA_CMD . "v-update-web-domains-traff " . $user, $output, $return_var);
|
||||
unset($output);
|
||||
|
||||
// Data
|
||||
exec(HESTIA_CMD . "v-list-web-domains " . $user . " 'json'", $output, $return_var);
|
||||
exec(
|
||||
HESTIA_CMD . "v-list-web-domains " . $user . " 'json'",
|
||||
$output,
|
||||
$return_var,
|
||||
);
|
||||
$data = json_decode(implode("", $output), true);
|
||||
if ($_SESSION["userSortOrder"] == "name") {
|
||||
ksort($data);
|
||||
ksort($data);
|
||||
} else {
|
||||
$data = array_reverse($data, true);
|
||||
$data = array_reverse($data, true);
|
||||
}
|
||||
$ips = json_decode(shell_exec(HESTIA_CMD . "v-list-sys-ips json"), true);
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -127,6 +127,12 @@ if ($passenger_state == "enabled") {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-check u-mb10">
|
||||
<input class="form-check-input" type="checkbox" name="v-default-domain" id="v-default-domain" <?php if ($v_is_default == true) echo 'checked'; ?>>
|
||||
<label for="v-default-domain">
|
||||
<?= _("Set this domain as default for server") ?>
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-check u-mb10">
|
||||
<input x-model="redirectEnabled" class="form-check-input" type="checkbox" name="v-redirect-checkbox" id="v-redirect-checkbox">
|
||||
<label for="v-redirect-checkbox">
|
||||
|
||||
Reference in New Issue
Block a user