Added php-selector support
This commit is contained in:
56
bin/v-change-selector-state
Executable file
56
bin/v-change-selector-state
Executable file
@@ -0,0 +1,56 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# info: Change php selector state
|
||||||
|
# options: STATUS
|
||||||
|
|
||||||
|
# STATUS can be yes or no
|
||||||
|
# example: v-change-selector-state yes
|
||||||
|
|
||||||
|
status=$1
|
||||||
|
|
||||||
|
# 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"
|
||||||
|
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
# Variables & Functions #
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
|
check_args '1' "$#" 'STATUS'
|
||||||
|
|
||||||
|
if [ -f /etc/redhat-release ]; then
|
||||||
|
:
|
||||||
|
else
|
||||||
|
log_event "$OK" "$ARGUMENTS"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Perform verification if read-only mode is enabled
|
||||||
|
check_hestia_demo_mode
|
||||||
|
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
# Action #
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$status" == "yes" ]; then
|
||||||
|
update-alternatives --set php /usr/bin/hestiacp-php-selector
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
update-alternatives --install /usr/bin/php php /usr/bin/hestiacp-php-selector 1
|
||||||
|
update-alternatives --set php /usr/bin/hestiacp-php-selector
|
||||||
|
fi
|
||||||
|
change_sys_value "PHP_SELECTOR" "yes"
|
||||||
|
else
|
||||||
|
/usr/local/hestia_php_selector/hestiacp_php_selector_installer off
|
||||||
|
change_sys_value "PHP_SELECTOR" "no"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
# Hestia #
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
|
log_event "$OK" "$ARGUMENTS"
|
||||||
@@ -83,6 +83,11 @@ if [ -f '/etc/redhat-release' ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
update-alternatives --set php /usr/bin/php$version
|
update-alternatives --set php /usr/bin/php$version
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
update-alternatives --install /usr/bin/php php /usr/bin/php$version 1
|
||||||
|
update-alternatives --set php /usr/bin/php$version
|
||||||
|
fi
|
||||||
|
/usr/bin/hestiacp-php-admin system $version
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
# Hestia #
|
# Hestia #
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ check_hestia_demo_mode
|
|||||||
# Reading user values
|
# Reading user values
|
||||||
source $USER_DATA/user.conf
|
source $USER_DATA/user.conf
|
||||||
|
|
||||||
|
|
||||||
versions=$($BIN/v-list-sys-php plain)
|
versions=$($BIN/v-list-sys-php plain)
|
||||||
support=0
|
support=0
|
||||||
for v in $versions; do
|
for v in $versions; do
|
||||||
@@ -57,27 +58,35 @@ if [ "$support" = 0 ]; then
|
|||||||
exit 2
|
exit 2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Create .bash_aliases is not exsists
|
if [ "$PHP_SELECTOR" == "yes" ]; then
|
||||||
if [ ! -f "$FILE" ]; then
|
/usr/bin/hestiacp-php-admin set $user $version
|
||||||
if [ -f /etc/redhat-release ];then
|
if grep -q "alias php='env php" "$FILE"; then
|
||||||
mkdir -p $HOMEDIR/$user/.bashrc.d
|
sed -i "/alias php='env/d" $FILE
|
||||||
chown -R $user:$user $HOMEDIR/$user/.bashrc.d
|
|
||||||
fi
|
fi
|
||||||
touch $FILE
|
else
|
||||||
chown $user:$user $FILE
|
|
||||||
|
# Create .bash_aliases is not exsists
|
||||||
|
if [ ! -f "$FILE" ]; then
|
||||||
|
if [ -f /etc/redhat-release ];then
|
||||||
|
mkdir -p $HOMEDIR/$user/.bashrc.d
|
||||||
|
chown -R $user:$user $HOMEDIR/$user/.bashrc.d
|
||||||
|
fi
|
||||||
|
touch $FILE
|
||||||
|
chown $user:$user $FILE
|
||||||
|
fi
|
||||||
|
|
||||||
|
if grep -q "alias php='env php$version'" "$FILE"; then
|
||||||
|
echo "PHP CLI Already defined"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
# Action #
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
|
sed -i "/alias php='env/d" $FILE
|
||||||
|
echo "alias php='env php$version'" >> $FILE
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if grep -q "alias php='env php$version'" "$FILE"; then
|
|
||||||
echo "PHP CLI Already defined"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
|
||||||
# Action #
|
|
||||||
#----------------------------------------------------------#
|
|
||||||
|
|
||||||
sed -i "/alias php='env/d" $FILE
|
|
||||||
echo "alias php='env php$version'" >> $FILE
|
|
||||||
update_user_value "$user" '$PHPCLI' "$version"
|
update_user_value "$user" '$PHPCLI' "$version"
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|||||||
@@ -112,7 +112,8 @@ json_list() {
|
|||||||
"APP_NAME": "'$APP_NAME'",
|
"APP_NAME": "'$APP_NAME'",
|
||||||
"TITLE": "'$TITLE'",
|
"TITLE": "'$TITLE'",
|
||||||
"SUBJECT_EMAIL": "'$SUBJECT_EMAIL'",
|
"SUBJECT_EMAIL": "'$SUBJECT_EMAIL'",
|
||||||
"HIDE_DOCS": "'$HIDE_DOCS'"
|
"HIDE_DOCS": "'$HIDE_DOCS'",
|
||||||
|
"PHP_SELECTOR": "'$PHP_SELECTOR'"
|
||||||
}
|
}
|
||||||
}'
|
}'
|
||||||
}
|
}
|
||||||
@@ -226,10 +227,19 @@ shell_list() {
|
|||||||
echo "Hide System Administator: $POLICY_SYSTEM_HIDE_ADMIN"
|
echo "Hide System Administator: $POLICY_SYSTEM_HIDE_ADMIN"
|
||||||
echo "Updates: Notify by email: $UPGRADE_SEND_EMAIL"
|
echo "Updates: Notify by email: $UPGRADE_SEND_EMAIL"
|
||||||
echo "Updates: Email install log: $UPGRADE_SEND_EMAIL_LOG"
|
echo "Updates: Email install log: $UPGRADE_SEND_EMAIL_LOG"
|
||||||
|
if [ -n "$PHP_SELECTOR" ]; then
|
||||||
|
echo "PHP cli selector: $PHP_SELECTOR"
|
||||||
|
else
|
||||||
|
echo "PHP cli selector: no"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# PLAIN list function
|
# PLAIN list function
|
||||||
plain_list() {
|
plain_list() {
|
||||||
|
T_PHP_SELECTOR="no"
|
||||||
|
if [ -n "$PHP_SELECTOR" ]; then
|
||||||
|
T_PHP_SELECTOR="$PHP_SELECTOR"
|
||||||
|
fi
|
||||||
echo -ne "$WEB_SYSTEM\t$WEB_RGROUPS\t$WEB_PORT\t$WEB_SSL\t"
|
echo -ne "$WEB_SYSTEM\t$WEB_RGROUPS\t$WEB_PORT\t$WEB_SSL\t"
|
||||||
echo -ne "$WEB_SSL_PORT\t$WEB_BACKEND\t$PROXY_SYSTEM\t$PROXY_PORT\t"
|
echo -ne "$WEB_SSL_PORT\t$WEB_BACKEND\t$PROXY_SYSTEM\t$PROXY_PORT\t"
|
||||||
echo -ne "$PROXY_SSL_PORT\t$FTP_SYSTEM\t$MAIL_SYSTEM\t$IMAP_SYSTEM\t"
|
echo -ne "$PROXY_SSL_PORT\t$FTP_SYSTEM\t$MAIL_SYSTEM\t$IMAP_SYSTEM\t"
|
||||||
@@ -239,8 +249,9 @@ plain_list() {
|
|||||||
echo -ne "$FILE_MANAGER\t$REPOSITORY\t$VERSION\t$DEMO_MODE\t$RELEASE_BRANCH\t"
|
echo -ne "$FILE_MANAGER\t$REPOSITORY\t$VERSION\t$DEMO_MODE\t$RELEASE_BRANCH\t"
|
||||||
echo -ne "$SMTP_RELAY_HOST\t$SMTP_RELAY_PORT\t$SMTP_RELAY_USER\t"
|
echo -ne "$SMTP_RELAY_HOST\t$SMTP_RELAY_PORT\t$SMTP_RELAY_USER\t"
|
||||||
echo -ne "$UPGRADE_SEND_EMAIL\t$UPGRADE_SEND_EMAIL_LOG\t$THEME\t$LANGUAGE\t$BACKUP_GZIP\t"
|
echo -ne "$UPGRADE_SEND_EMAIL\t$UPGRADE_SEND_EMAIL_LOG\t$THEME\t$LANGUAGE\t$BACKUP_GZIP\t"
|
||||||
echo -ne "$BACKUP\t$WEBMAIL_ALIAS\t$DB_PMA_URL\t$DB_PGA_URL\t\t$DEBUG_MODE\t$API\t$API_ALLOWED_IP"
|
echo -ne "$BACKUP\t$WEBMAIL_ALIAS\t$DB_PMA_URL\t$DB_PGA_URL\t$DEBUG_MODE\t$API\t$API_ALLOWED_IP\t"
|
||||||
echo -e "$POLICY_SYSTEM_PROTECTED_ADMIN\t$POLICY_SYSTEM_HIDE_ADMIN"
|
echo -ne "$POLICY_SYSTEM_PROTECTED_ADMIN\t$POLICY_SYSTEM_HIDE_ADMIN\t"
|
||||||
|
echo -e "$T_PHP_SELECTOR"
|
||||||
}
|
}
|
||||||
|
|
||||||
# CSV list
|
# CSV list
|
||||||
@@ -257,7 +268,8 @@ csv_list() {
|
|||||||
echo -n "'UPGRADE_SEND_EMAIL','UPGRADE_SEND_EMAIL_LOG',"
|
echo -n "'UPGRADE_SEND_EMAIL','UPGRADE_SEND_EMAIL_LOG',"
|
||||||
echo -n "'THEME', 'LANGUAGE','BACKUP_GZIP','BACKUP','WEBMAIL_ALIAS',"
|
echo -n "'THEME', 'LANGUAGE','BACKUP_GZIP','BACKUP','WEBMAIL_ALIAS',"
|
||||||
echo -n "'DB_PMA_ALIAS','DB_PGA_ALIAS','DEBUG_MODE','API','API_ALLOWED_IP',"
|
echo -n "'DB_PMA_ALIAS','DB_PGA_ALIAS','DEBUG_MODE','API','API_ALLOWED_IP',"
|
||||||
echo -n "'POLICY_SYSTEM_PROTECTED_ADMIN',POLICY_SYSTEM_HIDE_ADMIN'"
|
echo -n "'POLICY_SYSTEM_PROTECTED_ADMIN',POLICY_SYSTEM_HIDE_ADMIN',"
|
||||||
|
echo -n "'PHP_SELECTOR'"
|
||||||
echo
|
echo
|
||||||
echo -n "'$WEB_SYSTEM','$WEB_RGROUPS','$WEB_PORT','$WEB_SSL',"
|
echo -n "'$WEB_SYSTEM','$WEB_RGROUPS','$WEB_PORT','$WEB_SSL',"
|
||||||
echo -n "'$WEB_SSL_PORT','$WEB_BACKEND','$PROXY_SYSTEM','$PROXY_PORT',"
|
echo -n "'$WEB_SSL_PORT','$WEB_BACKEND','$PROXY_SYSTEM','$PROXY_PORT',"
|
||||||
@@ -268,8 +280,9 @@ csv_list() {
|
|||||||
echo -n "'$REPOSITORY', '$VERSION','$DEMO_MODE','$RELEASE_BRANCH',"
|
echo -n "'$REPOSITORY', '$VERSION','$DEMO_MODE','$RELEASE_BRANCH',"
|
||||||
echo -n "'$SMTP_RELAY','$SMTP_RELAY_HOST','$SMTP_RELAY_PORT','$SMTP_RELAY_USER',"
|
echo -n "'$SMTP_RELAY','$SMTP_RELAY_HOST','$SMTP_RELAY_PORT','$SMTP_RELAY_USER',"
|
||||||
echo -n "'$UPGRADE_SEND_EMAIL','$UPGRADE_SEND_EMAIL_LOG','$THEME','$LANGUAGE',"
|
echo -n "'$UPGRADE_SEND_EMAIL','$UPGRADE_SEND_EMAIL_LOG','$THEME','$LANGUAGE',"
|
||||||
echo -n "'$BACKUP_GZIP','$BACKUP','$WEBMAIL_ALIAS','$DB_PMA_URL','$DB_PGA_URL'"
|
echo -n "'$BACKUP_GZIP','$BACKUP','$WEBMAIL_ALIAS','$DB_PMA_URL','$DB_PGA_URL',"
|
||||||
echo -n "'$DEBUG_MODE','$API','$API_ALLOWED_IP','$POLICY_SYSTEM_PROTECTED_ADMIN,$POLICY_SYSTEM_HIDE_ADMIN"
|
echo -n "'$DEBUG_MODE','$API','$API_ALLOWED_IP','$POLICY_SYSTEM_PROTECTED_ADMIN,$POLICY_SYSTEM_HIDE_ADMIN',"
|
||||||
|
echo -n "'$PHP_SELECTOR'"
|
||||||
echo
|
echo
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -289,7 +302,7 @@ fi
|
|||||||
# Listing data
|
# Listing data
|
||||||
case $format in
|
case $format in
|
||||||
json) json_list ;;
|
json) json_list ;;
|
||||||
plain) shell_list ;;
|
plain) plain_list ;;
|
||||||
csv) csv_list ;;
|
csv) csv_list ;;
|
||||||
shell) shell_list ;;
|
shell) shell_list ;;
|
||||||
esac
|
esac
|
||||||
|
|||||||
@@ -108,6 +108,12 @@ $v_php_versions = array_map(function ($php_version) use ($backend_templates, $ba
|
|||||||
return $phpinfo;
|
return $phpinfo;
|
||||||
}, $v_php_versions);
|
}, $v_php_versions);
|
||||||
|
|
||||||
|
if (!empty($_SESSION["PHP_SELECTOR"])) {
|
||||||
|
$v_php_selector = $_SESSION["PHP_SELECTOR"];
|
||||||
|
} else {
|
||||||
|
$v_php_selector = "";
|
||||||
|
}
|
||||||
|
|
||||||
// List languages
|
// List languages
|
||||||
exec(HESTIA_CMD . "v-list-sys-languages json", $output, $return_var);
|
exec(HESTIA_CMD . "v-list-sys-languages json", $output, $return_var);
|
||||||
$language = json_decode(implode("", $output), true);
|
$language = json_decode(implode("", $output), true);
|
||||||
@@ -363,6 +369,23 @@ if (!empty($_POST["save"])) {
|
|||||||
//force reload
|
//force reload
|
||||||
$require_refresh = true;
|
$require_refresh = true;
|
||||||
}
|
}
|
||||||
|
//Check php selector
|
||||||
|
$t_v_php_selector = $_POST["v_use_php_selector"] == "on"?"yes":"no";
|
||||||
|
if ($_POST["v_use_php_selector"] != $v_php_selector){
|
||||||
|
$v_set_flag = "no";
|
||||||
|
if ($_POST["v_use_php_selector"] == "on"){
|
||||||
|
$v_set_flag = "yes";
|
||||||
|
}
|
||||||
|
exec(
|
||||||
|
HESTIA_CMD .
|
||||||
|
"v-change-selector-state " .
|
||||||
|
$v_set_flag,
|
||||||
|
$output,
|
||||||
|
$return_var,
|
||||||
|
);
|
||||||
|
check_return_code($return_var, $output);
|
||||||
|
unset($output);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,14 @@ try {
|
|||||||
|
|
||||||
define("HESTIA_DIR_BIN", "/usr/local/hestia/bin/");
|
define("HESTIA_DIR_BIN", "/usr/local/hestia/bin/");
|
||||||
define("HESTIA_CMD", "/usr/bin/sudo /usr/local/hestia/bin/");
|
define("HESTIA_CMD", "/usr/bin/sudo /usr/local/hestia/bin/");
|
||||||
define("DEFAULT_PHP_VERSION", "php-" . exec('php -r "echo substr(phpversion(),0,3);"'));
|
exec(HESTIA_CMD . "v-check-rhel-utility", $output, $return_var);
|
||||||
|
$is_rhel_detect = str_contains(implode("", $output), "+");
|
||||||
|
unset($output);
|
||||||
|
if ($is_rhel_detect) {
|
||||||
|
define("DEFAULT_PHP_VERSION", "php-" . exec('php -r "echo str_replace(\'.\', \'\', substr(phpversion(),0,3));"'));
|
||||||
|
} else {
|
||||||
|
define("DEFAULT_PHP_VERSION", "php-" . exec('php -r "echo substr(phpversion(),0,3);"'));
|
||||||
|
}
|
||||||
|
|
||||||
// Load Hestia Config directly
|
// Load Hestia Config directly
|
||||||
load_hestia_config();
|
load_hestia_config();
|
||||||
|
|||||||
@@ -293,7 +293,7 @@
|
|||||||
<?php } ?>
|
<?php } ?>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
<?php if (!empty($_SESSION["WEB_BACKEND"])) { ?>
|
<?php if (!empty($_SESSION["WEB_BACKEND"])) { ?>
|
||||||
<div class="u-mt10">
|
<div class="u-mt20">
|
||||||
<label for="v_php_default_version" class="form-label">
|
<label for="v_php_default_version" class="form-label">
|
||||||
<?= _("System PHP Version") ?>
|
<?= _("System PHP Version") ?>
|
||||||
</label>
|
</label>
|
||||||
@@ -310,6 +310,18 @@
|
|||||||
<?php } ?>
|
<?php } ?>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="form-check u-mb5 u-mt10">
|
||||||
|
<input
|
||||||
|
class="form-check-input"
|
||||||
|
type="checkbox"
|
||||||
|
name="v_use_php_selector"
|
||||||
|
id="v_use_php_selector"
|
||||||
|
<?= $_SESSION["PHP_SELECTOR"] == "yes" ? "checked" : "" ?>
|
||||||
|
>
|
||||||
|
<label for="v_use_php_selector">
|
||||||
|
<?= _("Use PHP cli selector") ?>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
</div>
|
</div>
|
||||||
</details>
|
</details>
|
||||||
|
|||||||
Reference in New Issue
Block a user