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
|
||||
|
||||
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 #
|
||||
|
||||
@@ -44,6 +44,7 @@ check_hestia_demo_mode
|
||||
# Reading user values
|
||||
source $USER_DATA/user.conf
|
||||
|
||||
|
||||
versions=$($BIN/v-list-sys-php plain)
|
||||
support=0
|
||||
for v in $versions; do
|
||||
@@ -57,6 +58,13 @@ if [ "$support" = 0 ]; then
|
||||
exit 2
|
||||
fi
|
||||
|
||||
if [ "$PHP_SELECTOR" == "yes" ]; then
|
||||
/usr/bin/hestiacp-php-admin set $user $version
|
||||
if grep -q "alias php='env php" "$FILE"; then
|
||||
sed -i "/alias php='env/d" $FILE
|
||||
fi
|
||||
else
|
||||
|
||||
# Create .bash_aliases is not exsists
|
||||
if [ ! -f "$FILE" ]; then
|
||||
if [ -f /etc/redhat-release ];then
|
||||
@@ -78,6 +86,7 @@ fi
|
||||
|
||||
sed -i "/alias php='env/d" $FILE
|
||||
echo "alias php='env php$version'" >> $FILE
|
||||
fi
|
||||
update_user_value "$user" '$PHPCLI' "$version"
|
||||
|
||||
#----------------------------------------------------------#
|
||||
|
||||
@@ -112,7 +112,8 @@ json_list() {
|
||||
"APP_NAME": "'$APP_NAME'",
|
||||
"TITLE": "'$TITLE'",
|
||||
"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 "Updates: Notify by email: $UPGRADE_SEND_EMAIL"
|
||||
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() {
|
||||
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_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"
|
||||
@@ -239,8 +249,9 @@ plain_list() {
|
||||
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 "$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 -e "$POLICY_SYSTEM_PROTECTED_ADMIN\t$POLICY_SYSTEM_HIDE_ADMIN"
|
||||
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 -ne "$POLICY_SYSTEM_PROTECTED_ADMIN\t$POLICY_SYSTEM_HIDE_ADMIN\t"
|
||||
echo -e "$T_PHP_SELECTOR"
|
||||
}
|
||||
|
||||
# CSV list
|
||||
@@ -257,7 +268,8 @@ csv_list() {
|
||||
echo -n "'UPGRADE_SEND_EMAIL','UPGRADE_SEND_EMAIL_LOG',"
|
||||
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 "'POLICY_SYSTEM_PROTECTED_ADMIN',POLICY_SYSTEM_HIDE_ADMIN'"
|
||||
echo -n "'POLICY_SYSTEM_PROTECTED_ADMIN',POLICY_SYSTEM_HIDE_ADMIN',"
|
||||
echo -n "'PHP_SELECTOR'"
|
||||
echo
|
||||
echo -n "'$WEB_SYSTEM','$WEB_RGROUPS','$WEB_PORT','$WEB_SSL',"
|
||||
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 "'$SMTP_RELAY','$SMTP_RELAY_HOST','$SMTP_RELAY_PORT','$SMTP_RELAY_USER',"
|
||||
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 "'$DEBUG_MODE','$API','$API_ALLOWED_IP','$POLICY_SYSTEM_PROTECTED_ADMIN,$POLICY_SYSTEM_HIDE_ADMIN"
|
||||
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 "'$PHP_SELECTOR'"
|
||||
echo
|
||||
}
|
||||
|
||||
@@ -289,7 +302,7 @@ fi
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) shell_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list ;;
|
||||
esac
|
||||
|
||||
@@ -108,6 +108,12 @@ $v_php_versions = array_map(function ($php_version) use ($backend_templates, $ba
|
||||
return $phpinfo;
|
||||
}, $v_php_versions);
|
||||
|
||||
if (!empty($_SESSION["PHP_SELECTOR"])) {
|
||||
$v_php_selector = $_SESSION["PHP_SELECTOR"];
|
||||
} else {
|
||||
$v_php_selector = "";
|
||||
}
|
||||
|
||||
// List languages
|
||||
exec(HESTIA_CMD . "v-list-sys-languages json", $output, $return_var);
|
||||
$language = json_decode(implode("", $output), true);
|
||||
@@ -363,6 +369,23 @@ if (!empty($_POST["save"])) {
|
||||
//force reload
|
||||
$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_CMD", "/usr/bin/sudo /usr/local/hestia/bin/");
|
||||
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();
|
||||
|
||||
@@ -293,7 +293,7 @@
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<?php if (!empty($_SESSION["WEB_BACKEND"])) { ?>
|
||||
<div class="u-mt10">
|
||||
<div class="u-mt20">
|
||||
<label for="v_php_default_version" class="form-label">
|
||||
<?= _("System PHP Version") ?>
|
||||
</label>
|
||||
@@ -310,6 +310,18 @@
|
||||
<?php } ?>
|
||||
</select>
|
||||
</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 } ?>
|
||||
</div>
|
||||
</details>
|
||||
|
||||
Reference in New Issue
Block a user