Added config of php path
This commit is contained in:
@@ -29,6 +29,7 @@ make DESTDIR=$RPM_BUILD_ROOT install
|
|||||||
touch "$RPM_BUILD_ROOT"%{_sysconfdir}/hestia_php_selector/system/lock
|
touch "$RPM_BUILD_ROOT"%{_sysconfdir}/hestia_php_selector/system/lock
|
||||||
%{__mkdir} -p "$RPM_BUILD_ROOT"/usr/local/hestia_php_selector/
|
%{__mkdir} -p "$RPM_BUILD_ROOT"/usr/local/hestia_php_selector/
|
||||||
%{__install} -D -m 755 installer.sh "$RPM_BUILD_ROOT"/usr/local/hestia_php_selector/hestiacp_php_selector_installer
|
%{__install} -D -m 755 installer.sh "$RPM_BUILD_ROOT"/usr/local/hestia_php_selector/hestiacp_php_selector_installer
|
||||||
|
echo "/usr/bin/php%s" > "$RPM_BUILD_ROOT"%{_sysconfdir}/hestia_php_selector/php_sel_path.conf
|
||||||
|
|
||||||
%check
|
%check
|
||||||
make check
|
make check
|
||||||
@@ -50,6 +51,8 @@ fi
|
|||||||
%files
|
%files
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%doc LICENSE
|
%doc LICENSE
|
||||||
|
%config(noreplace) %{_sysconfdir}/hestia_php_selector/php_sel_path.conf
|
||||||
|
%attr(0644, root, root) %{_sysconfdir}/hestia_php_selector/php_sel_path.conf
|
||||||
%attr(0755, root, root) %{_bindir}/hestiacp-php-selector
|
%attr(0755, root, root) %{_bindir}/hestiacp-php-selector
|
||||||
%attr(0755, root, root) %{_bindir}/hestiacp-php-admin
|
%attr(0755, root, root) %{_bindir}/hestiacp-php-admin
|
||||||
%{_sysconfdir}/hestia_php_selector/*
|
%{_sysconfdir}/hestia_php_selector/*
|
||||||
|
|||||||
27
installer.sh
27
installer.sh
@@ -22,14 +22,31 @@ install)
|
|||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
delete)
|
delete)
|
||||||
if [ -e /etc/hestia_php_selector/system/php.path ]; then
|
current_php=$(readlink -f /usr/bin/php)
|
||||||
php_sys=$(cat /etc/hestia_php_selector/system/php.path)
|
if [ "$current_php" == "/usr/bin/hestiacp-php-selector" ]; then
|
||||||
if [ -n "$php_sys" ]; then
|
if [ -e /etc/hestia_php_selector/system/php.path ]; then
|
||||||
update-alternatives --set php "$php_sys"
|
php_sys=$(cat /etc/hestia_php_selector/system/php.path)
|
||||||
|
if [ -n "$php_sys" ]; then
|
||||||
|
update-alternatives --display php | grep "/usr/bin/php82"
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
update-alternatives --set php "$php_sys"
|
||||||
|
else
|
||||||
|
php_ver=$(echo "$php_sys" | grep -o -P "php\d+.?\d+")
|
||||||
|
is_sim_php=`update-alternatives --display php | tail -n +3 | grep -Po "^(.+?)(?= -)" | grep "$php_ver" | head -n1`
|
||||||
|
fst_php=`update-alternatives --display php | tail -n +3 | grep -Po "^(.+?)(?= -)" | head -n1`
|
||||||
|
if [ -n "$is_sim_php" ]; then
|
||||||
|
update-alternatives --set php "$is_sim_php"
|
||||||
|
else
|
||||||
|
if [ -n "$fst_php" ]; then
|
||||||
|
update-alternatives --set php "$fst_php"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
update-alternatives --display php | grep hestiacp-php-selector
|
update-alternatives --display php | grep hestiacp-php-selector
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
update-alternatives --remove php /usr/bin/hestiacp-php-selector
|
update-alternatives --remove php /usr/bin/hestiacp-php-selector
|
||||||
fi
|
fi
|
||||||
/usr/bin/hestiacp-php-admin remove-all
|
/usr/bin/hestiacp-php-admin remove-all
|
||||||
|
|||||||
@@ -25,6 +25,8 @@ const (
|
|||||||
PATH_TO_LOCAL_PHP_ROOT = "php_sel"
|
PATH_TO_LOCAL_PHP_ROOT = "php_sel"
|
||||||
PATH_TO_LOCAL_PHP = PATH_TO_LOCAL_PHP_ROOT + PATH_TO_CONFIG_NAME
|
PATH_TO_LOCAL_PHP = PATH_TO_LOCAL_PHP_ROOT + PATH_TO_CONFIG_NAME
|
||||||
LOCK_PATH = "lock"
|
LOCK_PATH = "lock"
|
||||||
|
PHP_SEL_CONF = "/etc/hestia_php_selector/php_sel_path.conf"
|
||||||
|
PHP_TEMPLATE = "/usr/bin/php%s"
|
||||||
)
|
)
|
||||||
|
|
||||||
func escapeUserName(username string) string {
|
func escapeUserName(username string) string {
|
||||||
@@ -41,6 +43,21 @@ func isExecOther(mode os.FileMode) bool {
|
|||||||
return mode&0001 != 0
|
return mode&0001 != 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getPathtpPHP(phpVer string) string {
|
||||||
|
cont, err := os.ReadFile(PHP_SEL_CONF)
|
||||||
|
if err == nil {
|
||||||
|
result := strings.Split(strings.TrimSpace(string(cont)), "\n")
|
||||||
|
if len(result) > 0 {
|
||||||
|
php_check := strings.TrimSpace(result[0])
|
||||||
|
if (len(php_check) > 0) && (strings.Contains(php_check, "%s")) {
|
||||||
|
return fmt.Sprintf(php_check, phpVer)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return fmt.Sprintf(PHP_TEMPLATE, phpVer)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
func getPHPVerFromConf(path string) (string, error) {
|
func getPHPVerFromConf(path string) (string, error) {
|
||||||
f, err := os.Open(path)
|
f, err := os.Open(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -77,7 +94,7 @@ func getUserPHPVerHestia(username string) (string, string, error) {
|
|||||||
if phpVer == "" {
|
if phpVer == "" {
|
||||||
return "", "", nil
|
return "", "", nil
|
||||||
}
|
}
|
||||||
phpPath := "/usr/bin/php" + phpVer
|
phpPath := getPathtpPHP(phpVer)
|
||||||
if finfo, err := os.Stat(phpPath); err != nil {
|
if finfo, err := os.Stat(phpPath); err != nil {
|
||||||
return "", "", err
|
return "", "", err
|
||||||
} else {
|
} else {
|
||||||
@@ -97,7 +114,7 @@ func setUserPHPVer(username string, php_ver string) error {
|
|||||||
matches := reIsVer.FindStringSubmatch(php_ver)
|
matches := reIsVer.FindStringSubmatch(php_ver)
|
||||||
if len(matches) > 1 {
|
if len(matches) > 1 {
|
||||||
phpver := strings.TrimSpace(matches[1])
|
phpver := strings.TrimSpace(matches[1])
|
||||||
phpPath := "/usr/bin/php" + phpver
|
phpPath := getPathtpPHP(phpver)
|
||||||
if finfo, err := os.Stat(phpPath); err != nil {
|
if finfo, err := os.Stat(phpPath); err != nil {
|
||||||
return err
|
return err
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user