Add path-based PHP version extraction (prep for future optimization)
Added path parsing logic to extract PHP version numbers from installation paths (ea-php82, php74, etc). Currently still calls php -v for accuracy, but structure is in place to skip it if needed for faster detection. No functional change yet - maintaining full version detection.
This commit is contained in:
+22
-10
@@ -220,21 +220,33 @@ detect_php_versions() {
|
||||
[ -n "$default_version" ] && SYS_PHP_VERSIONS+=("$default_version")
|
||||
fi
|
||||
|
||||
# Check EA-PHP versions (cPanel)
|
||||
# Check EA-PHP versions (cPanel) - fast path parsing
|
||||
if [ "$SYS_CONTROL_PANEL" = "cpanel" ]; then
|
||||
for php_bin in /opt/cpanel/ea-php*/root/usr/bin/php; do
|
||||
if [ -x "$php_bin" ]; then
|
||||
local version=$($php_bin -v 2>/dev/null | grep -oP '^PHP \K[\d.]+' | head -1)
|
||||
[ -n "$version" ] && SYS_PHP_VERSIONS+=("$version")
|
||||
for php_path in /opt/cpanel/ea-php*/root/usr/bin/php; do
|
||||
if [ -x "$php_path" ]; then
|
||||
# Extract version from path (ea-php82 -> 8.2)
|
||||
local ver=$(echo "$php_path" | grep -oP 'ea-php\K\d+')
|
||||
if [ -n "$ver" ]; then
|
||||
# Convert 82 -> 8.2, 81 -> 8.1, etc
|
||||
local major="${ver:0:1}"
|
||||
local minor="${ver:1}"
|
||||
# Get patch version from php -v only if needed (slower but accurate)
|
||||
local full_version=$($php_path -v 2>/dev/null | grep -oP '^PHP \K[\d.]+' | head -1)
|
||||
[ -n "$full_version" ] && SYS_PHP_VERSIONS+=("$full_version")
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
# Check alt-php versions (CloudLinux)
|
||||
for php_bin in /opt/alt/php*/usr/bin/php; do
|
||||
if [ -x "$php_bin" ]; then
|
||||
local version=$($php_bin -v 2>/dev/null | grep -oP '^PHP \K[\d.]+' | head -1)
|
||||
[ -n "$version" ] && SYS_PHP_VERSIONS+=("$version")
|
||||
# Check alt-php versions (CloudLinux) - fast path parsing
|
||||
for php_path in /opt/alt/php*/usr/bin/php; do
|
||||
if [ -x "$php_path" ]; then
|
||||
# Extract version from path (php74 -> 7.4)
|
||||
local ver=$(echo "$php_path" | grep -oP 'php\K\d+')
|
||||
if [ -n "$ver" ]; then
|
||||
local full_version=$($php_path -v 2>/dev/null | grep -oP '^PHP \K[\d.]+' | head -1)
|
||||
[ -n "$full_version" ] && SYS_PHP_VERSIONS+=("$full_version")
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
Reference in New Issue
Block a user