Răsfoiți Sursa

Fix bug in v-list-sys-php (#2205)

Due to a bug with php packages in the past that have been patched by upstream older servers still might report non installed php versions

Rewrote the function so it should not happen again
Jaap Marcus 4 ani în urmă
părinte
comite
e674c04a2e
2 a modificat fișierele cu 11 adăugiri și 7 ștergeri
  1. 10 6
      bin/v-list-sys-php
  2. 1 1
      bin/v-restart-service

+ 10 - 6
bin/v-list-sys-php

@@ -26,9 +26,9 @@ source_conf "$HESTIA/conf/hestia.conf"
 # JSON list function
 json_list() {
     i=1
-    objects=$(echo "$versions" |wc -w)
+    objects=$(echo "${versions[@]}" |wc -w)
     echo '['
-    for version in $versions; do
+    for version in "${versions[@]}"; do
         if [ "$i" -lt "$objects" ]; then
             echo -e  "\t\"$version\","
         else
@@ -43,14 +43,14 @@ json_list() {
 shell_list() {
     echo "VERSION"
     echo "--------"
-    for version in $versions; do
+    for version in "${versions[@]}"; do
         echo "$version"
     done
 }
 
 # PLAIN list function
 plain_list() {
-    for version in $versions; do
+    for version in "${versions[@]}"; do
         echo "$version"
     done
 }
@@ -58,7 +58,7 @@ plain_list() {
 # CSV list function
 csv_list() {
     echo "VERSION"
-    for version in $versions; do
+    for version in "${versions[@]}"; do
         echo "$version"
     done
 }
@@ -68,8 +68,12 @@ csv_list() {
 #                       Action                             #
 #----------------------------------------------------------#
 
+declare -a versions;
 # List through /etc/php
-versions=$(/usr/sbin/phpquery -V);
+for version in /etc/php/*/fpm; do
+    ver=$(echo "$version" | awk -F"/" '{ print $4 }');
+    versions+=("$ver")
+done
 
 # Listing data
 case $format in

+ 1 - 1
bin/v-restart-service

@@ -37,7 +37,7 @@ is_format_valid 'service' 'restart'
 if [ "$service" = "php-fpm" ];then
     service_list=''
     # Get installed php versions
-    php_versions=$(/usr/sbin/phpquery -V);
+    php_versions=$($BIN/v-list-sys-php plain);
     # Substitute php-fpm service name formats
     for version in $php_versions; do
         service_list="${service_list} php${version}-fpm"